- Joined
- Oct 4, 2011
- Messages
- 226
Hello, this ability is a projectile ability that travels 1600/1800/2000/2200 range or until an enemy is hit, deals aoe damage and creates another dummy unit and then loop 2 is turned on to deal aoe damage over time. Right now I am having trouble because my ability fires the projectile towards the center of the map instead of the location layed out..
-
Pyroblast
-
Events
- Unit - A unit Starts the effect of an ability
-
Conditions
- (Ability being cast) Equal to Pyroblast (White Wizard)
-
Actions
- Set TempUnit3 = (Casting unit)
- Set TempPlayer = (Owner of TempUnit3)
- Set TempInteger = (Level of Pyroblast (White Wizard) for TempUnit3)
- Set TempLocation = (Position of TempUnit3)
- Set TempUnit2 = (Target unit of ability being cast)
- Set TempLocation2 = (Target point of ability being cast)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (TempUnit2 is alive) Equal to True
-
Then - Actions
- Custom script: call RemoveLocation(udg_TempLocation2)
- Set TempLocation2 = (Position of TempUnit2)
- Else - Actions
-
If - Conditions
- Set TempReal = (Angle from TempLocation to TempLocation2)
- Set TempLocation3 = (TempLocation offset by (1400.00 + ((Real(TempInteger)) x 200.00)) towards TempReal degrees)
- Set TempLocation4 = (TempLocation offset by 10.00 towards TempReal degrees)
- Custom script: call RemoveLocation(udg_TempLocation)
- Unit - Create 1 Pyroblast (Dummy 1) for TempPlayer at TempLocation4 facing TempReal degrees
- Custom script: call RemoveLocation(udg_TempLocation4)
- Set TempUnit = (Last created unit)
- Unit Group - Add TempUnit to AA02_ProjectileGroup
- Custom script: set udg_AA02_IdInteger = GetHandleId(udg_TempUnit)
- Hashtable - Save (((Real(TempInteger)) x 200.00) + 1400.00) as 1 of AA02_IdInteger in AA99_Hash
- Hashtable - Save Handle OfTempLocation3 as 2 of AA02_IdInteger in AA99_Hash
- Hashtable - Save Handle OfTempUnit3 as 3 of AA02_IdInteger in AA99_Hash
- Hashtable - Save (((Real(TempInteger)) x 40.00) + 40.00) as 4 of AA02_IdInteger in AA99_Hash
- Hashtable - Save TempReal as 5 of AA02_IdInteger in AA99_Hash
- Custom script: call RemoveLocation(udg_TempLocation)
- Custom script: call RemoveLocation(udg_TempLocation2)
- Trigger - Turn on Pyroblast loop 1 <gen>
-
Events
-
Pyroblast loop 1
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in AA02_ProjectileGroup) Greater than 0
-
Then - Actions
-
Unit Group - Pick every unit in AA02_ProjectileGroup and do (Actions)
-
Loop - Actions
- Set TempUnit = (Picked unit)
- Set TempPlayer = (Owner of TempUnit)
- Custom script: set udg_AA02_IdInteger = GetHandleId(udg_TempUnit)
- Set TempLocation = (Position of TempUnit)
- Set TempLocation2 = (Load 2 of AA02_IdInteger in AA99_Hash)
- Set TempReal = (Distance between TempLocation and TempLocation2)
- Set TempReal2 = (Angle from TempLocation to TempLocation2)
- Set TempLocation3 = (TempLocation offset by 27.00 towards TempReal2 degrees)
- Set AA02_TargetsGroup = (Units within 200.00 of TempLocation matching ((((((Matching unit) is A structure) Equal to False) and (((Matching unit) is Magic Immune) Equal to False)) and (((Matching unit) belongs to an ally of TempPlayer) Equal to False)) and (((Owner of (Matching unit)
- Custom script: call RemoveLocation(udg_TempLocation)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in AA02_TargetsGroup) Greater than 0
-
Then - Actions
- Custom script: call RemoveLocation(udg_TempLocation3)
- Custom script: call RemoveLocation(udg_TempLocation2)
- Set TempLocation = (Position of TempUnit)
- Unit Group - Remove TempUnit from AA02_ProjectileGroup
- Unit - Kill TempUnit
-
Unit Group - Pick every unit in AA02_TargetsGroup and do (Actions)
-
Loop - Actions
- Unit - Cause (Load 3 of AA02_IdInteger in AA99_Hash) to damage (Picked unit), dealing (Load 4 of AA02_IdInteger from AA99_Hash) damage of attack type Magic and damage type Fire
- Unit Group - Remove (Picked unit) from AA02_TargetsGroup
-
Loop - Actions
- Unit - Create 1 Pyroblast (Dummy 2) for TempPlayer at TempLocation facing (Random angle) degrees
- Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
- Set TempUnit2 = (Last created unit)
- Custom script: set udg_AA02_IdInteger2 = GetHandleId(udg_TempUnit2)
- Unit Group - Add TempUnit2 to AA02_DummyGroup
- Set TempUnit3 = (Load 3 of AA02_IdInteger in AA99_Hash)
- Hashtable - Clear all child hashtables of child AA02_IdInteger in AA99_Hash
- Hashtable - Save 4.98 as 1 of AA02_IdInteger2 in AA99_Hash
- Hashtable - Save 0.96 as 2 of AA02_IdInteger2 in AA99_Hash
- Hashtable - Save Handle OfTempUnit3 as 3 of AA02_IdInteger2 in AA99_Hash
- Trigger - Turn on Pyroblast loop 2 <gen>
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- TempReal Greater than 30.00
-
Then - Actions
- Unit - Move TempUnit instantly to TempLocation3
- Custom script: call RemoveLocation(udg_TempLocation2)
- Custom script: call RemoveLocation(udg_TempLocation3)
-
Else - Actions
- Custom script: call RemoveLocation(udg_TempLocation3)
- Set TempLocation = (Position of TempUnit)
- Unit Group - Remove TempUnit from AA02_ProjectileGroup
- Unit - Kill TempUnit
- Unit - Create 1 Pyroblast (Dummy 2) for TempPlayer at TempLocation facing (Random angle) degrees
- Unit - Add a 5.00 second Generic expiration timer to (Last created unit)
- Set TempUnit2 = (Last created unit)
- Custom script: set udg_AA02_IdInteger2 = GetHandleId(udg_TempUnit2)
- Unit Group - Add TempUnit2 to AA02_DummyGroup
-
Unit Group - Pick every unit in AA02_TargetsGroup and do (Actions)
-
Loop - Actions
- Unit - Cause (Load 3 of AA02_IdInteger in AA99_Hash) to damage (Picked unit), dealing (Load 4 of AA02_IdInteger from AA99_Hash) damage of attack type Magic and damage type Fire
- Unit Group - Remove (Picked unit) from AA02_TargetsGroup
-
Loop - Actions
- Set TempUnit3 = (Load 3 of AA02_IdInteger in AA99_Hash)
- Hashtable - Clear all child hashtables of child AA02_IdInteger in AA99_Hash
- Hashtable - Save 4.98 as 1 of AA02_IdInteger2 in AA99_Hash
- Hashtable - Save 0.96 as 2 of AA02_IdInteger2 in AA99_Hash
- Hashtable - Save Handle OfTempUnit3 as 3 of AA02_IdInteger2 in AA99_Hash
- Trigger - Turn on Pyroblast loop 2 <gen>
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in AA02_ProjectileGroup and do (Actions)
-
Else - Actions
- Trigger - Turn off (This trigger)
- Game - Display to (All players) for 0.15 seconds the text: |cff22ccffAA02_UGro...
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
-
Pyroblast loop 2
-
Events
- Time - Every 0.03 seconds of game time
- Conditions
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- (Number of units in AA02_DummyGroup) Greater than 0
-
Then - Actions
-
Unit Group - Pick every unit in AA02_DummyGroup and do (Actions)
-
Loop - Actions
- Set TempUnit = (Picked unit)
- Set TempPlayer = (Owner of TempUnit)
- Custom script: set udg_AA02_IdInteger2 = GetHandleId(udg_TempUnit)
- Set TempLocation = (Position of TempUnit)
- Set TempReal = (Load 1 of AA02_IdInteger2 from AA99_Hash)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- TempReal Greater than 0.00
-
Then - Actions
- Hashtable - Save (TempReal - 0.03) as 1 of AA02_IdInteger2 in AA99_Hash
- Set TempReal2 = (Load 2 of AA02_IdInteger2 from AA99_Hash)
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
- TempReal2 Greater than 0.00
-
Then - Actions
- Hashtable - Save (TempReal2 - 0.03) as 2 of AA02_IdInteger2 in AA99_Hash
- Custom script: call RemoveLocation(udg_TempLocation)
-
Else - Actions
- Set AA02_BurnGroup = (Units within 300.00 of TempLocation matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) is alive) Equal to True) and ((((Matching unit) belongs to an ally of TempPlayer) Equal to False) and ((Owner of (Matching unit)) Not equal
- Custom script: call RemoveLocation(udg_TempLocation)
-
Unit Group - Pick every unit in AA02_BurnGroup and do (Actions)
-
Loop - Actions
- Unit - Cause (Load 3 of AA02_IdInteger2 in AA99_Hash) to damage (Picked unit), dealing 6.00 damage of attack type Magic and damage type Fire
- Unit Group - Remove (Picked unit) from AA02_BurnGroup
-
Loop - Actions
- Hashtable - Save 0.96 as 2 of AA02_IdInteger2 in AA99_Hash
-
If - Conditions
-
Else - Actions
- Unit Group - Remove TempUnit from AA02_DummyGroup
- Unit - Kill TempUnit
- Hashtable - Clear all child hashtables of child AA02_IdInteger2 in AA99_Hash
-
If - Conditions
-
Loop - Actions
-
Unit Group - Pick every unit in AA02_DummyGroup and do (Actions)
-
Else - Actions
- Trigger - Turn off (This trigger)
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events