Creating a schedule

From Valve Developer Community
Revision as of 13:34, 8 June 2006 by Ts2do (talk | contribs)
Jump to navigation Jump to search

Declaration

The first step to creating a schedule for your NPC is to create a name for it and add it to the enum. Here's an example name for a schedule: SCHED_COMBINE_GRENADE_COVER1.

Once the schedule is added to the enum, you must use the DEFINE_SCHEDULE macro in the AI_BEGIN_CUSTOM_NPC section.

Here's an example of the schedule code:

	DEFINE_SCHEDULE
	(
		SCHED_NEWNPC_SCHEDULE,

		"	Tasks"
		"		TASK_STOP_MOVING			0"
		"		TASK_FACE_ENEMY				0"
		"		TASK_ANNOUNCE_ATTACK			1"
		"		TASK_WAIT				1"
		"		TASK_RANGE_ATTACK1			0"
		"		TASK_CIT_RPG_AUGER			1"
		""
		"	Interrupts"
		"		COND_ENEMY_DEAD"
		"		COND_LIGHT_DAMAGE"
		"		COND_HEAVY_DAMAGE"
		"		COND_HEAR_DANGER"
		"		COND_NEW_ENEMY"
	)

It is also possible to use custom tasks and conditions here.

See sharedtasks_e in src\dlls\AI_Task.h for shared tasks allowed in a schedule.

See SCOND_t in src\dlls\AI_Condition.h for shared interruptions allowed in a schedule.

Implementation

Todo: Implementation
Creating an interaction Return to Creating an NPC