www.pudn.com > mir112347628.rar > Actor.h


#ifndef _CACTOR_H 
#define _CACTOR_H 
 
 
 
/****************************************************************************************************************** 
 
	CActor Class 
 
*******************************************************************************************************************/ 
#pragma pack(1) 
typedef struct tagMESSAGEBODYWL 
{ 
	LONG	lParam1; 
	LONG	lParam2; 
	LONG	nTag1;			// ¶§¸°³ð ID.(SM_STRUCKÀ϶§). 
	LONG	nTag2; 
}MESSAGEBODYWL, *LPMESSAGEBODYWL; 
typedef struct tagMESSAGEBODYW 
{ 
	WORD	wParam1; 
	WORD	wParam2; 
	WORD	wTag1;			// ¶§¸°³ð ID.(SM_STRUCKÀ϶§). 
	WORD	wTag2; 
}MESSAGEBODYW, *LPMESSAGEBODYW; 
 
typedef struct tagCHARDESC 
{ 
	LONG	nFeature; 
	LONG	nStatus; 
}CHARDESC, *LPCHARDESC; 
 
typedef struct tagFEATURE 
{ 
	BYTE	bGender;  
	BYTE	bWeapon; 
	BYTE	bDress;  
	BYTE	bHair; 
}FEATURE, *LPFEATURE; 
#pragma pack(8) 
 
 
 
class CActor 
{ 
private: 
public: 
	DWORD				m_dwIdentity;					// ID Index From Server. 
	CHAR				m_szName[64];					// ij¸¯Åͳª ¸ó½ºÅÍÀÇ À̸§. 
	CHAR				m_szGuildName[64]; 
 
	FEATURE				m_stFeature;					// ij¸¯ÅÍÀÇ ¿ÜÇüÀ» °áÁ¤Áþ´Â´Ù. 
	BYTE				m_bActorImgIdx;					// ÇöÀç Actor°¡ °¡Áú À̹ÌÁö±¸Á¶Ã¼ÀÇ ¹øÈ£. 
	BYTE				m_bEffectImgIdx;				// ÇöÀç Actor°¡ °¡Áú À̹ÌÁö±¸Á¶Ã¼ÀÇ ¹øÈ£. 
	CWHWilImageData*	m_pxActorImage;					// À̹ÌÁö¸¦ ¾ò¾î¿Ã Æ÷ÀÎÅ͵é. 
	RECT				m_rcActor;						// ÇöÀç ½ºÅ©¸°»óÀÇActorÀÇ »ç°¢ ¿µ¿ª. 
	RECT				m_rcTargetRgn;					// ÇöÀç ActorÀÇ Å¸°Ù¿µ¿ª. 
 
	DWORD				m_dwFstFrame;					// ÇöÀç µ¿ÀÛÀÇ ½ÃÀÛ ÇÁ·¹ÀÓ. 
	DWORD				m_dwEndFrame;					// ÇöÀç µ¿ÀÛÀÇ ¸¶Áö¸·ÇÁ·¹ÀÓ. 
	WORD				m_wDelay;						// ÇöÀç µ¿ÀÛ¿¡ ´ëÇÑ Áö¿¬½Ã°£. 
 
	BYTE				m_bCurrMtn;						// ÇöÀç µ¿ÀÛ. 
	BYTE				m_bCurrDir;						// ÇöÀç ¹æÇâ. 
	BYTE				m_bMoveDir;						// ÇöÀç ¹æÇâ. 
	DWORD				m_dwCurrFrame;					// ÇöÀç ÇÁ·¹ÀÓ. 
	WORD				m_wCurrDelay;					// ÇöÀç Áö¿¬½Ã°£. 
 
	WORD				m_wOldPosX;						// ÇöÀç ÇൿÀÌ ÀÖ±âÀüÀÇ Å¸ÀÏXÁÂÇ¥. 
	WORD				m_wOldPosY; 
	BYTE				m_bOldDir;						// ÇöÀç ÇൿÀÌ ÀÖ±âÀüÀÇ ¹æÇâ. 
	WORD				m_wPosX;						// ŸÀÏ XÁÂÇ¥. 
	WORD				m_wPosY;						// ŸÀÏ YÁÂÇ¥. 
	SHORT				m_shShiftPixelX;				// ÇöÀç ÀÚ½ÅÀÇ Å¸ÀÏ¿¡¼­ XÃุŭ À̵¿ÇÑ Çȼ¿ÀÇ °Å¸®. 
	SHORT				m_shShiftPixelY;				// ÇöÀç ÀÚ½ÅÀÇ Å¸ÀÏ¿¡¼­ YÃุŭ À̵¿ÇÑ Çȼ¿ÀÇ °Å¸®. 
	SHORT				m_shShiftTileX;					// ÇöÀç ÀÚ½ÅÀÇ Å¸ÀÏ¿¡¼­ XÃุŭ À̵¿ÇÑ Å¸ÀÏÀÇ °Å¸®. 
	SHORT				m_shShiftTileY;					// ÇöÀç ÀÚ½ÅÀÇ Å¸ÀÏ¿¡¼­ YÃุŭ À̵¿ÇÑ Å¸ÀÏÀÇ °Å¸®. 
	SHORT				m_shScrnPosX;					// Áß½ÉÁ¡À» °í·ÁÇÏÁö ¾ÊÀº È­¸é»óÀÇ XÁÂÇ¥. 
	SHORT				m_shScrnPosY;					// Áß½ÉÁ¡À» °í·ÁÇÏÁö ¾ÊÀº È­¸é»óÀÇ YÁÂÇ¥. 
	BYTE				m_bMoveSpeed;					// À̵¿¼Óµµ. 
 
	CWHQueue			m_xPacketQueue;					// Actor°¡ ó¸®ÇØ¾ßµÉ ¸Þ½ÃÁö¸¦ ÀúÀåÇϰí Àִ ť. 
	BOOL				m_bMsgHurryCheck;				// ¸Þ½ÃÁö°¡ 2°³ÀÌ»ó ½×¿©ÀÖÀ»¶§´Â ÇÁ·¹ÀÓÀ» 1ÇÁ·¹ÀÓ¾¿À» °Ç³Ê¶Ú´Ù. 
 
	BYTE				m_bBackStepFrame; 
	BYTE				m_bBackStepFrameCnt; 
 
	DWORD				m_dwCurrEffectFrame;			// ij¸¯ÅÍ EffectÇöÀç ÇÁ·¹ÀÓ. 
	DWORD				m_dwFstEffectFrame;				// ij¸¯ÅÍ EffectóÀ½ ÇÁ·¹ÀÓ. 
	DWORD				m_dwEndEffectFrame;				// ij¸¯ÅÍ Effect¸¶Áö¸· ÇÁ·¹ÀÓ. 
	BYTE				m_bEffectFrame; 
	BYTE				m_bEffectFrameCnt; 
	BYTE				m_bLightRadius[2];				// ±¤¿ø ³Êºñ. 
	BYTE				m_bLightColor [2][3];			// ±¤¿ø »ö. 
 
	BOOL				m_bUseEffect;					// ÀÌÆåÆ®ÇÁ·¹ÀÓÀ» »ç¿ë. 
	BOOL				m_bUseSwordEffect;				// °Ë¹ýÈ¿°ú »ç¿ë. 
 
	BOOL				m_bWarMode; 
	DWORD				m_dwWarModeTime; 
 
	BYTE				m_bHPPercent; 
	WORD				m_wMAXHP; 
	WORD				m_wHP; 
	WORD				m_wMP; 
	BOOL				m_bOpenHealth; 
 
	BYTE				m_bLightSize;					// ActorÁÖº¯ÀÇ ±¤¿øÅ©±â. 
 
	D3DVERTEX			m_avBoard[4]; 
 
	WORD				m_wABlendDelay; 
	WORD				m_wABlendCurrDelay; 
	BOOL				m_bABlendRev; 
 
	BOOL				m_bReverse; 
 
	INT					m_nState; 
	WORD				m_wStateClr; 
 
	DWORD				m_dwNameClr; 
 
	BOOL				m_bIsDead; 
 
	FEATURE				m_stHitter; 
 
	BYTE				m_bAppearState; 
 
	BYTE				m_bMoveNextFrmCnt; 
	BOOL				m_bIsMoved; 
 
	BOOL				m_bFstSoundPlayed; 
 
	INT					m_nDividedChatLine; 
	DWORD				m_wCurrChatDelay; 
	CHAR				m_szChatMsg[MAX_PATH];			// äÆÃ¸Þ½ÃÁö. 
	CHAR				m_szChatMsgArg[5][MAX_PATH];	// äÆÃ¸Þ½ÃÁö¸¦ 5°³ÀÇ ½ºÆ®¸µÀ¸·Î ±¸ºÐÇѰÍ. 
 
public: 
//---------------------------------------------------------------------------------------------------------------// 
// »ý¼ºÀÚ ¹× ¼Ò¸êÀÚ. 
	CActor(); 
	~CActor(); 
 
	virtual VOID InitActor(); 
	virtual VOID DestroyActor(); 
//---------------------------------------------------------------------------------------------------------------// 
 
//---------------------------------------------------------------------------------------------------------------// 
// »ý¼º. 
	virtual BOOL Create(CImageHandler* pxImgHandler, FEATURE* pstFeature, BYTE bMtn, WORD bDir, WORD wPosX, WORD wPosY); 
//---------------------------------------------------------------------------------------------------------------// 
 
	BOOL LoadEffect(CImageHandler* pxImgHandler, WORD wEffectNum, BYTE bDir = 0); 
	VOID DrawWithEffected(INT nx, INT nY, INT nXSize, INT nYSize, WORD* pwSrc, WORD wChooseColor1 = 0XFFFF, WORD wChooseColor2 = 0XFFFF, BOOL bFocused = FALSE, BYTE bOpa = 50, WORD wState = _STATE_NOTUSED); 
//---------------------------------------------------------------------------------------------------------------// 
// ÇÁ·¹ÀÓ ¼³Á¤°ü·Ã. 
	BOOL	CheckFeatureValidate(FEATURE stFeature); 
	BOOL	ChangeFeature(FEATURE stFeature); 
	virtual BOOL SetMotionFrame(BYTE bMtn, BYTE bDir); 
//---------------------------------------------------------------------------------------------------------------// 
 
//---------------------------------------------------------------------------------------------------------------// 
// ij¸¯ÅÍ À̵¿. 
	VOID SetMoving(); 
	VOID SetBackStepMoving(); 
	VOID SetMoved(); 
	WORD GetCharState(); 
//---------------------------------------------------------------------------------------------------------------// 
 
	VOID ChatMsgAdd(); 
	VOID ShowMessage(INT nLoopTime); 
	VOID StruckMsgReassign(); 
	 
	virtual VOID PlayActSound(); 
 
//---------------------------------------------------------------------------------------------------------------// 
// µ¿ÀÛ ÁøÇà. 
	virtual BOOL UpdatePacketState(); 
	virtual VOID UpdateMotionState(INT nLoopTime, BOOL bIsMoveTime); 
	virtual BOOL UpdateMove(BOOL bIsMoveTime); 
 
// À¯Çüº° ÆÐŶ»óÅÂÀû¿ë. 
	virtual VOID OnCharDescPacket(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnUserName(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnChangeNameClr(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnChangeLight(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnOpenHealth(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnCloseHealth(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnFeatureChanged(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnHealthSpellChanged(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnWalk(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnTurn(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnDigup(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnDigDown(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnDeath(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnBackStep(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnStruck(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnHit(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnFlyAxe(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnLighting(LPPACKETMSG lpPacketMsg); 
//---------------------------------------------------------------------------------------------------------------// 
 
//---------------------------------------------------------------------------------------------------------------// 
// Rendering. 
	virtual BOOL DrawActor(CMapHandler* pxMap, BOOL bFocused = FALSE, BOOL bShadowAblended = FALSE,  
		                   BOOL bUseScrnPos = TRUE, BOOL bDrawShadow = TRUE); 
	virtual VOID DrawHPBar(); 
	virtual VOID DrawName(); 
 
	BOOL DrawEffect(); 
//---------------------------------------------------------------------------------------------------------------// 
protected: 
public: 
}; 
 
 
 
 
 
 
 
 
/****************************************************************************************************************** 
 
	CNPC Class 
 
*******************************************************************************************************************/ 
class CNPC : public CActor 
{ 
private: 
private: 
public: 
	virtual VOID OnHit(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnTurn(LPPACKETMSG lpPacketMsg); 
	virtual BOOL UpdatePacketState(); 
	virtual VOID UpdateMotionState(INT nLoopTime, BOOL bIsMoveTime); 
	virtual BOOL DrawActor(CMapHandler* pxMap, BOOL bFocused = FALSE, BOOL bShadowAblended = FALSE,  
		                   BOOL bUseScrnPos = TRUE, BOOL bDrawShadow = TRUE); 
}; 
 
 
 
 
 
 
 
 
/****************************************************************************************************************** 
 
	CHero Class 
 
*******************************************************************************************************************/ 
#pragma pack(1) 
typedef struct tagFEATUREEX 
{ 
	BYTE		bHorse; 
	BYTE		wHairColor; 
	BYTE		wDressColor; 
}FEATUREEX, *LPFEATUREEX; 
#pragma pack(8) 
 
class CHero : public CActor 
{ 
private: 
public: 
	FEATUREEX			m_stFeatureEx; 
 
	BYTE				m_bWeaponImgIdx;				// ÇöÀç Actor ¹«±â°¡ °¡Áú À̹ÌÁö±¸Á¶Ã¼ÀÇ ¹øÈ£. 
	BYTE				m_bHairImgIdx;					// ÇöÀç Actor ¸Ó¸®°¡ °¡Áú À̹ÌÁö±¸Á¶Ã¼ÀÇ ¹øÈ£. 
	BYTE				m_bHorseImgIdx;					// ÇöÀç Actor ¸»ÀÌ   °¡Áú À̹ÌÁö±¸Á¶Ã¼ÀÇ ¹øÈ£. 
 
	BYTE				m_bYedoCnt; 
	BYTE				m_bFireHitCnt; 
	BOOL				m_bUseBanwol; 
	BOOL				m_bUseErgum; 
 
	RECT				m_rcHair; 
	RECT				m_rcWeapon; 
	RECT				m_rcHorse; 
 
	CWHWilImageData*	m_pxHairImage;		 
	CWHWilImageData*	m_pxWeaponImage; 
	CWHWilImageData*	m_pxHorseImage; 
 
	DWORD				m_dwCurrHairFrame; 
	DWORD				m_dwCurrWeaponFrame; 
	DWORD				m_dwCurrHorseFrame; 
 
	BYTE				m_bShieldCurrFrm; 
	WORD				m_wShieldCurrDelay; 
 
	SHORT				m_shHitSpeed; 
 
	BOOL				m_bIsMon; 
 
	SHORT				m_shCurrMagicID; 
 
protected: 
public: 
	CHero(); 
	~CHero(); 
 
	virtual VOID InitActor(); 
	virtual VOID DestroyActor(); 
 
	VOID ShowShield(); 
	VOID PlayMoveSound(); 
 
	virtual VOID PlayActSound(); 
	virtual BOOL ChangeFeature(FEATURE stFeature, FEATUREEX stFeatureEx); 
	virtual BOOL Create(CImageHandler* pxImgHandler, BYTE bMtn, BYTE bDir, WORD wPosX, WORD wPosY, FEATURE* pstFeature, FEATUREEX* pstFeatureEx); 
	virtual BOOL UpdatePacketState(); 
	virtual VOID UpdateMotionState(INT nLoopTime, BOOL bIsMoveTime); 
	virtual BOOL UpdateMove(BOOL bIsMoveTime); 
	virtual VOID OnRun(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnRush(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnMagicFire(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnSpell(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnCharDescPacket(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnFeatureChanged(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnCharStatusChanged(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnBackStep(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnDeath(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnWalk(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnTurn(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnStruck(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnHit(LPPACKETMSG lpPacketMsg); 
	virtual VOID OnButch(LPPACKETMSG lpPacketMsg); 
	virtual BOOL DrawActor(CMapHandler* pxMap, BOOL bFocused = FALSE, BOOL bShadowAblended = FALSE,  
		                   BOOL bUseScrnPos = TRUE, BOOL bDrawShadow = TRUE); 
}; 
 
 
 
 
 
 
 
 
 
 
/****************************************************************************************************************** 
 
	CMyHero Class 
 
*******************************************************************************************************************/ 
#pragma pack(1) 
typedef struct tagACTORABILITY 
{ 
    WORD	wAC; 
    WORD	wMAC; 
	WORD	wDC; 
    WORD	wMC; 
    WORD	wSC; 
	WORD	wHP; 
	WORD	wMP; 
    WORD	wMaxHP; 
    WORD	wMaxMP; 
	WORD	wWeight; 
 	BYTE	bExpCount; 
	BYTE	bExpMaxCount; 
	BYTE	bLevel; 
	BYTE	bReserved1; 
	BYTE	bWearWeight; 
	BYTE	bMaxWearWeight; 
    BYTE	bHandWeight; 
    BYTE	bMaxHandWeight; 
 
	DWORD	dwExp; 
	DWORD	dwMaxExp; 
	WORD	wMaxWeight; 
}ACTORABILITY, *LPACTORABILITY; 
 
typedef struct tagACTORSUBABILITY 
{ 
	WORD wAntiMagic;		// ¸¶¹ýȸÇÇ. 
	BYTE bHitPoint;			// Á¤È®. 
	BYTE bSpeedPoint;		// ¹Îø. 
	BYTE bAntiPoison;		// Áßµ¶È¸ÇÇ. 
	BYTE bPoisonRecover;	// Áßµ¶È¸º¹. 
	BYTE bHealthRecover;	// ü·Âȸº¹. 
	BYTE bSpellRecover;		// ¸¶·Âȸº¹. 
}ACTORSUBABILITY, *LPACTORSUBABILITY; 
#pragma pack(8) 
 
class CMyHero : public CHero 
{ 
private: 
public: 
//---------------------------------------------------------------------------------------------------------------// 
//  ij¸¯ÅÍ º¸Á¤¿ë º¯¼ö. 
	DWORD			m_dwMotionLockTime; 
	BOOL			m_bInputLock;				// ij¸¯ÅͰ¡ µ¿ÀÛµÇ¸é ¾î¶²ÀԷµµ ¹ÞÁö ¾Ê´Â´Ù. 
	BOOL			m_bMotionLock;				// ij¸¯ÅÍÀÇ µ¿ÀÛÀÌ ¼¼ÆÃµÇ¸é ¼­¹ö¿¡¼­ µ¿ÀÛ½ÂÀÎÀÌ ¿À±âÀü±îÁø ¾î¶²µ¿ÀÛµµ ¹ÞÁö ¾Ê´Â´Ù. 
//---------------------------------------------------------------------------------------------------------------// 
 
	CMapHandler*	m_pxMap; 
	BOOL			m_bCanRun; 
	BYTE			m_bAttackMode; 
	ACTORABILITY    m_stAbility; 
	ACTORSUBABILITY m_stSubAbility; 
	BYTE		    m_bJob; 
	UINT			m_nGlod; 
 
	CWHQueue		m_xPriorPacketQueue;					// Actor°¡ ó¸®ÇØ¾ßµÉ ¸Þ½ÃÁö¸¦ ÀúÀåÇϰí Àִ ť. 
 
//---------------------------------------------------------------------------------------------------------------// 
//  ij¸¯ÅÍ Delay°ü·Ã º¯¼ö. 
	DWORD			m_dwLastHitTime;						// Ä®ÁúÀÌ µé¾î°¬À»¶§ÀÇ Æ½ º¸°ü°ª. 
	DWORD			m_dwLastSpellTime;						// ¸¶¹ýÀÌ µé¾î°¬À»¶§ÀÇ Æ½ º¸°ü°ª. 
	DWORD			m_dwLastMagicTime;						// ¿°È­°á ½ÃÀüÈÄÀÇ Æ½º¸°ü°ª. 
	DWORD			m_dwLastStruckTime;						// ¸Â¾ÒÀ»¶§ÀÇ Æ½ º¸°ü°ª. 
	DWORD			m_dwLastPKStruckTime; 
	DWORD			m_dwLastRushTime;						// ¹«Åº¸ ½ÃÀüÈÄÀÇ Æ½º¸°ü°ª. 
	DWORD			m_dwLastFireHitTime;					// ¿°È­°á ½ÃÀüÈÄÀÇ Æ½º¸°ü°ª. 
 
	WORD			m_wMagicPKDelayTime;					// ¸¶¹ýÀ¸·Î »ç¶÷À» °ø°ÝÇßÀ»¶§ÀÇ ÆÐ³ÎƼDelay.(°È±â¿Í ¶Ù±â¿¡ Àû¿ëµÈ´Ù.) 
	WORD			m_wMagicDelayTime;						// ¸¶¹ýÀ»¾²°í ³­ÈÄ ´ÙÀ½¸¶¹ýÀÌ µé¾î°¥¶§±îÁöÀÇ Delay. 
//---------------------------------------------------------------------------------------------------------------// 
 
protected: 
public: 
	CMyHero(); 
	~CMyHero(); 
 
	virtual VOID InitActor(); 
	virtual VOID DestroyActor(); 
 
	VOID  SetMotionState(BYTE bMtn, BYTE bDir, INT nMouseTargetID = NULL, BOOL bIsDead = FALSE, LPPOINT lpptPos = NULL, SHORT shSkill = -1); 
	VOID  SetMapHandler(CMapHandler* pxMap); 
	VOID  SetMagic(LPCLIENTMAGICRCD	pstMagic, BYTE bKeyNum, BYTE bDir, INT nTargetID, FEATURE stTargetFeature, POINT ptTargetPos); 
	BOOL  SetOldPosition(); 
	BOOL  CheckMyPostion(); 
	VOID  AdjustMyPostion(); 
	BYTE  CalcDirection(INT nTargetTileX, INT nTargetTileY); 
	POINT GetPosMouseToTile(INT nXPos, INT nYPos); 
 
	virtual BOOL Create(CImageHandler* pxImgHandler, BYTE bMtn, BYTE bDir, WORD wPosX, WORD wPosY, FEATURE* pstFeature, FEATUREEX* pstFeatureEx); 
	virtual VOID OnHealthSpellChanged(LPPACKETMSG lpPacketMsg); 
	virtual BOOL UpdatePacketState(); 
	virtual VOID UpdateMotionState(INT nLoopTime, BOOL bIsMoveTime); 
	virtual BOOL UpdateMove(BOOL bIsMoveTime); 
	virtual BOOL DrawActor(BOOL bFocused = FALSE, BOOL bShadowAblended = FALSE,  
		                   BOOL bUseScrnPos = FALSE, BOOL bDrawShadow = TRUE); 
 
	__inline virtual BOOL ChangeFeature(FEATURE stFeature, FEATUREEX stFeatureEx) 
	{ 
		if ( m_bIsMon )		 
		{ 
			if ( CActor::ChangeFeature(stFeature) )					return TRUE; 
		} 
		else	 
		{ 
			if ( CHero::ChangeFeature(stFeature, stFeatureEx) )		return TRUE; 
		} 
 
		return FALSE; 
	} 
 
//---------------------------------------------------------------------------------------------------------------// 
//  ij¸¯ÅÍ Delay°ü·Ã ÇÔ¼ö. 
	BOOL CanNextHit();									// Áö±Ý Ä®ÁúÇÒ¼ö ÀÖ³ªÀÇ ¿©ºÎ. ·¹º§°ú Âø¿ë¹«°Ô¿¡ µû¶ó ´Þ¶óÁø´Ù. 
	BOOL CanWalk();										// Delay¿Í °ü·ÃÁö¾î¼­ ij¸¯ÅͰ¡ ¿òÁ÷Àϼö ÀÖ´ÂÁöÀÇ ¿©ºÎ. 
	BOOL CanRun();										// Delay¿Í °ü·ÃÁö¾î¼­ ij¸¯ÅͰ¡ ¿òÁ÷Àϼö ÀÖ´ÂÁöÀÇ ¿©ºÎ. 
//---------------------------------------------------------------------------------------------------------------// 
//---------------------------------------------------------------------------------------------------------------// 
//  À¯Àú ÀÔ·ÂÇÔ¼ö. 
	BOOL OnLButtonDown(POINT ptMouse, INT nTargetID = -1, BOOL bIsDead = FALSE, POINT* lpptTargetPos = NULL); 
	BOOL OnRButtonDown(POINT ptMouse); 
	BOOL OnKeyDown(WPARAM wParam, LPARAM lParam, POINT ptMouse, POINT ptTargetPos, INT nMosueTargetID, FEATURE stTargetFeature); 
//---------------------------------------------------------------------------------------------------------------// 
}; 
 
 
 
 
 
 
 
 
#endif // _CACTOR_H