📄 battle.h
字号:
// Battle.h: interface for the CBattle class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_BATTLE_H__5D88F50D_0E8C_46C3_86EA_B0F0D5CE11E0__INCLUDED_)
#define AFX_BATTLE_H__5D88F50D_0E8C_46C3_86EA_B0F0D5CE11E0__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CPlayer;
class CMonster;
class CBattleTeam;
class CBattleObject;
#define ToEachTeam(ValuableName) { \
CBattleTeam* ValuableName; \
for(int TeamNumber=0;TeamNumber<eBattleTeam_Max;++TeamNumber) \
{ \
ValuableName = m_TeamArray[TeamNumber];
#define EndToEachTeam }}
enum
{
eBattleTeam1 = 0,
eBattleTeam2,
eBattleTeam_Max,
};
enum
{
eBATTLE_STATE_READY = 0,
eBATTLE_STATE_FIGHT,
eBATTLE_STATE_RESULT,
};
#define BATTLE_FLAG_NONE 0x00000000
#define BATTLE_FLAG_LOGINBATTLE 0x00000001
class CBattle
{
protected:
BATTLE_INFO_BASE m_BattleInfo;
union{
struct{
CBattleTeam* m_Team1;
CBattleTeam* m_Team2;
CBattleTeam* m_TeamObserver;
};
CBattleTeam* m_TeamArray[eBattleTeam_Max];
};
DWORD m_BattleFlag;
int m_WinnerTeam;
BOOL m_bDestroyFlag;
public:
CBattle();
virtual ~CBattle();
inline BYTE GetBattleKind() { return m_BattleInfo.BattleKind; }
inline DWORD GetBattleID() { return m_BattleInfo.BattleID; }
inline DWORD GetBattleFlag() { return m_BattleFlag; }
inline BYTE GetBattleState() { return m_BattleInfo.BattleState; }
virtual void Initialize(BATTLE_INFO_BASE* pCreateInfo, CBattleTeam* pTeam1, CBattleTeam* pTeam2);
#ifdef _MAPSERVER_
void SendBattleInfo(CPlayer* pPlayer);
BOOL AddObjectToBattle(CObject* pObject);
BOOL DeleteObjectFromBattle(CObject* pObject);
BOOL IsAddableBattle(CObject* pObject);
#endif
void StartBattle();
void SetDestroyFlag() { m_bDestroyFlag = TRUE; }
BOOL IsDestroyed() { return m_bDestroyFlag; }
//////////////////////////////////////////////////////////////////////////
// { start virtual func 馆靛矫 坷滚扼捞爹 秦具窃
// Battle 沥焊 包访
#ifdef _MAPSERVER_
virtual void GetBattleInfo(char* pInfo,WORD* size);
virtual DWORD GetTeamMemberNum(int i);
#endif
// 利,酒焙 备喊
virtual BOOL IsEnemy(CObject* pOperator,CObject* pTarget);
virtual BOOL IsFriend(CObject* pOperator,CObject* pTarget);
// event func
virtual void OnCreate(BATTLE_INFO_BASE* pCreateInfo, CBattleTeam* pTeam1, CBattleTeam* pTeam2);
virtual void OnFightStart();
virtual void OnDestroy();
virtual void OnTeamMemberAdd(int Team,DWORD MemberID,char* Name);
virtual BOOL OnTeamMemberDelete(int Team,DWORD MemberID,char* Name);
virtual BOOL OnTeamMemberDie(int Team,DWORD VictimMemberID,DWORD KillerID);
virtual void OnTeamMemberRevive(int Team,CObject* pReviver);
virtual void OnTeamObjectCreate(int Team,CBattleObject* pBattleObject);
virtual void OnTeamObjectDestroy(int Team,CBattleObject* pBattleObject);
virtual void OnMonsterDistribute(CMonster* pMonster,CObject* pKiller);
virtual void OnTick();
// 铰菩 魄沥
virtual BOOL Judge(); // Judge俊辑 Victory唱 Draw 窃荐甫 龋免秦林绢具 茄促.
virtual void Victory(int WinnerTeamNum,int LoserTeamNum);
virtual void Draw();
#ifdef _MHCLIENT_
// Render (努扼捞攫飘父 荤侩窃)
virtual void Render();
#endif
// } end virtual func
//////////////////////////////////////////////////////////////////////////
};
#endif // !defined(AFX_BATTLE_H__5D88F50D_0E8C_46C3_86EA_B0F0D5CE11E0__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -