- Joined
- Jun 24, 2009
- Messages
- 1,409
I decided to make a new index recycling system because everyone says that the current one I use isn't the best. So I made a new one, how about it? Is it okay? Or is it better than the previous? (You can check the old in my uploaded spells)
-
Init
-
Events
-
Map initialization
-
-
Conditions
-
Actions
-
Visibility - Disable fog of war
-
Visibility - Disable black mask
-
Set WMax = 20
-
Set WCount = 0
-
For each (Integer A) from 1 to WMax, do (Actions)
-
Loop - Actions
-
Set WRecycle[(Integer A)] = True
-
Custom script: set udg_WDummyGroup[GetForLoopIndexA()] = CreateGroup()
-
-
-
-
-
Windcutter
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Windcutter
-
-
Actions
-
Set WGet = False
-
For each (Integer A) from 1 to WMax, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WGet Equal to False
-
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WRecycle[(Integer A)] Equal to True
-
-
Then - Actions
-
Set WIndex = (Integer A)
-
Set WGet = True
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Integer A) Equal to WMax
-
-
Then - Actions
-
Set WMax = (WMax + 1)
-
Set WRecycle[((Integer A) + 1)] = True
-
-
Else - Actions
-
-
-
-
-
Else - Actions
-
-
-
-
Set WCaster[WIndex] = (Triggering unit)
-
Set WTargetPoint[WIndex] = (Target point of ability being cast)
-
Set WDamage[WIndex] = (Real((Level of Windcutter for WCaster[WIndex])))
-
Set WTimer[WIndex] = (2.00 + (Real((Level of Windcutter for WCaster[WIndex]))))
-
For each (Integer A) from 1 to 6, do (Actions)
-
Loop - Actions
-
Set TempPoint[1] = (WTargetPoint[WIndex] offset by 150.00 towards (60.00 x (Real((Integer A)))) degrees)
-
Unit - Create 1 Wind for (Owner of WCaster[WIndex]) at TempPoint[1] facing ((Angle from WTargetPoint[WIndex] to TempPoint[1]) + 90.00) degrees
-
Unit Group - Add (Last created unit) to WDummyGroup[WIndex]
-
Animation - Change (Last created unit)'s animation speed to (Random real number between 25.00 and 50.00)% of its original speed
-
Unit - Create 1 Windcutter for (Owner of WCaster[WIndex]) at TempPoint[1] facing ((Angle from WTargetPoint[WIndex] to TempPoint[1]) + 90.00) degrees
-
Unit Group - Add (Last created unit) to WDummyGroup[WIndex]
-
Custom script: call RemoveLocation (udg_TempPoint[1])
-
-
-
Set WHas[WIndex] = True
-
Set WRecycle[WIndex] = False
-
Set WCount = (WCount + 1)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Windcutter Loop <gen> is on) Equal to False
-
-
Then - Actions
-
Trigger - Turn on Windcutter Loop <gen>
-
Trigger - Turn on Crush Effect <gen>
-
-
Else - Actions
-
-
-
-
Windcutter Loop
-
Events
-
Time - Every 0.03 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer WInteger) from 1 to WMax, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WHas[WInteger] Equal to True
-
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WTimer[WInteger] Greater than 0.00
-
-
Then - Actions
-
Set WTimer[WInteger] = (WTimer[WInteger] - 0.03)
-
Set TempGroup = (Units within 400.00 of WTargetPoint[WInteger] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Ow
-
Unit Group - Pick every unit in TempGroup and do (Actions)
-
Loop - Actions
-
Unit - Cause WCaster[WInteger] to damage (Picked unit), dealing WDamage[WInteger] damage of attack type Spells and damage type Normal
-
-
-
Unit Group - Pick every unit in WDummyGroup[WInteger] and do (Actions)
-
Loop - Actions
-
Set TempPoint[2] = (Position of (Picked unit))
-
Set TempPoint[3] = (WTargetPoint[WInteger] offset by 150.00 towards ((Angle from WTargetPoint[WInteger] to TempPoint[2]) + 10.00) degrees)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(Unit-type of (Picked unit)) Equal to Wind
-
-
Then - Actions
-
Set TempPoint[4] = (WTargetPoint[WInteger] offset by (Random real number between 300.00 and 350.00) towards ((Angle from WTargetPoint[WInteger] to TempPoint[2]) + 10.00) degrees)
-
Unit - Move (Picked unit) instantly to TempPoint[4], facing ((Angle from WTargetPoint[WInteger] to TempPoint[3]) + 90.00) degrees
-
Custom script: call RemoveLocation (udg_TempPoint[4])
-
-
Else - Actions
-
Unit - Move (Picked unit) instantly to TempPoint[3], facing ((Angle from WTargetPoint[WInteger] to TempPoint[3]) + 90.00) degrees
-
-
-
Custom script: call RemoveLocation (udg_TempPoint[2])
-
Custom script: call RemoveLocation (udg_TempPoint[3])
-
-
-
Custom script: call DestroyGroup(udg_TempGroup)
-
-
Else - Actions
-
Unit Group - Pick every unit in WDummyGroup[WInteger] and do (Unit - Kill (Picked unit))
-
Set WHas[WInteger] = False
-
Set WCount = (WCount - 1)
-
Custom script: call RemoveLocation (udg_WTargetPoint[udg_WInteger])
-
Unit Group - Remove all units from WDummyGroup[WInteger]
-
-
-
-
Else - Actions
-
Set WRecycle[WInteger] = True
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WCount Equal to 0
-
-
Then - Actions
-
Trigger - Turn off (This trigger)
-
Trigger - Turn off Crush Effect <gen>
-
-
Else - Actions
-
-
-
-
-
-
-
-
Crush Effect
-
Events
-
Time - Every 0.50 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer WInteger) from 1 to WMax, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
WHas[WInteger] Equal to True
-
-
Then - Actions
-
Set TempGroup = (Units within 400.00 of WTargetPoint[WInteger] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is Magic Immune) Equal to False) and ((((Matching unit) is alive) Equal to True) and (((Matching unit) belongs to an enemy of (Ow
-
Unit Group - Pick every unit in TempGroup and do (Actions)
-
Loop - Actions
-
Special Effect - Create a special effect attached to the origin of (Picked unit) using Abilities\Spells\Other\CrushingWave\CrushingWaveDamage.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
-
Custom script: call DestroyGroup(udg_TempGroup)
-
-
Else - Actions
-
-
-
-
-