Since you asked me, I've checked it again. That's well that you finally added an Esc System to your testing map, but I see no reason in switching it off for three seconds.
Let's move to triggers. I started from the hyper knockback. You've fixed all the leaks in the loop, but I found a leak and unefficient codding in the main trigger. Why do you use If/Then/Else in this trigger:
-
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
-

If - Conditions
-


(HK_Target_Unit belongs to an enemy of (Owner of HK_TC)) equal to(==) True
-

Then - Actions
You can set it at the beggining of the spell - there is no limit on the number of conditions!
-
Events
-

Unit - A unit starts an effect of ability
-

(Ability being cast) equal to (==) Hyper Knock
-

((Target unit of ability being cast) belongs to an enemy of (Casting Unit)) equal to (==) True
Just to let you know (I didn't check it myself), if it's possible to cast on your own units (I think it does since you have such a condition), then this point will leak, because it's set, but then never destroyed:
-
Set HK_Location = (Position of HK_TC)
You can just make trigger look like this to prevent this leak and don't manipulate with entire conditions:
-
Hyper Knock
-

Events
-


Unit - A unit starts an effect of ability
-

Conditions
-


(Ability being cast) equal to (==) Hyper Knock
-

Actions
-


Set HK_TC = (Triggering unit)
-


Set HK_Target_Unit = (Target unit of ability being cast)
-


Set HK_Location = (Position of HK_TC)
-


Set HK_Owner = (Owner of HK_TC)
-


Set HK_Strength = (Strength of HK_TC (including bonuses))
-


Unit - Create 1 Dummy for HK_Owner at HK_Location facing HK_Location
-


Unit - Add Hyper Knock[Stun] to (Last created unit)
-


Unit - Order (Last created unit) to Mountain King (Alliance) - Storm Bolt HK_Target_Unit
-


Unit - Add a 2.00 second _dunno word_ expiration timer to (Last created unit)
-


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


-------- Here is it - move it outside the If/Then/Else --------
-


Custom script: call RemoveLocation(udg_HK_Location)
By the holy gods, someone, give me a link to english WE, I'm going crazy of translating all this stuff! ><
Next, Sand Quaker:
-
If ((Level of Sand Quaker for SQ_Unit[1]) equal to (==) 1) then do (Set SQ_Percentages = (Random integer number between 1 and 6)) else do (Do nothing)
And you make this three times?! Gosh, make it like this:
-
Set SQ_Percentages = (Random integer number between 1 and (7 - (Level of Sand Quaker for SQ_Unit[1])))
And again, move all "call RomoveLocation" outside the If/Then/Else or you'll leak two points per unsuccessful cast!
Remove "Do Nothing" action - it's unefficient using this. Don't you think Do Nothing and nothing at all equal? Yes, they do, but this will slow down the work of the map for a nanosecond
This is ulseless variable:
-
Set SQ_Owner = (Owner of SQ_Unit[1])
You can easily use (Owner of SQ_Unit[1]) - it doesn't leak. Only player groups do. Players - not. Same for the owner of unit in Sand Stomp trigger.
-
Set SQ_Ability = Sand Quaker[Effects]
Useless variable once again.
Seems, that's all from now.
But don't you think yourself, that your Hyper Knockback spell looks ugly? And it won't stop even if the casting unit is stunned... ;(
EDIT: Looks like it's first time when I create such a huge review.
