Quote: "I think you could do something as simple as opening a door with those waepons behind it. Which door opens depends on which key you press."
Good idea.
IF the doors are all named the same THEN
Each door has a different script for the three activated states.
Just put the name of the doors in the IFUSED of the entity or trigger that is running your main script.
Have the main script do a ...
:state=0:state=1
:state=1,scancodekeypressed=2:activateifused = 2,state=2
:state=1,scancodekeypressed=3:activateifused = 3,state=2
:state=1,scancodekeypressed=4:activateifused = 4,state=2
Then each door script would do a ...
:activated=2:state=2
or
:activated=3:state=2
or
:activated=4:state=2
...depending on which door it is. (Thats why you need 3 scripts, so the other doors do nothing in that activated state)
State=2, and so on, of the door scripts would do the open the door actions.
Quote: "6 extra rooms just to do a class job is horrible for framerate."
They do not have to be that big of a room.
Think of them more as three (3 for his needs) lockers.
You could try to move the entities from a single unaccessible room to the location the player is at (trigger), but I like the door idea.
Here is a modified DOORUSE script for Door #1
;Artificial Intelligence Script
;Header
desc = Locker 1
;Triggers
:state=0,activated=2:setframe=0,sound=$0,state=1
:state=1:incframe=0
:state=1,frameatend=0:coloff,state=3
;End of Script
Here is a modified DOORUSE script for Door #2
;Artificial Intelligence Script
;Header
desc = Locker 2
;Triggers
:state=0,activated=3:setframe=0,sound=$0,state=1
:state=1:incframe=0
:state=1,frameatend=0:coloff,state=3
;End of Script
Here is a modified DOORUSE script for Door #3
;Artificial Intelligence Script
;Header
desc = Locker 3
;Triggers
:state=0,activated=4:setframe=0,sound=$0,state=1
:state=1:incframe=0
:state=1,frameatend=0:coloff,state=3
;End of Script
I tried them out, and it works great.
Here is the script for your triggerzone's AIMAIN...
;Artificial Intelligence Script
;Header
desc = Classes Locker Key
;Triggers
:state=0:hudreset,hudx=50,hudy=90,hudimagefine=gamecore\text\lockeddoor.tga,hudname=ceclasses,hudhide=1,hudmake=display,state=1
:state=1,plrwithinzone=1:hudshow=ceclasses,state=2
:state=2,scancodekeypressed=2:activateifused=2,state=3
:state=2,scancodekeypressed=3:activateifused=3,state=3
:state=2,scancodekeypressed=4:activateifused=4,state=3
:state=3:hudunshow=ceclasses,state=4
;End of Script
Of course you will need to specify the correct path to your image and not the lockeddoor one used in my example.
Don't forget to name the doors all the same name and put that name in the IFUSED of the TriggerZone Marker.
Have Fun