📄 gamezone.h
字号:
#pragma once
//=============================================================================================================================
/// GameZone class
/**
@author Kim Min Wook < taiyo@webzen.com >
@since 2004. 12. 29
@remark
- GameServer俊辑 粮阑 包府窍绰 弥惑困 眠惑 努贰胶
@note
-
@history
-
*/
//=============================================================================================================================
#include "GameZoneCommon.h"
class GameZone
{
public:
GameZone(void);
virtual ~GameZone(void);
VOID Init( KEYTYPE Key, CODETYPE MapCode );
virtual VOID Release();
virtual VOID Update( DWORD dwDeltaTick );
VOID LoadMap( int iActiveFieldIndex = -1 );
virtual eZONETYPE GetZoneType() = 0;
inline KEYTYPE GetKey() { return m_Key; }
inline VOID SetKey( KEYTYPE Key ) { m_Key = Key; }
inline CODETYPE GetMapCode() { return m_MapCode; }
inline VOID SetMapCode(CODETYPE MapCode) { m_MapCode=MapCode; }
virtual VOID Ready( Player * pPlayer, CODETYPE FieldCode, WzID AreaID )=0;
virtual BOOL Join( Player * pPlayer, CODETYPE FieldCode, WzID AreaID );
virtual VOID Leave( Player * pPlayer );
virtual VOID Warp( Player * pPlayer, CODETYPE FieldCode, WzID AreaID );
DWORD GetEntryAreaID();
virtual CODETYPE GetEntryFieldCode();
Map * GetMap(){ return m_pMap; }
virtual BOOL CheckMapVersion( CODETYPE FieldCode, DWORD checksum );
template <class Executer>
VOID ForeachPlayer( Executer & Opr );
private:
Map * m_pMap;
KEYTYPE m_Key;
CODETYPE m_MapCode;
protected:
util::SolarHashTable<Player *> m_PlayerHash;
};
template <class Executer>
VOID GameZone::ForeachPlayer( Executer & exe )
{
Player * pPlayer = NULL;
m_PlayerHash.SetFirst();
while( ( pPlayer = m_PlayerHash.GetNext() ) != NULL )
{
exe( pPlayer );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -