System Item Combination Created by LeoNguyen112 Đây là system ghép đồ do mình viết. System này có khả năng ghép: - Các item thuộc các type khác nhau. Vd: 1 Claw of Attack + 3 ghép với 1 Claw of Attack + 9 được 1 Claw of Attack + 15. Số lượng item type tối đa trong 1 lần ghép là 5. - Các item thuộc cùng 1 type. Vd: 3 Orb of Frost ghép lại với nhau được 1 Mana Stone. Số lượng các item tối đa trong 1 lần ghép là 6. Thực ra thì hơn vẫn được nhưng Bliz chỉ cho mang 1 lúc 6 item thôi - Các charged item. Vd: 1 unit mang potion of healing với 3 charge, nhặt thêm 1 potion of healing với 4 charge nữa thì sẽ có 1 potion of healing với 7 charge. Ai không hiểu thì nhìn hình này: Một số thông tin khác- GUI/Jass: all is GUI - Lag: ít ( hy vọng thế bởi có 2 trigger ) - Leak: không ( bởi vì chỉ xài các biến Item Type, Integer ) - JNGP version: ai biết , hỏi cái người làm Xdesign Pack ấy Hướng dẫn sử dụng ( cần đọc kĩ ) 1. Coppy thư mục System Item vào map bạn. 2. Sửa các action sau đây cho hợp với map bạn: [spoil] Mã: Set Item_Effect = Abilities\Spells\Demon\DarkPortal\DarkPortalTarget.mdl Cần set Item_Effect thành effect bạn muốn khi ghép dồ thành công. Hoặc để thế này cũng đẹp rồi :) Mã: Set Item_Max = 5 Set Item_Max thành số lượng recipe có trong map bạn Mã: Set Item_Material1[array] = Your Item Set Item_Material2[array] = Your Item Set Item_Material3[array] = Your Item Set Item_Material4[array] = Your Item Set Item_Material5[array] = Your Item Set các nguyên liệu cần để ghép. Giả sử recipe cần 3 nguyên liệu thì chỉ cần set Item_Material1, 2, 3 thôi, cái 4, 5 không cần set. Lưu ý là các biến Material 1, 2, 3, 4, 5 không được trùng nhau nhé. Mã: Set Item_MaterialMax[array] = Number Set Item_MaterialMax thành số loại nguyên liệu bạn cần trong 1 recipe Mã: Set Item_Result[array] = Item Set Item_Result thành item nhận được sau khi ghép. Mã: Set Item_Material1Charge[array] = Number Set Item_Material2Charge[array] = Number Set Item_Material3Charge[array] = Number Set Item_Material4Charge[array] = Number Set Item_Material5Charge[array] = Number Set Item_MaterialCharge thành số lượng 1 loại nguyên liệu cần cho recipe. Nếu loại nguyên liệu đó chỉ cần 1 thì không cần set. - Lưu ý: các biến dùng để set cho 1 recipe cần có 1 array giống nhau. - Ví dụ 1: mình muốn tạo 1 công thức gồm 1 Claw of Attack + 3 ghép với 1 Claw of Attack + 9 và kết quả được 1 Claw of Attack + 15. Thì mình sẽ set các biến thế này: Mã: Set Item_Material1[2] = Claws of Attack +3 Set Item_Material2[2] = Claws of Attack +9 Set Item_MaterialMax[2] = 2 Set Item_Result[2] = Claws of Attack +15 - Ví dụ 2: công thức gồm 3 Orb of Frost và kết quả được 1 Mana Stone. Thì mình sẽ set các biến thế này: Mã: Set Item_Material1[3] = Orb of Frost Set Item_Material1Charge[3] = 3 Set Item_MaterialMax[3] = 1 Set Item_Result[3] = Mana Stone [/spoil] Trong map mình có để sẵn 5 công thức ghép đồ khác nhau. Các bạn down về test thử. 3.Nào, nhấn nút Test Map để test thôi! Nhìn thì có vẻ khó, nhưng thực ra bạn nào xài rồi sẽ thấy dễ lắm. Chúc các bạn thành công. Thanks to btvinh for request me!!! :) Bạn nào test thấy lỗi hoặc không hiểu chỗ nào thì post lên topic này nhé --------------------------------------------------Link download (MediaFire): Click me!!! Link download (Hiveworkshop): Click me!!!
Các sys của bác là init đủ Item r combine àk @@. Bác thử nghiên cứu với get owner item với full slot pick up item xem đc k@@
Get owner thì còn có thể chứ full slot pick up thì mệt lắm, không nghiên cứu làm gì All is GUI, tất cả là GUI bạn àh :)
Ghép đồ căn bản: Tìm trong 6 ô đồ trên người có phụ kiện cần thì tạo lun item kết quả. Mỗi recipe 1 trigger. Cách này lag ở chỗ mỗi khi nhặt đồ thì có x <số recipe> x <số loại item cần đề ghép> x 6 lần ( lấy lại từng đồ trong hòm ) System của cậu nếu làm thế này thì chỉ hơn cái ghép đồ căn bản là có thể ghép đồ với các item giống nhau mà thôi Còn độ nhanh và lag thì tương đương với cái ghép đồ căn bản. Nếu như thế thì chỉ cần thêm cái item array lưu đồ đã duyệt để kiểm tra là đồ đó đã được duyệt thì là ok ko cần system May ra thì code cái của cậu ngắn hơn vì ko bị lặp lại mà thôi. Muốn nhanh hơn (đỡ lag) thì cậu phải làm thêm biến item array InventoryItems để lưu ra hết tất cả các đồ trong ô đồ thằng hero đó. Rồi sau này chỉ cần phải loop ở đó để kiểm tra và ko mất công lấy lại trong người hero Tái bút: Tại sao lại phải x6 lần Set Item_Check=0 vậy ???? Mã: For each (Integer A) from 1 to 6, do (Actions) Loop - Actions Set Item_Check = 0 btw, có lời khen cho độ chăm chỉ khi đã có biết bao system ghép đồ trên mạng mà cậu vẫn làm thêm 1 cái nữa Ít nhất cậu có thể thấy cái system tớ viết ở chủ đề tương tự ở post đầu của cậu đó
@vuongkkk Uh thì nó đó, căn bản Vẫn chưa hiểu lắm My bad. Tại lúc đầu check từng slot, sau sửa lại mà quên cài này -> đã fix Sys của cậu xài jass, và I HATE JASS Anyway, tớ vẫn thích xài đồ-tự-tay-mình-làm hơn
Đỡ lag chứ sao cậu khó đỡ hay tớ dở hơi đây đã giải thích cặn kẽ bên trên là lag là do đâu rồi mà. Cái lưu trên kia chính là loại bỏ bớt lag ở chỗ tô màu đỏ đó đó
Tớ khó đỡ Khả năng giao tiếp tớ kém nên người khác nói tớ ít khi hiểu lắm, tớ chỉ hiểu những gì tớ làm. Cậu thông cảm vậy lag thì đành chịu lag