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

📄 i_role.h

📁 网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志
💻 H
📖 第 1 页 / 共 2 页
字号:
		else if(nFromY > nToY)
			return 5;
		else
			return 6;
	}
	else if(nFromX > nToX)
	{
		if(nFromY < nToY)
			return 1;
		else if(nFromY > nToY)
			return 3;
		else
			return 2;
	}
	else // if(nFromX == nToX)
	{
		if(nFromY < nToY)
			return 0;
		else if(nFromY > nToY)
			return 4;
	}
	return MAX_DIRSIZE;
}
inline int		MaskLook(int look)							{ return look/10; }
inline int		MaskDir(int look)							{ return look%10; }
inline DWORD	MakeLookFace(int nMaskLook, int nMaskDir)	{ return (nMaskLook*10) + (nMaskDir%10); }
inline float	GetRadian(float posSourX, float posSourY, float posTargetX, float posTargetY)
{
	CHECKF(posSourX != posTargetX || posSourY != posTargetY);

	float PI = static_cast<float>(3.1415926535);
	float fDeltaX = posTargetX - posSourX;
	float fDeltaY = posTargetY - posSourY;
	float fDistance	= sqrt(fDeltaX*fDeltaX + fDeltaY*fDeltaY);
	CHECKF(fDeltaX <= fDistance && fDistance > 0);
	float fRadian = asin(fDeltaX / fDistance);

	return fDeltaY > 0 ? (PI/2 - fRadian) : (PI + fRadian + PI/2);
}

//////////////////////////////////////////////////////////////////////
class IRole;
class IMapThing
{
public: // base
	virtual void	ReleaseByOwner()							PURE_VIRTUAL_FUNCTION
	virtual OBJID	GetID()										PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetObjType()								PURE_VIRTUAL_FUNCTION_0
	virtual int		GetPosX()									PURE_VIRTUAL_FUNCTION_0
	virtual int		GetPosY()									PURE_VIRTUAL_FUNCTION_0
	virtual void	SendShow(IRole* pRole)						PURE_VIRTUAL_FUNCTION

	// return true: ppv返回对象指针
	virtual bool	QueryObj(OBJID idObjType, void** ppv)				PURE_VIRTUAL_FUNCTION_0
	virtual bool	QueryRole(void** ppv)						PURE_VIRTUAL_FUNCTION_0
};

//////////////////////////////////////////////////////////////////////
class IMapThing;
class IStatus;
class CTransformation;
class CTeam;
class CItem;
class CMagic;
class IRole
{
protected:
	IRole(){}
	~IRole(){}
public:
	virtual void	ReleaseByOwner		()						PURE_VIRTUAL_FUNCTION
public: // get attrib
	virtual OBJID	GetID				()						PURE_VIRTUAL_FUNCTION_0
	virtual LPCTSTR	GetName				()						PURE_VIRTUAL_FUNCTION_0
//	virtual LPCTSTR	GetMate				()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetLookFace			()						PURE_VIRTUAL_FUNCTION_0
	//以后要分解成下面两个接口
	//virtual int	GetLook				()						PURE_VIRTUAL_FUNCTION_0
	//virtual int	GetFace				()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetHair				()						PURE_VIRTUAL_FUNCTION_0
	virtual char	GetLength			()						PURE_VIRTUAL_FUNCTION_0		// 取得角色高矮 -- zlong 2004-02-03
	virtual char	GetFat				()						PURE_VIRTUAL_FUNCTION_0		// 取得角色胖瘦 -- zlong 2004-02-03
	virtual int 	GetPosX				()						PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetPosY				()						PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetDir				()						PURE_VIRTUAL_FUNCTION_0
//	virtual	BOOL	CheckStatus			(int nStatus)			PURE_VIRTUAL_FUNCTION_0
	virtual I64		GetEffect			()						PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetPose				()						PURE_VIRTUAL_FUNCTION_0
//	virtual DWORD	GetMoney			()						PURE_VIRTUAL_FUNCTION_0
//	virtual DWORD	GetMoneySaved		()						PURE_VIRTUAL_FUNCTION_0
//	virtual int  	GetExp				()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetLev				()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetLife				()						PURE_VIRTUAL_FUNCTION_0
//	virtual DWORD	GetMana				()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMaxLife			()						PURE_VIRTUAL_FUNCTION_0
//	virtual DWORD	GetMaxMana			()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetMinAtk			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMaxAtk			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMgcMinAtk			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMgcMaxAtk			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetAttack			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetAtkHitRate		()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetDef				()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetDefence			()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetDex				()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetDexterity		()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetDdg				()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetDodge			()						PURE_VIRTUAL_FUNCTION_0

//	virtual DWORD	GetMagicAtk			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMagicDef			()						PURE_VIRTUAL_FUNCTION_0

	virtual	DWORD	GetInterAtkRate		()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetIntervalAtkRate	()						PURE_VIRTUAL_FUNCTION_0

	virtual int		GetHelmetTypeID		()						PURE_VIRTUAL_FUNCTION_0
	virtual int		GetArmorTypeID		()						PURE_VIRTUAL_FUNCTION_0
	virtual int		GetWeaponRTypeID	()						PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetWeaponLTypeID	()						PURE_VIRTUAL_FUNCTION_0
//	virtual int		GetNecklaceTypeID	()						PURE_VIRTUAL_FUNCTION_0
//	virtual int 	GetRingRTypeID		()						PURE_VIRTUAL_FUNCTION_0
//	virtual int 	GetRingLTypeID		()						PURE_VIRTUAL_FUNCTION_0
//	virtual int 	GetShoesTypeID		()						PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetMountTypeID		()						PURE_VIRTUAL_FUNCTION_0
	virtual int		GetMantleTypeID		()						PURE_VIRTUAL_FUNCTION_0

//	virtual DWORD 	GetMedalSelect		()						PURE_VIRTUAL_FUNCTION_0
//	virtual DWORD	GetTitleSelect		()						PURE_VIRTUAL_FUNCTION_0

	virtual int		GetDistance			(int x, int y)			PURE_VIRTUAL_FUNCTION_0
	virtual int		GetDistance			(IMapThing* pTarget)	PURE_VIRTUAL_FUNCTION_0

	virtual CGameMap*	GetMap			()						PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetSynID			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetSynRank			()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetSynRankShow		()						PURE_VIRTUAL_FUNCTION_0

	virtual bool	IsSimpleMagicAtk	()						PURE_VIRTUAL_FUNCTION_0
	virtual int 	GetSimpleMagicHitRate()						PURE_VIRTUAL_FUNCTION_0

	virtual int		GetTutorExp			()						PURE_VIRTUAL_FUNCTION_0
	virtual UCHAR	GetTutorLevel		()						PURE_VIRTUAL_FUNCTION_0
	virtual UCHAR	GetMercenaryRank	()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMercenaryExp		()						PURE_VIRTUAL_FUNCTION_0
	virtual UCHAR	GetNobilityRank		()						PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetExploit			()						PURE_VIRTUAL_FUNCTION_0
public: // const

//	virtual int		GetSex				()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsAlive				()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsTalkEnable		()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsGM				()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsPM				()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsMonster			()						PURE_VIRTUAL_FUNCTION_0
//	virtual bool	IsScene				()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsDelThis			()						PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsVirtuous()								PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsEvil()									PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsBowman()									PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsShieldEquip()								PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsWing()									PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsSendBlockInfo		()						PURE_VIRTUAL_FUNCTION_0

	// return true: ppv返回对象指针
	virtual bool	QueryObj			(OBJID idObjType, void** ppv)	PURE_VIRTUAL_FUNCTION_0
	virtual IMapThing*	QueryMapThing	()						PURE_VIRTUAL_FUNCTION_0
	virtual IRole*	FindAroundRole		(OBJID id)				PURE_VIRTUAL_FUNCTION_0
	virtual CUser*	QueryOwnerUser		()						PURE_VIRTUAL_FUNCTION_0

public:	// modify attrib ------------------------------
	virtual void	SetDir				(int nDir)							PURE_VIRTUAL_FUNCTION
	virtual void	SetPose				(int nPose)							PURE_VIRTUAL_FUNCTION
//	virtual void	SetEmotion			(int nEmotion)						PURE_VIRTUAL_FUNCTION
	virtual	void	SetStatus			(int nStatus, bool bSynchro=true)						PURE_VIRTUAL_FUNCTION
	virtual	void	ClsStatus			(int nStatus, bool bSynchro=true)						PURE_VIRTUAL_FUNCTION
	virtual bool	AddAttrib			(int idxAttr, __int64 i64Data, int bSynchro)					PURE_VIRTUAL_FUNCTION_0
	virtual void	ProcessOnMove		(int nMoveMode)						PURE_VIRTUAL_FUNCTION
	virtual void	ProcessAfterMove	()									PURE_VIRTUAL_FUNCTION
	virtual void	GetFootPrint		(int& x, int& y)					PURE_VIRTUAL_FUNCTION

	virtual bool	SpendArrow			()									PURE_VIRTUAL_FUNCTION_0

	virtual	IStatus*	QueryStatus(OBJID idType)										PURE_VIRTUAL_FUNCTION_0
	virtual	IStatusSet*	QueryStatusSet()												PURE_VIRTUAL_FUNCTION_0
	virtual void	AwardBattleExp		(int nExp, bool bGemEffect=true)				PURE_VIRTUAL_FUNCTION
	virtual int 	AdjustHitRate		(int nHitRate)									PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustAttack		(int nAtk)										PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustDefence		(int nDef)										PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustMagicAtk		(int nAtk)										PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustMagicDef		(int nDef)										PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustBowDefence	(int nDef)										PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustWeaponDamage	(int nDamage)									PURE_VIRTUAL_FUNCTION_0
	virtual int 	AdjustMagicDamage	(int nDamage)									PURE_VIRTUAL_FUNCTION_0
	virtual void	SetFightPause		(int nInterval)									PURE_VIRTUAL_FUNCTION
	virtual void	SaveInfo			()												PURE_VIRTUAL_FUNCTION

public: // money --------------------------------
//	virtual bool	SpendMoney			(DWORD nMoney, bool bSynchro)			PURE_VIRTUAL_FUNCTION_0
//	virtual bool	GainMoney			(DWORD nMoney, bool bSynchro)			PURE_VIRTUAL_FUNCTION_0

public: // interactive
//	virtual bool	AddItem				(CItem* pItem)								PURE_VIRTUAL_FUNCTION_0
//	virtual bool	IsItemFull			()											PURE_VIRTUAL_FUNCTION_0

public: // system
	virtual void	BroadcastRoomMsg(CNetMsg* pMsg, bool bSendSelf = false)	PURE_VIRTUAL_FUNCTION
	virtual void	BroadcastRoomMsg(LPCTSTR szMsg, bool bSendSelf = false)	PURE_VIRTUAL_FUNCTION
//	virtual void	BroadcastMapMsg(CNetMsg* pMsg, bool bSendSelf = false)	PURE_VIRTUAL_FUNCTION
//	virtual void	BroadcastMapMsg(LPCTSTR szMsg, bool bSendSelf = false)	PURE_VIRTUAL_FUNCTION
	virtual bool	SendMsg(CNetMsg* pMsg)									PURE_VIRTUAL_FUNCTION_0
	virtual bool	SendSysMsg(const char* fmt, ...)						PURE_VIRTUAL_FUNCTION_0
	virtual void	OnTimer(time_t tCurr)									PURE_VIRTUAL_FUNCTION

public: // map
	virtual bool	MoveToward(int nDir, bool bSync = true)					PURE_VIRTUAL_FUNCTION_0
	virtual void	TransPos(int nPosX, int nPosY)							PURE_VIRTUAL_FUNCTION
	virtual void	JumpPos(int nPosX, int nPosY)							PURE_VIRTUAL_FUNCTION
	virtual bool	SyncTrackTo(int nPosX, int nPosY, int nDir, DWORD dwAction)				PURE_VIRTUAL_FUNCTION_0
	virtual void	ActiveTransPos(int nPosX, int nPosY)					PURE_VIRTUAL_FUNCTION
	virtual bool	SendSelfToBlock()										PURE_VIRTUAL_FUNCTION_0

	virtual void	AddToBCRoleSet			(OBJID idRole, bool bSendMsg)	PURE_VIRTUAL_FUNCTION
	virtual void	RemoveFromBCRoleSet		(OBJID idRole)					PURE_VIRTUAL_FUNCTION
	virtual void	AddToBCMapItemSet		(OBJID idMapItem)				PURE_VIRTUAL_FUNCTION
	virtual void	RemoveFromBCMapItemSet	(OBJID idMapItem)				PURE_VIRTUAL_FUNCTION
	
public: // fight ------------------------------
	virtual void	ClrAttackTarget		()									PURE_VIRTUAL_FUNCTION
	virtual bool	SetAttackTarget(IRole* pTarget = NULL)					PURE_VIRTUAL_FUNCTION_0
	virtual bool	AutoSkillAttack(IRole* pTarget)							PURE_VIRTUAL_FUNCTION_0
	virtual bool	AdditionMagic(int nLifeLost, int nDamage)				PURE_VIRTUAL_FUNCTION_0
	virtual int		Attack(IRole* pTarget)									PURE_VIRTUAL_FUNCTION_0
	virtual bool	BeAttack(bool bMagic, IRole* pTarget, int nPower, bool bReflectEnable=true)					PURE_VIRTUAL_FUNCTION_0
	virtual bool	MagicAttack(int nType, OBJID idTarget, int x, int y)	PURE_VIRTUAL_FUNCTION_0
	virtual void	Kill(IRole* pTarget, DWORD dwDieWay)									PURE_VIRTUAL_FUNCTION
	virtual void	BeKill(IRole* pTarget = NULL)							PURE_VIRTUAL_FUNCTION
	virtual bool	IsAtkable(IRole* pTarget, bool bSendHint=false)			PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsBeAtkable()											PURE_VIRTUAL_FUNCTION_0
	virtual int		GetAttackRange(int nTargetSizeAdd)						PURE_VIRTUAL_FUNCTION_0
	virtual int		GetSizeAdd()											PURE_VIRTUAL_FUNCTION_0
	virtual	int		GetLuck				()									PURE_VIRTUAL_FUNCTION_0
	virtual void	SendDamageMsg(OBJID idTarget, int nDamage)				PURE_VIRTUAL_FUNCTION

	virtual bool	TransferShield(bool bMagic, IRole* pAtker, int nDamage)	PURE_VIRTUAL_FUNCTION_0
	
public:	// 为了修改魔法系统而增加的部分,等魔法系统修改完再做整理
	virtual void	AwardSynWarScore(CNpc* pNpc, int nScore)				PURE_VIRTUAL_FUNCTION
	virtual bool	IsImmunity(IRole* pRole)								PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetProfession()											PURE_VIRTUAL_FUNCTION_0
	virtual int		GetGemExpEffect()										PURE_VIRTUAL_FUNCTION_0
	virtual int		GetGemMgcExpEffect()									PURE_VIRTUAL_FUNCTION_0
	virtual bool	SpendEquipItem(int nSubType, int nNum, bool bSynchro)	PURE_VIRTUAL_FUNCTION_0
	virtual int		AdjustExp(IRole* pTarget, int nRawExp, bool bNewbieBonusMsg=false)		PURE_VIRTUAL_FUNCTION_0
	virtual bool	DecEquipmentDurability(bool bBeAttack, bool bMagic, int bDurValue=1)	PURE_VIRTUAL_FUNCTION_0
	virtual void	SendGemEffect()											PURE_VIRTUAL_FUNCTION
	virtual bool	IsEmbedGemType(int nGemType)							PURE_VIRTUAL_FUNCTION_0

	virtual DWORD	GetMana()												PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetMaxMana()											PURE_VIRTUAL_FUNCTION_0

	virtual int		GetEnergy()												PURE_VIRTUAL_FUNCTION_0
	virtual bool	CheckWeaponSubType(int nSubType, int nNum = 0)			PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetPotential()											PURE_VIRTUAL_FUNCTION_0
	virtual CTransformation* QueryTransformation()							PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsArrowPass(int x, int y, int nAlt=ARROW_FLY_ALT)		PURE_VIRTUAL_FUNCTION_0
	virtual CTeam*	GetTeam()												PURE_VIRTUAL_FUNCTION_0
	virtual CItem*	GetEquipItemByPos(int nPosition)						PURE_VIRTUAL_FUNCTION_0
	virtual bool	CheckCrime(IRole* pRole)								PURE_VIRTUAL_FUNCTION_0
	virtual void	SetDelay(int nDelay)									PURE_VIRTUAL_FUNCTION

	virtual CItem*	GetWeaponR			()									PURE_VIRTUAL_FUNCTION_0
	virtual CItem*	GetWeaponL			()									PURE_VIRTUAL_FUNCTION_0

	virtual bool	DropItem(OBJID idItem, int x, int y)					PURE_VIRTUAL_FUNCTION_0
	virtual DWORD	GetSoulSum()											PURE_VIRTUAL_FUNCTION_0
	virtual void	AddEquipmentDurability(int nPosition, int nAddValue)	PURE_VIRTUAL_FUNCTION
	virtual bool	SynPosition(int nPosX, int nPosY, int nMaxDislocation = 8)						PURE_VIRTUAL_FUNCTION_0
	virtual bool	Transform(DWORD dwType, int nKeepSecs, bool bSynchro = true)					PURE_VIRTUAL_FUNCTION_0
	virtual bool	IsInFan(POINT pos, POINT posSource, int nRange, int nWidth, POINT posCenter)	PURE_VIRTUAL_FUNCTION_0
	virtual bool	AddItem (CItem* pItem, bool bSynchro, bool bUpdate = true)						PURE_VIRTUAL_FUNCTION_0
	virtual bool	Synchro()												PURE_VIRTUAL_FUNCTION_0
	virtual int		AdjustData(int nData, int nAdjust, int nMaxData=0)		PURE_VIRTUAL_FUNCTION_0
	virtual CItem*	FindSpaceTransSpell()									PURE_VIRTUAL_FUNCTION_0

	virtual	CMagic*	QueryMagic()											PURE_VIRTUAL_FUNCTION_0
};




#endif // !defined(I_ROLE_HEADER)

⌨️ 快捷键说明

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