- Joined
- Jul 14, 2007
- Messages
- 715
Hello all, i dont normally have a problem with this spell. But it is quite old, so i thought i would go back to it on my computer and try and make it better.
So its Blink Strike (an old concept i know)
Basically Deals 150 base damge + 15 x (level of ability)
Level 1 - Attacks one unit
Level 2 - Attacks two units
Level 3 - Attacks three units
So i have made the trigger, and it runs smoothly, but the problem i get is it doesn't seem to be able to be casted again once it has been cast.
Here are the triggers...
So its Blink Strike (an old concept i know)
Basically Deals 150 base damge + 15 x (level of ability)
Level 1 - Attacks one unit
Level 2 - Attacks two units
Level 3 - Attacks three units
So i have made the trigger, and it runs smoothly, but the problem i get is it doesn't seem to be able to be casted again once it has been cast.
Here are the triggers...
-
Blink Strike
-
Events
- Unit - A unit Begins casting an ability
-
Conditions
- (Ability being cast) Equal to Blink Strike
-
Actions
- -------- --------
- -------- VARIABLE START --------
- Set Key = (Custom value of (Triggering unit))
- Set SpellIndex = (SpellIndex + 1)
- Set Caster[Key] = (Triggering unit)
- Set Target[Key] = (Target unit of ability being cast)
- Set SpellPower[Key] = (Level of Blink Strike for Caster[Key])
- Set Damage[Key] = ((15.00 x (Real(SpellPower[Key]))) + 150.00)
- Set Angle[Key] = (Random angle)
- Set Distance[Key] = 0.00
- Set SpellRan[Key] = True
- Set BS_LoopStrikes[Key] = 0
- Set BS_MaxLoopStrikes[Key] = SpellPower[Key]
- Unit Group - Add Caster[Key] to SpellGroup
- -------- --------
- -------- VARIABLE FINISH --------
- Trigger - Turn on Blink Strike loop <gen>
-
Events
-
Blink Strike loop
-
Events
- Time - Every 0.20 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in SpellGroup and do (Actions)
-
Loop - Actions
- Set TempKey = (Custom value of (Picked unit))
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SpellRan[TempKey] Equal to True
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- BS_LoopStrikes[TempKey] Less than BS_MaxLoopStrikes[TempKey]
-
Then - Actions
- Set BS_LoopStrikes[TempKey] = (BS_LoopStrikes[TempKey] + 1)
- Set TempPoint = (Position of Target[TempKey])
- Set TempPoint2 = (TempPoint offset by Distance[TempKey] towards Angle[TempKey] degrees)
- -------- Effects --------
- Set TempPoint3 = (Position of Caster[TempKey])
- Special Effect - Create a special effect at TempPoint3 using BS_Effects[1]
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect at TempPoint3 using BS_Effects[2]
- Special Effect - Destroy (Last created special effect)
- Custom script: call RemoveLocation(udg_TempPoint3)
- -------- Move Unit --------
- Unit - Move Caster[TempKey] instantly to TempPoint2, facing TempPoint
- Animation - Play Caster[TempKey]'s attack animation
- Unit - Cause Caster[TempKey] to damage Target[TempKey], dealing Damage[TempKey] damage of attack type Spells and damage type Normal
- -------- Effects --------
- Set TempPoint3 = (Position of Caster[TempKey])
- Special Effect - Create a special effect at TempPoint3 using BS_Effects[1]
- Special Effect - Destroy (Last created special effect)
- Special Effect - Create a special effect at TempPoint3 using BS_Effects[2]
- Special Effect - Destroy (Last created special effect)
- -------- Set Next Unit --------
- Set TempGroup = (Units within 500.00 of TempPoint3 matching ((((Matching unit) is A structure) Not equal to True) and ((((Matching unit) is Magic Immune) Not equal to True) and ((((Matching unit) belongs to an enemy of (Owner of Caster[Key])) Equal to True) and ((((Matching
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (TempGroup is empty) Equal to True
-
Then - Actions
- Custom script: call RemoveLocation(udg_TempPoint)
- Custom script: call RemoveLocation(udg_TempPoint2)
- Custom script: call RemoveLocation(udg_TempPoint3)
- Custom script: call DestroyGroup(udg_TempGroup)
- Set SpellRan[TempKey] = False
- Unit Group - Remove Caster[TempKey] from SpellGroup
- Set SpellIndex = (SpellIndex - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SpellIndex Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (SpellGroup is empty) Equal to True
-
Then - Actions
- Custom script: call DestroyGroup(udg_SpellGroup)
- Else - Actions
-
If - Conditions
- Else - Actions
-
If - Conditions
- Else - Actions
-
If - Conditions
- Set Target[TempKey] = (Random unit from TempGroup)
- Custom script: call RemoveLocation(udg_TempPoint)
- Custom script: call RemoveLocation(udg_TempPoint2)
- Custom script: call RemoveLocation(udg_TempPoint3)
- Custom script: call DestroyGroup(udg_TempGroup)
-
Else - Actions
- Set SpellRan[TempKey] = False
- Unit Group - Remove Caster[TempKey] from SpellGroup
- Set SpellIndex = (SpellIndex - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SpellIndex Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (SpellGroup is empty) Equal to True
-
Then - Actions
- Custom script: call DestroyGroup(udg_SpellGroup)
- Else - Actions
-
If - Conditions
- Else - Actions
-
If - Conditions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in SpellGroup and do (Actions)
-
Events