Total waste, you could do this:
local real x2 = GetLocationX(GetSpellTargetLoc())
local real y2 = GetLocationY(GetSpellTargetLoc())
With this you don't have to declare another variable and handle the location.
Change your condition function to:
private function Conditions takes nothing returns boolean
return (GetLearnedSkill() == 'A036' and GetUnitAbilityLevel(GetTriggerUnit(), 'A036') == 0)
Meh sorry I'm just with NewGen closed.
Well PUI will be the answer of course.
I'm not sure but I think there is a none-vJass version of PUI.
Anyway, PUI is a system that assigns a unit with a unique id.
So you make a unit array and assigns unit to the array member of the unit you want to attach to.
You didn't get me.
TT is using 1 timer for few instances, not only 1 instance.
The meaning of a constant function is that it returns a constant value, hence the real you will get after the calculations will be constant.
TT is the fastest attachment system for short interval timers (<0.04 or something), and the fact is using 1 timer for all is just great.
Another thing, make your Damage and Range functions constant, it's slightly faster.
I see no reason why this should be approved, sorry.