instead of calling the script...
1. leave local items empty.
2. above your for loop add items = game.CurrentCharacter.Items -- I don't think you need to add Character before Items (not 100% sure, but most fields under character work without the full path).
3. instead of the call script action use an execute a script action containing the registerEventHandler line of code.
4. same as above for the hide inventory bit, but with a unregisterEventHandler.
This way you are not having to declare multiple instances of same script & variables over & over again. It doesn't really make much of a difference but it's a much cleaner method.
Anyway... you are certainly starting to get the hang of the scripting side of Visionaire Studio. Nice one.

P.S: the frame index values should start at 1. I have no idea why the counters in the editor start at 0, as the initial frame value is always 1.