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