[Tutorial] Tạo Spell Với Dummy Unit

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

  1. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Bạn muốn khi sử dụng War Stomp thì quái ở xung quanh bạn sẽ bị storm bolt bắn vào hay là khi sử dụng skill blizzard thì sẽ có flame strike ở chỗ blizzard :1cool_look_down: Và vẫn còn rất nhiều những ý tưởng khác nữa nhưng phải làm thế nào đây Chính vì vậy mình viết TUT này để hướng dẫn cho 1 số bạn mới vào nghề :1cool_byebye: (trong đó có mình :5cool_still_dreamin) về spell tạo bằng dummy unit :7cool_feel_good:
    Trước hết,chúng ta cần:
    Warcraft III :))
    World Editor
    Vì mình chỉ hướng dẫn về spell kiểu đơn giản nên chỉ cần 2 cái trên thôi :5cool_big_smile:
    1:Dummy Unit
    Vậy dummy unit là gì ? Dummy Unit là 1 unit với 1 model chỉ có 1 cái bóng :4cool_oh: thường để giúp chúng ta tạo ra được rất nhiều thứ trong quá trình tạo map war cũng như là tạo spell
    Dummy unit tạo kiểu gì ? Trước tiên,bạn cần New custom unit (tạo 1 unit mới) vào Footman (hoặc còn gì cũng được trừ hero và peasant,peon,acolyte và wisp ra <- Cái này mình nói sau) và sau đó thiết lập các thông số như sau :
    Thứ nhất là ability - normal ,bạn cần set cho con dummy này với skill là invurneabel và locust.Sau đó đến phần Art - model : thường thì 1 số spell cũng có thể cho con dummy này với model là .mdl thì nó sẽ chỉ hiện lên 1 cái bóng còn đối với 1 số spell thì cũng có thể cho dummy là 1 số model effect khác :1cool_byebye:.Theo mình thì các bạn nên chọn .mdl hoặc làm theo cách này :
    Mã:
    bấm tổng hợp nút shift + enter vào art - model và xóa hết dòng chữ đó đi rồi viết dấu "[B]_[/B]" rùi bấm enter
    tiếp theo là đến thống số combat - atacks enabled thì bạn chọn none nên con dummy này sẽ không đánh được :) Vậy là đã hoàn thiện phần dummy unit rồi :1cool_byebye:
    2:Spell
    Các bạn tạo 2 spell mới: là spell thứ nhất và thứ hai
    1 spell là của hero cũng giống như spell war stomp mình nói ở phía trên hay bạn chọn như thế nào thì tùy ý bạn :) Gọi là spell chính
    và 1 spell là của unit bạn thích chọn flame strike hay là spell nào bạn muốn cũng được Nhưng mà bạn phải chỉnh mana cho spell này là 0 (Nếu không thì dummy sẽ không thể sử dụng được spell thứ 2 này) .Gọi là spell phụ
    Phần 2 của mình hơi sơ sài 1 tý :D
    3:Trigger
    Thắc Mắc :
    Vì sao phải dùng Variables ? Vì Nếu không dùng biến thì nó sẽ dần dần bị lag tham khảo tại đây http://forums.gamevn.com/showthread.php?475215-Tutorial-Memory-Leaks-and-Custom-Script
    Dưới đây là 1 số hình ảnh : War Stomp với flame strike
    [​IMG]
    War Stomp với hex
    [​IMG]
    và cuối cùng là Crushing Stomp :))
    [​IMG]
    Tạo ability Shockwave dành cho unit và chỉnh missle art là crushing wave ở phần effect
    Tạo ability War Stomp cho hero và chỉnh ntn cũng được :))
    Mã:
    Untitled Trigger 001
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to Crushing Stomp 
        Actions
            Set unitgroup = (Units within 350.00 of (Position of (Triggering unit)) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Triggering unit) is alive) Equal to True)))
            Special Effect - Create a special effect attached to the overhead of (Triggering unit) using Abilities\Spells\Undead\DarkRitual\DarkRitualCaster.mdl
            Special Effect - Destroy (Last created special effect)
            Unit Group - Pick every unit in unitgroup and do (Actions)
                Loop - Actions
                    Set temp_point = (Position of (Triggering unit))
                    Unit - Create 1 Dummy for (Owner of (Triggering unit)) at temp_point facing Default building facing degrees
                    Unit - Add Crushing Wave  to (Last created unit)
                    Unit - Order (Last created unit) to Orc Tauren Chieftain - Shockwave (Position of (Picked unit))
                    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
            Custom script:   call DestroyGroup (udg_unitgroup)
            Custom script:   call RemoveLocation (udg_temp_point
    
    Vậy là đã xong :D TUT của mình hết rồi ! Có gì mong mọi người đóng góp ý kiến :)
    Ngày mai mình sẽ viết thêm về passive còn bây giờ thì mình đi ngủ đây :4cool_beauty:
    Link Testing:http://www.mediafire.com/?zq6agsdmnoo4ht0
     
    Chỉnh sửa cuối: 18/7/12
  2. Daric™

    Daric™ C O N T R A

    Tham gia ngày:
    7/3/12
    Bài viết:
    1,853
    Nơi ở:
    Porizon
    bạn nên trang điểm lại bài viết này của mình với việc in đậm dòng như sau:
    bạn không nên sử dụng màu chói mắt quá!

    đồng thời "ít dùng biểu cảm trong lời thuyết trình ==!"

    và những thứ thế này thì nên:
    như vậy thì chữ sẽ ko quá làm rối mắt người nhìn nữa. Bài viết này là bước đầu cho newbie biết, vì vậy nên việc dễ đọc chừng nào, hay chừng đấy, nên sử dụng code và quote hợp lí và đúng vị trí, bố cục!

    và bạn cũng nên nhớ, bài thuyết trình cũng cần có vài ảnh minh họa, về trigger hoặc làm mẫu, và phải hạn chế biểu cảm lại rất nhiều, đọc bài chứ ko phải nhìn biểu cảm?! (nhưng ko có thì cũng hơi chan chán)

    hi vọng bạn đóng góp những bài hướng dẫn thật tuyệt cho box!
    thân! :7onion68:
     
  3. Faerie Tale

    Faerie Tale Youtube Master Race

    Tham gia ngày:
    7/11/10
    Bài viết:
    58
    Về nhiệt huyết thì ủng hộ, còn về cách trình bày bài thì...
    Người khác hoặc là mới thoáng nhìn không muốn xem hoặc là newbie vào nhìn rối loạn mắt -> không hiểu gì. Sửa lại nhé. Good job.
     
  4. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    1 điểm cho sự nhiệt tình, nhưng vì là newbie nên nhiều cái còn non quá, đến những cái cơ bản nhất còn chưa hiểu =)) :
    - Thứ nhất : "Dummy Unit là 1 unit với 1 model chỉ có 1 cái bóng"? Để bóng làm gì? Sao ko để bóng là None luôn đi? =))
    - Thứ 2 : "(tạo 1 unit mới) vào Footman (hoặc còn gì cũng được trừ hero và peasant,peon,acolyte và wisp ra". Lạ nhỉ? Tôi lại chỉ toàn dùng mấy con nông dân ấy làm dummy đấy =)), sợ nó hiện icon ở góc dưới bên trái màn hình đúng ko =))? Lần sau vào Start - Unit Classification, tắt tick Worker đi nhé :).
    - Thứ 3 : Cái trigger thứ 2 bị leak. Chưa set point đã set group, vào group set point nhưng lại remove ở ngoài group?
     
    Chỉnh sửa cuối: 18/7/12
  5. langthangbairac

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

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Không phải không set mà là set nhầm chỗ

    ---------- Post added at 13:30 ---------- Previous post was at 13:26 ----------

    Sao lại có mdl ở đây nhỉ :2cool_go:
     
  6. NguLongHaKhac

    NguLongHaKhac T.E.T.Я.I.S

    Tham gia ngày:
    5/2/11
    Bài viết:
    653
    Nơi ở:
    MC
    Mình đã fix :D
    1:None Vẫn là cái bóng =,=
    2:uk,nhưng mà cách tạo footman nó vẫn nhanh hơn mà =,=
    3:Mình không biết được nhưng mà mình test không thấy có leak :D với lại mình cũng đã nhìn 1 số map cũng làm kiểu này =,=

    cái đó chẳng lẽ newbie lại không biết ?????
     
  7. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    test không thấy có leak? =)) chạy có vài lần thì leak này là cái gì

    Mã:
    Untitled Trigger 001 Copy
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to War Stomp
        Actions
            Set Temp_Group = (Units within 300.00 of [COLOR="#FF0000"][B](Position of (Triggering unit)[/B][/COLOR]) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Casting unit) is alive) Equal to True)))
            Unit Group - Pick every unit in Temp_Group and do (Actions)
                Loop - Actions
                    [COLOR="#FF0000"]Set Temp_Point = (Position of (Triggering unit))[/COLOR]
                    Unit - Create 1 Footman for (Owner of (Triggering unit)) at Temp_Point facing Default building facing degrees
                    Unit - Add Hex to (Last created unit)
                    Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Picked unit)
                    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
            [COLOR="#FF0000"]Custom script:   call RemoveLocation (udg_Temp_Point)[/COLOR]
            Custom script:   call DestroyGroup (udg_Temp_Group)
    
    cái đỏ đầu tiên chắc chắn là leak
    đặt point trong loop mà lại xóa ở ngoài sẽ leak nếu group có nhiều hơn 1 unit
    - đặt (tạo point) trong loop: có bao nhiêu unit trong group thì lệnh này sẽ được chạy bấy nhiêu lần => bấy nhiêu point được tạo ra
    - xóa ở ngoài: chỉ xóa một lần, cụ thể là point được tạo cuối cùng.

    vậy leak chưa?
    sửa lại:

    Mã:
    Untitled Trigger 001 Copy
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to War Stomp
        Actions
            Set Temp_Point = (Position of (Triggering unit))
            Set Temp_Group = (Units within 300.00 of Temp_Point) matching ((((Matching unit) belongs to an enemy of (Owner of (Casting unit))) Equal to True) and (((Casting unit) is alive) Equal to True)))
            Unit Group - Pick every unit in Temp_Group and do (Actions)
                Loop - Actions
                    Unit - Create 1 Footman for (Owner of (Triggering unit)) at Temp_Point facing Default building facing degrees
                    Unit - Add Hex to (Last created unit)
                    Unit - Order (Last created unit) to Orc Shadow Hunter - Hex (Picked unit)
                    Unit - Add a 0.50 second Generic expiration timer to (Last created unit)
            Custom script:   call RemoveLocation (udg_Temp_Point)
            Custom script:   call DestroyGroup (udg_Temp_Group)
    
     
  8. kissofaries

    kissofaries Dragon Quest

    Tham gia ngày:
    11/3/07
    Bài viết:
    1,463
    Nơi ở:
    Kalimdor
    nhìn qua nhìn lại toàn leak ảo =)), cái nào cũng bị như anh tom nói.
    btw, tut khá tốt cho các newbie :D, chỉnh mấy cái leak đi là ok
     
  9. nobutino

    nobutino Youtube Master Race

    Tham gia ngày:
    21/6/12
    Bài viết:
    36
    bài viết hay, nhưng phần pasive lại không có vì bị ban nick, hy vọng bác sớm quay lại để no học hỏi phần pasive
    Thân
     
  10. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Tại sao các cậu trong box WE toàn có nhiều "penalty points" thế kia =)) ? nobutino cũng chuẩn bị ra đảo nốt kìa.
    Góp ý về Tut:
     
  11. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    Bóng để là None mà vẫn có bóng á?? =)) Thần kì ghê! Cố gắng tiếp thu đi cậu =)).
     
  12. congminhmc

    congminhmc T.E.T.Я.I.S Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    563
    Không sao,có nick khác mà :))
    Thanks bạn đã góp ý :D,tại mình làm cái map hơi sơ sài quá =,=
    Mình cũng không biết được =,=
    Tiện thể mình hướng dẫn luôn Passive ,có gì mình sửa bài ở đầu topic sau :D :
     
  13. _Wild__Wolf_

    _Wild__Wolf_ Youtube Master Race

    Tham gia ngày:
    4/8/11
    Bài viết:
    80
    Có buff làm gì cho nó rối.... nhiều khi còn cái vụ "stack" với "not stack buff" nữa..... event unit attacked, kiểm tra lv skill và random tỉ lệ... thỏa đk thì cast skill.... cách này tuy có chút hạn chế nhưng đơn giản và ko lo lỗi phát sinh do buff..... với newbie thì thế là đẹp rÙi... :)
     
  14. nobutino

    nobutino Youtube Master Race

    Tham gia ngày:
    21/6/12
    Bài viết:
    36
    yiu cầu bác chủ thớt cho một khóa về passive, mấy skill passive hay nhưng làm khó wa
    :4cool_oh::4cool_oh::4cool_oh:
     
  15. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Cách của chủ thread là như thế mà =)). Nhưng đúng là có vấn đề ở chỗ Buff. Làm Tut cho newbie học kiểu này thì chết cả lũ với nhau mất :-ss. Sao không kiểm tra Unit có skill Passive đấy không mà lại dùng buff ?
    Không hiểu chủ thread nghĩ gì =)). Chắc là định làm aura passive cho cả đồng đội nữa hả ?

    P/s: Lại một bác nữa ra đảo rồi. Trong một thread có 2 bác ra đảo :-ss.
     
  16. _Wild__Wolf_

    _Wild__Wolf_ Youtube Master Race

    Tham gia ngày:
    4/8/11
    Bài viết:
    80
    Nhân vấn đề "stack" và "buff does not stack". mấy anh pro rành cái này hướng dẫn với. em cũng là newbie nè....
    ps: đúng là dạo này chặt chém mạnh tay thật.
     
  17. congminhmc

    congminhmc T.E.T.Я.I.S Lão Làng GVN

    Tham gia ngày:
    24/7/09
    Bài viết:
    563
    Vậy thì chỉnh cái aura targert cho riêng mình thôi,bỏ cái friend là được mà :6cool_smile:
    bạn có thể nói rõ ra được không,có thể mình sẽ giúp được :7cool_feel_good:
     
  18. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Nhưng có nhất thiết phải
    không 8-| ?
     
  19. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Thay vì check điều kiện là has buff xxxx thì ta check level of ability for attacking unit hoặc attacked unit thì hơn.

    Và chủ topic nên viết thêm bài nâng cao thay cho event unit attacked để tránh bug phím s.
     
  20. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Nếu không dùng ability có Buff Placer thì khó lắm (đối với GUI-er) :)). Mà đây là tut dành cho newbie mà, event đấy là tạm ổn rồi. Về vụ dùng Buff Placer thì tìm spell Overload.
     
    Last edited by a moderator: 20/7/12

Chia sẻ trang này