[System] Set Item System - Tạo ra các món đồ theo set trong war3

Thảo luận trong 'World Editor' bắt đầu bởi vuongkkk, 17/2/11.

  1. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    Giới thiệu
    Ai đã chơi MU chắc cũng biết hệ thống “set” - Đồ thần với số lượng dòng ẩn được kích hoạt tùy vào số lượng đồ thuộc set đó mà bạn mang trên người.

    Hiện tại mình chưa tìm được hệ thống nào trong Warcraft 3 có tác dụng trên nên xin mạn phép được viết 1 thư viện cho mọi người dùng.

    Có bất cứ bug hay yêu cầu nào có liên quan đến hệ thống này xin post vào đây để mình cải tiến cũng như chỉnh sửa lại

    Cách để import vào map và cách dùng
    mình đã viết trong demo map phần How to import và User Guide ở trong demo map bên dưới

    Log version 1.0:
    • Tự cập nhập lại ability ẩn và tooltip của đồ mỗi khi mang thêm hay bỏ đi 1 món thuộc set
    • Nhờ vậy mỗi lần cầm thêm 1 món đồ là đã có thêm ability ẩn và mất đi 1 món là sẽ mất ngay 1 số ability ẩn, không phải là tất cả ability
    • Kể cả với unit có ability “Metamorphosis” cũng ko sợ mất ability khi biến hình

    Lưu ý: là bất cứ custome skill nào của bạn base từ skill kiểu “Metamorphosis” hay “Crow Form” phải để “Text - Order String - Use/Turn on” là “metamorphosis” để tránh việc mất ability ẩn khi biến hình.

    Hạn chế:
    Nếu mỗi set item của các bạn có 6 món đồ thì số lượng set mà bạn có thể tạo mà không gây lỗi do thiếu storage của array là 227 set.
    Nếu ai đã làm đến 227 set item thì cẩn thận :))

    Special thanks to:
    Tom Kazansky : My dear technical supporter :x
    KuKulKan-TheManTime : Help me with his idea about using spell book

    Đây là map demo
    Link MF
    SIS Demo map
     
    Chỉnh sửa cuối: 21/2/11
  2. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    với lệnh này:
    Mã:
    native UnitMakeAbilityPermanent takes unit whichUnit, boolean permanent, integer abilityId returns boolean
    thì ability sẽ ko biến mất khi "transform"

    nên cái lưu ý kia là không cần thiết
     
  3. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    yup. Cái system này dừa trên lý thuyết là add skill vào spell book rồi add spell book đó vào unit mang đồ thuộc 1 set đã được kích hoạt. Cái skill đưa vào spell book là làm thủ công = Object editor nên không detect được trong spell book có skill gì mà UnitMakeAbilityPermanent(). Còn nếu chỉ UnitMakeAbilityPermanent(unitA, 'spell book') thì sau khi biến hình chỉ còn lại abi "Spell book", các ability được add sẵn trong spell book mất hết.

    Ưu điểm dùng spell book. Add 1 lần được tất cả các skill cần active, tương tự như vậy chỉ cần xóa 1 cái spell book là OK.
    Hơn thế nữa, spell book chứa nhiều abi nên chỉ cần lưu 1 abi rawcode của spell book thay vì lưu hết cả đống ability. Và như thế sẽ dễ dàng thay 1 spell book cho active level tiếp theo của set thay vì thêm skill mà được active. Mà khi thêm từng skill thì rất khó cho việc khi cầm thêm 1 món sẽ active được nhiều skill chứ không chỉ 1.

    1 lần nữa cám ơn KuKulKa. Nếu không có ý tưởng lưu skill vào spell book, mình sẽ chưa thể hoàn thành ngay được system này
     
  4. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    phải làm "permanent" của spellbook và các ability trong đó

    biết đc khi nào add spellbook chả nhẽ ko biết đc trong spellbook có gì? mình tạo ra mà

    mỗi 1 set dùng một spellbook thì đâu có nhiều? và trong spellbook cũng chỉ có vài ability
     
  5. maixuanem

    maixuanem Mr & Ms Pac-Man

    Tham gia ngày:
    22/8/10
    Bài viết:
    182
    Nơi ở:
    Tân Binh
    Cuối cùng thì cũng đã ra, check thôi :x
     
  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
    3 lý do dẫn đến có cái lưu ý trên
    1. Mình add tay trong Object Editor tuy là đã biết là ability gì nhưng không thể detect là những ability nào trong spell book => không thể tự động hóa việc permanent. Nếu muốn permanent tất cả ability để bỏ đi cái lưu ý trên thì yêu cầu người dùng phảii thêm code trong hệ thống là gồm những skill nào trong set đó => Không tiện cho người dùng
    2. Sau khi thêm các abi cho 1 set thì còn phải xem set được active đến đâu tức có những abi nào thuộc set đó đã add cho unit để permanent (cái này chắc phải lưu vào biến mảng). Phức tạp trong code => chậm trong xử lý. Đấy là còn chưa tính tới việc dùng array làm giảm íntance của struct (đã được khắc phục = Library ChainData của vuongkkk)
    3. MÌnh cũng chả rảnh để làm nhiều thế :p . Dùng Trigger để xử vụ này cho nhanh \:D/ => ra cái lưu ý như trên :))

    Quên 1 lý do nên edit lại
    Thứ 4 là nếu 1 set có trên 36 ability thì số lượng set đồ tối đa trong 1 map sẽ giảm xuống dưới 227 set =))
     
    Chỉnh sửa cuối: 17/2/11
  7. LeoNguyen112

    LeoNguyen112 Dragon Quest

    Tham gia ngày:
    22/5/10
    Bài viết:
    1,438
    Nơi ở:
    TP.HCM
    Yên tâm :-j, có lẽ chẳng ai đủ dũng cảm làm 227 set đâu mà lo :)).
     
  8. zollback

    zollback Youtube Master Race

    Tham gia ngày:
    16/5/10
    Bài viết:
    88
    Có tôi............................. :">
     
  9. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    ũa cho mình hỏi mà down map demo là cái file nào, mình down hết lun mà toàn file gì đâu @@
    Edit: àk mình thấy rùi @@. Cho mình hỏi cái này, nếu mặt đủ set rùi mà hok cho skill ẩn thì làm thế nào.
    Vd: của bạn khi mặt đủ set thì có skill ẩn h` muốn bỏ phần đó thì làm như thế nào?????????
     
    Chỉnh sửa cuối: 21/2/11
  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
    Mình cũng hỏi lại bạn rằng có chuyện đó hay không? Nếu có thì là bug. Bug thì xin bạn chỉ rõ ở đâu như thế nào thì bị. Còn system này mình thiết kế không mong muốn có chuyện đó.

    Ý bạn có phải là muốn khi có "gì đó" xảy ra thì sẽ khóa khả năng của set lại có phải không? Chức năng này mình chưa làm nhưng mình nghĩ là hoàn toàn làm được. Hết tuần này mình mới rảnh để làm. Hy vọng bạn đợi được.
     
  11. DylandKyo

    DylandKyo Donkey Kong

    Tham gia ngày:
    28/10/10
    Bài viết:
    358
    không phải ý mình muốn nói là theo system của bạn thì khi mặc đủ set thì sẽ có spell ẩn, ở đây mình muốn nói khi mặc đủ set thì sẽ hok có skill ẩn. Chứ system của bạn thì hok có bug mình đã test ~~
     

Chia sẻ trang này