#pragma once #include "SGamePlayer.h" class KSeqAvatar; class SGameNpc : public SGamePlayer { public: SGameNpc( ENC_INT nNpcID ); virtual ~SGameNpc(); /// 사용자 입력 응답(Server) virtual void OnNetInput( struct SGameMessage * pMsg ); virtual bool Process( DWORD time, unsigned long uProcessBitVector=0 ); virtual bool Render( unsigned long uRenderBitVector, class KViewportObject** ppViewportList, int nViewportCount); virtual void SetStatus( unsigned status ); static void SetForceRender( bool bRender ) { s_bForceRender = bRender; } static bool GetForceRender() { return s_bForceRender; } virtual void SetViewVectorAngle( float fAngle ); virtual void SetViewVector( const K3DVector &tpos ); virtual void SetNpcTargetHandle( AR_HANDLE hTarget ); void CheckTargetHandle(); protected: void Init(); void CheckAniState( class KSeqModel * pModel, const char * pCheckAniName, const char * pPlayAniName ); void CheckStatus( unsigned status ); void initMark(); /// 2011.06.14 - prodongi void procMark(DWORD time); void renderMark(KViewportObject* viewportList); /// Property Set virtual const char* getClassName() { return "SGameNpc"; } bool m_bQuestFlag[3]; K3DMatrix m_LocalMat; int m_nNPCID; class KSeqModel * m_pQuestStart; class KSeqModel * m_pQuestIng; class KSeqModel * m_pQuestFinish; class KSeqModel* m_seqMark; /// 2011.06.14 탈것대여, 라크환전, 텔레포터 마크 - prodongi static bool s_bForceRender; K3DVector m_vFixedView; ///< NPC고정 방향 K3DVector m_vOldTargetPos; AR_HANDLE m_hTargetHandle; };