This just came to me and usually I hog all my ideas to myself, but... I think it'd be a bit more fun if I let people in on a few tricks of the trade.
-Map Event-
Step 1. Disable movement by using the \move feature and turn down the event's view range to 0 in pt. 1 of the script database
Step 2. Make a conditional event checking is in range of the player (ForeverZero's range condition is perfect for this as it mimics Blizz's view range without triggering enemy A.I.)
Step 3. Turn on a switch that is not in use (Example: Switch[001] ON)
Step 4. Add a wait command in the conditional event (Example: Wait[20])
Step 5. Turn off the switch (Example: Switch[001] OFF)
Step 6. Make a conditional event within the conditional event checking if another switch is on (Example: Conditional Branch: if Switch[002] ON) and check else
Step 7. If the switch is on play a sound effect (or whatever you want to do to make it seem like something amazing just happened) to show that you just activated the parry/reaction and afterward turn off Switch[002]
Step 8. In the else case make a force_action command that forces an attack/ skill
-Common event-
Step 1. In a free common event slot select 'Parallel Process' that checks to see if the first switch is on. (Switch[001]
Step 2. (Assuming you're using B-abs] Make a conditional event that checks to see if a key is pressed (Conditional branch:
Input.press?(Input::Key['D'])
Step 3. In that conditional branch turn on Switch[002]