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 [ 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 + Vào Gameplay Contants tìm đến các dong takes damage ( chăc biết nhỉ ) 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 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 ) 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 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 [/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ả 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 : 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 Mã: Melee Events Map initialization Conditions Actions Set Spells[1] = Lv1 Set Spells[2] = Lv2 Set Spells[3] = Lv3 Set Spells[4] = Lv4 Và 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 [/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 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 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á
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
^ Làm gì mà đến kịp vjass . Spell dota đơn giản chắc lấy ra skill pack của vengeful spirit, hay shadow shaman đấy
Ờ, 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à
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ả
Từ từ để người ta sửa cái đã. Mai nha ! giờ máy đang chơi không có WE ---------- 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
[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ỉ ?
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 . 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 .
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 tks G_W nha
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?
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.