Path corner: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
mNo edit summary
(-added class hierarchy, cleanup)
Line 5: Line 5:
|engine=2
|engine=2
|in=0
|in=0
}}{{entity|path_corner|type=e0}}
}}
{{CD|CPathCorner|file1=pathcorner.cpp}}
{{entity|path_corner|type=e0}}


==Entity description==
==Entity description==
Line 32: Line 34:


==Keyvalues==
==Keyvalues==
*{{KV Targetname}}
{{KV Targetname}}
{{KV|Next stop target|string|intn=target|}}
{{KV|Next stop target|string|intn=target|}}
{{KV|Wait here (secs)|float|intn=wait|}}
{{KV|Wait here (secs)|float|intn=wait|}}
Line 38: Line 40:


==Flags==
==Flags==
* 1 : Wait for retrigger
{{fl|1|Wait for retrigger}}
* 2 : Teleport to THIS path_corner
{{fl|2|Teleport to THIS path_corner}}


==Inputs==
==Inputs==
*{{I Targetname}}
{{IO|SetNextPathCorner|param=target_destination|Set target [[path_corner]]}}
* '''SetNextPathCorner'''
: <target_destination> Set target [[path_corner]]


==Outputs==
==Outputs==
*{{O Targetname}}
{{IO|OnPass|Fires when a path follower passes this point. {{activator|train}}}}
*'''OnPass'''
 
: Fires when a path follower passes this point. {{activator|train}}
[[Category:AI]][[Category:Entities]]
[[Category:AI]][[Category:Entities]]

Revision as of 06:01, 11 August 2023

English (en)한국어 (ko)Translate (Translate)
path_corner
Path corner.png
TypePoint entity
EngineSource Source
AvailabilityIn all games
 
C++ Class hierarchy
CPathCorner
CPointEntity
CBaseEntity
C++ pathcorner.cpp

Template:Entity

Entity description

Notes

  • A path_corner is a corner in a path, either for a func_train or an NPC. path_corners can be chained together to form complex routes. To create a path_corner chain simply shift+drag an existing path_corner. The values will automatically be filled in. To manually make a chain (or link one up in a circle), edit the Next stop target property.
  • A path_corner_crash is identical to a path_corner, but can be enabled and disabled for a crash point; when an NPC is searching for a crash point, it will not search for generic path_corners
  • The path_corner entity is !FGD for base.fgd, so it only will appear in Hammer for Half-Life 2
C++ In code, it is represented by theCPathCornerclass, defined in thepathcorner.cppfile.

NPCs

A path_corner can be a destination for an NPC. When told to, NPCs will stop other movement and walk steadily towards a path_corner. It is entirely scripted behavior. Note that the Train Speed and wait values do not affect NPCs.

To make an NPC move to a path_corner edit the Target Path Corner keyvalue, either in Hammer or through the I/O system. Alternatively, an NPC can be made to follow a path_corner chain by using the aiscripted_schedule or scripted_sequence entities.

  • See also Assaults for an alternative way to create NPC routes without using path_corner.

Limitations and bugs

  • A path_corner (or the first path_corner on a chain) must be within 576 units for NPCs to find it.
  • It is either difficult or impossible to tell an NPC which direction to face once they've reached a path corner. If this is important, you may want to consider using Assaults instead.

Examples

Note that the example map does not have any info_nodes. They are not needed to have an NPC follow a path.

Keyvalues

Name (targetname) <string>[ Edit ]
The name that other entities refer to this entity by, via Inputs/Outputs or other keyvalues (e.g. parentname or target).
Also displayed in Hammer's 2D views and Entity Report.
See also:  Generic Keyvalues, Inputs and Outputs available to all entities

Next stop target (target) <string>
Wait here (secs) (wait) <float>
New train speed (speed) <float>
Leave at zero to leave path follower's speed the same

Flags

Wait for retrigger : [1]
Teleport to THIS path_corner : [2]

Inputs

SetNextPathCorner <targetnameRedirectInput/string>
Set target path_corner

Outputs

OnPass
Fires when a path follower passes this point. (!activator is the train)