Trigger changelevel

From Valve Developer Community
Revision as of 11:35, 19 January 2010 by MrTwoVideoCards (talk | contribs) (Notes)

Jump to: navigation, search

Template:Wrongtitle This is a brush entity available in all Source games.

Entity Description

A brush entity that triggers a level change.

Notes

Place an info_landmark in both maps to mark the same location in both maps.

To fire events in the next level, use the OnChangeLevel output to turn on an env_global in the current level. Create a logic_auto in the next level that checks for the state set by the env_global.

To control which entities go through the level transition, create one or more trigger_transitions and give them the same name as the landmark. Any entities within the trigger_transition(s) will go to the next map.

Level transitions must be two-way. That is to say, there must be a trigger_changelevel in the next level that points to the current level, as well as the trigger_changelevel taking the player to the next level. If a one-way level transition is desired, simply make this second trigger_changelevel inaccessible to the player (and/or check the "Disable Touch" flag).

The info_landmark must be in the player's PVS when the level change is triggered. If it is not, the level change will fail. Both info_landmark entities must have the same name.

Although the info_landmark should be in a corresponding position in both levels, the two trigger_changelevel brushes must NOT be in the same place in each level. If they are, you will be thrown into an infinite loop, endlessly ping-ponging back and forth between the two levels.

{note | Although the Landmark entity must be in the same place geometry-wise, it doesn't need to be in the exact location in the map's coordinates (This also includes height). A landmark could literally be placed anywhere in the new map grid thats being changed too, as long as the transition geometry surrounding it is exactly as the previous level's geometry. This can help with scenarios such as having large maps, i.e: The player traverses east of the top view, and must continue to do so in the next map, which would be impossible given starting the next map in the ending location. Simplifying your geometry near level transitions can make working on them much easier!}

Availability

This brush-based entity is available in:

all Source games.

In code it is represented by class CChangeLevel, defined in triggers.cpp.

Keyvalues

  • targetname
<target_source> Name.
  • map
<string> New Map Name.
  • landmark
<target_destination> Landmark Name.

Flags

  • 2 : Disable Touch
  • 4 : To Previous Chapter

Inputs

  • ChangeLevel
Cause the level change. Use this when triggering the level change with a button, etc.

Outputs

  • OnChangeLevel
Fired when the level changes.