- Joined
- Mar 8, 2009
- Messages
- 3
I'm fairly new at making spells, so please excuse the bad triggering :/
I am trying to make a simple boomerang spell that is MPI (doesn't have to be MUI).
What it's supposed to do is:
- Create a boomerang unit [with immolation] at the caster, which travels to the target point and returns to the caster after reaching it.
*"Giant Glaive [Group 1] is the main spell"
*"Giant Glaive [Projectile Dummy]" is the name of the boomerang unit.
*"Giant Glaive [Immolation Dummy] is the immolation spell given to the boomerang unit.
*"Giant Glaive [Recharge Dummy]" is what the main spell is replaced with while the boomerang unit is still traveling.
Can anyone tell me a better way to write this trigger? Thank you.
I hope you can understand that.
I am trying to make a simple boomerang spell that is MPI (doesn't have to be MUI).
What it's supposed to do is:
- Create a boomerang unit [with immolation] at the caster, which travels to the target point and returns to the caster after reaching it.
*"Giant Glaive [Group 1] is the main spell"
*"Giant Glaive [Projectile Dummy]" is the name of the boomerang unit.
*"Giant Glaive [Immolation Dummy] is the immolation spell given to the boomerang unit.
*"Giant Glaive [Recharge Dummy]" is what the main spell is replaced with while the boomerang unit is still traveling.
-
Giant Boomerang 1
-
Events
- Unit - A unit Begins casting an ability
-
Conditions
- (Ability being cast) Equal to Giant Glaive [Group 1]
-
Actions
- Set boomerangcastpt[(Player number of (Owner of (Triggering unit)))] = (Position of (Triggering unit))
- Set boomerangtargpt[(Player number of (Owner of (Triggering unit)))] = (Target point of ability being cast)
- Unit - Create 1 Giant Glaive [Projectile Dummy] for (Owner of (Triggering unit)) at (boomerangcastpt[(Player number of (Owner of (Triggering unit)))] offset by 100.00 towards (Angle from boomerangcastpt[(Player number of (Owner of (Triggering unit)))] to boomerangtargpt[(Player number of (Owner of (Triggering unit)))]) degrees) facing (Angle from boomerangcastpt[(Player number of (Owner of (Triggering unit)))] to boomerangtargpt[(Player number of (Owner of (Triggering unit)))]) degrees
- Unit - Set level of Giant Glaive [Immolation Dummy] for (Last created unit) to (Level of Giant Glaive [Group 1] for (Triggering unit))
- Special Effect - Create a special effect at (Position of (Last created unit)) using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
- Set boomerangblink[(Player number of (Owner of (Triggering unit)))] = (Last created special effect)
- Unit - Turn collision for (Last created unit) Off
- Set boomerangunit[(Player number of (Owner of (Triggering unit)))] = (Last created unit)
- Unit - Order (Last created unit) to Move To boomerangtargpt[(Player number of (Owner of (Triggering unit)))]
- Unit Group - Add (Last created unit) to boomerangtempgroup
- Unit - Remove Giant Glaive [Group 1] from (Triggering unit)
- Unit - Add Giant Glaive [Recharge Dummy] to (Triggering unit)
- Unit - Set level of Giant Glaive [Recharge Dummy] for (Triggering unit) to Class1Lvl[(Player number of (Owner of (Triggering unit)))]
- Trigger - Turn on Giant Boomerang 2 <gen>
- Wait 1.00 seconds
- Special Effect - Destroy boomerangblink[(Player number of (Owner of (Triggering unit)))]
-
Events
-
Giant Boomerang 2
-
Events
- Time - Every 0.02 seconds of game time
- Conditions
-
Actions
-
Unit Group - Pick every unit in boomerangtempgroup and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Distance between (Position of (Picked unit)) and boomerangtargpt[(Player number of (Owner of (Picked unit)))]) Less than or equal to 20.00
-
Then - Actions
- Unit - Move (Picked unit) instantly to (boomerangtargpt[(Player number of (Owner of (Picked unit)))] offset by 25.00 towards (Angle from boomerangtargpt[(Player number of (Owner of (Picked unit)))] to boomerangcastpt[(Player number of (Owner of (Picked unit)))]) degrees), facing Default building facing degrees
- Unit - Order (Picked unit) to Move To boomerangcastpt[(Player number of (Owner of (Picked unit)))]
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Unit Group - Pick every unit in boomerangtempgroup and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Distance between (Position of (Picked unit)) and boomerangcastpt[(Player number of (Owner of (Picked unit)))]) Less than or equal to 50.00
-
Then - Actions
- Special Effect - Create a special effect at (Position of (Picked unit)) using Abilities\Spells\NightElf\Blink\BlinkTarget.mdl
- Set boomerangblink[(Player number of (Owner of (Triggering unit)))] = (Last created special effect)
- Unit - Kill (Picked unit)
- Unit Group - Remove (Picked unit) from boomerangtempgroup
- Custom script: call RemoveLocation(udg_boomerangcastpt[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
- Custom script: call RemoveLocation(udg_boomerangtargpt[GetConvertedPlayerId(GetOwningPlayer(GetTriggerUnit()))])
- Unit - Remove Giant Glaive [Recharge Dummy] from TowerVar[(Player number of (Owner of (Picked unit)))]
- Unit - Add Giant Glaive [Group 1] to TowerVar[(Player number of (Owner of (Picked unit)))]
- Unit - Set level of Giant Glaive [Group 1] for TowerVar[(Player number of (Owner of (Picked unit)))] to Class1Lvl[(Player number of (Owner of (Picked unit)))]
- Trigger - Turn off (This trigger)
- Wait 1.00 seconds
- Special Effect - Destroy boomerangblink[(Player number of (Owner of (Triggering unit)))]
- Else - Actions
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - Actions
-
Unit Group - Pick every unit in boomerangtempgroup and do (Actions)
-
Events
Can anyone tell me a better way to write this trigger? Thank you.
I hope you can understand that.