Ok I did a quick test using variables. It isn't very elegant but it works. You can see how I did it by downloading the .zip file attached to this post, just put the .fpm in your mapbank folder and copy the scripts into the 'user' folder within the scriptbank and it should run. All the media is stock I believe so everyone should be able to run it. Although I didn't know how to reset the level so I used the plraddhealth command to kill the player once the video played.
Here is a video of it in action:
the scripts:
;Artificial Intelligence Script
;Header
desc = set global variable(s)
;Triggers
:state=0:dimvar= CameraOff,setvar= CameraOff 0,dimvar= readCode,setvar= readCode 0,state=1
This first script declared the variables I used and set them to their initial values.
;Artificial Intelligence Script
;Header
desc = Story In Zone
;Triggers
:state=0,plrwithinzone=1,varequal=CameraOff 0:state=1,sound=$0,video=$1,stopsound=$0,activateifused=1
:state=0,plrwithinzone=1,varequal=CameraOff 1:state=2
:state=1:plraddhealth=-1000000,state=2
:state=2:etimerstart,state=3
:state=3,etimergreater=5000:state=0
This plays the video and kills the player unless the CameraOff variable is set to 1. The etimer was used because I was having trouble resetting the story zone. It's ugly but it works.
;Artificial Intelligence Script
;Header
desc = Turn Off the camera if you have the code
;Triggers
:state=0:state=1
:state=1,plrdistwithin=60,varequal=readCode 0:fpgcrawtextsize=32,fpgcrawtextfont=Verdana,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=You need the code to use the computer,state=2
:state=1,plrdistwithin=60,varequal=readCode 1:setvar=CameraOff 1,fpgcrawtextsize=32,fpgcrawtextfont=Verdana,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=You have turned off the camera,state=2
:state=2,plrdistwithin=60,varequal=readCode 0:fpgcrawtextsize=32,fpgcrawtextfont=Verdana,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=You need the code to use the computer
:state=2,plrdistwithin=60,varequal=readCode 1:fpgcrawtextsize=32,fpgcrawtextfont=Verdana,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=You have turned off the camera
:state=2,plrdistfurther=60:state=1
;End of Script
Checks to see if the code has been read, and if it has sets the camera variable to 1.
;Artificial Intelligence Script
;created with TextEase
;Header
;desc =on screen text
;Triggers
:state=0:state=1
;DISPLAY THE TEXT
:state=1,plrdistwithin=60:setvar=readCode 1,fpgcrawtextsize=32,fpgcrawtextfont=Verdana,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=You found a code,state=2
:state=2,plrdistwithin=60:fpgcrawtextsize=32,fpgcrawtextfont=Verdana,fpgcrawtextr=255,fpgcrawtextg=255,fpgcrawtextb=255,fpgcrawtextx=50,fpgcrawtexty=80,fpgcrawtext=You found a code
;End of Script
Sets the readCode variable to 1.
I hope this is the sort of thing you wanted.
Your sig has been redacted by...