- 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)
-
-
-
-


