[System] Item Combination

Thảo luận trong 'World Editor' bắt đầu bởi LeoNguyen112, 17/1/12.

  1. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    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:
    [​IMG]

    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!!!
     
    Chỉnh sửa cuối: 18/1/12
    lonewolf020291 thích bài này.
  2. btvinh

    btvinh Donkey Kong

    Tham gia ngày:
    15/1/11
    Bài viết:
    343
    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@@
     
  3. Dorae.Mun

    Dorae.Mun Mr & Ms Pac-Man

    Tham gia ngày:
    9/11/11
    Bài viết:
    243
    Nơi ở:
    Thế kỉ 22
    GUI hả mấy anh :-s . .
     
  4. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    dòng này là không có ý nghĩa gì?
     
  5. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM

    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ì :-j



    All is GUI, tất cả là GUI bạn àh :)
     
  6. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    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 đó =))
     
    Chỉnh sửa cuối: 19/1/12
  7. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    @vuongkkk
    Uh thì nó đó, căn bản :-w

    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 \m/
     
    Chỉnh sửa cuối: 19/1/12
  8. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    là lưu ra hết tất cả các đồ trên người thằng hero đó ở mảng array item ....
     
  9. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    Biết là lưu lại, nhưng như vậy thì có khác gì?
     
  10. vuongkkk

    vuongkkk T.E.T.Я.I.S

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Đỡ 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 đỏ đó đó :|
     
  11. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    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
     

Chia sẻ trang này