www.pudn.com > 3D_OnlineGame_Humen.rar > D3DRMScreen.h


#ifndef __D3DRMSCREEN_H__ 
#define __D3DRMSCREEN_H__ 
 
#define NUM_STOP_FRAMES			D3DVAL(19)		//移動的總幀數 
#define NUM_LEFTGO_FRAMES		D3DVAL(6)		//左腳的總幀數 
#define NUM_RIGHTGO_FRAMES		D3DVAL(6)		//右腳的總幀數 
#define NUM_FIGHTREADY_FRAMES	D3DVAL(4)		//戰斗預備的總幀數 
 
#define NUM_HAND_FRAMES			D3DVAL(6)		//拳擊 
#define NUM_FOOT_FRAMES			D3DVAL(6)		//踢退 
#define NUM_PRACTICE_FRAMES		D3DVAL(6)		//練武 
#define NUM_DAZUO_FRAMES		D3DVAL(0)		//打坐 
#define NUM_SLEEP_FRAMES		D3DVAL(0)		//休息 
#define NUM_DEAD_FRAMES			D3DVAL(0)		//死亡 
#define NUM_EAT_FRAMES			D3DVAL(10)		//吃 
#define NUM_DRINK_FRAMES		D3DVAL(10)		//喝 
#define NUM_KETOU_FRAMES		D3DVAL(4)		//磕頭 
#define NUM_WOUND_FRAMES		D3DVAL(10)		//受傷 
#define NUM_GURAD_FRAMES		D3DVAL(9)		//防守 
 
//定義某特定動作的開始幀 
#define STOP_START				D3DVAL(51) 
#define LEFTGO_START			D3DVAL(1) 
#define RIGHTGO_START			D3DVAL(7) 
#define FIGHTREADY_START		D3DVAL(42) 
 
#define HANDEXT_START			D3DVAL(140)		//泰山壓頂攻擊 
#define HANDEXTGURAD_START		D3DVAL(147)		//回避(泰山壓頂) 
#define FOOTEXT_START			D3DVAL(154)		//凌空踢腿(用泰山壓頂的回避) 
#define FOOTLOW_START			D3DVAL(119)		//掃堂腿 
#define FOOTLOWGURAD_START		D3DVAL(126)		//回避掃堂腿 
#define FOOTLOWWOUND_START		D3DVAL(133)		//被掃中 
 
#define HAND_START				D3DVAL(13) 
#define FOOT_START				D3DVAL(20) 
#define PRACTICE_START			D3DVAL(6) 
#define DAZUO_START				D3DVAL(97) 
#define SLEEP_START				D3DVAL(98) 
#define DEAD_START				D3DVAL(96) 
#define EAT_START				D3DVAL(71) 
#define DRINK_START				D3DVAL(81) 
#define KETOU_START				D3DVAL(91) 
#define WOUND_START				D3DVAL(99) 
#define GURAD_START				D3DVAL(110) 
 
typedef struct tagPathInfo 
{ 
    FLOAT                  fTime; 
    LPDIRECT3DRMFRAME3     pChaseFrame; 
    LPDIRECT3DRMFRAME3     pPlaneFrame; 
    LPDIRECT3DRMANIMATION2 pFlightPath; 
}PathInfo; 
 
enum 
{ 
	STOP,				//站立旋轉 
	LEFTGO,				//左腳走 
	RIGHTGO,			//右腳走 
	FIGHTREADY,			//戰斗預備 
	HAND,				//拳擊 
	FOOT,				//腳踢 
	HANDEXT,			//泰山壓頂 
	FOOTEXT,			//凌空踢腿 
	FOOTLOW,			//掃堂腿 
	DAZUO,				//打坐 
	SLEEP,				//休息 
	DEAD,				//死亡 
	ATTACK,				//劍擊 
	PRACTICE,			//練武 
	KETOU,				//磕頭 
	WOUND,				//受傷 
	FOOTLOWWOUND,		//被掃堂腿掃中 
	GURAD,				//防守 
	HANDEXTGURAD,		//上回避 
	FOOTLOWGURAD,		//回避(掃堂腿) 
	EAT,				//吃 
	DRINK,				//喝 
}; 
 
typedef struct tagFightPos{ 
	POSITION tagPosite;//when fight with other,this point tag's posite 
}TFightTag; 
 
typedef struct { 
	CList pathlist; 
	int PlayerState; 
	int iAimSite; 
	CString cXFileType; 
	CString cXFileName; 
  CString cTitle; 
	CString cCName; 
  LPDIRECT3DRMANIMATIONSET2 animset; 
	LPDIRECT3DRMFRAME3 frame3obj; 
  D3DVALUE time; 
	int nSteps; 
	int way; 
	CListfightopplist; 
}animationCallbackArgs; 
	 
typedef struct tatExitInfo{ 
	CString cXFileName; 
	LPDIRECT3DRMFRAME3 frame3obj; 
	D3DVECTOR posExit; 
}CExitInfo; 
 
void __cdecl animationCallback(LPDIRECT3DRMFRAME3 obj, LPVOID arg, D3DVALUE delta); 
void __cdecl animationDestroyCallback(LPDIRECT3DRMOBJECT pFrame,LPVOID pvArg); 
void __cdecl CleanupObjectsCallback( LPDIRECT3DRMOBJECT pObj, VOID* pArg ); 
void __cdecl MoveCameraCallback( LPDIRECT3DRMFRAME3 pCamera, VOID* pArg, D3DVALUE delta ); 
 
D3DVECTOR GetNextPosite(LPDIRECT3DRMFRAME3 npcframe,animationCallbackArgs * lpanimate); 
 
BOOL modifyfile(char* FileName,CString sTagName); 
 
HRESULT AddItemXFile(const char * filename,D3DVECTOR playerpos,CString cXfileName); 
HRESULT LoadXFile(const char *filename,D3DVECTOR playerpos,float fRotation); 
HRESULT AddXFile(const char *filename); 
 
void SetCammerPos(int cammerpos); 
 
void SomejoinMap(char * JoinMapMsg); 
// guanhua 2000/10/02 remark +1 
//void SomeQuitMap(char * ExitMapMsg,char *szExitName); 
// guanhua 2000/10/02 +1 
void SomeQuitMap(char * ExitMapMsg,char *szExitName,bool bEscape = FALSE); 
 
void DoFight(CString szWho,int iFightKind); 
void OtherFight(CString szCWho,CString szWho,CString szCWho2,CString szWho2); 
void StopOther(POSITION pos); 
#endif