Okay, I just made a test arena game, got it to build...
This is what I found.
1) The activation values as WELL as the state values of scripts DO NOT RESET WHEN STARTING ANOTHER GAME!
2) Because of findings in #1, I was able to activate the "invisible entity" (In my case, I used a blood splat decal under all player starting points) inside the script for the Objective item. Do this using the If Used field and the "activateifused=1" action.
3) Everything worked as planned... in fact, it worked better than I thought it would. Everything returned to normal before the player even spawned. Doors closed, switches reset.
4) Perhaps not worth mentioning but I'll say it anyway. I was able to give entities different scripts while in the single player mode, and it didn't effect the building process.
Here's what I did, and I did it exactly as you said:
1) Build the level, put in the switches and doors and name them accordingly while in multiplayer mode.
2) Put in the objective item and the blood splats under the player spawn points.
3) Save now.
4) Go into single player mode and alter all the if used fields. Give the Objective Item it's "Objective" field a value of "1". Also, give the blood splats a different Main AI script (I made a test.fpi for this one, which I made ahead of time), turn their "Static" property to "No" so that they can run scripts, and make them "Always Active".
[EDIT]
Here are the If Used values for each notable entity.
blood splats: If Used = switch
switch: If Used = corresponding door
Objective item: If Used = blood splat
[/EDIT]
5) Go back into Multiplayer Mode, save, and build.
6) Go and alter the scripts that need altering. You CAN alter the scripts before you build, but if you did not then alter them now. I shall give you the entire script for each one, just in case.
Switch1 script:
;Artificial Intelligence Script
;by Plystire
;Header
desc = Switch Activate (toggle on and off)
;Triggers
:state=0:hudreset,hudx=50,hudy=90,hudimagefine=gamecoretextpressentertouse.tga,hudname=useswitchprompt,hudhide=1,hudmake=display,state=10
:plrdistwithin=50:hudshow=useswitchprompt,hudfadeout=useswitchprompt
:state=10,plrdistwithin=50,plrusingaction=1:state=1,plrsound=$0,activateifused=1,alttexture=1
:state=1,plrusingaction=0:state=2
:state=2,plrdistwithin=50,plrusingaction=1:state=3,plrsound=$1,activateifused=0,alttexture=0
:state=3,plrusingaction=0:state=10
:activated=1:activate=0,activateifused=0,alttexture=0
;End of Script
Door Remote script DOES NOT NEED TO BE ALTERED!
pickuphealthglow.fpi script:
;Artificial Intelligence Script
;by Plystire
;Header
desc = Health
;Triggers
:state=0,cantake,plrdistwithin=80:state=1,playertake,plraddhealth=50,activateifused=1,plrsound=audiobankitemshealthup.wav
:state=0:rundecal=5,spinrate=4,floatrate=10
;End of Script
The only thing changed in there is the addition of the "activateifused=1" in the first line of code. This will activate the blood splat code which will in turn reset the doors and switches.
test.fpi script: (This is the script I used for the blood splats)
;Artificial Intelligence Script
;by Plystire
;Header
desc = Resetter
;Triggers
:activated=1:activate=0,activateifused=1
;End of Script
There, you now have all the scripts worth noting.
If you have any problems getting it to work now... please give a detailed description of what you did to build the test game. Just know that it worked perfectly for me.
I wish you the best of luck, because needing to do this for DYNAMIC MP arenas is absolutely imperative.
The one and only,
~PlystirE~