Env global: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
(Filled in some info on env_global and global states)
(updates)
Line 1: Line 1:
{{toc-right}}
{{lang|Env global}}
{{Entity also in GoldSrc}}
{{Entity also in GoldSrc}}
[[File:Env global.png|left]]
[[File:Env global.png|left]]
{{base point|env_global}} It controls game-specific global states, such as whether the [[weapon_physcannon|gravity gun]] should become the super gravity gun in HL2.
{{base point|env_global}} It controls game-specific global states, such as whether the [[weapon_physcannon|gravity gun]] should become the super gravity gun in HL2.


Global states persist across level transitions, regardless of their status. Use the <code>dump_globals</code> console command to list all stored global states. {{note|Global states are not stored until an <code>env_global</code> receives any commands that modify the state, such as turning it on or off or changing the counter. Use the <code>Set Initial State</code> [[flag]] for the global to be added on spawn.}}
Global states persist across level transitions, regardless of their status. Global states are not stored until an <code>env_global</code> receives any commands that modify the state, such as turning it on or off or changing the counter. Use the <code>Set Initial State</code> [[flag]] for the global to be added on spawn.


To remove a global from the table entirely, set its state to "Dead" using the <code>Remove</code> input. It will remove itself on the next level transition. {{confirm}}
To remove a global from the table entirely, set its state to "Dead" using the <code>Remove</code> input. The related entity will remove itself on the next level transition.


Globals and their current state (in integer form) are added to all entites' response data for use in the [[Response System]].
Globals and their current state (in integer form) are added to all entities' response data for use in the [[Response System]].


==Keyvalues==
{{code class|CEnvGlobal|logicentities.cpp}}


{{KV|Global State to Set|choices|Game-specific global state that this entity sets. In practice all of Valve's FGDs include the HL2 states regardless of whether the game understands them.
==ConVars/Commands==
:* Gordon pre-criminal
{{varcom|start}}
:* Antlions are player allies
{{varcom|dump_globals|||Dumps data for all set global states.}}
:* Suit sprint function not yet enabled
{{varcom|global_set|globalname state||Set the status of a global state. First parameter is the name of it, second is a number.
:* Super phys gun is enabled {{note|Doesn't work in HL2:DM.}}
*0 {{=}} off
*1 {{=}} on
*2 {{=}} dead
A global can also be created instantly with this command.}}
{{varcom|end}}


:* Friendly encounter sequence (lower weapons, etc.)
==Flags==
:* Gordon is invulnerable
*1: Set Initial State - Whether this entity defines the global state when the map starts.
:* Don't spawn seagulls on the jeep
:* Episode 2: Alyx injured
:* Episodic: Alyx darkness mode
:* Ep2 Counter: Hunters to run over before they dodge


{{tip|Global states are not exclusive to these choices, and may be any text.}}
==Keyvalues==
}}
{{KV|Global State to Set (globalstate)|choices|Game-specific global state that this entity sets. In practice all of Valve's FGDs include the HL2 states regardless of whether the game understands them. Global states are not exclusive to these choices, and may be any text.}}
{{ScrollBox|title=EnvGlobal|
{| class="wikitable"
{{KV|Initial State|choices|Used by <code>Set Initial State</code> to determine what the global state should be set to when the map starts.
|-
:* Off
| gordon_precriminal || Gordon pre-criminal ([[Point Insertion]])
:* On
|-
:* Dead
| antlion_allied || Antlions are player allies
}}
|-
{{KV|Counter|int|An integer counter value associated with this global.|since=EP2}}
| suit_no_sprint || Suit sprint function not yet enabled<br/>(not required if suit not equipped)
{{bug|There is an aliasing problem for this keyvalue. To make it work, simply change its name in the source code DEFINE_OUTPUT declaration.}}
|-
{{KV Targetname}}
| super_phys_gun || Super phys gun is enabled<br/>{{note|Doesn't work in HL2:DM.}}
|-
| friendly_encounter || Friendly encounter sequence (lower weapons, etc.)
|-
| citizens_passive {{not in FGD}} || Citizens cannot be commanded by the player<br/>(also done by <code>gordon_precriminal</code>)
|-
| gordon_invulnerable || Gordon is invulnerable
|-
| no_seagulls_on_jeep || Don't spawn seagulls on the jeep
|-
| ep2_alyx_injured || Episode 2: Alyx injured
*Triples bullet spread for {{ent|weapon_alyxgun}}
*Increases time between shots
|-
| ep_alyx_darknessmode || Episodic: Alyx darkness mode<br/>(also affects citizens, headcrabs, and zombies in some ways)
|-
| hunters_to_run_over || Ep2 Counter: Hunters to run over before they dodge<br/>(after a certain number of {{ent|npc_hunter}}s are run over by a vehicle they will start dodging it)
|}
{{KV|Initial State (initialstate)|choices|Used by <code>Set Initial State</code> to determine what the global state should be set to when the map starts.
:*0: Off
:*1: On
:*2: Dead
}}
}}
{{KV|Counter (counter)|since=EP2|int|An integer counter value associated with this global.


== Flags ==
{{bug|There is an aliasing problem for this keyvalue (keyvalue and output have the same name). To make it work, simply change its name in the source code DEFINE_OUTPUT declaration.}}}}
 
{{KV BaseEntity|css=1}}
* Set Initial State: Whether this entity defines the global state when the map starts.


==Inputs==
==Inputs==
 
{{IO|TurnOn|Sets the global's state to ON.}}
{{ScrollBox|title=EnvGlobal|noscroll=true|
{{IO|TurnOff|Sets the global's state to OFF.}}
{{IO|TurnOn / TurnOff|Sets the global's state.}}
{{IO|Toggle|Switches state of the global between ON and OFF.}}
{{IO|Toggle|Toggles state of global between ON and OFF.}}
{{IO|Remove|Set state of global to DEAD.}}
{{IO|Remove|Set state of global to DEAD.}}
{{IO|AddToCounter|param=int|Adds the specified amount to the counter.|since=EP2}}
{{IO|AddToCounter|param=int|Adds the specified amount to the counter.|since=EP2}}
{{IO|SetCounter|param=int|Sets the value of the counter.|since=EP2}}
{{IO|SetCounter|param=int|Sets the value of the counter.|since=EP2}}
{{IO|GetCounter|: Fires this entity's Counter output.|since=EP2}}
{{IO|GetCounter|Fires this entity's <code>Counter</code> output.|since=EP2}}
{{I Targetname}}
{{I BaseEntity|prel4d=1}}
}}


==Outputs==
==Outputs==
 
{{IO|Counter|param=int|Outputs the integer value of this entity. May depend on global state.|since=EP2}}
{{ScrollBox|title=EnvGlobal|
{{O Targetname|l4d=1}}
{{IO|counter|param=int|Outputs the integer value of this entity. May depend on global state.|since=EP2}}
{{O Targetname}}
}}
 
[[Category:Entities]]

Revision as of 02:17, 18 September 2018

English (en)Translate (Translate)
Env global.png

Template:Base point It controls game-specific global states, such as whether the gravity gun should become the super gravity gun in HL2.

Global states persist across level transitions, regardless of their status. Global states are not stored until an env_global receives any commands that modify the state, such as turning it on or off or changing the counter. Use the Set Initial State flag for the global to be added on spawn.

To remove a global from the table entirely, set its state to "Dead" using the Remove input. The related entity will remove itself on the next level transition.

Globals and their current state (in integer form) are added to all entities' response data for use in the Response System.

C++ In code, it is represented by theCEnvGlobalclass, defined in thelogicentities.cppfile.

ConVars/Commands

Cvar/Command Parameters or default value Descriptor Effect
dump_globals Dumps data for all set global states.
global_set globalname state Set the status of a global state. First parameter is the name of it, second is a number.
  • 0 = off
  • 1 = on
  • 2 = dead
A global can also be created instantly with this command.

Flags

  • 1: Set Initial State - Whether this entity defines the global state when the map starts.

Keyvalues

Global State to Set (globalstate) ([todo internal name (i)]) <choices>
Game-specific global state that this entity sets. In practice all of Valve's FGDs include the HL2 states regardless of whether the game understands them. Global states are not exclusive to these choices, and may be any text.
gordon_precriminal Gordon pre-criminal (Point Insertion)
antlion_allied Antlions are player allies
suit_no_sprint Suit sprint function not yet enabled
(not required if suit not equipped)
super_phys_gun Super phys gun is enabled
Note.pngNote:Doesn't work in HL2:DM.
friendly_encounter Friendly encounter sequence (lower weapons, etc.)
citizens_passive !FGD Citizens cannot be commanded by the player
(also done by gordon_precriminal)
gordon_invulnerable Gordon is invulnerable
no_seagulls_on_jeep Don't spawn seagulls on the jeep
ep2_alyx_injured Episode 2: Alyx injured
ep_alyx_darknessmode Episodic: Alyx darkness mode
(also affects citizens, headcrabs, and zombies in some ways)
hunters_to_run_over Ep2 Counter: Hunters to run over before they dodge
(after a certain number of npc_hunters are run over by a vehicle they will start dodging it)
Initial State (initialstate) ([todo internal name (i)]) <choices>
Used by Set Initial State to determine what the global state should be set to when the map starts.
  • 0: Off
  • 1: On
  • 2: Dead
Counter (counter) ([todo internal name (i)]) <integer> (in all games since Half-Life 2: Episode Two)
An integer counter value associated with this global.
Icon-Bug.pngBug:There is an aliasing problem for this keyvalue (keyvalue and output have the same name). To make it work, simply change its name in the source code DEFINE_OUTPUT declaration.  [todo tested in ?]


Inputs

TurnOn
Sets the global's state to ON.
TurnOff
Sets the global's state to OFF.
Toggle
Switches state of the global between ON and OFF.
Remove
Set state of global to DEAD.
AddToCounter <integerRedirectInput/integer> (in all games since Half-Life 2: Episode Two)
Adds the specified amount to the counter.
SetCounter <integerRedirectInput/integer> (in all games since Half-Life 2: Episode Two)
Sets the value of the counter.
GetCounter  (in all games since Half-Life 2: Episode Two)
Fires this entity's Counter output.


Outputs

Counter <integerRedirectInput/integer> (in all games since Half-Life 2: Episode Two)
Outputs the integer value of this entity. May depend on global state.