AI Perception Behavior Enhancement: Difference between revisions
Jump to navigation
Jump to search
Tannerbondy (talk | contribs) mNo edit summary |
mNo edit summary |
||
Line 1: | Line 1: | ||
In | In [[Half-Life 2]], if an idle [[NPC]] hears a sound but doesn't see its emitter, it will only turn in the direction of the sound for a bit before returning to its previous action. | ||
With the modification below the NPC will investigate the source of the sound instead. | With the modification below the NPC will investigate the source of the sound instead. |
Revision as of 17:58, 13 March 2011
In Half-Life 2, if an idle NPC hears a sound but doesn't see its emitter, it will only turn in the direction of the sound for a bit before returning to its previous action.
With the modification below the NPC will investigate the source of the sound instead.
Open the ai_basenpc_schedule.cpp
file and look for the function SelectAlertSchedule()
. Look for the following code:
if ( HasCondition ( COND_HEAR_DANGER ) || HasCondition ( COND_HEAR_PLAYER ) || HasCondition ( COND_HEAR_WORLD ) || HasCondition ( COND_HEAR_BULLET_IMPACT ) || HasCondition ( COND_HEAR_COMBAT ) ) { return SCHED_ALERT_FACE_BESTSOUND; }
Replace this code with:
if ( HasCondition ( COND_HEAR_DANGER ) || HasCondition ( COND_HEAR_PLAYER ) || HasCondition ( COND_HEAR_WORLD ) || HasCondition ( COND_HEAR_BULLET_IMPACT ) || HasCondition ( COND_HEAR_COMBAT ) ) { return SCHED_INVESTIGATE_SOUND; }
Alternate Code:
if ( HasCondition ( COND_HEAR_DANGER || COND_HEAR_PLAYER || COND_HEAR_WORLD || COND_HEAR_BULLET_IMPACT || COND_HEAR_COMBAT ) ) { return SCHED_INVESTIGATE_SOUND; }
Conclusion
With this code, as soon as NPC hears sounds that meet conditions, they will investigate it.