i can execute the spell 2 timeone at a time by any caster, but soon i cast it twice the the loop that make the ball move gets stuck and the ball stop moving ......,
, iits giving me headach ,any help is welcome
Bug : caster 1 & caster 2 cast spell at same time, caster 2 spell get interrupt and effect never get destroyed & caster 1 is pause and cant unpause but trigger goes on and the ball diseappear ...... so result, some vars getting overwrite or idk what do i miss ?
edit : i added new stuff i miss in trigger but its even worst ....... why ?
Bug : caster 1 & caster 2 cast spell at same time, caster 2 spell get interrupt and effect never get destroyed & caster 1 is pause and cant unpause but trigger goes on and the ball diseappear ...... so result, some vars getting overwrite or idk what do i miss ?
edit : i added new stuff i miss in trigger but its even worst ....... why ?
-
Katon MUI
-
Katon MUI
-
Events
-
Unit - A unit Starts the effect of an ability
-
-
Conditions
-
(Ability being cast) Equal to Katon Goukakyuu
-
-
Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KALoop[1] Equal to 0
-
-
Then - Actions
-
Trigger - Turn on Katon MUI Act <gen>
-
-
Else - Actions
-
-
Set KALoop[1] = (KALoop[1] + 1)
-
Set HS_index_selected = False
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KADyn_Index Less than HS_index[2]
-
KA_index_is_empty[KADyn_Index] Equal to True
-
KADyn_Index Not equal to 0
-
-
Then - Actions
-
Set KA_index_selected = True
-
-
Else - Actions
-
For each (Integer KALoop[0]) from 1 to KALoop[2], do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KA_index_selected Equal to False
-
KA_index_is_empty[KALoop[0]] Equal to True
-
-
Then - Actions
-
Set KADyn_Index = KALoop[0]
-
Set KA_index_selected = True
-
-
Else - Actions
-
-
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KA_index_selected Equal to False
-
-
Then - Actions
-
Set KALoop[2] = (KALoop[2] + 1)
-
Set KADyn_Index = KALoop[2]
-
-
Else - Actions
-
-
-
-
Set KACaster[KADyn_Index] = (Triggering unit)
-
Set KADmg[KADyn_Index] = (2.00 x ((Real((Level of (Ability being cast) for KACaster[KADyn_Index]))) x (Real((Strength of KACaster[KADyn_Index] (Exclude bonuses))))))
-
Set KATarget[2] = (Target point of ability being cast)
-
Set KAPoint[2] = (Position of KACaster[KALoop[2]])
-
Set KAAngle[KADyn_Index] = (Angle from KAPoint[2] to KATarget[2])
-
Set KAPoint[3] = (KAPoint[2] offset by 50.00 towards KAAngle[KADyn_Index] degrees)
-
Set KACheck[KADyn_Index] = 40
-
For each (Integer KALoop[3]) from 1 to KALoop[2], do (Actions)
-
Loop - Actions
-
Animation - Play KACaster[KALoop[3]]'s spell one animation
-
Unit - Pause KACaster[KALoop[3]]
-
Unit - Create 1 Effect for (Owner of KACaster[KALoop[3]]) at KAPoint[3] facing KAAngle[KALoop[3]] degrees
-
Unit Group - Add (Last created unit) to KAGroup2[KALoop[3]]
-
Unit - Create 1 Katon for (Owner of KACaster[KALoop[3]]) at KAPoint[3] facing KAAngle[KALoop[3]] degrees
-
Unit Group - Add (Last created unit) to KAGroup2[KALoop[3]]
-
-
-
Custom script: call RemoveLocation(udg_KAPoint[2])
-
Custom script: call RemoveLocation(udg_KAPoint[3])
-
Custom script: call RemoveLocation(udg_KATarget[2])
-
-
-
-
Katon MUI Act
-
Katon MUI Act
-
Events
-
Time - Every 0.05 seconds of game time
-
-
Conditions
-
Actions
-
For each (Integer KALoop[3]) from 1 to KALoop[2], do (Actions)
-
Loop - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KACheck[KALoop[3]] Greater than 0
-
-
Then - Actions
-
Set KACheck[KALoop[3]] = (KACheck[KALoop[3]] - 1)
-
Set KAPoint[4] = (Position of KAUnit1[KALoop[3]])
-
Set KAPoint[5] = (KAPoint[4] offset by 50.00 towards KAAngle[KALoop[3]] degrees)
-
Set KAPoint[8] = (Position of KACaster[KALoop[3]])
-
Set KA_index_is_empty[KALoop[3]] = True
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KACheck[KALoop[3]] Less than or equal to 35
-
-
Then - Actions
-
Set KAGroup[KALoop[3]] = (Units within 300.00 of KAPoint[4] matching (((Matching unit) belongs to an ally of (Owner of KACaster[KALoop[3]])) Equal to False))
-
Destructible - Pick every destructible within 100.00 of KAPoint[4] and do (Actions)
-
Loop - Actions
-
Destructible - Kill (Picked destructible)
-
-
-
Unit - Move KAUnit1[KALoop[3]] instantly to KAPoint[5]
-
-------- DAMAGE --------
-
Unit Group - Pick every unit in KAGroup[KALoop[3]] and do (Unit - Cause KAUnit1[KALoop[3]] to damage (Picked unit), dealing KADmg[KALoop[3]] damage of attack type Spells and damage type Shadow Strike)
-
Special Effect - Create a special effect at KAPoint[4] using Objects\Spawnmodels\Other\NeutralBuildingExplosion\NeutralBuildingExplosion.mdl
-
Special Effect - Destroy (Last created special effect)
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KACheck[KALoop[3]] Equal to 36
-
-
Then - Actions
-
Unit - Unpause KACaster[KALoop[3]]
-
Unit Group - Pick every unit in KAGroup2[KALoop[3]] and do (Unit - Remove (Picked unit) from the game)
-
Unit - Create 1 Katon Ball for (Owner of KACaster[KALoop[3]]) at KAPoint[8] facing KAAngle[KALoop[3]] degrees
-
Set KAUnit1[KALoop[3]] = (Last created unit)
-
-------- loop ball run for 1.5 sec --------
-
-
Else - Actions
-
-
-
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KACheck[KALoop[3]] Less than or equal to 0
-
-
Then - Actions
-
Unit - Remove KAUnit1[KALoop[3]] from the game
-
Set KALoop[1] = (KALoop[1] - 1)
-
-------- we reduce the index[1] variable cause one spell instance has ended --------
-
-------- --- --------
-
Set KA_index_is_empty[KALoop[3]] = True
-
-------- This spell instance has finished it's effect and we "free" the array using this variable --------
-
-------- --- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KA_index_selected Equal to False
-
-
Then - Actions
-
Set KADyn_Index = KALoop[3]
-
-------- We set the HS_dyn_index to an value of this index so the next time when the spell is cast it has an value of an array that is not taken --------
-
-------- --- --------
-
Set KA_index_selected = True
-
-------- We have just set an value for HS_dyn_index so we have selected the index we are going to use the next time a spell using this indexing is cast --------
-
-
Else - Actions
-
-
-------- --- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KALoop[1] Not equal to 0
-
KALoop[3] Equal to KALoop[2]
-
-
Then - Actions
-
Set KALoop[2] = (KALoop[2] - 1)
-
Game - Display to (All players) the text: Debug Message: Loop...
-
-
Else - Actions
-
-
-------- If this is the spell instance which uses the highest value of HS_index[2] we can reduce the HS_index[2] value to shorten the loop process --------
-
-------- --- --------
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KALoop[1] Equal to 0
-
-
Then - Actions
-
Set KALoop[2] = 0
-
-------- we reset the index[2] to 0 cause there aren't any active spells running --------
-
-------- --- --------
-
Set KADyn_Index = 0
-
-------- We also reset the HS_dyn_index to 0 --------
-
-------- --- --------
-
Trigger - Turn off (This trigger)
-
-------- we turn off this trigger, it is pointless for it to run if there isn't any spell for it to affect --------
-
-------- --- --------
-
Game - Display to (All players) the text: off
-
-------- we can display a "debug" message to check will the trigger turn off when there aren't any other active spell --------
-
-
Else - Actions
-
-
-------- if the index[1] is 0 there are no active spell and we do actions --------
-
-
Else - Actions
-
-
Custom script: call RemoveLocation(udg_KAPoint[4])
-
Custom script: call RemoveLocation(udg_KAPoint[5])
-
Custom script: call RemoveLocation(udg_KAPoint[8])
-
-
Else - Actions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
If - Conditions
-
KALoop[1] Not equal to 0
-
KALoop[3] Equal to KALoop[2]
-
-
Then - Actions
-
Set KALoop[2] = (KALoop[2] - 1)
-
Game - Display to (All players) the text: Debug Message: Loop...
-
Trigger - Turn off (This trigger)
-
-
Else - Actions
-
-
-
-
-
-
-
Last edited: