⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 player.h

📁 国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国内还没有,所以找不到测试
💻 H
字号:
//-----------------------------------------------------------------------------------------------------------
//	File. Player.h
//-----------------------------------------------------------------------------------------------------------

#ifndef _PLAYER_
#define _PLAYER_

#ifdef _DEBUG
class CMcFonts;
#endif

//-----------------------------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------------------------
// Proto Type
//-----------------------------------------------------------------------------------------------------------
class CMCParts;
class CEquipment;
class CTestBullet;
class CCollision;
class CBaseBuildObject;
class CTerrain;
class CGameUI;
struct PICKING;

extern CTerrain * g_pTerrain;

enum PROPERTY_TYPE;
enum EQUIP_POS;
enum PLAYER { Self = 0, Your };
enum TEAM { SINGE_TEAM=0, RED_TEAM, BLUE_TEAM};

enum PLAYER_STATE	// 镜鳖 富鳖.. 捞吧肺 官曹鳖 富鳖..
{
	PS_MOVE_FRONT = 0,	
};


#define POS_SEND_FRAME		10
#define NORMAL_SPEED		36*1.3
#define SIDE_SPEED			30*1.3
#define BACK_SPEED			27*1.3
#define RADIUS_X			2.2f
#define RADIUS_Y			4.1f
#define RADIUS_Z			2.5f
#define CAMERA_HEIGHT		4.1f
#define GRAVITY				1.0f
#define JUMP_GRAVITY		20.0f
#define JUMP_SPEED			25.0f

#define COL_CHECK_DISTANCE	8.0f				//辟贸狼 蜡历啊 甸绢吭阑锭 眉农.
//-----------------------------------------------------------------------------------------------------------

//-----------------------------------------------------------------------------------------------------------
// S t r u c t
//-----------------------------------------------------------------------------------------------------------

struct D3DVERTEX
{
    D3DXVECTOR3 p;
	D3DXVECTOR3 n;
	static const DWORD FVF;
};

typedef struct
{
	bool bActive;	// 绊胶飘啊 混酒 乐蠢衬~
	DWORD dwTime;	//矫埃 timeGetTime();
	float fSpeed;	//加档
	float fAcceler;	//啊加档(何胶磐 淖阑锭: +蔼, 舶阑锭: -蔼)
	
	D3DXVECTOR3 vPos;
	D3DXVECTOR3 vDir;
	D3DXVECTOR3 vLook;
}GHOST;

typedef struct 
{
	short	nIndex;				// 敲饭捞绢狼 牢郸胶

	char	szID[17];			//酒捞叼
	char	szNickName[17];		//葱匙烙
	char	szClan[21];			//蜡历啊 加茄 努罚 捞抚

	WORD	wTeam;				// 敲饭捞绢 评~
	UINT	nKillNum;			// 懦荐
	UINT	nDeathNum;			// 磷篮荐
	
	BYTE	iLevel;				//蜡历 饭骇
	BYTE	iItemNum;			//蜡历啊 啊瘤绊 乐绰 酒捞袍 箭

	short	nPoint;				// 裙垫 器牢飘..
	DWORD	nTotalPoint;		// 配呕 器牢飘..   裙垫 器牢飘 拌魂茄蔼..
	DWORD	nExp;				// 版氰摹
	DWORD	nTotalExp;
	
	short	nCurHP,nMaxHP;
	bool	bWinner;			// 捞板衬?

	// 烙矫
	float fDistance;
	
	// New
	short nDefence;
	short nSpeed;

	DWORD nTakeItem_id;
	
	WORD	wSlot;
	WORD	wSpecialAction;	// 绢痘霸 静老搏瘤 搬沥给沁澜
}PLAYERINFO;

typedef struct 
{
	ANI_ACTION	Ani_Action;
	bool		bIsRun;
}ANI_PLAY;

class CPlayer
{
public:
	CPlayer();
	virtual ~CPlayer();

	//---------------------------------------------------------------------------------------------
	// ADT
	//---------------------------------------------------------------------------------------------
	virtual	HRESULT Create( UserInfoEx *pUserInfo, CModelManager *pModel, CItemManager *pManager,short nSelect=-1) = 0;
	virtual bool	FrameMove() = 0;
	virtual void	SetPos(D3DXVECTOR3 vPos) = 0;
	virtual void	SetPos(float x,float y,float z) { this->SetPos(D3DXVECTOR3(x,y,z)); }
	virtual float	SetLookAt(D3DXVECTOR3 *pV)=0;
	virtual void	Rotate(char nType,float Angle)=0;
	
	//---------------------------------------------------------------------------------------------
	// 积己苞 颇鲍
	//---------------------------------------------------------------------------------------------
	virtual void	Init();	
	virtual HRESULT CreateVertexIndexBuffer();
	virtual HRESULT ReleaseVI();

	// Add 俺充烙. 寇何俊辑 父甸绢辑 拎具窍哥, 鞍篮 困摹俊 乐绰扒 丹绢竞框
	virtual BOOL	AddInventory(CEquipment *pEquip, bool bDefualt = 1);
	virtual CEquipment *GetInventory(EQUIP_POS EquipPos, DWORD dwSlot);
	virtual CEquipment *GetInventory(DWORD dwItemIndex);
	virtual bool	Hit(short nDestUser, int nDamage);
	
	virtual void	Render(bool bBoundBox=false);
	virtual void	Scaling(float sx,float sy, float sz);
	virtual void	Rotate(D3DXVECTOR3 *vAxis,float Angle);
 
	virtual bool	FireWeapon();
	virtual	void	UpdateAnimation();

	virtual void	SendMyPosInfo(BYTE Frame) = 0;
	// 悼扁拳俊 静捞绰 绊胶飘
	virtual bool	SetGhost(bool bDeath, const GHOST* ghost) = 0;
	virtual bool	InterPolationGhost();
	
	//bool			StateInput(bool bRemove,const PLAYER_STATE &eValue );
	
	void			Focus();	// 器目胶甫 酪绢滚府搁~
	PLAYER			GetPlayerType() {	return m_Type;	}

	bool			Death();	// 敲饭捞绢甫 磷牢促.
	bool			WeaponChange(EQUIP_POS EquipPos, int nSlot=-1);

	bool			Respawn();	// 楼刘唱辑 傲 父惦

	// Flag 牢磐其捞胶 : StateInput 窃荐甫 父靛绰霸 歹 唱篮单.. 惑怕菩畔阑 结具 瞪刨单..矫埃何练
	virtual void	FireSetting(bool bFire) { m_bFire = bFire; }
	virtual bool	GetFireState() { return m_bFire; }		//楷荤 荤拜 惑怕
	virtual bool	GetShootState() { return m_bShoot;}		//茄惯 茄惯 醚舅 朝扼哎锭狼 惑怕
	virtual bool	GetSightState() { return m_bSight; }
	virtual bool	GetSightingState() { return m_bSighting;}
	virtual bool	GetReloadState() { return m_bReload; }	//犁厘傈 矫累
	virtual bool	GetReloadingState() { return m_bReloading; } //犁厘傈 局聪皋捞记 窍绰吝.
	virtual bool	GetSitDown()	{ return m_bSitDown; }
	virtual bool	GetSitDowning()	{ return m_bSitDowning; }
	
	void			Reload() { m_bReload = true; }	// 犁厘傈
	void			SitDown(bool bDowning, bool bDown=false) { m_bSitDowning = bDowning; m_bSitDown = bDown; }
	void			JumpToLand(bool bJump, bool bLand) { m_bJumping = bJump; m_bLand = bLand; }
	void			Sight(bool bSighting, bool bSight){ m_bSighting = bSighting;	m_bSight = bSight; }
	void			SightState(bool bState);

	//---------------------------------------------------------------------------------------------
	// 困摹 棺 规氢 沥焊蔼
	//---------------------------------------------------------------------------------------------
	PLAYERINFO*		GetInfo()		{ return &m_tagInfo; }
	D3DXVECTOR3*	GetPos()		{ return &m_vPos; }
	D3DXMATRIX*		GetTM()			{ return D3DXMatrixTranslation(&m_TM,m_vPos.x,m_vPos.y,m_vPos.z);}
	
	D3DXVECTOR3		GetLookDir()	{ return *D3DXVec3Normalize(&m_vLook,&m_vLook); }
	D3DXVECTOR3		GetRightDir()	{ return *D3DXVec3Normalize(&m_vRight,&m_vRight); }
	D3DXVECTOR3		GetUpDir()		{ return *D3DXVec3Normalize(&m_vUp,&m_vUp); }
	
	//--------------------------------------------------------------------------------------
	bool			IsActive()		{ return m_bActive; }
	short			GetIndex()		{ return m_tagInfo.nIndex; }
	WORD			GetTeam()		{ return m_tagInfo.wTeam; }
	void			LinkModel();
	D3DXVECTOR3		GetSector()		{ return m_vSector; }
	
	PLAYER			GetType()		{ return m_Type; }
	virtual	bool			SetLight();
	
	CMCParts*		GetParts( EQUIP_POS nPart );
	CEquipment*		GetEquip( EQUIP_POS nPart );

	EQUIP_POS		GetEquipPos()	{ return m_OldPos;	}

	//---------------------------------------------------------------------------------------------//
	// Animation																				   //
	//---------------------------------------------------------------------------------------------//
	virtual bool	Ani_Start(ANI_ACTION Action,int nLooping=-1) = 0;
	virtual	bool	Ani_Stop(ANI_ACTION Action)	 = 0;
	virtual bool	Ani_IsEnd(ANI_ACTION Action) = 0;
	
	bool			Ani_StartStop(ANI_ACTION Action);
	void			Ani_Begin(const ANI_ACTION& Action);
	void			Ani_Pause(EQUIP_POS EquipPos)	{ m_nAniType[EquipPos].bIsRun = false; }
	ANI_ACTION		Ani_Type(EQUIP_POS EquipPos)	{ return m_nAniType[EquipPos].Ani_Action; }

	HRESULT			LoadAnimation(char *strFileName, UINT nPartType);

	//---------------------------------------------------------------------------------------------
	// 焊幅
	//---------------------------------------------------------------------------------------------
	MD3BOUNDBOX*	GetBoundBox( EQUIP_POS nPart );			// 官款爹 冠胶甫 掘绢柯促
	bool			GetBoundBox(LPD3DXMESH* ppOutMesh, D3DXVECTOR3 *pLastPos);	// 某腐磐 傈眉甫 皑轿绰 官款爹 冠胶 (OBB胶鸥老烙)

	BOOL			Equip(EQUIP_POS EquipPos,bool Dual, DWORD dwSlot=0);	// 厘馒!
	
protected:
	
	virtual	HRESULT Create( UserInfoEx *pUserInfo);
	virtual BOOL	NextEquip(EQUIP_POS EquipPos);


	virtual bool	Act_GhostWalking(bool self);

	//---------------------------------------------------------------------------------------
	// Action
	//---------------------------------------------------------------------------------------
//	virtual bool Act_Walking() = 0;
	virtual bool Act_Sight();

	//---------------------------------------------------------------------------------------
	// Animation Action
	//---------------------------------------------------------------------------------------
	bool Act_WeaponChange();
	WORD Ani_Pos(const ANI_ACTION& Action);
	//bool Ani_Torso(ANI_ACTION* pAniType, const PROPERTY_TYPE& ProType);
	
public:
	D3DXVECTOR3			m_vMoveDir;		// 捞悼 规氢(虐俊辑 罐澜)
	bool				m_bBooster;
	int					m_nKeyNum;		// 何胶磐甫 拌魂且锭 静烙
	bool				m_bMove;		// 捞悼窍搁 true
	WORD				m_wAction;
	bool				m_bLoading;
	
	BYTE				m_nActState;


	//======metaljack 眠啊 =====================
	int					m_iFrameCnt;
	int					m_iTempFrameCnt;
	float				m_fSelfReSpeed;
	float				m_fSelfGhostReSpeed;

	BYTE				m_bMoveMethod;
	float				m_fLegsAngle;
	float				m_fRotateDirAngle;
	bool				m_bReloadSight;

	EQUIP_POS			m_OldPos;			// 泅犁 厘馒窍绊 乐绰 公扁(傍拜啊瓷茄)
	EQUIP_POS			m_TempEquipPos;		// 梆 官曹 公扁

	// 馒瘤客 痢橇
	bool				m_bLand;
	bool				m_bJumping;			// 痢橇窍绰吝.
	bool				m_bSighting;		// 炼霖窍绰 林旷~ (局聪概捞记 敲饭捞吝)
	bool				m_bReloading;		// 犁厘傈窍绰吝

	D3DXVECTOR3			m_vSendDirect;
	bool				m_bFlagRevision;

	// 泅犁 胶乔靛
	float				m_fCurSpeed;
	float				m_fSitDownSpeed;
	float				m_fZoomDownSpeed;



protected:
	PLAYER				m_Type;	
	GHOST				m_Ghost;		// 绊胶飘客 袍橇绊胶飘绰 公均捞衬??
	GHOST				m_TempGhost;
	
	//------------------------------------------------------------------------
	// 阿辆 Flag
	//------------------------------------------------------------------------
	bool				m_bActive;			// 混酒乐绰啊
	bool				m_bFire;			// 傍拜吝牢瘤
	bool				m_bShoot;
	bool				m_bReload;			// 犁厘傈阑 秦具 登绰瘤
	bool				m_bWeaponChange;	// 公扁甫 官层具 窍绰瘤
	bool				m_bRespawn;			// 府胶迄秦具登衬?
	
	bool				m_bSight;			// 炼霖惑怕衬?

//	EQUIP_POS			m_TempEquipPos;		// 梆 官曹 公扁
	int					m_nTempSlot;		// 梆 官曹 公扁狼 浇吩
	float				m_fFriction;		// 付蔓蔼


	
	// 旧扁

	bool				m_bSitDown;
	bool				m_bSitDowning;		// 旧绰 吝捞衬?

	//float				m_fJoomDist;		// 淋 芭府

	//------------------------------------------------------------------------
	// Animation 函荐
	//------------------------------------------------------------------------
	ANI_PLAY			m_nAniType[2];		// 个烹, 窍眉

	// 局聪概捞记 矫埃 函荐
	DWORD				m_dwLastTime;
	DWORD				m_dwCurTime;
	DWORD				m_dwElapsed;

	//------------------------------------------------------------------------
	// // Player 沥焊
	//------------------------------------------------------------------------
	PLAYERINFO			m_tagInfo;			// 寇何俊辑 官操瘤 富磊. 弥檬 肺爹锭父 累己窍骨肺..
	D3DXMATRIXA16		m_TM;

	D3DXVECTOR3			m_vUp;
	D3DXVECTOR3			m_vRight;
	D3DXVECTOR3			m_vLook;

	D3DXVECTOR3			m_vPos;
	D3DXVECTOR3			m_vSector;			// 阿绵栏肺 雀傈茄 阿档蔼 (规氢酒丛)

	D3DXVECTOR3			m_vLegsLook;		// 促府啊 焊绰 规氢

	float				m_fAccelerSpeed;	// 啊加档俊 蝶扼 官差绰 加档蔼

	//======metaljack 眠啊 =====================
	D3DXVECTOR3			m_vRePos;			// 面倒茄锅 窍绊 唱扁 傈 苞 抄 饶狼 瞒捞.
	float				m_fGhostSpeed;		// 绊胶飘狼 胶乔靛.
	

	bool				m_bChangeWea;

	


//	int					m_iFrameCnt;
	
	//-----------------------------------------------------------------------
	//	Inventory 包访
	//-----------------------------------------------------------------------
	vector<CEquipment*>	m_pInventory;		// 家瘤窍绰 厘厚甸
	vector<CEquipment*>	m_listEquip;		// 厘馒窍绊 乐绰 厘厚


	//-----------------------------------------------------------------------
	//	面倒俊 静捞绰 函荐
	//-----------------------------------------------------------------------
//	D3DXVECTOR3 m_vOrigin;					// 备狼 吝缴痢
//	float		m_fRadius;					// 备狼 馆瘤抚

	//-----------------------------------------------------------------------
	//	叼滚弊侩
	//-----------------------------------------------------------------------
#ifdef _DEBUG
	CMcFonts *m_pFonts;
#endif
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -