Trigger Events Between Levels
Introduction
As levels become more complex, you may be unable to create a sequence where, for example, a button toggles a light due to engine limits. However, this doesn't mean it isn't possible to have an activator trigger an event in another map.
Single Use Env_Global
This first section highlights how to create an env_global that can be fired once only after being activated by an activator, which will be a button in this article.
The Maps Setup
First Map - Entity Setup
In the first map, you need:
- An activator (in this example - a button named
button
with a delay before reset set to-1
andDon't Move
set inFlags
) - An env_global named
light_global
- with aGlobal State To Read
set toturn_on_light
Global State To Read
can be anything, i.e. you can type anything in it. It is best to keep it simple and organized.- (Optional) A game_text named
text_button_on
to check the env_global's state
developer 4
if you want to print out entity information (such as outputs being called, etc.) and other meaningful information. The game_text entity is simply used to print text seperately from the developer
console command so that if your map has complex I/O sequences spamming (such as logic_timer and logic_case entities), the game_text makes it easier.
Second Map - Entity Setup
In the second map, you need:
- A logic_auto - with a
Global State To Read
set toturn_on_light
(it must be the same as the env_global's) - The entity you want to fire (in this example - a light named
red
)
The Input/Output Setup
First Map - Outputs
Open the activator (the button here) that will fire the env_global.
My Output > Target Entity Target Input Parameter Delay Only Once OnPressed light_global TurnOn <none> 0.00 Yes OnPressed !self Lock <none> 0.01 Yes
If you are using a game_text, fire it as well as you enable the env_global. Remember that the game_text is only used for debugging purposes. Remove it before shipping your level.
My Output > Target Entity Target Input Parameter Delay Only Once OnPressed text_button_on Display <none> 0.00 Yes
Second Map - Outputs
Open the logic_auto that will fire the entity or sequence (the light here).
My Output > Target Entity Target Input Parameter Delay Only Once OnMapSpawn red TurnOn <none> 0.00 Yes
OnMapTransition
with the logic_auto as crashing during a transition will cause problems when reloading a save. [todo tested in?]And that's it. If the button isn't pressed, the light will be off in the next level. As soon as it is pressed, the light will be turned on.
Multiple Use Env_Global
Let's say we want the light to be toggled on and off when pressing the button. It requires a little more setup, but the process is fairly easy.
First Map - Entity Setup
In the first map, you need:
- An activator (in this example - a button named
button
with a delay before reset set to-1
andToggle
andDon't Move
set inFlags
) - 2 env_global entities:
- The first one named
light_global
- with aGlobal State To Read
set toturn_on_light
- The second one named
light_global_off
- with aGlobal State To Read
set toturn_off_light
- The first one named
- (Optional) 2 game_text entities to check the env_global entities state
- The first one named
text_button_on
- The second one named
text_button_off
- The first one named
Second Map - Entity Setup
- 2 logic_auto entities:
- The first one with a
Global State To Read
set toturn_on_light
(it must be the same as the first env_global in the first map) - The second one with a
Global State To Read
set toturn_off_light
(it must be the same as the second env_global in the first map)
- The first one with a
- The entity you want to fire (in this example - a light named
red
)
First Map - Outputs
Open the activator (the button here) that will fire the env_global entities.
Second Map - Outputs
Open the logic_auto with Global State To Read
set to turn_on_light
(logic_auto that will turn on the light)
My Output > Target Entity Target Input Parameter Delay Only Once OnMapSpawn red TurnOn <none> 0.00 No
Open the logic_auto with Global State To Read
set to turn_off_light
(logic_auto that will turn off the light)
My Output > Target Entity Target Input Parameter Delay Only Once OnMapSpawn red TurnOff <none> 0.00 No
And that's all there is to it.
External links
Multiplayer - Change The Nature Of Next Round