Isn't there a new native called BlzIsUnitInvulnerable? Does it not work as expected? Because if it does, this function may be unnecessary.
JASS:
function IsUnitInvulnerable takes unit u returns boolean
return GetUnitAbilityLevel(u,'Avul')==1 or IsUnitSleeping(u) or IsUnitCycloned(u)
endfunction
Also, to make importing the system easier, you should make it into a library and put it into a separate trigger, instead of the map header. This way, people can just copy the trigger instead of having to copy the map header.
Also, don't use
SaveRealBJ
that function is just a wrapper over
SaveReal
which inverts the order of the arguments (to fit into GUI structure). Since it calls a function, it's much slower than the native. This goes for all the hashtable BJ functions that you used.
Anyway, this system looks pretty neat and easy to configure, but you should improve on those points, imho.