Prop door rotating checkpoint: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
m (Robot: fixing template case.)
No edit summary
 
(26 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{note|The current description of this entity is based on unofficial data based on data mining. Anything that may be read here is largely incomplete or, in some cases, incorrect.}}
{{LanguageBar}}
{{CD|CPropDoorRotatingCheckpoint}}
{{This is a|model entity|name=prop_door_rotating_checkpoint|series=Left 4 Dead}} It is a special variant of {{ent|prop_door_rotating}} for checkpoint doors in the world.


== Entity Description ==
It's used by {{ent|info_changelevel}} to determine when to start the transition to the next map when all survivors stand inside. Usually only 1 door is used for ending checkpoint but it's possible to have multiple doors in which case all of them need to be closed. No doors is also possible but to achieve that the checkpoint must start with at least one door which is then killed afterwards via for example {{ent|logic_auto}}'s OnMapSpawn output. Having no doors this way might be useful in order to have saferoom activated by a button and utilizing Enable/Disable inputs of the info_changelevel entity or just have a saferoom that starts the transition immediately as all survivors touch it.
A rotating door which serves as an entrance or exit to a checkpoint room in Left 4 Dead.


== Keyvalues ==
In Versus mode, the starting checkpoint door cannot be closed after it's been opened and it opens automatically if it remains closed for the amount of seconds specified in <code>versus_force_start_time</code> {{|Convars|cvar}}.
* {{KV Targetname}}
* {{KV Parentname}}
* {{KV Angles}}
* {{KV Global}}
* {{KV Studiomodel}}
* '''hardware'''
: <choices> Hardware Type
:{|
! Literal Value || Description
|-
| 0 || <None>
|-
| 1 || Lever
|-
| 2 || Push bar
|-
| {{EP1 add|3}} || {{EP1 add|Keypad}}
|}
* '''spawnpos'''
: <choices> Spawn Position
:{|
! Literal Value || Description
|-
| 0 || Closed
|-
| 1 || Open forward
|-
| 2 || Open back
|-
| 3 || Ajar (use Ajar Angles)
|}
* '''ajarangles'''
: <angle> If the door 'Spawn Position' is set to Ajar, these are the angles to spawn at, instead of being open or closed.
* '''axis'''
: <axis> Hinge Axis - Altering these values apparently has no effect. (Possible bug.)
* '''distance'''
: <float> The amount, in degrees, that the door should rotate when opened.
* '''speed'''
: <integer> The speed at which the door moves.
* '''soundopenoverride'''
: <sound> Sound played when the door has finished opening. OnFullyOpen is triggered at this time.
* '''soundcloseoverride'''
: <sound> Sound played when the door has finished closing. OnFullyClosed is triggered at this time.
* '''soundmoveoverride'''
: <sound> Sound played when the door starts to move.
* '''returndelay'''
: <integer> Amount of time, in seconds, after the door has opened before it closes. If the value is set to -1, the door never closes itself.
* '''dmg'''
: <integer> Amount of damage done to entities that block the movement of this door, per frame.
* '''health'''
: <integer> 0 = Unbreakable // NEEDHELP: Doesn't look like this is hooked up anymore?
* '''soundlockedoverride'''
: <sound> Sound played when the player tries to open the door, and fails because it's locked.
* '''soundunlockedoverride'''
: <sound> Sound played when the door is unlocked.
* '''forceclosed'''
: {{boolean}} If set, this door will close no matter what. Useful for doors that have to close even if the player tries to block them with objects.
* '''body'''
: <integer> Determines the type of the door. 0 is without, 1 is with the piece of metal which seals it.
* '''{{EP1 add|slavename}}'''
: <target_destination> The name of any doors that should be slaved to this door (i.e. should open when this one opens, and close when this one closes).
* '''{{EP1 add|opendir}}'''
: <choices> Force the door to open only forwards or only backwards. Both directions is the standard door behavior.
:{|
! Literal Value || Description
|-
| 0 || Open Both Directions
|-
| 1 || Open Forward Only
|-
| 2 || Open Backward Only
|}


== Flags ==
{{Note|Notices and information how to set up doors on <code>prop_door_rotating</code> page also applies here}}
<!-- 32768: Ignore player +USE ----- NOT LOGICAL! Players have to +use the doors to close them in L4D!! -->
{{OtherKIO|prop_door_rotating|All}}
{{Note|The sound that plays for the metal bar being removed is hardcoded. It can only be changed by editing the level_sound script for each map. More info on how to do so can be found [[L4D Level Design/Checkpoints#"Last Stand" Saferoom Door|here]]}}


[[Category:Left 4 Dead Entities]]
== Gallery ==
Models used in official maps. 'Exit' and 'Dead End' signs should be usually facing inside of the saferoom. The models {{code|0x}} and {{code|-0x}} differ by having hinge on the opposite side. For each of these models there's also static version with {{code|_static}} at the end which are usable as {{ent|prop_static}}.
<gallery mode=nolines widths=400px heights=350px>
checkpoint_door_01.jpg|<code>models/props_doors/checkpoint_door_01.mdl</code> and <code>models/props_doors/checkpoint_door_-01.mdl</code>
checkpoint_door_02.jpg|<code>models/props_doors/checkpoint_door_02.mdl</code> and <code>models/props_doors/checkpoint_door_-02.mdl</code>
</gallery>
 
== Convars ==
{{varcom|start}}
{{varcom|z_checkpoint_debug|0|boolean|Shows detected checkpoints and checkpoint doors and areas associated with them.}}
{{varcom|versus_force_start_time|90|seconds|Starts versus game after this amount of time, even if survivors are still inside the safe room}}
{{varcom|end}}
 
== See also ==
* {{ent|prop_door_rotating}}
* [[Door creation]]
* [[WiseDoor]] - example use and illustration of doors.
 
[[Category:QC Keyvalues]]
[[Category:Prop entities|door rotating checkpoint]]

Latest revision as of 02:01, 11 June 2025

English (en)Translate (Translate)
C++ Class hierarchy
CPropDoorRotatingCheckpoint
CPropDoorRotating
CBasePropDoor
CDynamicProp
CBreakableProp
CBaseProp
CBaseAnimating
CBaseEntity

prop_door_rotating_checkpoint is a model entity available in Left 4 Dead seriesLeft 4 Dead series Left 4 Dead series. It is a special variant of prop_door_rotating for checkpoint doors in the world.

It's used by info_changelevel to determine when to start the transition to the next map when all survivors stand inside. Usually only 1 door is used for ending checkpoint but it's possible to have multiple doors in which case all of them need to be closed. No doors is also possible but to achieve that the checkpoint must start with at least one door which is then killed afterwards via for example logic_auto's OnMapSpawn output. Having no doors this way might be useful in order to have saferoom activated by a button and utilizing Enable/Disable inputs of the info_changelevel entity or just have a saferoom that starts the transition immediately as all survivors touch it.

In Versus mode, the starting checkpoint door cannot be closed after it's been opened and it opens automatically if it remains closed for the amount of seconds specified in versus_force_start_time cvar ↓.

Note.pngNote:Notices and information how to set up doors on prop_door_rotating page also applies here
Note.pngNote:All Keyvalues / Inputs / Outputs are same as prop_door_rotating.
Note.pngNote:The sound that plays for the metal bar being removed is hardcoded. It can only be changed by editing the level_sound script for each map. More info on how to do so can be found here

Gallery

Models used in official maps. 'Exit' and 'Dead End' signs should be usually facing inside of the saferoom. The models 0x and -0x differ by having hinge on the opposite side. For each of these models there's also static version with _static at the end which are usable as prop_static.

Convars

Cvar/Command Parameters or default value Descriptor Effect
z_checkpoint_debug 0 boolean Shows detected checkpoints and checkpoint doors and areas associated with them.
versus_force_start_time 90 seconds Starts versus game after this amount of time, even if survivors are still inside the safe room

See also