I have download the spell here, i want to edit it, my problem is when i spam the spell it will make game delay
this is the trigger
this is the trigger
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Dissipate Arrow [T]
-
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
ID2 Equal to 0
-
-
Then - Actions
-
Trigger - Turn on Dissipate Arrow Loop <gen>
-
-
Else - Actions
-
-
Set SBArray = (SBArray + 1)
-
Set ID2 = (ID2 + 1)
-
Set SBYesOrNo[SBArray] = True
-
Set SBCaster[SBArray] = (Triggering unit)
-
Set SBCasterPos[SBArray] = (Position of SBCaster[SBArray])
-
Set SBLevel[SBArray] = (Level of Dissipate Arrow [T] for SBCaster[SBArray])
-
Set SBPoint[SBArray] = (Target point of ability being cast)
-
Set SBAngle[SBArray] = (Angle from SBCasterPos[SBArray] to SBPoint[SBArray])
-
Set SBDistance[SBArray] = 0
-
Set SBTransparency[SBArray] = 0
-
Sound - Play PossessionMissileLaunch1 <gen> at 100.00% volume, located at SBCasterPos[SBArray] with Z offset 0.00
-
Set SBMaxDistance[SBArray] = 1500
-
Set SBBladeSpeed = 40.00
-
Set SBRadius = 150.00
-
Set SBDamage = (((Real(SBLevel[SBArray])) x 55.00) + 60.00)
-
Set SBTransparencyRate = 10
-
Unit - Create 1 Dissipate Arrow for (Owner of SBCaster[SBArray]) at SBCasterPos[SBArray] facing SBAngle[SBArray] degrees
-
Set SBBlade[SBArray] = (Last created unit)
-
Custom script: set udg_SBUnitGroupDamaged[udg_SBArray] = CreateGroup()
-
Animation - Change SBBlade[SBArray] flying height to 40.00 at 0.00
-
Custom script: call RemoveLocation(udg_SBCasterPos[udg_SBArray])
-
Custom script: call RemoveLocation(udg_SBPoint[udg_SBArray])
-
-
Events
-
Time - Every 0.04 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer SB) from 1 to SBArray, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
SBYesOrNo[SB] Equal to True
-
-
Then - Actions
-
Set SBBladePos[SB] = (Position of SBBlade[SB])
-
Set SBBladePos_second = (SBBladePos[SB] offset by SBBladeSpeed towards SBAngle[SB] degrees)
-
Set SBDistance[SB] = (SBDistance[SB] + (Integer(SBBladeSpeed)))
-
Set SBUnitGroup[SB] = (Units within SBRadius of SBBladePos[SB])
-
Unit - Move SBBlade[SB] instantly to SBBladePos_second
-
Custom script: call RemoveLocation(udg_SBBladePos[udg_SB])
-
Custom script: call RemoveLocation(udg_SBBladePos_second)
-
Unit Group - Pick every unit in SBUnitGroup[SB] and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Picked unit) is alive) Equal to True
-
((Picked unit) is in SBUnitGroupDamaged[SB]) Equal to False
-
((Picked unit) belongs to an enemy of (Owner of SBBlade[SB])) Equal to True
-
-
Then - Actions
-
Set Diss_P = (Position of (Picked unit))
-
Unit - Create 1 Dummy Support 1 for (Owner of SBCaster[SB]) at Diss_P facing SBAngle[SB] degrees
-
Unit - Add a 0.03 second Generic expiration timer to (Last created unit)
-
Unit - Add Inventory (Hero) to (Last created unit)
-
Hero - Create Dissipate Arrow Illusion and give it to (Last created unit)
-
Hero - Order (Last created unit) to use (Last created item) on (Picked unit)
-
Sound - Play PossessionMissileHit1 <gen> at 100.00% volume, located at Diss_P with Z offset 0.00
-
Unit - Cause SBBlade[SB] to damage (Picked unit), dealing SBDamage damage of attack type Spells and damage type Magic
-
Unit Group - Add (Picked unit) to SBUnitGroupDamaged[SB]
-
Custom script: call RemoveLocation(udg_Diss_P)
-
-
Else - Actions
-
-
-
-
Custom script: call DestroyGroup(udg_SBUnitGroup[udg_SB])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
SBDistance[SB] Greater than or equal to SBMaxDistance[SB]
-
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
SBTransparency[SB] Greater than or equal to 100
-
-
Then - Actions
-
Unit - Remove SBBlade[SB] from the game
-
Custom script: call DestroyGroup(udg_SBUnitGroupDamaged[udg_SB])
-
Set SBYesOrNo[SB] = False
-
Set ID2 = (ID2 - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
SBArray Equal to 0
-
-
Then - Actions
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
Else - Actions
-
Animation - Change SBBlade[SB]'s vertex coloring to (100.00%, 100.00%, 100.00%) with (Real(SBTransparency[SB]))% transparency
-
Set SBTransparency[SB] = (SBTransparency[SB] + SBTransparencyRate)
-
-
-
-
Else - Actions
-
-
-
Else - Actions
-
-
-
-