- Joined
- Jun 1, 2008
- Messages
- 341
Hey these are just triggers for a basic MPI Spell for a map, I have no plans to submit the spell or anything, but i want it simple for my map and at the moment it is.
So if at all posible could someone check over my triggers have a quick look for leaks and perhaps a few suggestions for improved efficiency, as there will be a new "3" 'blast' unitS created aproximately every 0.25 seconds at some points in game and i need as little lag as possible.
So if at all posible could someone check over my triggers have a quick look for leaks and perhaps a few suggestions for improved efficiency, as there will be a new "3" 'blast' unitS created aproximately every 0.25 seconds at some points in game and i need as little lag as possible.
-
Blast Cast
-
Events
- Unit - A unit Begins casting an ability
-
Conditions
- (Ability being cast) Equal to Blast
-
Actions
- Set TempUnit1 = (Casting unit)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (Target point of ability being cast)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Level of Blast for TempUnit1) Equal to 1
-
Then - Actions
- Set TempInteger = 1
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Level of Blast for TempUnit1) Equal to 2
-
Then - Actions
- Set TempInteger = 0
-
Else - Actions
- Set TempInteger = -1
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- Set TempGroup2 = (Units of type Blast (Dark))
- Set TempGroup3 = (Units of type Blast (Light))
- Unit Group - Add all units of TempGroup3 to TempGroup2
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in TempGroup2) Equal to 0
-
Then - Actions
- Game - Display to (All players) the text: (String((Number of units in TempGroup2)))
- Trigger - Turn on Blast Loop <gen>
- Else - Actions
-
If - Conditions
-
For each (Integer A) from TempInteger to 1, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Unit-type of TempUnit1) Equal to Servent Of Darkness
-
Then - Actions
- Unit - Create 1 Blast (Dark) for (Owner of TempUnit1) at TempPoint1 facing ((Angle from TempPoint1 to TempPoint2) + ((Real((Integer A))) x 5.00)) degrees
-
Else - Actions
- Unit - Create 1 Blast (Light) for (Owner of TempUnit1) at TempPoint1 facing ((Angle from TempPoint1 to TempPoint2) + ((Real((Integer A))) x 5.00)) degrees
-
If - Conditions
- Set TempUnit2 = (Last created unit)
- Unit - Turn collision for TempUnit2 Off
- Unit - Set the custom value of TempUnit2 to (600 + (25 x (Level of TempUnit1)))
- Unit - Set level of Ability Level for TempUnit2 to (Level of TempUnit1)
- Unit - Add Storm Crow Form to TempUnit2
- Unit - Remove Storm Crow Form from TempUnit2
- Animation - Change TempUnit2 flying height to 70.00 at 0.00
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
- Unit - Order TempUnit1 to Stop
- Animation - Change TempUnit1's animation speed to 300.00% of its original speed
- Animation - Queue TempUnit1's attack animation
-
Events
-
Blast Loop
-
Events
- Time - Every 0.01 seconds of game time
- Conditions
-
Actions
- Set TempGroup1 = (Units of type Blast (Dark))
- Set TempGroup2 = (Units of type Blast (Light))
- Unit Group - Add all units of TempGroup2 to TempGroup1
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in TempGroup1) Equal to 0
-
Then - Actions
- Trigger - Turn off (This trigger)
- Skip remaining actions
- Else - Actions
-
If - Conditions
-
Unit Group - Pick every unit in TempGroup1 and do (Actions)
-
Loop - Actions
- Set TempUnit1 = (Picked unit)
- Set TempPoint1 = (Position of TempUnit1)
- Set TempPoint2 = (TempPoint1 offset by 15.00 towards (Facing of TempUnit1) degrees)
- Unit - Move TempUnit1 instantly to TempPoint2
- Unit - Set the custom value of TempUnit1 to ((Custom value of TempUnit1) - 15)
-
Destructible - Pick every destructible in (Region centered at TempPoint2 with size (175.00, 175.00)) and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- ((Picked destructible) is alive) Equal to True
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Unit-type of TempUnit1) Equal to Blast (Dark)
-
Then - Actions
- Special Effect - Create a special effect at TempPoint2 using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
Else - Actions
- Special Effect - Create a special effect at TempPoint2 using Abilities\Weapons\VengeanceMissile\VengeanceMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
If - Conditions
- Destructible - Set life of (Picked destructible) to ((Current life of (Picked destructible)) - 25.00)
- Unit - Remove TempUnit1 from the game
- Skip remaining actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Or - Any (Conditions) are true
-
Conditions
- (Custom value of TempUnit1) Less than or equal to 0
- (Terrain pathing at TempPoint2 of type Walkability is off) Equal to True
-
Conditions
-
Or - Any (Conditions) are true
-
Then - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Unit-type of TempUnit1) Equal to Blast (Dark)
-
Then - Actions
- Special Effect - Create a special effect at TempPoint2 using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
Else - Actions
- Special Effect - Create a special effect at TempPoint2 using Abilities\Weapons\VengeanceMissile\VengeanceMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
If - Conditions
- Unit - Remove TempUnit1 from the game
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Else - Actions
- Set TempGroup2 = (Units within 50.00 of TempPoint2 matching ((((Matching unit) is alive) Equal to True) and (((Owner of (Matching unit)) is an enemy of (Owner of TempUnit1)) Equal to True)))
-
Unit Group - Pick every unit in TempGroup2 and do (Actions)
-
Loop - Actions
- Set TempUnit2 = (Picked unit)
- Set TempPoint3 = (Position of TempUnit2)
- Unit - Cause TempUnit1 to damage TempUnit2, dealing (20.00 + (10.00 x (Real((Level of Ability Level for TempUnit1))))) damage of attack type Spells and damage type Normal
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Unit-type of TempUnit1) Equal to Blast (Dark)
-
Then - Actions
- Special Effect - Create a special effect at TempPoint2 using Abilities\Weapons\FarseerMissile\FarseerMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
Else - Actions
- Special Effect - Create a special effect at TempPoint2 using Abilities\Weapons\VengeanceMissile\VengeanceMissile.mdl
- Special Effect - Destroy (Last created special effect)
-
If - Conditions
- Unit - Remove TempUnit1 from the game
-
Loop - Actions
-
If - Conditions
-
Loop - Actions
-
Events