- Joined
- Jul 9, 2008
- Messages
- 253
Hello everybody, I'm in need for some help for a spell I tried to make but didn't work out.
So it should spawn 3 fireballs, launch them in 3 different directions (based on the facing of the hero) and should explode on unit impact.
So far it only spawned the units who then disappeared after a second.
Trigger 1:
~Quetzalcotl
So it should spawn 3 fireballs, launch them in 3 different directions (based on the facing of the hero) and should explode on unit impact.
So far it only spawned the units who then disappeared after a second.
Trigger 1:
-
Events
-

Unit - A unit Starts the effect of an ability
-
-
Conditions
-

(Ability being cast) Equal to Blazing Strike
-
-
Actions
-

Set BSUnit = (Casting unit)
-

Set BSOwner = (Owner of BSUnit)
-

Set BSType = BS Dummy
-

Set BSUnitAngle = (Facing of BSUnit)
-

Set BSUnitPoint = (Position of BSUnit)
-

-------- ---------------------- --------
-

Set BSDistance = 400.00
-

Set BSAgility = (Agility of BSUnit (Include bonuses))
-

Set BSDamage = (30.00 + ((Real(BSAgility)) x 2.00))
-

-------- ---------------------- --------
-

-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --------
-

Set BSProjectileAngle = (BSUnitAngle + 0.00)
-

Unit - Create 1 BSType for BSOwner at BSUnitPoint facing BSProjectileAngle degrees
-

Set BSProjectile = (Last created unit)
-

Unit - Add a 1.00 second Generic expiration timer to BSProjectile
-

-------- ---------------------- --------
-

Hashtable - Save Handle OfBSProjectile as 0 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSDistance as 1 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSDamage as 2 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSProjectileAngle as 3 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save Handle OfBSOwner as 4 of (Key (Last created unit)) in BSHashTable
-

Unit Group - Add BSProjectile to BSProjectiles
-

-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --------
-

Set BSProjectileAngle = (BSUnitAngle - 30.00)
-

Unit - Create 1 BSType for BSOwner at BSUnitPoint facing BSProjectileAngle degrees
-

Set BSProjectile = (Last created unit)
-

Unit - Add a 1.00 second Generic expiration timer to BSProjectile
-

-------- ---------------------- --------
-

Hashtable - Save Handle OfBSProjectile as 0 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSDistance as 1 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSDamage as 2 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSProjectileAngle as 3 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save Handle OfBSOwner as 4 of (Key (Last created unit)) in BSHashTable
-

Unit Group - Add BSProjectile to BSProjectiles
-

-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --------
-

Set BSProjectileAngle = (BSUnitAngle + 30.00)
-

Unit - Create 1 BSType for BSOwner at BSUnitPoint facing BSProjectileAngle degrees
-

Set BSProjectile = (Last created unit)
-

Unit - Add a 1.00 second Generic expiration timer to BSProjectile
-

-------- ---------------------- --------
-

Hashtable - Save Handle OfBSProjectile as 0 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSDistance as 1 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSDamage as 2 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save BSProjectileAngle as 3 of (Key (Last created unit)) in BSHashTable
-

Hashtable - Save Handle OfBSOwner as 4 of (Key (Last created unit)) in BSHashTable
-

Unit Group - Add BSProjectile to BSProjectiles
-

-------- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --------
-

Custom script: call RemoveLocation(udg_BSUnitPoint)
-

-------- ---------------------- --------
-

If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-


If - Conditions
-



(Blazing Strike New <gen> is on) Equal to False
-
-


Then - Actions
-



Trigger - Turn on Blazing Strike New <gen>
-
-


Else - Actions
-
-
-
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 BSProjectiles) Greater than 0
-
-


Then - Actions
-



Unit Group - Pick every unit in BSProjectiles and do (Actions)
-




Loop - Actions
-





Set BSProjectile = (Load 0 of (Key (Picked unit)) in BSHashTable)
-





Set BSDistance = (Load 1 of (Key (Picked unit)) from BSHashTable)
-





Set BSDamage = (Load 2 of (Key (Picked unit)) from BSHashTable)
-





Set BSProjectileAngle = (Load 3 of (Key (Picked unit)) from BSHashTable)
-





Set BSOwner = (Load 4 of (Key (Picked unit)) in BSHashTable)
-





Set BSProjectileLocation = (Position of BSProjectile)
-





If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-






If - Conditions
-







(BSProjectile is dead) Equal to True
-
-






Then - Actions
-







Set BSProjectileLocation = (Position of BSProjectile)
-







Special Effect - Create a special effect at BSProjectileLocation using Abilities\Weapons\FireBallMissile\FireBallMissile.mdl
-







Special Effect - Destroy (Last created special effect)
-







Unit Group - Remove (Picked unit) from BSProjectiles
-







Hashtable - Clear all child hashtables of child (Key (Picked unit)) in BSHashTable
-







Custom script: call RemoveLocation( udg_BSProjectileLocation )
-
-






Else - Actions
-







Set BSProjectileLocation = (Position of BSProjectile)
-







Set BSProjectileEnd = (BSProjectileLocation offset by (BSDistance x 0.03) towards BSProjectileAngle degrees)
-







Set BSGroup = (Units within 50.00 of BSProjectileLocation matching ((((Matching unit) is dead) Equal to False) and (((Matching unit) belongs to an ally of BSOwner) Equal to True)))
-







Unit Group - Pick every unit in BSGroup and do (Actions)
-








Loop - Actions
-









Set BSPickedUnits = (Picked unit)
-









If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-










If - Conditions
-











BSPickedUnits Not equal to No unit
-
-










Then - Actions
-











Unit - Cause BSProjectile to damage BSPickedUnits, dealing BSDamage damage of attack type Spells and damage type Normal
-











Unit - Kill BSProjectile
-
-










Else - Actions
-











Unit - Move BSProjectile instantly to BSProjectileEnd
-
-
-
-
-







Custom script: call RemoveLocation( udg_BSProjectileLocation )
-







Custom script: call RemoveLocation( udg_BSProjectileEnd )
-







Custom script: call DestroyGroup(udg_BSGroup)
-
-
-





Custom script: call RemoveLocation( udg_BSProjectileLocation )
-
-
-
-


Else - Actions
-



Trigger - Turn off (This trigger)
-
-
-
~Quetzalcotl



