I don't know if this is done before, but I though I post it here
you have 2 different variable types
one with one output, when the variable is 1 something will get triggered while when its 0, nothing will.
and one with 2 outputs, when its 1 something will get triggered and when its 0, something also gets triggered
for 1 output:
so, just make a button, which you have to set up so it can be triggered by a shot, the target will be your output
then make a func_door, right in front of the button, (or next to right in front if u want a inverse trigger), set it so it will move away from the front of the button (or towards for inverse), put it on toggle and resetyou can ofcourse change it if you want your variable to change back after a certain time using wait). also set the name. mess around with the speed a little bit if u want. this will be your variable changer
finally make a trap_spikeshooter and place it in front of the button, but also before the door and set angles towards button, also set name. this will be your variable checker
for 2 outputs:
so, just make a button, which you have to set up so it can be triggered by a shot, the target will be your output_if 1
make another button, put it next to the other button, with the same settings. the target will be your output_if 0
then make a func_door, right in front of 1 button, set it so it will move in front of the other button, put it on toggle and reset to -1, you can of course change it if you want your variable to change back after a certain time using wait). mess around with the speed a little bit if u want. also set name. this will be your variable changer
finally make 2 trap_spikeshooter and place it in front of the buttons, but also before the door and set angles towards button, this will be your variable checker, name them the same (or different if u want another kind of trigger)
so, how do u use them?
so, with 1 outputs:
example: i have a room, with 2 floors, and i have a elevator, that starts at the bottom, and i want it to go to the top, but once i am on the top, i want to make shure it doesn't move down again. but when i am riding the elevator and suddenly decide to drop off, i don't want it to stay at the top, so how do you do that?
well, i though of 1 solution, which is, just make a trigger at the whole bottom level, so when i am at the bottom, while the elevator is at the top, it moves down again. however, if u have stairs inside your level you can go up onto, within the time the elevator is fully up again, you either have to: cover the entire lower area in a trigger brush, thats reachable within the time the elevator takes to go up, or: use my variables system:
how to do it with my variables system,
oke, just make your elevator, which you trigger by whatever., i used a trigger multiple,
make it by making a func_door at the bottom with a name of elevator or whatever, set the angle to up and the lip value to -how much the elevator has to move up next to its own height. set it to toggleable and set the reset (delay before close) to -1
next make a trigger_once just above the top area where your elevator will stop, set the target value to variable1changer
make the trigger which will activate the button, and set its target to relays (or whatever), next, make 2 relays, with a name of relays, and set 1 to activate the elevator, and the other to activate the variablechecker, but set the delay so it will fire once the elevator is on top, you have to test this with like a light or something and time it correctly.
make these things pretty small:
now for the variable stuff, make a func_button and set the output to the elevator, make shure you put the health to something higher than 0 (i just use 1). set the lip to 0 and reset to 0.
now make a func_door next to and in front of the button, make it the same size as the button. call it variable1changer (or whatever) and put the angles so it will move in front of the button, make it toggleable
and put the reset (delay before close) to -1
finally make the spike_shooter and put it in front of the button and before the door. change the name to variablechecker and put the angles so it will fire on the door.
what all of this does is basicly this:
if you get on the elevator and you ride onto the top, you will activate the variablechanger, which puts the door in front of the spikeshooter, the varablechecker is activated which shoots the spike on the door, and the elevator stays on top
but if u get on the elevator and get of it while its going to the top, you wont activate variablechanger, then variablechecker is activated (one's the elevator reaches the top), shoots a spike on the button, and sends the elevator back down again
that is just 1 example with what you can do with it. if someone could make more examples feel free to add them, and feel free to use this system, also if someone notices a mistake in my explanation, please say so.