masterserver.h
来自「国外网游源码....除工具源码缺少之外,其余程序都全...至于,什么游戏,因为国」· C头文件 代码 · 共 199 行
H
199 行
#ifndef __MASTERSERVER_H
#define __MASTERSERVER_H
#define MSINIT "./config.ini"
#define DBMAIN_DSN "121.140.107.167"
//#define DBMAIN_DSN "192.168.0.5"
#define DBMAIN_DSA "mcgames_admin"
#define DBMAIN_DSP "mca0415"
#define DBMAIN_DBN "_MCGames"
struct _SPINFO;
struct _MSGINFO;
class CManager;
class CLocal;
class CUser;
class CItemMap;
typedef struct _CONFIG
{
//config.ini
char *sys_connection_db[MAX_CONNECTION_DB+1];
char sys_name[LEN_SVRNAME+1];
char sys_group[LEN_SVRNAME+1];
unsigned short sys_port_udp;
unsigned short sys_port_tcp;
unsigned short sys_maxlocal;
unsigned short sys_maxuser;
unsigned short sys_cgiproc;
unsigned short sys_frame;
unsigned short sys_block_cnt;
unsigned long *sys_block_addr;
unsigned short sys_version_hi;
unsigned short sys_version_lo;
unsigned __int64 sys_account; //辑滚沥焊 罐酒棵锭 鞘夸茄 虐蔼
unsigned short sys_udp_cnt;
//DB俊辑 罐酒棵 沥焊
unsigned char sys_auth_size;
unsigned char sys_auth_cnt;
unsigned char *sys_auth_index;
unsigned char *sys_auth_code;
_CONFIG():sys_block_cnt(0)
{
sys_auth_index = NULL;
sys_auth_code = NULL;
sys_block_addr = NULL;
int i=MAX_CONNECTION_DB+1;
while(i--) sys_connection_db[i] = NULL;
}
~_CONFIG()
{
int i=MAX_CONNECTION_DB+1;
while(i--) SAFE_DELETE_ARRAY(sys_connection_db[i]);
SAFE_DELETE_ARRAY(sys_block_addr);
SAFE_DELETE_ARRAY(sys_auth_index);
SAFE_DELETE_ARRAY(sys_auth_code);
}
} CONFIG;
typedef struct _LOCALCONN
{
short local_cnt;
short local_limit;
UINT64 *account;
char **type;
char **name;
char **mode;
_LOCALCONN():local_cnt(0)
{
account=NULL;
name=NULL;
mode=NULL;
type=NULL;
}
~_LOCALCONN()
{
if(type)
{
int i=local_limit;
while(i--) SAFE_DELETE_ARRAY(type[i]);
SAFE_DELETE_ARRAY(type);
}
if(name)
{
int i=local_limit;
while(i--) SAFE_DELETE_ARRAY(name[i]);
SAFE_DELETE_ARRAY(name);
}
if(mode)
{
int i=local_limit;
while(i--) SAFE_DELETE_ARRAY(mode[i]);
SAFE_DELETE_ARRAY(mode);
}
local_cnt=0;
SAFE_DELETE_ARRAY(account);
}
} LOCALCONN;
typedef struct _GARAGE_ENUM
{
UINT64 account[MAX_MECHANIC_SLOT];
DWORD id[MAX_MECHANIC_SLOT];
DWORD fight[MAX_MECHANIC_SLOT];
BYTE dur[MAX_MECHANIC_SLOT];
BYTE skin[MAX_MECHANIC_SLOT];
BYTE color[MAX_MECHANIC_SLOT];
BYTE main_slot[MAX_MECHANIC_SLOT];
BYTE sub_slot[MAX_MECHANIC_SLOT];
BYTE back_slot1[MAX_MECHANIC_SLOT];
BYTE back_slot2[MAX_MECHANIC_SLOT];
BYTE back_slot3[MAX_MECHANIC_SLOT];
} GARAGE_ENUM;
class CMasterServer : public CServer
{
protected:
virtual CClient *OnAccept(int nSockIndex, DWORD dwAddr);
virtual void OnConnect(int nSockIndex, char *pAddr, WORD wPort);
virtual void OnClose(int nSockIndex, bool bNormal);
virtual void OnRecv(int nSockIndex, int nMessage, DWORD dwErrCode, char *pPacket, DWORD *pSize);
static void SPThread(void *pArg);
void SPCall();
BOOL SPError(void *pspInfo);
void SPCallback();
void SPHandler(int nSockIndex, int iSP, void *pParam);
void LoadINI(); //ini颇老俊辑 沥焊佬扁
BOOL SetupSystem(); //矫胶袍沥焊甫 皋葛府俊 棵赴促
BOOL SetupNetwork(); //匙飘况农 沥焊甫 皋葛府俊 棵赴促
BOOL SetupDatabase(); //单捞磐海捞胶 沥焊甫 皋葛府俊 棵赴促
public:
CMasterServer();
virtual ~CMasterServer();
virtual BOOL Init();
virtual BOOL IsStopping();
virtual BOOL Run();
CManager *GetManager() { return m_cpManager; }
_SPINFO *GetSpObj() { return m_spInfo->_new(); }
_MSGINFO *GetMsgObj() { return m_msgInfo; }
void SetSp(_SPINFO *spObj) { m_spSendQ->_push(spObj); }
BOOL SendAll(void *ioc);
BOOL DispatchMessage(LPMSG msg);
void RegiLocal();
void Open();
private:
CADOConnection m_dbGame;
CADOConnection m_dbMain;
CManager *m_cpManager;
_MSGINFO *m_msgInfo;
mempool<_SPINFO> *m_spInfo;
queue<_SPINFO *> *m_spSendQ;
queue<_SPINFO *> *m_spRecvQ;
public:
CONFIG m_cConfig;
LOCALCONN m_cLocalConn;
GARAGE_ENUM m_cGarageEnum;
CLocal *m_cpLocal;
CUser *m_cpUser;
CItemMap *m_cpItemMap;
CLocal *m_pTag;
};
extern CMasterServer g_cMasterServer;
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?