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

📄 rmdefine.h

📁 Proxy in c++ for DragonRaja
💻 H
字号:
#pragma once
#include "protocol.h"
#include "ServerTable.h"

//弥措 Listener 立加荐 
#define MAX_LISTENER_NUM		50
#define IP_LENGTH				16

//弥措 RMTool Login 啊瓷荐 (30俺狼 IP父 倾侩)
#define MAX_RM_LOGIN			30

//RM_LOGIN 备炼眉狼 bType define
#define RM_TYPE_TOOL			1
#define RM_TYPE_LISTENER		2

//ProxyServer -> Listener 肺狼 立加且 器飘 锅龋 
#define PROXY_SERVER_CONNECTION_PORT	24694


//RM Packet 庆歹 
#define MSG_RM_LOGIN						1
#define MSG_RM_DOWNLOAD_PATH				2
#define MSG_RM_COPY_FILE					3  //SYNC Socket 
#define MSG_RM_LISTENER_PATCH				4
#define MSG_RM_LOGIN_OK						5
#define MSG_RM_LOGIN_FAIL					6
#define MSG_RM_REQUEST_ALL_SEBSERVER_INFO	7
#define MSG_RM_REPLY_ALL_SEBSERVER_INFO		8
#define MSG_RM_SHUTDOWN_SERVER				9
#define MSG_RM_USER_ACCEPT_ALLOWED			10
#define MSG_RM_SHUTDOWN_PROXY				11		//Proxy父 ShutDown
#define MSG_RM_SERVER_DISCONNECTED			12		//Proxy -> RMClient肺 
#define MSG_RM_SHUTDOWN_SUBSERVER			13		//Agent,Map,DBDemon殿 茄啊瘤 辆幅喊肺 妓促款 
#define MSG_RM_SERVER_UP					14		//Proxy俊 绢栋茄 辑滚啊 立加沁阑锭..
#define MSG_RM_EXECUTE_SERVER				15		//Proxy Server甫 力寇茄 辑滚甸 角青 
#define MSG_RM_REBOOT_SERVER				16		//辑滚 犁何泼 
#define MSG_RM_PROXY_CONTROL				17		//辑滚 犁何泼 
#define MSG_RM_RELOAD_DATA					18		//Reload Gameserver Data
#define MSG_RM_NOTICE						19		//傍瘤焊尘 辑滚 
#define MSG_RM_CHANGE_WEATHER				20		//朝揪 官厕 
#define MSG_RM_DOWN_SERVER					21		//Server Down 灯促!!
#define MSG_RM_COPY_PATH					22		//Copy秦棵 匙飘亏 版肺 菩胶 
#define MSG_RM_REQUEST_ALL_LISTENER_INFO	23		//府胶呈 沥焊 夸没 
#define MSG_RM_REPLY_ALL_LISTENER_INFO		24
#define MSG_RM_CONNECT_ALL_LISTENER			25
#define MSG_RM_LISTENER_CONNECT_COMPLETE	26
#define MSG_RM_CHECK_LISTENER_CONNECTION	27
#define MSG_RM_CHECK_LISTENER_CONNECTION_RESULT	28
#define MSG_RM_RELOADING_GAMESERVER_DATA	29		//GameServerData Reload 窍绊 乐绰吝 


#define MSG_RM_BROADCAST_AGENT		50	//Agent Listener 俊霸父... 
#define MSG_RM_BROADCAST_DBDEMON	51	//DBDEMON Listener 俊霸父... 
#define MSG_RM_BROADCAST_MAP		52	//MAP Listener 俊霸父...
#define MSG_LISTENER_EXECUTE_SERVER 53	//Listener俊霸 辑滚 角青窍扼绊 皋技瘤 焊晨 
#define MSG_LISTENER_REBOOT_SERVER  54	//Listener俊霸 辑滚 犁何泼窍扼绊 皋技瘤 焊晨 



//Proxy < -- > Other Server
#define MSG_SHUT_DOWN				100	//ShutDown
#define MSG_RELOAD_GAMESERVER_DATA  101 //Reload Gameserver data
#define MSG_CHANGE_WEATHER			102	//ChangeWeather(MAP Server)
#define MSG_ECHO					103

#define MSG_RM_KICKOFF_USER			111	// 030224 kyo RM蜡历 立加 辆丰 
#define MSG_RM_KICKOFF_USER_ALL		112	// BBD 040110 RM 傈眉蜡历 碍力 立加辆丰
#define MSG_RM_KICKOFF_USER_SEVERAL	113	// BBD 040110 RM 沥秦柳 疙荐狼 蜡历辆丰
#define MSG_RM_KICKOFF_AGENTCANJOIN	114	// BBD 040110 俊捞傈飘->甘 炼牢 倾侩

#define CMD_RM_CHANGE_WEATHER		26000
#define MSG_LISTENER_LOGIN			100

#pragma pack(push,1)


struct RMCLIENT_INFO
{
	BYTE			bConnectType;		//OnDisconnectServer俊辑 Client牢瘤 Listener牢瘤 备盒窍扁 困茄 菊俊 1Byte	
	DWORD			dwID;				//Listener 绊蜡狼 锅龋捞促(IP狼 ULONG蔼栏肺 茄促.).
	DWORD			ConnectionIndex;	//橇废矫辑滚俊辑 立加俊 蝶扼 绊蜡肺 何咯茄 锅龋 
	DWORD			IPAddress;			//立加茄 Tool狼 IP Address
	
	char			szLoginID[20];		//肺弊牢茄 砒 酒捞叼 
	char			szName[25];			//肺弊牢茄 蜡历狼 捞抚 

	RMCLIENT_INFO*		pPrvUserInfo;		//hash 抛捞喉俊辑 鞍篮 滚哦救狼 捞傈 饭内靛狼 林家蔼  
	RMCLIENT_INFO*		pNextUserInfo;		//hash 抛捞喉俊辑 鞍篮 滚哦救狼 促澜 饭内靛狼 林家蔼  
};

struct RM_LISTENER_INFO
{
	BYTE bConnectType;			//OnDisconnectServer俊辑 Client牢瘤 Listener牢瘤 备盒窍扁 困茄 菊俊 1Byte
	DWORD dwConnectionIndex;	
//	SERVER_TYPE dwServerType;	//绢恫 辑滚 Type狼 府胶呈捞衬...
	char szIP[ IP_LENGTH ];		//秦寸 IP

	RM_LISTENER_INFO* pPrevInfo;
	RM_LISTENER_INFO* pNextInfo;
};



//---------------------------------  RM Packet -------------------------------------
struct PACKET_CHECK_LISTENER_CONNECTION
{
	BYTE bPtcl;
	BYTE bHeader;
};


struct PACKET_RM_PROXY_CONTROL
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bUserAccept;
	BYTE bTryToConnect;
	WORD wMaxUser;
};
struct PACKET_SHUTDOWN_SUBSERVER
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bServerType;
	DWORD GetPacketSize() { return (DWORD)3;	}

};

struct PACKET_RM_LOGIN
{
	BYTE	bPtcl;
	BYTE	bHeader;
	char	IP[16];
	char	ID[20];
	char	Name[25];

	DWORD GetPacketSize(){ return (DWORD)63;	}
};

struct PACKET_REQUEST_ALL_SUBSERVER_INFO
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bOpenTemplate;		//货肺款 袍敲复阑 肺靛 且巴牢啊 救且巴牢啊 窍绰 沥焊 
	DWORD dwFrameID;		//览翠 皋技瘤甫 罐阑 橇饭烙ID蔼 (bOpenTemplate捞 FALSE老锭父)
};


struct PACKET_CONNECT_ALL_LISTENER
{
	BYTE bPtcl;
	BYTE bHeader;
	DWORD dwFrameID;
};

struct PACKET_LISTENER_CONNECT_COMPLETE
{
	BYTE bHeader;
	DWORD dwFrameID;
	DWORD GetPacketSize()	{	return (DWORD)5;	}
	
	PACKET_LISTENER_CONNECT_COMPLETE(DWORD frameID)
	{
		bHeader = MSG_RM_LISTENER_CONNECT_COMPLETE;
		dwFrameID = frameID;
	}
};

struct PACKET_CHECK_LISTENER_CONNECTION_RESULT
{
	BYTE bHeader;
	DWORD dwCount;
	DWORD GetPacketSize()	{	return (DWORD)5;	}

	PACKET_CHECK_LISTENER_CONNECTION_RESULT(DWORD count)
	{
		bHeader = MSG_RM_CHECK_LISTENER_CONNECTION_RESULT;
		dwCount = count;
	}
};

struct PACKET_REQUEST_ALL_LISTENER_INFO
{
	BYTE bPtcl;
	BYTE bHeader;
	DWORD dwFrameID;		//览翠 皋技瘤甫 罐阑 橇饭烙ID蔼 (bOpenTemplate捞 FALSE老锭父)
};

struct ServerStatusInfo
{
	WORD	wPort;
	DWORD	dwStatus;
	DWORD	dwNumOfUsers;
};

struct PACKET_RM_SERVER_DISCONNECT
{
	BYTE bHeader;
	BYTE bServerSetNum;
	WORD wPort;

	DWORD GetPacketSize()	{ return (DWORD)4;	}

	PACKET_RM_SERVER_DISCONNECT(BYTE bServerSet, WORD wServerPort)
	{
		bHeader = MSG_RM_SERVER_DISCONNECTED;
		bServerSetNum = bServerSet;
		wPort = wServerPort;
	}
};


struct PACKET_RM_SERVER_UP
{
	BYTE bHeader;
	BYTE bServerSetNum;
	WORD wPort;

	DWORD GetPacketSize()	{ return (DWORD)4;	}

	PACKET_RM_SERVER_UP(BYTE bServerSet, WORD wServerPort)
	{
		bHeader = MSG_RM_SERVER_UP;
		bServerSetNum = bServerSet;
		wPort = wServerPort;
	}
};

//肺弊牢 铰牢苞 窃膊 辑滚 惑怕 沥焊甫 鞍捞 逞败霖促. 
struct PACKET_RM_LOGIN_OK
{
	BYTE	bHeader;
	BYTE	bServerSetNum;

	DWORD	GetPacketSize()	{ return (DWORD)2;	}
	PACKET_RM_LOGIN_OK(BYTE num)
	{
		bHeader = MSG_RM_LOGIN_OK;
		bServerSetNum = num;
	}
};

struct PACKET_RM_LOGIN_FAIL
{
	BYTE	bHeader;
	DWORD	GetPacketSize()	{ return (DWORD)1;	}
	PACKET_RM_LOGIN_FAIL()
	{
		bHeader = MSG_RM_LOGIN_FAIL;
	}
};



struct PACKET_LISTENER_SERVER_EXCUTE
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bServerType;
	WORD wPort;
	BYTE bFileNameLen;
	char szFileName[ MAX_PATH ];
	
	DWORD GetPacketSize()	{	return (DWORD)(6 + bFileNameLen);	}

	PACKET_LISTENER_SERVER_EXCUTE(BYTE ServerType, WORD port, char* filename)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_LISTENER_EXECUTE_SERVER;
		bServerType = ServerType;
		wPort = port;
		bFileNameLen = strlen(filename);
		memcpy(szFileName, filename, bFileNameLen);
	}
};

struct PACKET_LISTENER_SERVER_REBOOT
{
	BYTE bPtcl;
	BYTE bHeader;

	DWORD GetPacketSize()	{	return (DWORD)2;	}
	PACKET_LISTENER_SERVER_REBOOT()
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_LISTENER_REBOOT_SERVER;
	}
};

//Proxy辑滚啊 Listener俊 Accept登菌阑锭 Listener俊辑 朝妨林绰 辑滚 捞抚捞淬变 沥焊 
/*
struct PACKET_LISTENER_LOGIN
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bNameLen;
	char szMachineName[20];

	DWORD GetPacketSize()	{ return (3 + bNameLen);	}
	void GetServerName(char* szName)
	{
		memcpy(szName, szMachineName, bNameLen);
	}

};
*/


//------------------------ Proxy -> Other Server
struct PACKET_SHUT_DOWN
{
	BYTE bPtcl;
	BYTE bHeader;

	PACKET_SHUT_DOWN()
	{
		bPtcl = PTCL_RM_FROM_PROXY;
		bHeader = MSG_SHUT_DOWN;
	}

};

struct PACKET_KICKOFF_USER	// 030224 kyo
{
	BYTE  bPtcl;
	BYTE  bHeader;
	char  szUserID[20];

	PACKET_KICKOFF_USER()
	{
		bPtcl	= PTCL_RM_FROM_PROXY;
		bHeader	= MSG_RM_KICKOFF_USER;
	}
};
//<! BBD 040110		傈眉蜡历 碍硼甫 困茄 眠啊
struct PACKET_KICKOFF_USER_ALL
{
	BYTE bPtcl;
	BYTE bHeader;
	PACKET_KICKOFF_USER_ALL()
	{
		bPtcl	= PTCL_RM_FROM_PROXY;
		bHeader = MSG_RM_KICKOFF_USER_ALL;
	}
};
//> BBD 040110		傈眉蜡历 碍硼甫 困茄 眠啊

//<! BBD 040110		傈眉蜡历 碍硼甫 困茄 眠啊
struct PACKET_KICKOFF_USER_SEVERAL
{
	BYTE bPtcl;
	BYTE bHeader;
	PACKET_KICKOFF_USER_SEVERAL()
	{
		bPtcl	= PTCL_RM_FROM_PROXY;
		bHeader = MSG_RM_KICKOFF_USER_SEVERAL;
	}
};
//> BBD 040110		傈眉蜡历 碍硼甫 困茄 眠啊

//<! BBD 040110		RM 栏肺 俊捞傈飘 肺变 倾侩
struct PACKET_KICKOFF_AGENTCANJOIN
{
	BYTE bPtcl;
	BYTE bHeader;
	PACKET_KICKOFF_AGENTCANJOIN()
	{
		bPtcl	= PTCL_RM_FROM_PROXY;
		bHeader = MSG_RM_KICKOFF_AGENTCANJOIN;
	}
};
//> BBD 040110		RM 栏肺 俊捞傈飘 肺变 倾侩
struct PACKET_RELOAD_GAMESERVER_DATA
{
	BYTE bPtcl;
	BYTE bHeader;

	DWORD GetPacketSize()	{	return (DWORD)2;	}
	PACKET_RELOAD_GAMESERVER_DATA()
	{
		bPtcl = PTCL_RM_FROM_PROXY;
		bHeader = MSG_RELOAD_GAMESERVER_DATA;
	}
};

struct PACKET_CHANGE_WEATHER
{
	BYTE bPtcl;
	BYTE bHeader;	
	BYTE bWeather;	//0捞搁 讣澜, 1捞搁 厚, 2捞搁 传 
	BYTE bStopWeather;	//WeatherSystem 沥瘤 
	DWORD dwAmount;

	DWORD GetPacketSize()	{	return (DWORD)8;	}
	PACKET_CHANGE_WEATHER(BYTE weather, BYTE stop, DWORD amount)
	{
		bPtcl = PTCL_RM_FROM_PROXY;
		bHeader = MSG_CHANGE_WEATHER;
		bWeather = weather;
		bStopWeather = stop;
		dwAmount = amount;
	}
};


//辑滚 促款 瞪锭 舅覆 皋技瘤 
struct PACKET_DOWN_SERVER
{
	BYTE bHeader;
	BYTE bServerSetNum;
	WORD wPort;

	DWORD GetPacketSize()	{	return (DWORD)4;	}
	PACKET_DOWN_SERVER(BYTE serversetnum, WORD port)
	{
		bHeader = MSG_RM_DOWN_SERVER;
		bServerSetNum = serversetnum;
		wPort = port;
	}
};


struct PACKET_RELOADING_GAMESERVER_DATA
{
	BYTE bHeader;
	BYTE bServerSetNum;
	BYTE bStart;	//RELOAD甫 矫累 茄芭搁 TRUE; 场抄芭搁 FALSE;
	WORD wPort;

	DWORD GetPacketSize()	{	return (DWORD)5;	}
	PACKET_RELOADING_GAMESERVER_DATA(BYTE start, BYTE serversetnum, WORD port)
	{
		bHeader = MSG_RM_RELOADING_GAMESERVER_DATA;
		bServerSetNum = serversetnum;
		bStart = start;
		wPort = port;
	}

};


struct PACKET_ECHO
{
	BYTE bPtcl;
	BYTE bHeader;	
	BYTE bBucketIndex;
	WORD wPort;
	DWORD dwEchoID;


	DWORD GetPacketSize() { return (DWORD)9;	}
	PACKET_ECHO(BYTE bucket, WORD port, DWORD echo)
	{
		bPtcl = PTCL_RM_FROM_PROXY;
		bHeader = MSG_ECHO;
		bBucketIndex = bucket;
		wPort = port;
		dwEchoID = echo;
	}
};

struct EchoBucket
{
	WORD wPort;
	BYTE bSended;
	BYTE bReceived;
};
#pragma pack(pop)

⌨️ 快捷键说明

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