- Joined
- Mar 1, 2013
- Messages
- 555
Hey people
I made a missile system for my map but I've found that the missile doesn't die when it kills the target Please see if you can help me find the problem
Sorry I know it's a lot of triggers for a simple spell but once it works then I can make missile spells with minimum effort.
Thanks for your help.
I made a missile system for my map but I've found that the missile doesn't die when it kills the target Please see if you can help me find the problem
-
GravitonCast
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Graviton
-
Actions
- Trigger - Run Missile Indexer <gen> (ignoring conditions)
- Set MissileTarget[MissileIndex] = (Target unit of ability being cast)
- Set Temp_Point2 = (Position of MissileTarget[MissileIndex])
- Unit - Create 1 Graviton for (Owner of MissileCaster[MissileIndex]) at Temp_Point facing Temp_Point2
- Custom script: call RemoveLocation(udg_Temp_Point)
- Custom script: call RemoveLocation(udg_Temp_Point2)
- Set Missile[MissileIndex] = (Last created unit)
- Set MissileSpeed[MissileIndex] = 5.00
- Set MissileDamage[MissileIndex] = 200.00
- Set MissileValue[MissileIndex] = 0.00
- Set MissileKill[MissileIndex] = True
-
Events
-
Missile Indexer
- Events
- Conditions
-
Actions
- If (MissileIndex Equal to 0) then do (Trigger - Turn on Missile loop <gen>) else do (-------- 0 --------)
- Set MissileIndex = (MissileIndex + 1)
- Set MissileCaster[MissileIndex] = (Triggering unit)
- Set Temp_Point = (Position of MissileCaster[MissileIndex])
-
Missile loop
-
Events
- Time - Every 0.01 seconds of game time
- Conditions
-
Actions
-
For each (Integer Temp_Int) from 1 to MissileIndex, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Missile[Temp_Int] is paused) Equal to False
-
Then - Actions
- Set Temp_Point = (Position of Missile[Temp_Int])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- MissileTarget[Temp_Int] Equal to No unit
-
Then - Actions
- Set Temp_Enemies = (Units within 70.00 of Temp_Point matching (((Owner of (Matching unit)) is an ally of (Owner of Missile[Temp_Int])) Equal to False))
- If ((Temp_Enemies is empty) Equal to False) then do (Set MissileTarget[Temp_Int] = (Random unit from Temp_Enemies)) else do (-------- 0 --------)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Temp_Enemies is empty) Equal to False
-
Then - Actions
- Set MissileTarget[Temp_Int] = (Random unit from Temp_Enemies)
- Trigger - Run Missile Event <gen> (ignoring conditions)
-
Else - Actions
- Set Temp_Point2 = (Temp_Point offset by MissileSpeed[Temp_Int] towards (Facing of Missile[Temp_Int]) degrees)
- Unit - Move Missile[Temp_Int] instantly to Temp_Point2
- Custom script: call RemoveLocation(udg_Temp_Point2)
-
If - Conditions
- Custom script: call DestroyGroup(udg_Temp_Enemies)
-
Else - Actions
- Set Temp_Point2 = (Position of MissileTarget[Temp_Int])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Distance between Temp_Point and Temp_Point2) Greater than (10.00 + MissileSpeed[Temp_Int])
-
Then - Actions
- Set Temp_Real = (Angle from Temp_Point to Temp_Point2)
- Set Temp_Point3 = (Temp_Point offset by MissileSpeed[Temp_Int] towards Temp_Real degrees)
- Unit - Move Missile[Temp_Int] instantly to Temp_Point3, facing Temp_Real degrees
- Custom script: call RemoveLocation(udg_Temp_Point3)
-
Else - Actions
- Trigger - Run Missile Event <gen> (ignoring conditions)
-
If - Conditions
- Custom script: call RemoveLocation(udg_Temp_Point2)
-
If - Conditions
- Custom script: call RemoveLocation(udg_Temp_Point)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Missile[Temp_Int] is dead) Equal to True
-
Then - Actions
- Set MissileCaster[Temp_Int] = MissileCaster[MissileIndex]
- Set MissileCaster[MissileIndex] = No unit
- Set MissileTarget[Temp_Int] = MissileTarget[MissileIndex]
- Set MissileTarget[MissileIndex] = No unit
- Set Missile[Temp_Int] = Missile[MissileIndex]
- Set Missile[MissileIndex] = No unit
- Set MissileSpeed[Temp_Int] = MissileSpeed[MissileIndex]
- Set MissileSpeed[MissileIndex] = 0.00
- Set MissileDamage[Temp_Int] = MissileDamage[MissileIndex]
- Set MissileDamage[MissileIndex] = 0.00
- Set MissileValue[Temp_Int] = MissileValue[MissileIndex]
- Set MissileValue[MissileIndex] = 0.00
- Set MissileKill[Temp_Int] = MissileKill[MissileIndex]
- Set MissileKill[MissileIndex] = False
- Set MissileIndex = (MissileIndex - 1)
- Set Temp_Int = (Temp_Int - 1)
- If (MissileIndex Equal to 0) then do (Trigger - Turn off (This trigger)) else do (-------- 0 --------)
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
For each (Integer Temp_Int) from 1 to MissileIndex, do (Actions)
-
Events
-
Missile Event
- Events
- Conditions
-
Actions
- Set QMissileCaster = MissileCaster[Temp_Int]
- Set QMissileTarget = MissileTarget[Temp_Int]
- Set QMissileDamage = MissileDamage[Temp_Int]
- Set QMissile = Missile[Temp_Int]
- Set QMissileValue = MissileValue[Temp_Int]
- Set MissileImpact = 1.00
- Set MissileImpact = 0.00
- If (MissileKill[Temp_Int] Equal to True) then do (Unit - Kill Missile[Temp_Int]) else do (-------- 0 --------)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- MissileKill[Temp_Int] Equal to True
-
Then - Actions
- Game - Display to (All players) the text: true
-
Else - Actions
- Game - Display to (All players) the text: false
-
If - Conditions
-
GravitonEnd
-
Events
- Game - MissileImpact becomes Equal to 1.00
-
Conditions
- (Unit-type of QMissile) Equal to Graviton
-
Actions
- Set Temp_Point = (Position of QMissileTarget)
- Unit - Cause QMissileCaster to damage QMissileTarget, dealing QMissileDamage damage of attack type Hero and damage type Sonic
- Special Effect - Create a special effect at Temp_Point using war3mapImported\Arcane Nova.mdx
- Special Effect - Destroy (Last created special effect)
- Custom script: call RemoveLocation(udg_Temp_Point)
-
Events
Sorry I know it's a lot of triggers for a simple spell but once it works then I can make missile spells with minimum effort.
Thanks for your help.