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
-
If - Conditions
- -------- 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
-
If - Conditions
- 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])
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Events
-
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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-
Loop - 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
-
If - Conditions
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
- Else - Actions
-
If - Conditions
-
Loop - 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 - Conditions
-
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
-
If - Conditions
-
Loop - Actions
-
For each (Integer Charge_LOOP) from 1 to Charge_Index_Size, do (Actions)
-
Events
Last edited: