AI Perception Behavior Enhancement: Difference between revisions
Jump to navigation
Jump to search
TomEdwards (talk | contribs) mNo edit summary |
Ghost12332 (talk | contribs) No edit summary |
||
| Line 26: | Line 26: | ||
return SCHED_INVESTIGATE_SOUND; | 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== | ==Conclusion== | ||
Revision as of 11:38, 30 December 2008
In HL2, 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.