Super Walk MUI bug + tips
i tryed to created a super walk system that work on mouse click or order gived, of course mine work but, mine also have some glitch!!
its can only target point, i tryed to added other issue of order but its make ubber lag!! how could i fix it ??
if the caster spamm the click he goes faster and far than he supposed to ! how can i fix it ?
i cannot use hashtable becuz its a request and the guy dont have new patch anyway!
here is the code, i doubt also this is the best way to do it
i tryed to created a super walk system that work on mouse click or order gived, of course mine work but, mine also have some glitch!!
its can only target point, i tryed to added other issue of order but its make ubber lag!! how could i fix it ??
if the caster spamm the click he goes faster and far than he supposed to ! how can i fix it ?
i cannot use hashtable becuz its a request and the guy dont have new patch anyway!
here is the code, i doubt also this is the best way to do it
-
Harm Gate
-

Events
-


Unit - A unit Is issued an order targeting a point
-
-

Conditions
-


((Triggering unit) has buff Super Walk ) Equal to True
-
-

Actions
-


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



If - Conditions
-




Charge_Index_Size Equal to 0
-
-



Then - Actions
-




Trigger - Turn on Harm GateLoop <gen>
-
-



Else - Actions
-
-


-------- Dynamic Index End --------
-


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


-------- Increase the index size --------
-


Set Charge_Index_Size = (Charge_Index_Size + 1)
-


-------- Dynamic Index --------
-


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



If - Conditions
-




Charge_Index_Size Greater than Charge_Index_maxSize
-
-



Then - Actions
-




Set Charge_Index[Charge_Index_Size] = Charge_Index_Size
-




Set Charge_Index_maxSize = Charge_Index_Size
-
-



Else - Actions
-
-


Set Charged_TheIndex = Charge_Index[Charge_Index_Size]
-


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


-------- here we set variable --------
-


Set Charge_Caster[Charged_TheIndex] = (Triggering unit)
-


Set Charge_Point[1] = (Position of Charge_Caster[Charged_TheIndex])
-


Set Charge_Point[2] = (Target point of issued order)
-


Set Charge_Angle[Charged_TheIndex] = (Angle from Charge_Point[1] to Charge_Point[2])
-


Set Charge_Fade[Charged_TheIndex] = 0.00
-


Set Charge_CurDistance[Charged_TheIndex] = 0.00
-


Set Charge_SPEED[Charged_TheIndex] = 32.00
-


Set Charge_MaxDistance[Charged_TheIndex] = (Distance between Charge_Point[1] and Charge_Point[2])
-


Set Charge_Damage[Charged_TheIndex] = ((Real((Level of Gate Jump - Up for Charge_Caster[Charged_TheIndex]))) / 2.00)
-


Set Knockback_Boolean[Charged_TheIndex] = True
-


Set Knockback_CurDistance[Charged_TheIndex] = 0.00
-


Set Knockback_MaxDistance[Charged_TheIndex] = 800.00
-


Set Knockback_Speed[Charged_TheIndex] = 25.00
-


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


Unit - Turn collision for Charge_Caster[Charged_TheIndex] Off
-


Unit - Make Charge_Caster[Charged_TheIndex] Invulnerable
-


Unit - Make Charge_Caster[Charged_TheIndex] face Charge_Point[2] over 0.00 seconds
-


Custom script: call RemoveLocation (udg_Charge_Point[1])
-


Custom script: call RemoveLocation (udg_Charge_Point[2])
-
-
-
Harm GateLoop
-

Events
-


Time - Every 0.03 seconds of game time
-
-

Conditions
-

Actions
-


For each (Integer Charge_LOOP) from 1 to Charge_Index_Size, do (Actions)
-



Loop - Actions
-




Set Charged_TheIndex = Charge_Index[Charge_LOOP]
-




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





If - Conditions
-






Charge_CurDistance[Charged_TheIndex] Less than Charge_MaxDistance[Charged_TheIndex]
-
-





Then - Actions
-






Set Charge_Point[3] = (Position of Charge_Caster[Charged_TheIndex])
-






Set Charge_Point[4] = (Charge_Point[3] offset by Charge_SPEED[Charged_TheIndex] towards Charge_Angle[Charged_TheIndex] degrees)
-






Set Charge_Point[5] = (Position of (Picked unit))
-






Set Charge_Point[6] = (Charge_Point[5] offset by Charge_SPEED[Charged_TheIndex] towards Charge_Angle[Charged_TheIndex] degrees)
-






Set Charge_Fade[Charged_TheIndex] = (Charge_Fade[Charged_TheIndex] + 4.00)
-






Set Charge_Angle2[Charged_TheIndex] = (Angle from Charge_Point[3] to Charge_Point[5])
-






Special Effect - Create a special effect at Charge_Point[3] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
-






Special Effect - Destroy (Last created special effect)
-






Unit - Move Charge_Caster[Charged_TheIndex] instantly to Charge_Point[4]
-






Unit - Create 1 Dummy Taijustsu Master for (Owner of Charge_Caster[Charged_TheIndex]) at Charge_Point[3] facing Charge_Angle[Charged_TheIndex] degrees
-






Set Charge_Dummy[Charged_TheIndex] = (Last created unit)
-






Unit - Turn collision for Charge_Dummy[Charged_TheIndex] Off
-






Animation - Play Charge_Dummy[Charged_TheIndex]'s walk animation
-






Animation - Change Charge_Dummy[Charged_TheIndex]'s vertex coloring to (100.00%, 100.00%, 100.00%) with Charge_Fade[Charged_TheIndex]% transparency
-






Unit - Add a 0.30 second Generic expiration timer to Charge_Dummy[Charged_TheIndex]
-






Set Charge_Group[Charged_TheIndex] = (Units within 250.00 of Charge_Point[3] matching ((((Matching unit) is A structure) Equal to False) and ((((Matching unit) belongs to an enemy of (Owner of Charge_Caster[Charged_TheIndex])) Equal to True) and (((Matching unit) is in Charge_Group2[Charged_TheI
-






Destructible - Pick every destructible within 250.00 of Charge_Point[3] and do (Actions)
-







Loop - Actions
-








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









If - Conditions
-










((Picked destructible) is alive) Equal to True
-
-









Then - Actions
-










Destructible - Kill (Picked destructible)
-
-









Else - Actions
-
-
-
-






Set Charge_CurDistance[Charged_TheIndex] = (Charge_CurDistance[Charged_TheIndex] + Charge_SPEED[Charged_TheIndex])
-






Custom script: set bj_wantDestroyGroup = true
-






Unit Group - Pick every unit in Charge_Group[Charged_TheIndex] and do (Actions)
-







Loop - Actions
-








Unit - Cause Charge_Caster[Charged_TheIndex] to damage (Picked unit), dealing Charge_Damage[Charged_TheIndex] damage of attack type Spells and damage type Normal
-








Unit Group - Add (Picked unit) to Charge_Group2[Charged_TheIndex]
-








-------- knockback system --------
-








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









If - Conditions
-










Knockback_Boolean[Charged_TheIndex] Equal to True
-










((Picked unit) is in Charge_Group2[Charged_TheIndex]) Equal to True
-
-









Then - Actions
-










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











If - Conditions
-












Knockback_CurDistance[Charged_TheIndex] Less than Knockback_MaxDistance[Charged_TheIndex]
-
-











Then - Actions
-












Set Knockback_CurDistance[Charged_TheIndex] = (Knockback_CurDistance[Charged_TheIndex] + Knockback_Speed[Charged_TheIndex])
-












Unit - Move (Picked unit) instantly to Charge_Point[6], facing Charge_Angle2[Charged_TheIndex] degrees
-












Special Effect - Create a special effect at Charge_Point[5] using Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
-












Special Effect - Destroy (Last created special effect)
-
-











Else - Actions
-
-
-









Else - Actions
-
-
-
-






Custom script: call RemoveLocation (udg_Charge_Point[3])
-






Custom script: call RemoveLocation (udg_Charge_Point[4])
-






Custom script: call RemoveLocation (udg_Charge_Point[5])
-






Custom script: call RemoveLocation (udg_Charge_Point[6])
-
-





Else - Actions
-






Unit - Make Charge_Caster[Charged_TheIndex] Vulnerable
-






Animation - Play Charge_Caster[Charged_TheIndex]'s attack - 2 animation
-






Unit - Turn collision for Charge_Caster[Charged_TheIndex] On
-






Unit Group - Remove all units from Charge_Group2[Charged_TheIndex]
-






-------- RecycleIndex --------
-






Set Charge_Index[Charge_LOOP] = Charge_Index[Charge_Index_Size]
-






Set Charge_Index[Charge_Index_Size] = Charged_TheIndex
-






Set Charge_Index_Size = (Charge_Index_Size - 1)
-






Set Charge_LOOP = (Charge_LOOP - 1)
-
-
-




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





If - Conditions
-






Charge_Index_Size Equal to 0
-
-





Then - Actions
-






Trigger - Turn off (This trigger)
-
-





Else - Actions
-
-
-
-
-
Last edited:






