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






