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
-
If - Conditions
- 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])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - 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
-
If - Conditions
-
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)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer SB) from 1 to SBArray, do (Actions)