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: