[ spells ]

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

  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
    Mình lập cái pic này để share cho mấy anh em mới bắt đầu tạo map mấy cái spell " đơn giản" của dota để học hỏi va chế ra spells của riêng mình. Mình sẽ thường xuyên update các spells mình làm xong lên :) mong mọi người ho ý kiến nha
    p/s : Do kiến thức E.L cạn nên tên spells hay cái khác viết sai đừng ai kười :D

    [ Update spell : Spirits ( Wisp ) ]

    [spoil]
    none
    [/spoil]

    Stifling Dagger, Timber chain, Homing Missiles, Time stop, Sprout
    [spoil]
    1. Stifling Dagger :
    Đơn giản là slide dummy
    2. Timber Chain :
    _ Timber gồm 2 giai đoạn :
    GĐ1 : Phóng ra sợi dây
    GĐ2 : Slide caster nếu gặp một cái cây nào giữa đường ( khá giống meat hook )
    Trong khi slide có gây damage
    3. Homming Missile:
    _ Trước khi làm bạn cần cài đặt mấy cái này cho map trước :
    + Tạo một dummy, lấy cho nó một loại armor riêng ( nhớ chỉ nó có thôi, còn không thì tùy bạn :)) ) và add model gì thì tùy :D
    + Vào Gameplay Contants tìm đến các dong takes damage ( chăc biết nhỉ :D )
    Chỉnh toàn bộ loại attack ( hoặc chỉ các loại attack bạn dùng trong map của mình ) khi takes vào armor của dummy trên thành 0.01

    **) Khi Damage takes thành 0.01 thì dummy chỉ mất 1 HP/ lần đập
    Thế là được. Phàn còn lại là xem trigger mình làm trong demo map attach dưới kia
    4. Time Stop :
    Cái này mình làm vẫn chưa chuẩn lắm :) up lên để ae góp ý giùm
    5. Sprout :
    Đơn giản là trói unit lại bằng cây. Nhưng mình vẫn không hiểu làm sao để khi target là unit thì nó sẽ trói unit lại chứ không phải là một pos của unit đó

    p/s : Máy đang dùng không có We nên chỉ nói suông thôi
    [/spoil]

    Pudge - Meat Hook
    [spoil]
    Xin nói thẳng vấn đề luôn :
    Khi cast skill sẽ đánh dấu vị trị của cột nước mà chỉ có player ally với caster mới thấy được, sau x giây sẽ gây dâmge và slow
    Skills này cần khá nhiều Variables đấy

    Mã:
    Cast
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to Torrent 
        Actions
            Set TR_Unit = (Casting unit)
            Countdown Timer - Start TR_Timer as a One-shot timer that will expire in 2.00 seconds
            Set TR_Level = (Level of Torrent  for (Casting unit))
            Set TR_Damage = ((Real(TR_Level)) + 0.80)
            Set TR_Pos[1] = (Target point of ability being cast)
            -------- Create effect for all ally of casting player --------[B]
            Set TR_Player = (Owner of TR_Unit)
            Set TR_String = <Empty String>
            Custom script:   if IsPlayerAlly( GetLocalPlayer(), udg_TR_Player ) then
            Set TR_String = Doodads\Icecrown\Water\BubbleGeyserSteam\BubbleGeyserSteam.mdl
            Custom script:   endif
            Set TR_Pos[2] = (Target point of ability being cast)
            Special Effect - Create a special effect at TR_Pos[2] using TR_String
            Set TR_SFX = (Last created special effect)
            Custom script:   call RemoveLocation(udg_TR_Pos[2])[/B]
    Đây là trigger khi bắt đầu casst skill, khi đó sẽ Set các biến cơ bản ( caster, pos, ... ) và quan trọng nữa là bọt nước, phải làm sao để bọt nước chỉ hiện ở các player ally ( chính là phần đậm chữ ấy.
    Mã:
    Change Fly
        Events
            Time - TR_Timer expires
        Conditions
        Actions
            Unit - Create 1 Torrent (Effect) for (Owner of TR_Unit) at TR_Pos[1] facing Default building facing degrees
            Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            Animation - Change (Last created unit)'s animation speed to 30.00% of its original speed
            Special Effect - Create a special effect at TR_Pos[1] using Abilities\Spells\Human\ThunderClap\ThunderClapCaster.mdl
            Special Effect - Destroy (Last created special effect)
            Set TR_Victim_Group = (Units within 300.00 of TR_Pos[1] matching (((((Matching unit) belongs to an enemy of (Owner of TR_Unit)) Equal to True) and ((((Matching unit) is A structure) Equal to False) and (((Matching unit) is Magic Immune) Equal to False))) and (((Matching unit) Not 
            Unit Group - Pick every unit in TR_Victim_Group and do (Actions)
                Loop - Actions
                    Unit - Pause (Picked unit)
                    Unit - Add Storm Crow Form to (Picked unit)
                    Unit - Remove Storm Crow Form from (Picked unit)
                    Unit Group - Add (Picked unit) to TR_Group
            Custom script:   call DestroyGroup(udg_TR_Victim_Group)
            Set TR_Hight = 0.00
            Countdown Timer - Start TR_Time as a One-shot timer that will expire in 2.00 seconds
            Trigger - Turn on Loop <gen>
    
    Trigger này là trigger sau 2 giây cast skills, nó sẽ tạo một efffect cột nước đồng thời đẩy toàn bộ enemies lên trời và thả xuống
    Mã:
    Loop
        Events
            Time - Every 0.03 seconds of game time
        Conditions
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    TR_Hight Less than 800.00
                Then - Actions
                    Set TR_Hight = (TR_Hight + 22.50)
                    Unit Group - Pick every unit in TR_Group and do (Actions)
                        Loop - Actions
                            Animation - Change (Picked unit) flying height to TR_Hight at 0.00
                            Unit - Cause TR_Unit to damage (Picked unit), dealing TR_Damage damage of attack type Spells and damage type Magic
                Else - Actions
                    Unit Group - Pick every unit in TR_Group and do (Actions)
                        Loop - Actions
                            Animation - Change (Picked unit) flying height to ((Current flying height of (Picked unit)) - 25.00) at 0.00
                            Unit - Cause TR_Unit to damage (Picked unit), dealing TR_Damage damage of attack type Spells and damage type Magic
    
    Đơn giản, deal dame
    Mã:
    Remove
        Events
            Time - TR_Time expires
        Conditions
        Actions
            Trigger - Turn off Loop <gen>
            Unit Group - Pick every unit in TR_Group and do (Actions)
                Loop - Actions
                    Animation - Change (Picked unit) flying height to 0.00 at 0.00
                    Unit - Unpause (Picked unit)
                    Unit - Create 1 Dummy for (Owner of TR_Unit) at TR_Pos[1] facing Default building facing degrees
                    Unit - Add Torrent Slow  to (Last created unit)
                    Unit - Set level of Torrent Slow  for (Last created unit) to TR_Level
                    Unit - Order (Last created unit) to Human Sorceress - Slow (Picked unit)
                    Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
            Unit Group - Remove all units from TR_Group
            Special Effect - Destroy TR_SFX
            Set TR_Unit = No unit
            Custom script:   call RemoveLocation(udg_TR_Pos[1])
    
    Đây là trigger hoạt động sau khi các unit đã thực sự hạ xuống, khi đó nó sẽ casst slow và các unit bị nâng lên đấy và là trigger kết thúc của spells

    :D

    Chỉnh path effect bọt nước ở đây
    Mã:
            Set TR_String = Doodads\Icecrown\Water\BubbleGeyserSteam\BubbleGeyserSteam.mdl
            
    
    [/spoil]

    Pudge - Rot

    [spoil]

    Mã:
    Skills khá dơn giản, chỉ cần 1 trigger Take dame và 2 trigger add event
     Các bạn Base các skills như trong map của mình ( 2 Custom dummy, 2 custom skills, 1 custom buff
     Trigger :
    [code]
    Rot
        Events
        Conditions
            ((Damage source) has buff Rot ) Equal to True
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Triggering unit) Not equal to (Damage source)
                Then - Actions
                    Unit - Remove Rot  buff from (Triggering unit)
                    Set Rot_Pos = (Position of (Damage source))
                    Unit - Create 1 Dummy for (Owner of (Damage source)) at Rot_Pos facing Default building facing degrees
                    Unit - Add Rot Slow  to (Last created unit)
                    Unit - Order (Last created unit) to Human Sorceress - Slow (Triggering unit)
                    Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                    Custom script:   call RemoveLocation(udg_Rot_Pos)
                Else - Actions
    
    2 trigger add event ( chắc các bạn cuãng biết :D)
    Mã:
    Rot Event
        Events
            Time - Elapsed game time is 0.00 seconds
        Conditions
        Actions
            Set Rot_Group = (Units in (Playable map area))
            Unit Group - Pick every unit in Rot_Group and do (Actions)
                Loop - Actions
                    Trigger - Add to Rot <gen> the event (Unit - (Picked unit) Takes damage)
            Custom script:   call DestroyGroup(udg_Rot_Group)
    
    Mã:
    Rot Event2
        Events
            Unit - A unit enters (Playable map area)
        Conditions
        Actions
            Trigger - Add to Rot <gen> the event (Unit - (Triggering unit) Takes damage)
    
    [/spoil]

    Pudge - Meat hook

    [spoil]

    Meat hook là skills mà khi cast sẽ phóng ra vô số dummy theo đường thằng, mỗi dummy cách nhau 40 Distance dummy và kéo về một unit cách dummy phóng ra một khảng rất nhỏ.
    Skills khá đơn giản, chỉ cần 2 custom object và vài cái variables thui :)
    Mã:
    Cast
        Events
            Unit - A unit Begins casting an ability
        Conditions
            (Ability being cast) Equal to Meat Hook 
        Actions
            Set MH_Int = (Level of Meat Hook  for (Triggering unit))
            Set MH_Pos[3] = (Position of (Triggering unit))
            Set MH_Pos[4] = (Target point of ability being cast)
            Set MH_Angle = (Angle from MH_Pos[3] to MH_Pos[4])
            Custom script:   call RemoveLocation(udg_MH_Pos[3])
            Custom script:   call RemoveLocation(udg_MH_Pos[4])
            Set MH_Unit[1] = (Triggering unit)
            Trigger - Turn on Hook <gen>
            Unit - Pause MH_Unit[1]
    
    Lưu caster và đặt cái hướng ấy mà.
    Mã:
    Hook
        Events
            Time - Every 0.04 seconds of game time
        Conditions
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    MH_Dummy_Int Less than (5 + (6 x MH_Int))
                Then - Actions
                    Set MH_Dummy_Int = (MH_Dummy_Int + 1)
                    Set MH_Pos[1] = (Position of MH_Unit[1])
                    Unit - Create 1 Meat hook for (Owner of MH_Unit[1]) at (MH_Pos[1] offset by (Real((40 x MH_Dummy_Int))) towards MH_Angle degrees) facing MH_Angle degrees
                    Custom script:   call RemoveLocation(udg_MH_Pos[1])
                    Set MH_Dummy[MH_Dummy_Int] = (Last created unit)
                    Set MH_Pos[2] = (Position of MH_Dummy[MH_Dummy_Int])
                    Set Temp_Group = (Units within 115.00 of MH_Pos[2] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to MH_Unit[1]))))
                    Custom script:   call RemoveLocation(udg_MH_Pos[2])
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            MH_Dummy_Int Greater than 3
                        Then - Actions
                            Set MH_Unit[2] = (Random unit from Temp_Group)
                            Custom script:   call DestroyGroup(udg_Temp_Group)
                            Custom script:   set udg_Temp_Group = null
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    (MH_Unit[2] belongs to an ally of (Owner of MH_Unit[1])) Equal to False
                                Then - Actions
                                    Unit - Cause MH_Unit[1] to damage MH_Unit[2], dealing (100.00 x (Real(MH_Int))) damage of attack type Spells and damage type Normal
                                Else - Actions
                        Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            MH_Unit[2] Not equal to No unit
                        Then - Actions
                            Trigger - Turn on Remove <gen>
                            Trigger - Turn off (This trigger)
                        Else - Actions
                Else - Actions
                    Trigger - Turn on Remove <gen>
                    Trigger - Turn off (This trigger)
    
    Tạo dummy "bay" về phía trước trong đó sẽ thực hiện thêm nhiệm vụ : Nếu gặp enemies thì gọi trigger Remove để kéo hắn về :) và kiểm tra vị trí thằng bị kéo để kết thúc skills.

    Mã:
    
    
    Trigger này dùng để kéo thằng bị trúng MH về như nói trên.
    [/spoil]

    Toss
    [spoil]
    Toss là skills khá mạnh của tiny, nó ngoài việc deal damge chính ra còn deal thêm dame phụ nếu thằng "được" ném và thằng "bị" ném là một.
    Toss đơn giản là skills bao gồm 2 vấn đề chính :
    1. Kiểm tra Target : Là enemy hay là Friends
    2. Kiểm tra "vật" bị ném : Là No unit hay là Building không
    Nếu 2 vấn đề trên thỏa mãn thì sẽ nâng vật bị ném lên bằng Crow Form và gửi nó tới vật được ném.
    Chuẩn bị 1 Object skills Base từ channel lấy Option là : visible và Targeting Image ; Target type là Unit ; Area là 300
    Cách làm :
    B1 : Kiểm tra unit và nâng unit bị ném lên ( nếu hoạt dộng )
    Mã:
    Toss Cast
        Events
            Unit - A unit Begins casting an ability
        Conditions
            (Ability being cast) Equal to Toss 
        Actions
            Set Toss_Unit[1] = (Casting unit)
            Set Toss_Unit[2] = (Target unit of ability being cast)
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Toss_Unit[2] belongs to an ally of (Owner of Toss_Unit[1])) Equal to False
                Then - Actions
                    Set Toss_Pos[1] = (Position of Toss_Unit[2])
                    Set Toss_Group = (Units within 275.00 of (Position of Toss_Unit[1]) matching (((((Matching unit) is alive) Equal to True) and ((Level of Toss  for (Matching unit)) Not equal to 1)) and (((Matching unit) Not equal to Toss_Unit[1]) and (((Matching unit) is A structure) Equal to
                    Set Toss_Unit[3] = (Random unit from Toss_Group)
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Toss_Unit[3] Equal to No unit) or ((Owner of Toss_Unit[3]) Equal to (Owner of Toss_Unit[1]))
                        Then - Actions
                            Cinematic - Clear the screen of text messages for (Player group((Owner of Toss_Unit[1])))
                            Unit - Order Toss_Unit[1] to Stop
                            If (Toss_Unit[3] Equal to No unit) then do (Game - Display to (Player group((Owner of Toss_Unit[1]))) for 2.00 seconds the text:                    ...) else do (Game - Display to (Player group((Owner of Toss_Unit[1]))) for 2.00 seconds the text:                    ...)
                        Else - Actions
                            Unit - Add Crow Form to Toss_Unit[3]
                            Unit - Remove Crow Form from Toss_Unit[3]
                            Unit - Pause Toss_Unit[3]
                            Unit - Turn collision for Toss_Unit[3] Off
                            Set Toss_Counter = 0
                            Countdown Timer - Start Toss_Timer as a Repeating timer that will expire in 0.02 seconds
                            Special Effect - Create a special effect attached to the origin of Toss_Unit[3] using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
                    Custom script:   call DestroyGroup (udg_Toss_Group)
                Else - Actions
                    Unit - Order Toss_Unit[1] to Stop
    
    Bạn có thể chỉnh lại SFX cho phù hợp :)

    Tiếp theo là phần Move và Deal damage bằng Timer :
    Mã:
    Toss start
        Events
            Time - Toss_Timer expires
        Conditions
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    Toss_Counter Greater than 50
                Then - Actions
                    Countdown Timer - Pause Toss_Timer
                    Unit - Unpause Toss_Unit[3]
                    Unit - Turn collision for Toss_Unit[3] On
                    Animation - Change Toss_Unit[3] flying height to (Default flying height of Toss_Unit[3]) at 0.00
                    Special Effect - Create a special effect attached to the origin of Toss_Unit[3] using Abilities\Spells\Orc\WarStomp\WarStompCaster.mdl
                    Special Effect - Destroy (Last created special effect)
                    Unit - Cause Toss_Unit[1] to damage Toss_Unit[3], dealing (0.20 x (75.00 x (Real((Level of Toss  for Toss_Unit[1]))))) damage of attack type Spells and damage type Fire
                    Set Toss_Pos[6] = (Position of Toss_Unit[3])
                    Set Toss_Group = (Units within 300.00 of Toss_Pos[6] matching ((((Matching unit) belongs to an enemy of (Owner of Toss_Unit[1])) Equal to True) and (((Matching unit) is A structure) Equal to False)))
                    Unit Group - Pick every unit in Toss_Group and do (Unit - Cause Toss_Unit[1] to damage (Picked unit), dealing (75.00 x (Real((Level of Toss  for Toss_Unit[1])))) damage of attack type Spells and damage type Fire)
                    Custom script:   call DestroyGroup (udg_Toss_Group)
                    Custom script:   call RemoveLocation (udg_Toss_Pos[1])
                    Custom script:   call RemoveLocation (udg_Toss_Pos[3])
                    Custom script:   call RemoveLocation (udg_Toss_Pos[6])
                Else - Actions
                    Set Toss_Counter = (Toss_Counter + 1)
                    Animation - Change Toss_Unit[3] flying height to (775.00 - ((((Real(Toss_Counter)) - 25.00) x ((Real(Toss_Counter)) - 25.00)) - 25.00)) at 0.00
                    Set Toss_Pos[2] = (Position of Toss_Unit[2])
                    If ((Distance between Toss_Pos[1] and Toss_Pos[2]) Greater than 1000.00) then do (Set Toss_Pos[3] = Toss_Pos[3]) else do (Set Toss_Pos[3] = Toss_Pos[2])
                    Set Toss_Pos[4] = (Position of Toss_Unit[3])
                    Set Toss_Pos[5] = (Toss_Pos[4] offset by ((Distance between Toss_Pos[4] and Toss_Pos[3]) / (50.00 - (Real(Toss_Counter)))) towards (Angle from Toss_Pos[4] to Toss_Pos[3]) degrees)
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Distance between Toss_Pos[4] and Toss_Pos[3]) Greater than or equal to ((Distance between Toss_Pos[4] and Toss_Pos[3]) / (50.00 - (Real(Toss_Counter))))
                        Then - Actions
                            Unit - Move Toss_Unit[3] instantly to Toss_Pos[5]
                        Else - Actions
                            Unit - Move Toss_Unit[3] instantly to Toss_Pos[3]
                    Custom script:   call RemoveLocation (udg_Toss_Pos[2])
                    Custom script:   call RemoveLocation (udg_Toss_Pos[4])
                    Custom script:   call RemoveLocation (udg_Toss_Pos[5])
    
    Xong rồi :D nếu muốn chỉnh lại damage thì có thể chỉnh tại dòng này :
    Mã:
    Unit - Cause Toss_Unit[1] to damage Toss_Unit[3], dealing (0.20 x (75.00 x (Real((Level of Toss  for Toss_Unit[1]))))) damage of attack type Spells and damage type Fire
    

    Sai sót gì chỉ mình cái nha \m/
    [/spoil]

    Sniper
    [spoil]
    Mình nghĩ spells 3 của sniper ( Tăng range ) của dota nó làm khác nhưng theo cách mình làm không biết đúng không, mình đã test. Cũng hiệu quả :D

    Chuẩn bị :
    _ 5 unit Hero có range : 600 - 630 - 680 - 750 - 810
    * Chú ý là : Nếu chỉ chỉnh range thì khi test map mặc dù thay đổi unit thì range vẫn là 600 bởi vì sao xem ảnh mình sẽ nói :
    [​IMG]
    Cái dòng trong vùng khoanh tròn ấy, phải chỉnh cái này > hoặc = range unit
    _ 4 Spell base từ Bear From với các thông số ( xem trong demo )
    _ 1 Variable ( có thể không cần nhưng nếu có sẽ set level dễ dàng hơn )
    _ 1 Spell Passive
    Làm :
    Chỉ đơn giản với 2 Trigger thôi :D
    Mã:
    Melee
        Events
            Map initialization
        Conditions
        Actions
            Set Spells[1] = Lv1 
            Set Spells[2] = Lv2 
            Set Spells[3] = Lv3 
            Set Spells[4] = Lv4 
    

    Mã:
    Spells
        Events
            Unit - A unit Learns a skill
        Conditions
            (Learned Hero Skill) Equal to 3 
        Actions
            Set Level = (Level of 3  for (Triggering unit))
            Unit - Add Spells[Level] to (Triggering unit)
            Unit - Order (Triggering unit) to Night Elf Druid Of The Claw - Bear Form
    
    Vì spells Bear From này "biến" ngay tức thì ( Data - Morphing Flags : Permanent ) nên chả phaie sợ bị stop khi "bắt đầu học"


    P/s : Sai sót gì xin góp ý mình chỉnh lại :D
    [/spoil]
    Howl of terror
    [spoil]

    Thực ra skill Howl of teror là một skill tập hợp ( Tổng ranger / 200 ) unit dummy xếp lần lượt thành hàng và cast skill giảm Armor và Attack dâmge
    Theo cách làm của tớ thì chỉ cần 1 trigger, 3 object spells, 1 Dummy :) và 9 biến Variables

    Mã:
    Howl
        Events
            Unit - A unit Starts the effect of an ability
        Conditions
            (Ability being cast) Equal to Howl of terror 
        Actions
            Set Howl_Cast = (Casting unit)
            Set Howl_Distance = 0.00
            Set Howl_Dame = (30.00 + ((Real(Howl_Int)) x 17.00))
            Set Howl_Int = (Level of Howl of terror  for Howl_Cast)
            Set Howl_Pos1 = ((Position of Howl_Cast) offset by 100.00 towards (Facing of Howl_Cast) degrees)
            Set Howl_Pos2 = (Target point of ability being cast)
            Wait 0.15 seconds
            For each (Integer A) from 1 to 7, do (Actions)
                Loop - Actions
                    Set Howl_Distance = (200.00 + Howl_Distance)
                    Set Howl_Pos3 = (Howl_Pos1 offset by Howl_Distance towards (Angle from Howl_Pos1 to Howl_Pos2) degrees)
                    Unit - Create 1 Dummy for (Owner of Howl_Cast) at Howl_Pos3 facing Default building facing degrees
                    Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
                    Unit - Add How [ DAME ]  to (Last created unit)
                    Unit - Set level of How [ DAME ]  for (Last created unit) to Howl_Int
                    Unit - Add Howl [ ARMOR ]  to (Last created unit)
                    Unit - Set level of Howl [ ARMOR ]  for (Last created unit) to Howl_Int
                    Unit - Order (Last created unit) to Neutral Pit Lord - Howl Of Terror
                    Set Howl_Group = (Units within 350.00 of Howl_Pos3 matching ((((Matching unit) belongs to an enemy of (Owner of Howl_Cast)) Equal to True) and (((Matching unit) is in Howl_Total_Group) Equal to False)))
                    Unit Group - Pick every unit in Howl_Group and do (Actions)
                        Loop - Actions
                            Unit Group - Add (Picked unit) to Howl_Total_Group
                            Unit - Order (Last created unit) to Neutral Alchemist - Acid Bomb (Picked unit)
                            Unit - Cause Howl_Cast to damage (Picked unit), dealing Howl_Dame damage of attack type Spells and damage type Normal
                    Special Effect - Create a special effect at Howl_Pos3 using Abilities\Spells\Other\HowlOfTerror\HowlCaster.mdl
                    Special Effect - Destroy (Last created special effect)
                    Custom script:   call RemoveLocation(udg_Howl_Pos3)
                    Custom script:   call DestroyGroup(udg_Howl_Group)
                    Wait 0.01 seconds
            Custom script:   call RemoveLocation(udg_Howl_Pos1)
            Custom script:   call RemoveLocation(udg_Howl_Pos2)
            Unit Group - Pick every unit in Howl_Total_Group and do (Actions)
                Loop - Actions
                    Unit Group - Remove (Picked unit) from Howl_Total_Group
    
    Khá đơn giản phải không :D

    Unit Group - Pick every unit in Howl_Total_Group and do (Actions)
    Loop - Actions
    Unit Group - Remove (Picked unit) from Howl_Total_Group

    Không dùng Custom script :D

    p/s : Thông số Range sai lệch thì tự sửa nha :)
    [/spoil]


    Sửa lại leak của TOSS

    p/s : Định làm cái skills 2 của hổ nhưng nhác quá :))
     

    Các file đính kèm:

    Chỉnh sửa cuối: 21/8/12
    Sinni thích bài này.
  2. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Spam phím S thì Fury Swipes và Overpower vẫn có tác dụng hở? Thế tức là với skill 2 (Overpower) thì spam S 6 lần coi như attack đc 0 phát và mất hết cả 6 lần attack đó luôn còn với skill 3 (Fury Swipes) thì cứ mỗi lần bấm S là lại có damage nhỉ? S lần 1 20 dmg, S lần 2 40 dmg và cứ thế lên thì cũng khủng khiếp quá =)) Thử spell Incinerate trong mục Standard spell của Warcraft 3 chưa bạn? Fury Swipes đó :) Mình thấy cái overpower trong Dota k hề đơn giản đâu tại spam S nó k mất lần attack nào tức là event k phải là A Unit is attacked =.=!
     
  3. langthangbairac

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

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Bạn nói toàn từ mới... Tôi chả hiểu gì cả.
     
  4. Ngoc LeO

    Ngoc LeO Mario & Luigi

    Tham gia ngày:
    23/7/06
    Bài viết:
    839
    Nơi ở:
    Nothing...
    Mã:
    Unit - A unit Is attacked
    Ý bạn ấy là với event này không cần đánh mà chỉ cần nháy phím S (Stop) thì attacked cũng mất máu,vì thế bạn nên dùng event unit take damage hoặc system GDD của anh Tom ấy
     
  5. 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àm GUI thì chỉ đến thế thôi.
    Nếu dùng system damage thì phải chơi vjass. Ko khuyến khich dùng GUI detect damage .....
    Vì 1 tương lai làm map tươi sáng, vjass mà táng các bạn ơi \m/
     
  6. lonewolf020291

    lonewolf020291 T.E.T.Я.I.S

    Tham gia ngày:
    16/3/07
    Bài viết:
    579
    Nơi ở:
    Toy Box
    ^
    Làm gì mà đến kịp vjass :-j.
    Spell dota đơn giản chắc lấy ra skill pack của vengeful spirit, hay shadow shaman đấy :D
     
  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
    Ờ, mìng cũng ngĩ thế. Event take dame của gui không thể kiểm tra atacked.
    Còn cái skil 2 mình làm thì sai chỗ nào...?!

    ---------- Post added at 18:07 ---------- Previous post was at 18:01 ----------

    cậu này hay? Shadow thì toàn skil object,còn của vs thì chỉ có 2 skil lắp gép dummy đơn giản mà
     
  8. Tom_Kazansky

    Tom_Kazansky

    Tham gia ngày:
    28/12/06
    Bài viết:
    3,454
    Nơi ở:
    Hà Nội
    thì cứ hướng dẫn skill dễ? VS skill 2 và ulti
    Shadow Shaman thì toàn default, không nói.

    hướng dẫn mà sai thì hướng dẫn làm gì?

    Ursa, skill 3: dùng Incinerate có sẵn
    skill 2: phải kết hợp với việc nhận biết "stop" nói chung và dừng attack nói riêng (đánh chưa đến nơi thì bị stun chẳng hạn). Nhưng thôi chỉ cần nhận biết "stop" là được rồi.
    như đã post thì không chấp nhận được.
     
  9. _Wild__Wolf_

    _Wild__Wolf_ Youtube Master Race

    Tham gia ngày:
    4/8/11
    Bài viết:
    80
    Skill 3 cảa usa thi cần gì rắc rối vậy.. có sẵn trong war rÙi mà... skill 3 của firelord (melee map) chỉnh sửa chút là ok thui mà :)
     
  10. frostwyrm_9x

    frostwyrm_9x Mr & Ms Pac-Man

    Tham gia ngày:
    12/7/09
    Bài viết:
    190
    Nơi ở:
    Warcraft III
    thực chất skill overpower trong dota là deal dam đủ 6 lần thì mất đi cái buff overpower chứ ko phải là attack 6 lần như thế, sẽ bị bug khi bạn dùng skill xong r ấn S liên tiếp mất buff ngay, cái này phải dùng Jass hoặc trigger take damage của anh Tom thì ko bị làm sao cả
     
  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
    Từ từ để người ta sửa cái đã. Mai nha ! giờ máy đang chơi không có WE :D

    ---------- Post added at 22:38 ---------- Previous post was at 21:57 ----------

    MÀ khoan đã , sao lại có vụ deal dame ở đây nhỉ? dame này là dame attack cơ mà ?
    Ở đây chỉ số chỉnh gần như max attack rồi thì điểm cooldown của attack sẽ xấp xỉ 0
     
    Chỉnh sửa cuối: 18/7/12
  12. YAN[asian]

    YAN[asian] Mario & Luigi

    Tham gia ngày:
    27/3/07
    Bài viết:
    812
    [spoil]
    Mã:
    Maximum attack
        Events
            Unit - A unit Learns a skill
        Conditions
            (Learned Hero Skill) Equal to Attack 
        Actions
            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                If - Conditions
                    (Level of Attack  for (Triggering unit)) Equal to 1
                Then - Actions
                    Set Maximun_attack = 3
                Else - Actions
                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                        If - Conditions
                            (Level of Attack  for (Triggering unit)) Equal to 2
                        Then - Actions
                            Set Maximun_attack = 4
                        Else - Actions
                            If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                If - Conditions
                                    (Level of Attack  for (Triggering unit)) Equal to 3
                                Then - Actions
                                    Set Maximun_attack = 5
                                Else - Actions
                                    If (All Conditions are True) then do (Then Actions) else do (Else Actions)
                                        If - Conditions
                                            (Level of Attack  for (Triggering unit)) Equal to 4
                                        Then - Actions
                                            Set Maximun_attack = 6
                                        Else - Actions
    [/spoil]

    Set vầy làm gì cho nó dài dòng? Sao ko set Max attack = lvl của skill + 2 đi? :-@
     
  13. 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án quá ! Nghĩ mãi chưa ra ! Anh Tom nói cách làm đi
    Giờ làm skill khác đây Howl of terror nha
    Theo như mình nhớ cái skill này reduction %attack còn arrmor là theo điểm phải không nhỉ ?
     
  14. game_war48

    game_war48 Dragon Quest

    Tham gia ngày:
    7/9/08
    Bài viết:
    1,320
    Nơi ở:
    Ice City
    Bạn ấy để vậy chắc là cố tình để sau này chỉnh sửa cho dễ ấy mà :)).

    ---------

    @langthangbairac: Để vậy ai farm có thói quen đứng cạnh creep bấm S liên tục thì mất oan skill 2 :-ss. Deal damage là để chắc chắn là đã đánh xong rồi, và thằng kia đã nhận damage rồi chứ k phải là chỉ "giơ tay lên chuẩn bị đánh" giống như cái event này.
    Nếu làm GUI mà muốn chính xác thì có lẽ rất khó khăn đấy. Tớ thì k quan tâm lắm vì dùng Jass, trigger damage tất tần tật từ đầu đến cuối rồi :)).
     
    Chỉnh sửa cuối: 18/7/12
  15. langthangbairac

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

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Update cái Howl of teror.......

    ---------- Post added at 00:06 ---------- Previous post was at 00:05 ----------

    Nghe xuôi tai thật, giờ mới nghĩ ra :D tks G_W nha
     
  16. langthangbairac

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

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Xem cái skill tăng range của con snip xem đúng không mấy bác :D
     
  17. truongdzuy

    truongdzuy Mr & Ms Pac-Man

    Tham gia ngày:
    25/1/09
    Bài viết:
    274
    Nơi ở:
    Tp.HCM
    tăng range của sniper s k xài UPGRADE có sẵn trong WE ?
     
  18. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    Wave of Terror là tạo 1 dải Dummy cho cast skill Howl of Terror. Cái xoắn ở đây là vụ deal dmg. Chả có lẽ lại làm 1 dummy vừa cho slide vừa deal dmg và cứ mỗi khi chạy đc 200 range thì lại tạo 1 Dummy cho cast Howl?
     
  19. langthangbairac

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

    Tham gia ngày:
    19/5/12
    Bài viết:
    594
    Nơi ở:
    Thanh Chương
    Sao lại slide ở đây nhỉ :3cool_nosebleed:? Cái tôi làm là lần lượt tạo 7 con dummy mà
     
  20. Ryanpzo9

    Ryanpzo9 Donkey Kong

    Tham gia ngày:
    20/10/08
    Bài viết:
    326
    7 con Dummy chỉ dùng để cast Howl of Terror thôi mà. Còn gây dmg nó thẳng 1 đường như shockwave ấy thì có lẽ dùng slide là tốt nhất. Vừa slide vừa tạo 7 Dummy trên đường slide.
     

Chia sẻ trang này