Topic hỏi đáp về cách làm map | version 14

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

Trạng thái chủ đề:
Không mở trả lời sau này.
  1. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Chả có đâu, tùy từng skills thui
     
  2. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    bạn tạo danh sách các skill đó, ròi add vào 1 cuốn spellbook, ròi disable cái spellbook đó cho player, sau đó khi cần thì add spellbook cho unit, tuy spellbook bị disable nhưng các skill bên trong vẫn có hiệu quả, chỉ có icon của spell book là ko hiện :D

    Cho mình hỏi cái: giữa dùng hashtable và dùng 2 mảng để chạy vòng lặp kiểm tra từng cái handle trong mảng 1 ròi lấy index truy data mảng 2 thì cách nào chạy nhanh hơn? có cách nào từ handleID đổi về unit/item/widget/... đc ko ?

    Ngoài ra mình còn muốn hỏi cái này vì chưa test đc: nếu 1 unit của player A có passive là 1 cái aura, mình disable cái ability đó cho player A thì có phải unit đó về mặt hiệu quả của aura sẽ hoàn toàn giống như ko có passive ko?

    Mình muốn 1 hero khi ở gần unit A thì có skill Z, khi gần B lại có skill Y, mình tính dùng 1 timer kiểm tra liên tục = GroupEnumUnitsInRange để add/remove ability, cách đó có ổn ko? và có cách nào hay hơn ko, kiểu như dùng aura hay gì gì có AoE ròi dùng trigger kiểm tra khi unit nào đó bắt đầu bị ảnh hưởng của aura?
     
    Chỉnh sửa cuối: 26/6/12
  3. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    ^
    vậy thì gần cả 2 unit A B thì có skill .... Y Z ???

    ---------- Post added at 08:33 ---------- Previous post was at 07:58 ----------

    cho em hỏi cách làm 2 skill passive này:
    1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
    2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
    cám on! :D
     
  4. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    Đúng vậy, gần cả A B thì có cả X và Z :D

    Bạn thử cái này xem?
     
  5. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    ^
    link trên chả hiểu là cái gì luôn :|
    down cái demo về rồi choảng nhau ì xèo, sau đó end game :|

    ---------- Post added at 10:02 ---------- Previous post was at 09:59 ----------

    icon của spell book ko hiện? :|. đây là những cái mình cần:
    1) 1 skill passive (ko nhấn đc)
    2) khi 1 unit có skill passive đó thì add thêm những abi khác nhưng ko hiện icon abi đc add (nhưng vẫn hiện icon skill passive đó)
    nhưng mà:
    1) spell book thì nhấn đc, còn nếu disable thì... làm gì có hình spell book @@
    2) mình ko biết cách disable spell book @@

    ---------- Post added at 10:04 ---------- Previous post was at 10:02 ----------

    chỉ còn 1 cách duy nhất là làm như thằng If nhưng mình ko biết làm, là:
    dùng icon ẩn nào đó thế chỗ cho các ô trống (giống rubick trong dota) thì làm như vậy các skill kia sẽ ko đc chen vào :D

    ---------- Post added at 10:20 ---------- Previous post was at 10:04 ----------

    thôi bây giờ ko cần giúp cái add gì nữa, giúp 2 cái skill này dùm em đc rồi @@:
    1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
    2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
     
  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
    Cho mình hỏi cái: giữa dùng hashtable và dùng 2 mảng để chạy vòng lặp kiểm tra từng cái handle trong mảng 1 ròi lấy index truy data mảng 2 thì cách nào chạy nhanh hơn?
    Tùy xem số lượng là bao nhiêu. Nếu dữ liệu data khoảng 70 cái trở lên thì tớ nghĩ dùng hashtable lấy thẳng ra nhanh hơn

    có cách nào từ handleID đổi về unit/item/widget/... đc ko ?
    hashtable @@

    Ngoài ra mình còn muốn hỏi cái này vì chưa test đc: nếu 1 unit của player A có passive là 1 cái aura, mình disable cái ability đó cho player A thì có phải unit đó về mặt hiệu quả của aura sẽ hoàn toàn giống như ko có passive ko?
    Như vậy = unit đó ko có aura

    Mình muốn 1 hero khi ở gần unit A thì có skill Z, khi gần B lại có skill Y, mình tính dùng 1 timer kiểm tra liên tục = GroupEnumUnitsInRange để add/remove ability, cách đó có ổn ko?
    Có vì 1, 2 hero thì ko đáng kể. Hơn nữa về default thì aura cũng remove buff sau 2s ! tức timer cậu làm ko cần chạy quá liên tục.

    và có cách nào hay hơn ko, kiểu như dùng aura hay gì gì có AoE ròi dùng trigger kiểm tra khi unit nào đó bắt đầu bị ảnh hưởng của aura?
    Có khác gì cái kia khi cũng dùng groupenumunit để lấy ra unit bị ảnh hưởng bởi aura ???
    Có 2 cách làm:
    -Mỗi 1 unit lại 1 group chứa các unit affect 1 group để loop và mỗi 2s lại loop xung quanh các unit đó để lấy các unit bị ảnh hưởng và loại unit ko bị
    -1 group chung cho tất cả và lấy toàn map kiểm tra unit nào có dính buff của aura đó để add unit affect và remove unit ko bị
    Chỉ có sự khác biệt ở chỗ:
    2+ unit có aura đó đứng gần nhau và có các unit bị ảnh hưởng bởi aura cũng đứng gần đó thì cách 1 chậm hơn cách 2 vì phải loop kiểm tra 2+
    Còn ko thì cách 1 nhanh hơn
    icon của spell book ko hiện? :|. đây là những cái mình cần:
    1) 1 skill passive (ko nhấn đc)
    - Tạo skill giả base từ 1 skill nào vốn passive và disable tác dụng skill đó đi
    2) khi 1 unit có skill passive đó thì add thêm những abi khác nhưng ko hiện icon abi đc add (nhưng vẫn hiện icon skill passive đó)
    dùng hero learn skill event(nếu là unit thì event enter map để check) để kiểm tra nếu skill học là skill giả thì add spell book (có skill bên trong và spell book đã được disable)
    nhưng mà:
    1) spell book thì nhấn đc, còn nếu disable thì... làm gì có hình spell book @@
    disable spell book thì ko có hình nên mới cần tạo skill giả để có hình và tooltip ;)
    2) mình ko biết cách disable spell book @@
    Player - Disable Spell Book for Player #

    chỉ còn 1 cách duy nhất là làm như thằng If nhưng mình ko biết làm, là:
    dùng icon ẩn nào đó thế chỗ cho các ô trống (giống rubick trong dota) thì làm như vậy các skill kia sẽ ko đc chen vào :D
    Theo như mình biết Dota ko làm vậy đâu. Nó cũng dùng spell book disable thôi

    [/COLOR]thôi bây giờ ko cần giúp cái add gì nữa, giúp 2 cái skill này dùm em đc rồi @@:
    1) khi giết đc 1 unit +1 soul (1 soul = 1 damage). khi chết giải phóng ra 100/75/50/25% soul đã có. soul maximum là vô hạn
    2) khi giết đc 1 unit +1 agi. khi chết giải phóng 50% agi đã có. agi maximum là 25/50/75/100
    1) Ko Mui thì đơn giản: event bạn đã tự nêu được chỉ cần tạo biến lưu là xong
    2) Ko mui vẫn đơn giản vì unit là hero và dùng biến lưu + dùng code để thêm agi
    Hero - Modify Agility of Hero: Add/Subtract <số kill>
     
    Chỉnh sửa cuối: 26/6/12
  7. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Lần thứ 2 rồi ! có ai giúp cái ko nào ? anh Tom ơi - Leo ơi giúp với
     
  8. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    sao ko có thằng này nhỉ? :-/
    1. Lỗi Events trong trigger (Every 0 seconds of the game time) sẽ gây ra bug lag
    2. Dùng trigger Unit - Creat 1 ... cũng sẽ gây ra lag khi unit đc tạo ra quá nhiều
    3. Trigger làm sai gây ra lag cực độ và dễ bị fatal error
    đúng ko nhỉ anh Tom???
     
  9. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    có j nữa ko? mấy cái này mình xem đi xem lại kỹ rồi mà vẫn lag
     
  10. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    trigger làm sai là chẳng hạn như Events 1 đg, Condition 1 lối, Action 1 nẻo. Nói tóm lại là đọc vào chả hiểu gì hết. VD như: Events: 1 unit chết. Condition: ability đó là Shadow. Action: reset cooldown skill Aminate Dead. Như thế thì map cũng ko lag, nhưng khi 1 unit chết thì nó phải check trigger nên giật nhẹ 1 phát cũng làm player khó chịu
     
  11. langthangbairac

    langthangbairac T.E.T.Я.I.S

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    sạc, thế cũng gọi là giúp hả :( sao em làm đủ mọi cách mà vẫn ko hết lag, ai cho em các lý do khác ko
     
  12. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    ^
    ko giúp ng ta thì ng ta cũng đâu có giúp mình :-/:))
    muốn hết lag phải ko? Rất đơn giản. Delete trigger đó đi là xong =))

    ---------- Post added at 13:59 ---------- Previous post was at 13:33 ----------

    Chỉ em cách upgrade skill (gậy xanh trong dota)
     
  13. Ice Dragon

    Ice Dragon Mega Man

    Tham gia ngày:
    6/9/04
    Bài viết:
    3,101
    Nơi ở:
    none
    Ý là có hàm nào ngược với GetHandleId ko :D


    Thường thì mấy cái đó mình hay dùng làm skill, kiểu như 1 unit loại A có skill summon ra unit loại B và mình cần xác định UnitB tương ứng của các UnitA trên map để làm 1 skill "Khi A dùng skill này thì 500 AoE quanh B tương ứng sẽ bị abcxyz..."

    Mình tính tạo 2 mảng: arrUnitA, arrUnitB và 1 cái maxArr, 1 integer maxIndex

    Khi trigger UnitA nào đó dùng skil "500 AoE quanh B tương ứng sẽ bị abcxyz..." thì mình cho Loop chạy từ maxIndex về 0so sánh từng phần tử với GetTriggerUnit() ròi khi 2 cái mình kiểm tra bằng nhau thì lấy index tương ứng bên arrUnitB để gây abcxyz trong 500 AoE xung quanh đó
    Với số lượng Unit có skill này ko nhiều ( chỉ tầm vài chục Hero :D) nên sau này mình dùng thế thì ổn hơn hashtable nhỉ ?
    Ai có thể làm giúp mình 1 map với skill MUI kiểu vậy để tham khảo ko :D


    À có set 1 mảng = 1 mảng khác đc ko nhỉ ?
    Mình vừa test 1 cái về remove unit, cho mình hỏi có cách nào biết 1 unit đã bị remove khỏi game hay chưa ko? Vì khi unit bị remove thì mấy giá trị này kia của biến Unit hình như vẫn giữ như cũ nên mình ko biết kiểm tra sao nữa :D
    Còn SetUnitUserData với GetUnitUserData là sao nhỉ ? 2 hàm này sử dụng thế nào và công dụng ra sao vậy?
     
    Chỉnh sửa cuối: 26/6/12
  14. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    cho mình cái demo skill 2 nvm đi \m/
     
  15. Daric™

    Daric™ C O N T R A

    Tham gia ngày:
    7/3/12
    Bài viết:
    1,853
    Nơi ở:
    Porizon
    sửa đi sửa lại mà vẫn lag.... chỉ còn 1 cách thôi....
    mình chỉ cho bạn, bạn hứa ko đc nói với ai nghe chưa! :8onion13:
    [spoil]tạo lại map mới thử đê! :cuteonion23::2onion2:[/spoil]

    như mình đã nói đấy thôi:
    1. Doodad nhìu 1 chỗ lag
    2. tạo một lượt nhìu unit lag
    3. timer loop nhìu lần nhìu đơn vị lag
    4. một vài action ko hợp lệ trong hàm lag
    5. period time của skill buff ko đúng chỉ định lag
    6. blah blah blah... lag...
    :cuteonion15:

    sửa ko hết thì cách đấy là nước cờ cuối cùng!
     
    Chỉnh sửa cuối: 26/6/12
  16. choima

    choima Youtube Master Race

    Tham gia ngày:
    28/11/10
    Bài viết:
    85
    Mấy Pro chỉ em cái, em dở nhất mấy cái vụ Trigger và biến nên không làm một số spell hay được mong các bác giúp giùm em.:2cool_beated:
    1: Biến
    Hướng dẫn cách làm biến tạo Unit ngay tại bản thân( chơi chiêu ấy)
    Hướng dẫn cách làm biến tạo Unit ở các Unit xung quanh một vùng.
    2: Spell
    Một spell cơ bản về sử dụng chiêu gây sát thương bằng chính lượng damage của mình
    Một spell cơ bản về sử dụng chiêu gây sát thương bằng các chỉ số Agi, Str ...
    Một spell cơ bản về sử dụng chiêu gây sát thương bằng chính lượng mana hoặc Hp của mình ấy.
    (Lưu ý cơ bản thôi nha đùng quá phức tạp:4cool_oh:)

    Mong các Pro chỉ dùm cho, cảm ơn nhiều :cuteonion57::cuteonion57:
     
  17. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    nói như thế ng ta cũng... "lag" (lắc) =))
    quote lại lần nữa: cần hướng dẫn hoặc cho sẵn demo skill 2 nvm \m/
     
  18. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    tôi nhắc lại lần nữa, không trả lời thì đừng post lung tung

    và hãy quote lại câu hỏi 24h một lần
     
  19. WorldCyberGame

    WorldCyberGame Youtube Master Race

    Tham gia ngày:
    18/6/12
    Bài viết:
    48
    Nơi ở:
    tpHCM
    ^
    cho em hỏi cách làm -repick thế nào các anh nhỉ? :-/
     
  20. vuongkkk

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

    Tham gia ngày:
    22/5/10
    Bài viết:
    588
    Nơi ở:
    Hà Nội
    @Ice Dragon
    Ý là có hàm nào ngược với GetHandleId ko :D
    hồi bản 1.23 thì có giờ thì ko ....

    Khi trigger UnitA nào đó dùng skil "500 AoE quanh B tương ứng sẽ bị abcxyz..."
    Nếu 1 unit A chỉ summon ra 1 unit B thì có thể dùng
    - Gắn: SetUnitRallyUnit(unitA, unitB)
    - Lấy: GetUnitRallyUnit(unitA)=unitB
    Nếu 1 unit A summon ra nhiều unit B thì nên
    - học thêm 1 chút vjass và dùng các system dùng để đánh index cho unit
    - tạo array group grpB và set/get bằng cách grpB[GetUnitIndex(unitA)] add/remove unitB
    Ko thì cách của cậu cũng được hashtable cũng ko sao. Còn để test độ lag thì cho dùng spell liên tục và bật Frame per Second = /fps để kiểm tra độ lag của map

    À có set 1 mảng = 1 mảng khác đc ko nhỉ ?
    Ko

    Mình vừa test 1 cái về remove unit, cho mình hỏi có cách nào biết 1 unit đã bị remove khỏi game hay chưa ko? Vì khi unit bị remove thì mấy giá trị này kia của biến Unit hình như vẫn giữ như cũ nên mình ko biết kiểm tra sao nữa :D
    Dùng lệnh RemoveUnit là đảm bảo unit đã bị xóa sổ. Còn kiểm tra bằng cách DisplayText: GetUnitName(removeUnit) trước và sau khi remove.
    Nếu unit đó tồn tại trong map thì sẽ ra unit name = tên cụ thể nếu ko tồn tại trong map thì sẽ ra (null)

    Còn SetUnitUserData với GetUnitUserData là sao nhỉ ? 2 hàm này sử dụng thế nào và công dụng ra sao vậy?
    Tác dụng là gắn vào 1 unit 1 giá trị integer và Get là lấy ra giá trị đã gắn. Nếu ko dùng hàm set thì mặc định khi get là 0.
    Đây chính là hàm mấu chốt cho các system để "đánh số báo danh" cho 1 unit
     
    Chỉnh sửa cuối: 26/6/12
Trạng thái chủ đề:
Không mở trả lời sau này.

Chia sẻ trang này