- Joined
- Oct 25, 2009
- Messages
- 995
Does this triggers have leaks and bugs?The one who help me check will +Rep
also,sometimes the ball will keep moving when 2 unit casted...
Here the map...
Solar Ball
also,sometimes the ball will keep moving when 2 unit casted...
-
SB Cast
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Solar Ball
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SB_IndexSize Equal to 0
-
Then - Actions
- Trigger - Turn on SB Loop <gen>
- Trigger - Turn on SB Stop <gen>
- Else - Actions
-
If - Conditions
- Set SB_IndexSize = (SB_IndexSize + 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SB_IndexSize Greater than SB_IndexMaxSize
-
Then - Actions
- Set SB_Index[SB_IndexSize] = SB_IndexSize
- Set SB_IndexMaxSize = SB_IndexSize
- Else - Actions
-
If - Conditions
- Set SB_TempInt = SB_Index[SB_IndexSize]
- Set SB_Caster[SB_TempInt] = (Triggering unit)
- Set SB_CasterPoint = (Position of SB_Caster[SB_TempInt])
- Set SB_Angle[SB_TempInt] = 0.00
- Set SB_TargetPoint = (Target point of ability being cast)
- Set SB_Boolean[SB_TempInt] = True
- Unit - Create 1 Dummy for (Owner of SB_Caster[SB_TempInt]) at SB_CasterPoint facing (Facing of SB_Caster[SB_TempInt]) degrees
- Set SB_Dummy[SB_TempInt] = (Last created unit)
- Unit - Turn collision for SB_Dummy[SB_TempInt] Off
- Set SB_DummyPoint = (Position of SB_Dummy[SB_TempInt])
- Set SB_AreaPoint = (SB_DummyPoint offset by 200.00 towards SB_Angle[SB_TempInt] degrees)
- Lightning - Create a Finger of Death lightning effect from source SB_DummyPoint to target SB_AreaPoint
- Set SB_LightningEffect[SB_TempInt] = (Last created lightning effect)
- Set SB_MaxDistance[SB_TempInt] = (Distance between SB_DummyPoint and SB_TargetPoint)
- Unit Group - Add SB_Caster[SB_TempInt] to SB_CasterGroup
- Set SB_Points[1] = (Position of SB_Dummy[SB_TempInt])
- Custom script: call RemoveLocation(udg_SB_DummyPoint)
- Custom script: call RemoveLocation(udg_SB_AreaPoint)
- Custom script: call RemoveLocation(udg_SB_CasterPoint)
- Custom script: call RemoveLocation(udg_SB_Points[1])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
-
SB Loop
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
For each (Integer SB_IndexLoop) from 1 to SB_IndexSize, do (Actions)
-
Loop - Actions
- Set SB_TempInt = SB_Index[SB_IndexLoop]
- Set SB_Points[1] = (Position of SB_Dummy[SB_TempInt])
- Set SB_MaxDistance[SB_TempInt] = (Distance between SB_Points[1] and SB_TargetPoint)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (SB_Caster[SB_TempInt] is alive) Equal to True
- (SB_Caster[SB_TempInt] is in SB_CasterGroup) Equal to True
- SB_MaxDistance[SB_TempInt] Greater than or equal to 100.00
-
Then - Actions
- Set SB_Angle[SB_TempInt] = (SB_Angle[SB_TempInt] + 2.00)
- Set SB_DummyPoint = (Position of SB_Dummy[SB_TempInt])
- Set SB_AreaPoint = (SB_DummyPoint offset by 200.00 towards SB_Angle[SB_TempInt] degrees)
- Set SB_Points[2] = (Position of SB_Dummy[SB_TempInt])
- Set SB_OffPoint = (SB_Points[2] offset by 10.00 towards (Facing of SB_Dummy[SB_TempInt]) degrees)
- Unit - Move SB_Dummy[SB_TempInt] instantly to SB_OffPoint
- Lightning - Move SB_LightningEffect[SB_TempInt] to source SB_DummyPoint and target SB_AreaPoint
- Custom script: set bj_wantDestroyGroup=true
-
Unit Group - Pick every unit in (Units within 200.00 of SB_AreaPoint matching ((((Matching unit) is Magic Immune) Not equal to True) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Owner of SB_Caster[SB_TempInt])) Equal to True)))) and do (Actions)
-
Loop - Actions
- Unit - Cause SB_Dummy[SB_TempInt] to damage (Picked unit), dealing 10.00 damage of attack type Spells and damage type Normal
- Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Weapons\DemolisherFireMissile\DemolisherFireMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
Loop - Actions
- Custom script: call RemoveLocation(udg_SB_Points[2])
- Custom script: call RemoveLocation(udg_SB_OffPoint)
- Custom script: call RemoveLocation(udg_SB_DummyPoint)
- Custom script: call RemoveLocation(udg_SB_AreaPoint)
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SB_Boolean[SB_TempInt] Equal to True
-
Then - Actions
- Lightning - Destroy SB_LightningEffect[SB_TempInt]
- Set SB_Points[3] = (Position of SB_Dummy[SB_TempInt])
- Unit - Explode SB_Dummy[SB_TempInt]
- Unit - Create 1 Phoenix for (Owner of SB_Caster[SB_TempInt]) at SB_Points[3] facing Default building facing degrees
- Unit - Add Solar Stun to (Last created unit)
- Unit - Set level of Solar Stun for (Last created unit) to (Level of Solar Ball for SB_Caster[SB_TempInt])
- Unit - Order (Last created unit) to Orc Tauren Chieftain - War Stomp
- Unit - Order SB_Caster[SB_TempInt] to Stop
- Custom script: call RemoveLocation(udg_SB_Points[3])
- Set SB_Boolean[SB_TempInt] = False
- Set SB_Index[SB_IndexLoop] = SB_Index[SB_IndexSize]
- Set SB_Index[SB_IndexSize] = SB_TempInt
- Set SB_IndexSize = (SB_IndexSize - 1)
- Set SB_IndexLoop = (SB_IndexLoop - 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- SB_IndexSize Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Trigger - Turn off SB Stop <gen>
- Else - Actions
-
If - Conditions
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Custom script: call RemoveLocation(udg_SB_Points[1])
-
Loop - Actions
-
For each (Integer SB_IndexLoop) from 1 to SB_IndexSize, do (Actions)
-
Events
-
SB Stop
-
Events
- Unit - A unit Stops casting an ability
-
Conditions
- (Ability being cast) Equal to Solar Ball
-
Actions
- Unit Group - Remove SB_Caster[SB_TempInt] from SB_CasterGroup
-
Events
Solar Ball