You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
105 lines
2.8 KiB
105 lines
2.8 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
// |
|
//=============================================================================// |
|
//========================================================= |
|
// NPC template |
|
//========================================================= |
|
#include "cbase.h" |
|
|
|
// memdbgon must be the last include file in a .cpp file!!! |
|
#include "tier0/memdbgon.h" |
|
|
|
#if 0 |
|
|
|
//========================================================= |
|
// NPC's Anim Events Go Here |
|
//========================================================= |
|
|
|
class CMyNPC : public CAI_BaseNPC |
|
{ |
|
public: |
|
DECLARE_CLASS( CMyNPC, CAI_BaseNPC ); |
|
|
|
void Spawn( void ); |
|
void Precache( void ); |
|
void MaxYawSpeed( void ); |
|
int Classify ( void ); |
|
void HandleAnimEvent( animevent_t *pEvent ); |
|
}; |
|
LINK_ENTITY_TO_CLASS( my_NPC, CMyNPC ); |
|
|
|
//========================================================= |
|
// Classify - indicates this NPC's place in the |
|
// relationship table. |
|
//========================================================= |
|
int CMyNPC::Classify ( void ) |
|
{ |
|
return CLASS_MY_NPC; |
|
} |
|
|
|
//========================================================= |
|
// SetYawSpeed - allows each sequence to have a different |
|
// turn rate associated with it. |
|
//========================================================= |
|
float CMyNPC::MaxYawSpeed ( void ) |
|
{ |
|
switch ( m_Activity ) |
|
{ |
|
case ACT_IDLE: |
|
default: |
|
return 90; |
|
} |
|
} |
|
|
|
//========================================================= |
|
// HandleAnimEvent - catches the NPC-specific messages |
|
// that occur when tagged animation frames are played. |
|
//========================================================= |
|
void CMyNPC::HandleAnimEvent( animevent_t *pEvent ) |
|
{ |
|
switch( pEvent->event ) |
|
{ |
|
case 0: |
|
default: |
|
CAI_BaseNPC::HandleAnimEvent( pEvent ); |
|
break; |
|
} |
|
} |
|
|
|
//========================================================= |
|
// Spawn |
|
//========================================================= |
|
void CMyNPC::Spawn() |
|
{ |
|
Precache( ); |
|
|
|
engine.SetModel(edict(), "models/mymodel.mdl"); |
|
UTIL_SetSize( this, Vector( -12, -12, 0 ), Vector( 12, 12, 24 ) ); |
|
|
|
SetSolid( SOLID_SLIDEBOX ); |
|
SetMoveType( MOVETYPE_STEP ); |
|
m_bloodColor = BLOOD_COLOR_GREEN; |
|
m_iHealth = 8; |
|
m_vecViewOffset = Vector ( 0, 0, 0 );// position of the eyes relative to NPC's origin. |
|
m_flFieldOfView = 0.5;// indicates the width of this NPC's forward view cone ( as a dotproduct result ) |
|
m_NPCState = NPCSTATE_NONE; |
|
|
|
NPCInit(); |
|
} |
|
|
|
//========================================================= |
|
// Precache - precaches all resources this NPC needs |
|
//========================================================= |
|
void CMyNPC::Precache() |
|
{ |
|
engine.PrecacheModel("models/mymodel.mdl"); |
|
} |
|
|
|
//========================================================= |
|
// AI Schedules Specific to this NPC |
|
//========================================================= |
|
#endif
|
|
|