- Joined
- Sep 19, 2012
- Messages
- 204
Hey there... i am currently trying to make http://www.hiveworkshop.com/forums/spells-569/holy-dragging-spell-v1-05-a-147719/?prev=search%3Dholy%26d%3Dlist%26r%3D20%26c%3D114 work...everything works fine except one thing...it doesnt do any damage <.<
i tried everything that came to my mind but i still cant figure out where the problem is...any ideas?
Greetings CodeBlack
i tried everything that came to my mind but i still cant figure out where the problem is...any ideas?
-
Holy Dragging Spell Init
-
Events
- Map initialization
- Conditions
-
Actions
- -------- -------------------- --------
- Hashtable - Create a hashtable
- Set Holy_Dragging_Spell_Hash = (Last created hashtable)
- -------- -------------------- --------
- Set HDS_Ability = Holy Dragging Spell
- Set HDS_Dummy = Footman - (HDS_Dummy)
- Set HDS_Slow_Buff = Slow - (HDS)
- Set HDS_Pulls_Allies = False
- -------- -------------------- --------
- Set HDS_Duration = 6.00
- Set HDS_Damage = 200.00
- Set HDS_Drag_Speed = 6.50
- Set HDS_Catch_Range = 1000.00
- Set HDS_Damage_Range = 350.00
- -------- -------------------- --------
-
Events
-
Holy Dragging Spell
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to HDS_Ability
-
Actions
- Set Temp_Unit_1 = (Triggering unit)
- -------- -------------------- --------
- Set Temp_Loc_1 = (Target point of ability being cast)
- -------- -------------------- --------
- -------- Create a dummy unit at the center of the beacon --------
- -------- -------------------- --------
- Unit - Create 1 HDS_Dummy for Neutral Passive at Temp_Loc_1 facing Default building facing degrees
- Set Temp_Unit_3 = (Last created unit)
- -------- -------------------- --------
- -------- Scale the dummy, so the special effect gets scaled too --------
- -------- -------------------- --------
- Animation - Change Temp_Unit_3's size to (200.00%, 200.00%, 200.00%) of its original size
- -------- -------------------- --------
- -------- Set the time for the beacon --------
- -------- -------------------- --------
- Unit - Add a HDS_Duration second Generic expiration timer to Temp_Unit_3
- -------- -------------------- --------
- Unit Group - Add Temp_Unit_3 to Holy_Dragging_Spell_Lightning
- -------- -------------------- --------
- -------- Store things we need to know about the spell --------
- -------- -------------------- --------
- -------- Timer used for the life time of the beacon --------
- Hashtable - Save (HDS_Duration + 0.01) as (Key timer) of (Key (Last created unit)) in Holy_Dragging_Spell_Hash
- -------- Store the caster of the beacon --------
- Hashtable - Save Handle OfTemp_Unit_1 as (Key caster) of (Key (Last created unit)) in Holy_Dragging_Spell_Hash
- -------- Store the beacon unit for the triggering unit --------
- Hashtable - Save Handle Of(Last created unit) as (Key beacon) of (Key (Triggering unit)) in Holy_Dragging_Spell_Hash
- -------- -------------------- --------
- Set Temp_Group_1 = (Units within HDS_Catch_Range of Temp_Loc_1 matching (((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to Temp_Unit_1)) and (((Matching unit) Not equal to Temp_Unit_1) and (((Unit-type of (Matching unit)) Not equal to Castle) and (((
-
Unit Group - Pick every unit in Temp_Group_1 and do (Actions)
-
Loop - Actions
- Set Temp_Unit_2 = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Temp_Unit_2 belongs to an enemy of (Triggering player)) Equal to True
-
Then - Actions
- Set Temp_Loc_2 = (Position of Temp_Unit_2)
- Set Temp_Real_2 = (Angle from Temp_Loc_2 to Temp_Loc_1)
- -------- -------------------- --------
- -------- Create a dummy that casts slow on picked unit --------
- -------- -------------------- --------
- Unit - Create 1 HDS_Dummy for Neutral Passive at Temp_Loc_2 facing Temp_Real_2 degrees
- Unit - Order (Last created unit) to Undead Necromancer - Cripple Temp_Unit_2
- Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
- -------- -------------------- --------
- Unit Group - Add Temp_Unit_2 to Holy_Dragging_Spell_Group
- -------- -------------------- --------
- Hashtable - Save HDS_Drag_Speed as (Key escape_timer) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Temp_Real_2 as (Key angle) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save ((HDS_Damage x (1.00 x 0.03)) x (Real((Level of Rage for Temp_Unit_1)))) as (Key damage) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Handle OfTemp_Loc_1 as (Key center) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save (Distance between Temp_Loc_1 and Temp_Loc_2) as (Key distance) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Handle OfTemp_Unit_1 as (Key caster) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Handle OfTemp_Unit_3 as (Key beacon) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- -------- -------------------- --------
- Custom script: call RemoveLocation(udg_Temp_Loc_2)
- -------- -------------------- --------
- Else - Actions
-
If - Conditions
-
Loop - Actions
- -------- -------------------- --------
- -------- Turn on triggers that need to be turned on --------
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Holy Dragging Spell Group <gen> is on) Equal to False
-
Then - Actions
- Trigger - Turn on Holy Dragging Spell Group <gen>
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Holy Dragging Spell Lightning <gen> is on) Equal to False
-
Then - Actions
- Trigger - Turn on Holy Dragging Spell Lightning <gen>
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Holy Dragging Spell Cancel <gen> is on) Equal to False
-
Then - Actions
- Trigger - Turn on Holy Dragging Spell Cancel <gen>
- Else - Actions
-
If - Conditions
- -------- -------------------- --------
- -------- Remove leak --------
- -------- -------------------- --------
- Custom script: call DestroyGroup(udg_Temp_Group_1)
- -------- -------------------- --------
-
Events
-
Holy Dragging Spell Group
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in Holy_Dragging_Spell_Group and do (Actions)
-
Loop - Actions
- Set Temp_Unit_1 = (Picked unit)
- Set Temp_Unit_2 = (Load (Key beacon) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash)
- Set Temp_Real_1 = (Load (Key distance) of (Key (Picked unit)) from Holy_Dragging_Spell_Hash)
- -------- -------------------- --------
- -------- If beacon isn't there or unit has escaped the dragging distance, remove from group --------
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Temp_Unit_2 is alive) Equal to True
- Temp_Real_1 Less than HDS_Catch_Range
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Temp_Real_1 Greater than or equal to 33.00
-
Then - Actions
- Set Temp_Loc_1 = (Position of Temp_Unit_1)
- -------- -------------------- --------
- Set Temp_Real_3 = (Load (Key angle) of (Key (Picked unit)) from Holy_Dragging_Spell_Hash)
- -------- -------------------- --------
- Set Temp_Real_4 = (X of Temp_Loc_1)
- Set Temp_Real_5 = (Y of Temp_Loc_1)
- -------- -------------------- --------
- Set Temp_Real_4 = (Temp_Real_4 + (HDS_Drag_Speed x (Cos(Temp_Real_3))))
- Set Temp_Real_5 = (Temp_Real_5 + (HDS_Drag_Speed x (Sin(Temp_Real_3))))
- -------- -------------------- --------
- Set Temp_Loc_2 = (Point(Temp_Real_4, Temp_Real_5))
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Terrain pathing at Temp_Loc_2 of type Walkability is off) Equal to False
-
Then - Actions
- Custom script: call SetUnitX(udg_Temp_Unit_1, udg_Temp_Real_4)
- Custom script: call SetUnitY(udg_Temp_Unit_1, udg_Temp_Real_5)
- Else - Actions
-
If - Conditions
- -------- -------------------- --------
- Custom script: call RemoveLocation(udg_Temp_Loc_1)
- Custom script: call RemoveLocation(udg_Temp_Loc_2)
- -------- -------------------- --------
- Else - Actions
-
If - Conditions
- -------- -------------------- --------
- -------- Check if unit´is close enough to the beacon to be damaged or healed --------
- -------- -------------------- --------
- Set Temp_Loc_1 = (Position of Temp_Unit_1)
- Set Temp_Loc_2 = (Load (Key center) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash)
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Distance between Temp_Loc_1 and Temp_Loc_2) Less than HDS_Damage_Range
-
Then - Actions
- Set Temp_Unit_2 = (Load (Key caster) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash)
- -------- -------------------- --------
- -------- Damage enemies, heal allies --------
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Owner of Temp_Unit_1) is an enemy of (Owner of Temp_Unit_2)) Equal to True
-
Then - Actions
- Unit - Cause Temp_Unit_2 to damage Temp_Unit_1, dealing (Load (Key damage) of (Key (Picked unit)) from Holy_Dragging_Spell_Hash) damage of attack type Chaos and damage type Normal
-
Else - Actions
- Unit - Set life of Temp_Unit_1 to ((Life of Temp_Unit_1) + ((Max life of Temp_Unit_1) x (0.01 / 8.00)))
-
If - Conditions
- Else - Actions
-
If - Conditions
- -------- -------------------- --------
- Hashtable - Save (Angle from Temp_Loc_1 to Temp_Loc_2) as (Key angle) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save (Distance between Temp_Loc_2 and Temp_Loc_1) as (Key distance) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- -------- -------------------- --------
- Custom script: call RemoveLocation(udg_Temp_Loc_1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Else - Actions
- Set Temp_Loc_2 = (Load (Key center) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash)
- Custom script: call RemoveLocation(udg_Temp_Loc_2)
- -------- -------------------- --------
- Unit - Remove HDS_Slow_Buff buff from (Picked unit)
- -------- -------------------- --------
- Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- -------- -------------------- --------
- Unit Group - Remove Temp_Unit_1 from Holy_Dragging_Spell_Group
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Holy_Dragging_Spell_Group is empty) Equal to True
-
Then - Actions
- Trigger - Turn off (This trigger)
- Else - Actions
-
If - Conditions
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in Holy_Dragging_Spell_Group and do (Actions)
-
Events
-
Holy Dragging Spell Lightning
-
Events
- Time - Every 0.25 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in Holy_Dragging_Spell_Lightning and do (Actions)
-
Loop - Actions
- Set Temp_Unit_1 = (Picked unit)
- Set Temp_Unit_2 = (Load (Key caster) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash)
- Set Temp_Real_1 = (Load (Key timer) of (Key (Picked unit)) from Holy_Dragging_Spell_Hash)
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Temp_Real_1 Greater than 0.01
- (Temp_Unit_1 is alive) Equal to True
-
Then - Actions
- Set Temp_Loc_1 = (Position of Temp_Unit_1)
- Set Temp_Group_1 = (Units within HDS_Catch_Range of Temp_Loc_1 matching (((((Matching unit) is alive) Equal to True) and ((Matching unit) Not equal to Temp_Unit_2)) and (((Matching unit) Not equal to Temp_Unit_1) and (((Unit-type of (Matching unit)) Not equal to Castle) and (((
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Temp_Group_1 is empty) Equal to False
-
Then - Actions
-
Unit Group - Pick every unit in Temp_Group_1 and do (Actions)
-
Loop - Actions
- Set Temp_Unit_3 = (Picked unit)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Temp_Unit_3 is in Holy_Dragging_Spell_Group) Equal to False
- (Temp_Unit_3 belongs to an enemy of (Owner of Temp_Unit_2)) Equal to True
-
Then - Actions
- Set Temp_Loc_2 = (Position of Temp_Unit_3)
- -------- -------------------- --------
- Unit - Create 1 HDS_Dummy for Neutral Passive at Temp_Loc_2 facing Temp_Real_2 degrees
- Unit - Order (Last created unit) to Undead Necromancer - Cripple Temp_Unit_3
- Unit - Add a 1.00 second Generic expiration timer to (Last created unit)
- -------- -------------------- --------
- Set Temp_Real_2 = (Angle from Temp_Loc_2 to Temp_Loc_1)
- -------- -------------------- --------
- Unit Group - Add Temp_Unit_2 to Holy_Dragging_Spell_Group
- -------- -------------------- --------
- Hashtable - Save Handle OfTemp_Loc_1 as (Key center) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Temp_Real_2 as (Key angle) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save HDS_Drag_Speed as (Key escape_timer) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save (Distance between Temp_Loc_1 and Temp_Loc_2) as (Key distance) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save ((HDS_Damage x (1.00 x 0.03)) x (Real((Level of Rage for Temp_Unit_2)))) as (Key damage) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Handle OfTemp_Unit_1 as (Key beacon) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- Hashtable - Save Handle OfTemp_Unit_2 as (Key caster) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- -------- -------------------- --------
- Unit Group - Add Temp_Unit_3 to Holy_Dragging_Spell_Group
- -------- -------------------- --------
- Custom script: call RemoveLocation(udg_Temp_Loc_2)
- -------- -------------------- --------
- Trigger - Turn on Holy Dragging Spell Group <gen>
-
Else - Actions
- Custom script: call RemoveLocation(udg_Temp_Loc_1)
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in Temp_Group_1 and do (Actions)
-
Else - Actions
- Custom script: call RemoveLocation(udg_Temp_Loc_1)
-
If - Conditions
- Custom script: call DestroyGroup(udg_Temp_Group_1)
- -------- -------------------- --------
- Special Effect - Create a special effect attached to the origin of Temp_Unit_1 using Abilities\Spells\Human\HolyBolt\HolyBoltSpecialArt.mdl
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect attached to the origin of Temp_Unit_1 using Abilities\Spells\Other\Monsoon\MonsoonBoltTarget.mdl
- Special Effect - Destroy (Last created special effect)
- -------- -------------------- --------
- Hashtable - Save (Temp_Real_1 - 0.25) as (Key timer) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash
-
Else - Actions
- Set Temp_Loc_1 = (Load (Key center) of (Key (Picked unit)) in Holy_Dragging_Spell_Hash)
- Custom script: call RemoveLocation(udg_Temp_Loc_1)
- -------- -------------------- --------
- Hashtable - Clear all child hashtables of child (Key (Picked unit)) in Holy_Dragging_Spell_Hash
- -------- -------------------- --------
- Unit Group - Remove Temp_Unit_1 from Holy_Dragging_Spell_Lightning
- -------- -------------------- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Holy_Dragging_Spell_Lightning is empty) Equal to True
-
Then - Actions
- Trigger - Turn off (This trigger)
- Trigger - Turn off Holy Dragging Spell Cancel <gen>
- Else - Actions
-
If - Conditions
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in Holy_Dragging_Spell_Lightning and do (Actions)
-
Events
-
Holy Dragging Spell Cancel
-
Events
- Unit - A unit Stops casting an ability
-
Conditions
- (Ability being cast) Equal to Holy Dragging Spell
-
Actions
- Unit - Kill (Load (Key beacon) of (Key (Triggering unit)) in Holy_Dragging_Spell_Hash)
- Hashtable - Clear all child hashtables of child (Key (Triggering unit)) in Holy_Dragging_Spell_Hash
-
Events
Greetings CodeBlack