[ spells ]

langthangbairac

T.E.T.Я.I.S
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 :
04f775f7b7c15681e34d332a7f74fb44_47348164.s.jpg

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á :))
 

Attachments

Chỉnh sửa cuối:
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 =.=!
 
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
 
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/
 
^
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
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
 
Ờ, 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 ----------

^

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

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à
 
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.
 
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à :)
 
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ả
 
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.

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:
[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? :-@
 
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ỉ ?
 
YAN[asian];21747046 nói:
[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? :-@

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:
Update cái Howl of teror.......

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

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 :)).

Nghe xuôi tai thật, giờ mới nghĩ ra :D tks G_W nha
 
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ỉ ?

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?
 
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?

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à
 
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.
 
Back
Top