I don't know how to detect when a unit becomes stunned/affected by a buff (Events). For the second one... hmm... maybe if you use:
Events:
A unit starts the effect of an ability (Generic Unit event)
Conditions:
(Ability being cast) equal to Critical Strike (Ability Comparison)
Actions:
If/Then/Else
..If:
...(Attacked Unit) has Immunity Shield (for critical strike)
....Then:
.....Pause (Attacking Unit)
.....Else:
......Do Nothing
If the "pause unit" doesnt work, then create a dummy unit with a custom storm bolt skill that deals 0 damage but stuns for 0.01. Edit the buff Stunned(Pause) and delete the effects. MAKE SURE the stun time is 0.01 (if you set it to 0.00 the stun will last forever i think). Before creating a dummy unit, read the Spell FAQ.
Events:
A unit starts the effect of an ability (Generic Unit event)
Conditions:
(Ability being cast) equal to Critical Strike
Actions:
If/Then/Else
..If:
...(Attacked Unit) has Immunity Shield (for critical strike)
....Then:
.....-Create a Dummy Unit at postion of Attacking Unit (facing either point or angle)
.....-Order (Last created unit) to Human - Storm Bolt Attacking Unit. (Location: Issue Order Targeting a unit)
.....-Give a 2 second Generic expiration time to (Last created unit)
.....Else:
.....Do Nothing
-Rui