I also tried this:
Scriptname phiTestBlock extends ReferenceAliasObjectReference Property phiAlias autoEvent OnInit() RegisterForAnimationEvent(phiAlias, "blockStart")EndEventEvent OnAnimationEvent(ObjectReference akSource, string asEventName) if asEventName == "blockStart" Debug.Notification("Blocking...") endifEndEventphiAlias is set in the CK to the player, and the script is attached to an alias set to the player in a quest that starts with the game. The above does nothing. Blocking with either a weapon or shield never sends an event, and never prints the notification.
I also tried the same with blockAnticipateStart, blockStartOut, blockHitStart. The only one that seems to work at all is blockStartOut but it is terribly laggy. It will register, the notification prints, but if I block again a second later it won't register, making it pretty useless for scripting purposes.
The whole idea of registering an event is pretty useless actually, since the idea is to check IF the player is blocking WHILE the player is blocking, not WHEN the player blocks. I could have worked around it by implementing an equivalent "blockStopOut" or whatever and doing my script stuff until then, but as I said, it doesn't seem to be reliable. =(
So, I am currently looking for a way to reliably check whether the player is blocking, while the player is blocking.
