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

📄 worldserver.h

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 H
字号:
#ifndef _WORLDSERVER_H_
#define _WORLDSERVER_H_

#define DISP_OK		DISPMSG( " [OK]\n" );
#define DISP_FAIL	DISPMSG( " Failed!\n" );

#include <windows.h>
#include <Singleton.h>
#include <map>
#include <const.h>
#include <Timer.h>
#include <ServerStruct.h>

// 甘 肺爹 困秦 眠啊
#include <3DEngine/3DTerrain/3DTerrain.h>

using namespace std;

class IOCPServer;
class Session;
class ServerSession;
class NetworkObject;

using namespace util;

class WorldServer : public Singleton<WorldServer>
{
	enum {	CLIENT_IOHANDLER = 0,
			SERVER_IOHANDLER = 1 };

	friend NetworkObject* CallBackOnAccept( DWORD dwNetworkIndex );
	friend VOID CallBackOnDisconnect( DWORD dwSessionIndex, NetworkObject *pNetworkObject );

public:
	WorldServer();
	~WorldServer();

	VOID					UpdateServerTitle();
	BOOL					Init();
	VOID					Release();
	VOID					Run();
	BOOL					Update();
	VOID					StartListen();
	VOID					StartListen( char *szIP, WORD wPort, char *szInnerIP, WORD wInnerPort );
	VOID					ConnectToServer( NetworkObject *pNetworkObject, char *pszIP, WORD wPort );
	inline VOID				Shutdown() { m_bShutdown = TRUE; }
	inline BOOL				IsOnShutdown() { return m_bShutdown; }
	inline VOID				SetServerKey( SERVER_KEY key ) { m_ServerKey = key; }
	inline SERVER_KEY		GetServerKey() { return m_ServerKey; }
	inline DWORD			GetWorldID() { return m_ServerKey.GetWorldID(); }
	inline DWORD			GetChannelID() { return m_ServerKey.GetChannelID(); }
	inline DWORD			GetServerID() { return m_ServerKey.GetServerID(); }
	VOID					ConnectToDBProxyServer();
	BOOL					ProcessConsole();
	VOID					ReadAndSendNotice();
	BOOL					IsConnectedTo( eSERVER_TYPE eServerType );

	VOID					SetGameDBProxyServerAddr( TCHAR* tszDBProxyIP, WORD wDBProxyPort );
	VOID					ConnectToGameDBProxyServer();

	inline eSERVER_TYPE		GetServerType() { return WORLD_SERVER; }

	HINSTANCE						m_hDll3DTerrain;	// DLL Instance
	FUNC_ContactTerrain				m_fnContactTerrain;	// 甘 沥焊 楷搬 function

private:
	VOID					UpdateFPS();
	VOID					DisplayServerInfo();
	VOID					MaintainConnection();

	ServerSession			*m_pMasterServer;
	ServerSession			*m_pGameDBProxy;

	IOCPServer				*m_pIOCPServer;
	BOOL					m_bShutdown;
	DWORD					m_dwFPS;
	util::Timer				m_ReconnectTimer;
	SERVER_KEY				m_ServerKey;
};

#endif // _WORLDSERVER_H_

⌨️ 快捷键说明

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