Easier to calc with 0.02 instead of 0.03 and the reason why 0.02 doesn't work is because the human brain can only hanlde 1 picture every 0.028... something i think. Thats why moste of the peoples uses 0.03 but i find that har to calculate with cause there wont be any exact number when calculating.
Total nonsense...
The average computer display has a 60 frame per second update. WC3 is designed with this in mind meaning the default is 60 frames per second or 1 frame every 0.01666....... seconds. As such moving stuff every 0.01 seconds would result in it moving more than the number of frames that get displayed. 0.02 is pretty close to the real value and works at 50 frames per second, it is better to not update it every frame than to update it more than once a frame. Finally people use 0.03 seconds per frame because that is very close to NTSC update which people are used to (slightly more than 30 frames per second). However it is noticable that it is not as smooth as 0.02 or 0.01 updates persecond.
The human eye is not a camera, it is a sensor. This means that it generates near constant signals to your brain. It is reconed as such that the human eye can pick up the difference of up to 200 frames per second although the exposure of each frame then is as such that your brain will not be able to process it fully (you can not read 200 pages a second but can notice movement for 200 frames a second).
Firstly if a unit with the shield (fully charges) having 50 HP (max and at 100% current life) was to take 98 damage the unit would die when acording to the tooltip it should only take 49 damage and live. Secondly if a unit is at full health like 1000 and takes 10 damage, he will have 990 life instead of the 995 the tool tip tells you he should have (0% absorbed).
Remember that the event fires before the actual damage is done and removed from the units health.
Please read...
I did not even have to test your spell to spot that problem because you are not the only person who has tried damage absorption via triggers. Unless blizzard has changed this in the last patch (which I highly doubt) there is no way what you are doing works properly (the bugs mentioned should occur).
Lets run the case of a unit with 50 max life taking 98 damage.
Firstly the event runs.
You then reheal the unit 49 hitpoints thus 50+49 = 99. As the units max life is 50 however this means the units health is rehealed to 50 cause life can not exceed max life in my experience.
The unit then takes 98 damage but as 50 - 98 = -48, the unit is dead cause it is less than the death threshold.
Like wise with the case of a 1000 hitpoint unit taking 10 damage.
Firstly the event runs.
You then reheal the unit by 5 so 1000+5 = 1005. However the max life is 1000 thus the life clips to 1000.
The unit then takes the damage (10) thus 1000-10 = 990.
Both these cases demonstrate bugs in your current coding which can have fatal or irritating consequences.
I do agree that in the case of a unit with 500/1000 health taking 10 damage it will work fine, but in the case of a unit taking more damage than max health or having full health it will not work fine as I have practicle experience with the method you used doing this in my own spell. The work around requires heavy coding with a 0 expiration timer so that it runs near imediatly and requires the use of +max life abilities so that you can actually set the life correctly after the damage is dealt to the unit not before (like the event does).
Once again, the event is run
before the damage is actually dealt to the unit so as soon as the actions of the trigger are done, the unit then has the damage dealt to its health.
Also hows multi level support?