Why don`t you try implement lock pick puzzle script, I used that in my game for cracking laptops. The point of it is that you must press the correct number in the correct time to unlock the doors. If you don`t press the button on time you must start all over again.
It would be great for Silent Hill-ish games(just adding anywithinzone=80, to check if your protagonist is close to the doors)
Something like this:
:state=0:hudreset,hudx=30,hudy=60,hudimagefine=gamecore\huds\lappuzzle\2.png,hudname=2,hudhide=1,hudmake=display
:state=0:hudreset,hudx=40,hudy=30,hudimagefine=gamecore\huds\lappuzzle\5.png,hudname=5,hudhide=1,hudmake=display
:state=0:hudreset,hudx=60,hudy=80,hudimagefine=gamecore\huds\lappuzzle\3.png,hudname=3,hudhide=1,hudmake=display
:state=0:hudreset,hudx=20,hudy=40,hudimagefine=gamecore\huds\lappuzzle\7.png,hudname=7,hudhide=1,hudmake=display
:state=0,plrdistwithin=90,pickobject=1:fpgcrawtext=New laptop turned off.,fpgcrawtextb=150,fpgcrawtextfont=TimesNewRoman,fpgcrawtextg=50,fpgcrawtextr=50,fpgcrawtextsize=22,fpgcrawtextx=50,fpgcrawtexty=80
:state=0,plrdistwithin=80,pickobject=1,scancodekeypressed=3:state=2
:state=2,plrdistwithin=80,pickobject=1:fpgcrawtext=Press <Y> to unscrew the laptop. Press <F> to find out how,fpgcrawtextb=150,fpgcrawtextfont=TimesNewRoman,fpgcrawtextg=50,fpgcrawtextr=50,fpgcrawtextsize=22,fpgcrawtextx=50,fpgcrawtexty=80
:state=2,plrdistwithin=80,pickobject=1,scancodekeypressed=21:timerstart,state=4
:state=2,plrdistwithin=80,pickobject=1,scancodekeypressed=33:state=3
:state=3,plrdistwithin=80,pickobject=1:fpgcrawtext=You must be swift. To unscrew the laptop you must press the number correctly in the appropriate time. Press <I> go back,fpgcrawtextb=150,fpgcrawtextfont=TimesNewRoman,fpgcrawtextg=50,fpgcrawtextr=50,fpgcrawtextsize=22,fpgcrawtextx=50,fpgcrawtexty=80
:state=3,plrdistwithin=80,pickobject=1,scancodekeypressed=23:state=2
:state=4,timergreater=1000:hudshow=7
:state=4,timergreater=1500:hudunshow=7,state=0
:state=4,timergreater=1000,scancodekeypressed=8:state=5,sound=audiobank\user\but.wav
:state=5,timergreater=2000:hudshow=2,hudunshow=7
:state=5,timergreater=2400:hudunshow=2,state=0
:state=5,timergreater=2000,scancodekeypressed=3:state=6,sound=audiobank\user\but.wav
:state=6,timergreater=2900:hudshow=5,hudunshow=7,hudunshow=2
:state=6,timergreater=3300:hudunshow=5
:state=6,timergreater=2900,scancodekeypressed=6:state=7,sound=audiobank\user\but.wav
:state=7,timergreater=3900:hudshow=3,hudunshow=5,hudunshow=2
:state=7,timergreater=4200:hudunshow=3
:state=7,timergreater=3900,scancodekeypressed=4:state=8,sound=audiobank\user\but.wav
:state=8:activateifused=1,hudunshow=3
:state=8:fpgcrawtext=Now I need to carry the battery to the powerbox,fpgcrawtextb=150,fpgcrawtextfont=TimesNewRoman,fpgcrawtextg=50,fpgcrawtextr=50,fpgcrawtextsize=22,fpgcrawtextx=50,fpgcrawtexty=80
:state=8,timergreater=5000:state=9
Anyway I like your idea very much
Btw what did you used to make camera follow the entity (plrpointatobject?? or something else)
Peace
My paragon is not on the poster, its in the mirror.