- Joined
- Aug 14, 2007
- Messages
- 66
I am trying to make the spell Flame Dance by Player_15 (got it from this site) usable by more then one person in a game. I got it to work but there is one problem, the flames that circle the caster start circling the entire map in a huge perfect circle after I stop casting. The original idea paused the caster for 30 seconds but I made it so the caster could interrupt its spell channeling. It seems like the flames aren't dying out either they just kept circling. I made them have 0 vision so their will be no effect but im afraid these can bunch up and become noticable/cause a lot of lag, a sort of leak.
Any ideas on how to fix this?
Any ideas on how to fix this?
-
flame dance
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Flame Ring
-
-
Actions
-
Set flamedanceactive[(Custom value of (Casting unit))] = True
-
Set flamecaster[(Custom value of (Casting unit))] = (Casting unit)
-
Set flamecounter[(Custom value of (Casting unit))] = 0
-
Set flamedir[(Custom value of (Casting unit))] = 0.00
-
Set flamelevel[(Custom value of (Casting unit))] = (Level of Flame Ring for (Casting unit))
-
Set flamepos[(Custom value of (Casting unit))] = (Position of flamecaster[(Custom value of (Casting unit))])
-
Set flamedistance[(Custom value of (Casting unit))] = 200.00
-
For each (Integer TempInt_Instanced[(Custom value of (Casting unit))]) from 1 to (flamelevel[(Custom value of (Casting unit))] + 1), do (Actions)
-
Loop - Actions
-
For each (Integer B) from 1 to 8, do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
(flamecounter[(Custom value of (Casting unit))] mod 2) Equal to 0
-
-
Then - Actions
-
Set flamepolar[(Custom value of (Casting unit))] = (flamepos[(Custom value of (Casting unit))] offset by flamedistance[(Custom value of (Casting unit))] towards flamedir[(Custom value of (Casting unit))] degrees)
-
Unit - Create 1 Flame 2 for (Owner of flamecaster[(Custom value of (Casting unit))]) at flamepolar[(Custom value of (Casting unit))] facing Default building facing (270.0) degrees
-
Point - Remove flamepolar[(Custom value of (Casting unit))]
-
Set flamedir[(Custom value of (Casting unit))] = (flamedir[(Custom value of (Casting unit))] + 45.00)
-
-
Else - Actions
-
Set flamepolar[(Custom value of (Casting unit))] = (flamepos[(Custom value of (Casting unit))] offset by flamedistance[(Custom value of (Casting unit))] towards flamedir[(Custom value of (Casting unit))] degrees)
-
Unit - Create 1 Flame for (Owner of flamecaster[(Custom value of (Casting unit))]) at flamepolar[(Custom value of (Casting unit))] facing Default building facing (270.0) degrees
-
Point - Remove flamepolar[(Custom value of (Casting unit))]
-
Set flamedir[(Custom value of (Casting unit))] = (flamedir[(Custom value of (Casting unit))] + 45.00)
-
-
-
-
-
Set flamedistance[(Custom value of (Casting unit))] = (flamedistance[(Custom value of (Casting unit))] + 100.00)
-
Set flamecounter[(Custom value of (Casting unit))] = (flamecounter[(Custom value of (Casting unit))] + 1)
-
-
-
Wait 20.00 seconds
-
Set flamedanceactive[(Custom value of (Casting unit))] = False
-
Point - Remove flamepos[(Custom value of (Casting unit))]
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units owned by Player[(Custom value of (Casting unit))] of type Flame) and do (Actions)
-
Loop - Actions
-
Unit - Kill (Picked unit)
-
-
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units owned by Player[(Custom value of (Casting unit))] of type Flame) and do (Actions)
-
Loop - Actions
-
Unit - Kill (Picked unit)
-
-
-
-
-
flame move
-
Events
-
Time - Every 0.03 seconds of game time
-
-
Conditions
-
Actions
-
Custom script: set bj_wantDestroyGroup = true
-
For each (Integer A) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit Group - Pick every unit in (Units owned by Player[(Integer A)] of type Flame) and do (Actions)
-
Loop - Actions
-
Set flamepicpos[(Integer A)] = (Position of (Picked unit))
-
Set flamepolar[(Integer A)] = (flamepos[(Integer A)] offset by (Distance between flamepicpos[(Integer A)] and flamepos[(Integer A)]) towards ((Angle from flamepicpos[(Integer A)] to flamepos[(Integer A)]) + 1.00) degrees)
-
Unit - Move (Picked unit) instantly to flamepolar[(Integer A)]
-
Point - Remove flamepicpos[(Integer A)]
-
Point - Remove flamepolar[(Integer A)]
-
-
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units owned by Player[(Integer A)] of type Flame 2) and do (Actions)
-
Loop - Actions
-
Set flamepicpos[(Integer A)] = (Position of (Picked unit))
-
Set flamepolar[(Integer A)] = (flamepos[(Integer A)] offset by (Distance between flamepicpos[(Integer A)] and flamepos[(Integer A)]) towards ((Angle from flamepicpos[(Integer A)] to flamepos[(Integer A)]) - 1.00) degrees)
-
Unit - Move (Picked unit) instantly to flamepolar[(Integer A)]
-
Point - Remove flamepicpos[(Integer A)]
-
Point - Remove flamepolar[(Integer A)]
-
-
-
-
-
-
-
flame damage
-
Events
-
Time - Every 1.00 seconds of game time
-
-
Conditions
-
Actions
-
Custom script: set bj_wantDestroyGroup = true
-
For each (Integer A) from 1 to 10, do (Actions)
-
Loop - Actions
-
Unit Group - Pick every unit in (Units within ((100.00 x (Real(flamelevel[(Integer A)]))) + 100.00) of flamepos[(Integer A)]) and do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
((Picked unit) is A ground unit) Equal to True
-
((Picked unit) belongs to an enemy of (Owner of flamecaster[(Integer A)])) Equal to True
-
flamedanceactive[(Integer A)] Equal to True
-
-
Then - Actions
-
Unit - Order flamecaster[(Integer A)] to damage (Picked unit) for ((Real(flamelevel[(Integer A)])) x 5.00) using attack type Spells and damage type Fire.
-
-
Else - Actions
-
Do nothing
-
-
-
-
-
-
-
-
-
flame cancel
-
Events
-
Unit - A unit Is issued an order targeting an object
-
Unit - A unit Is issued an order targeting a point
-
Unit - A unit Is issued an order with no target
-
-
Conditions
-
And - All (Conditions) are true
-
Conditions
-
flamedanceactive[(Custom value of (Casting unit))] Equal to True
-
((Ordered unit) is A Hero) Equal to True
-
-
-
-
Actions
-
Set flamedanceactive[(Custom value of (Ordered unit))] = False
-
Point - Remove flamepos[(Custom value of (Ordered unit))]
-
Point - Remove flamepicpos[(Custom value of (Ordered unit))]
-
Point - Remove flamepolar[(Custom value of (Ordered unit))]
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units owned by Player[(Custom value of (Ordered unit))] of type Flame) and do (Actions)
-
Loop - Actions
-
Unit - Kill (Picked unit)
-
-
-
Custom script: set bj_wantDestroyGroup = true
-
Unit Group - Pick every unit in (Units owned by Player[(Custom value of (Ordered unit))] of type Flame) and do (Actions)
-
Loop - Actions
-
Unit - Kill (Picked unit)
-
-
-
-