----------
if not IsUnitType(caster,UNIT_TYPE_DEAD) and GetUnitTypeId(caster) != 0 and not release then is the bright example of very bad condition block forming. The thing is that not is an operator aswell and it consumes some resources while executing the code. In many cases you can just invert this block with else to get more performance. The correct condition must look like that: if IsUnitType(caster,UNIT_TYPE_DEAD) and GetUnitTypeId(caster) == 0 and release then Please keep it in mind. Same with if not IsUnitInGroup(u,G) then and many others.
----------
Okay, i'll keep it in mind, but..keep what =.=, can you explain more to me
, i'm stupid you know ^^!..