📄 gameserver.h
字号:
#ifndef __GAME_SERVER_H__
#define __GAME_SERVER_H__
#pragma once
#define DISP_OK DISPMSG( " [OK]\n" );
#define DISP_FAIL DISPMSG( " Failed!\n" );
#include <Const.h>
#include <3DEngine/3DTerrain/3DTerrain.h>
#include <Library/CalcEngine/Numeric.h>
#include "FileParser.h"
#include <ObjKeyGenerator.h>
#include <Timer.h>
using namespace util;
class Player;
class IOCPServer;
class NetworkObject;
class PacketHandler;
class CFileParser;
class ServerSession;
class CSimpleModulus;
class GameServer
{
enum { SERVER_IOHANDLER = 1, };
public:
GameServer();
virtual ~GameServer();
VOID UpdateServerTitle();
virtual BOOL Init();
virtual VOID Release();
virtual VOID Run() = 0;
virtual BOOL Update( DWORD dwDeltaTick );
DWORD ConnectToServer( NetworkObject * pNetworkObject, char * pszIP, WORD wPort );
inline BOOL IsOnShutdown() { return m_bShutdown; }
inline VOID Shutdown() { m_bShutdown = TRUE; }
virtual eSERVER_TYPE GetServerType() = 0;
VOID UpdateFPS();
VOID DisplayServerInfo();
VOID DisplayPoolInfo();
VOID MaintainConnection();
FUNC_ContactTerrain m_fnContactTerrain;
FUNC_ContactNumerical m_fnContactNumerical;
CFileParser * GetFileParser() { return m_pFileParser; }
VOID StartListen();
VOID ConnectTo( eSERVER_TYPE eServerType );
BOOL IsConnectedTo( eSERVER_TYPE eServerType );
BOOL SendToGameDBPServer( MSG_BASE_FORWARD * pMsg, WORD wSize );
BOOL SendToGuildServer( MSG_BASE_FORWARD * pMsg, WORD wSize );
VOID SetServerAddr( eSERVER_TYPE eServerType, char *pszIP, WORD wPort );
VOID ReloadData();
DWORD GetServerGUID() { return m_dwServerGUID; }
VOID SetServerGUID( DWORD guid ) { m_dwServerGUID=guid; }
inline SERVER_KEY GetServerKey() { return m_ServerKey; }
VOID SetServerKey(SERVER_KEY serverKey) { m_ServerKey = serverKey; }
inline VOID ClearUserMoney() { m_ui64TotalUserMoney = 0; }
inline VOID ClearTotalPlus() { m_ui64TotalPlusMoney = 0; }
inline VOID ClearTotalMinus() { m_ui64TotalMinusMoney = 0; }
inline VOID PlusUserMoney( DWORD plusMoney )
{
if( m_ui64TotalUserMoney < 0xffffffffffffffff - plusMoney )
m_ui64TotalUserMoney += (ULONGLONG)plusMoney;
}
inline VOID MinusUserMoney( DWORD minusMoney )
{
if( m_ui64TotalUserMoney < minusMoney )
{
m_ui64TotalUserMoney = 0;
}
else
{
m_ui64TotalUserMoney -= (ULONGLONG)minusMoney;
}
}
inline VOID PlusTotalPlus( DWORD plusMoney )
{
if( m_ui64TotalPlusMoney < 0xffffffffffffffff - plusMoney )
m_ui64TotalPlusMoney += (ULONGLONG)plusMoney;
}
inline VOID MinusTotalMinus( DWORD minusMoney )
{
if( m_ui64TotalMinusMoney < 0xffffffffffffffff - minusMoney )
m_ui64TotalMinusMoney += (ULONGLONG)minusMoney;
}
inline ULONGLONG GetTotalUserMoney() { return m_ui64TotalUserMoney; }
inline ULONGLONG GetTotalPlusMoney() { return m_ui64TotalPlusMoney; }
inline ULONGLONG GetTotalMinusMoney() { return m_ui64TotalMinusMoney; }
protected:
BOOL m_bShutdown;
IOCPServer * m_pIOCPServer;
PacketHandler * m_pNetworkPacket;
HINSTANCE m_hDll3DTerrain; // 3D浚柳评狼 瘤屈浚柳
HINSTANCE m_hDllNumerical; // 3D浚柳评狼 荐摹浚柳
CFileParser * m_pFileParser;
DWORD m_dwFPS;
SERVER_KEY m_ServerKey;
private:
ServerSession *m_pMasterServerSession;
ServerSession *m_pGameDBProxySession;
ServerSession *m_pAgentServerSession;
ServerSession *m_pGuildServerSession;
util::Timer m_ReconnectTimer;
DWORD m_dwServerGUID;
ULONGLONG m_ui64TotalUserMoney; // 荤侩磊 焊蜡 陛咀 烹拌
ULONGLONG m_ui64TotalPlusMoney; // 积己 陛咀 烹拌
ULONGLONG m_ui64TotalMinusMoney; // 家戈 陛咀 烹拌
};
extern GameServer * g_pGameServer;
extern CSimpleModulus *g_pEncryptor;
extern CSimpleModulus *g_pDecryptor;
#endif // __GAME_SERVER_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -