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

📄 packet.h

📁 网络游戏龙族服务器端管理工具 rmtool 源代码
💻 H
字号:
#pragma once
#pragma pack(push,1)

#define PTCL_RM						110			//LISTENER_TO_PROXY

//Packet header
#define MSG_RM_LOGIN						1
#define MSG_RM_DOWNLOAD_PATH				2
#define MSG_RM_COPY_FILE					3
#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		//Proxy Server甫 力寇茄 辑滚甸 ShutDown~
#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		//Proxy Server 炼沥 
#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_COPY_FILE_AUTO				30


#define MSG_RM_REQUEST_RMINFO		101			//rm_server_info狼 郴侩阑 夸没茄促. 
#define MSG_CLOSE_CONNECTION		102			//RMTool苞 楷搬阑 泪矫 吝窜茄促. 

#define MSG_RM_KICKOFF_USER			111		//kyo 蜡历 立加辆丰
#define MSG_RM_KICKOFF_USER_ALL		112		//kyo // 030716 kyo  
#define MSG_RM_KICKOFF_USER_SEVERAL	113		// BBD 040107	老沥荐父 楼福绰 皋矫瘤
#define MSG_RM_KICKOFF_AGENTCANJOIN	114		// BBD 040109	俊捞傈飘->甘 炼牢登档废 父电促


#define MSG_LISTENER_EXECUTE_SERVER			53	//Listener俊霸 辑滚 角青窍扼绊 皋技瘤 焊晨 


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

struct PACKET_RM_PROXY_CONTROL
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bUserAccept;
	BYTE bTryToConnect;
	WORD wMaxUser;

	DWORD GetPacketSize() {	 return (DWORD)6;	}
	PACKET_RM_PROXY_CONTROL(BYTE accept, BYTE btry, WORD muser)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_PROXY_CONTROL;
		bUserAccept = accept;
		bTryToConnect = btry;
		wMaxUser = muser;
	}
};

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

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

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

struct PACKET_SHUTDOWN_SUBSERVER
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bServerType;
	DWORD GetPacketSize() { return (DWORD)3;	}

	PACKET_SHUTDOWN_SUBSERVER(BYTE type)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_SHUTDOWN_SUBSERVER;	
		bServerType = type;		//1锅捞 Agent, 2锅捞 DBDemon, 3锅捞 甘 
	}	
};

struct PACKET_CHECK_LISTENER_CONNECTION
{
	BYTE bPtcl;
	BYTE bHeader;
	DWORD GetPacketSize() { return (DWORD)2;	}
	
	PACKET_CHECK_LISTENER_CONNECTION()
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_CHECK_LISTENER_CONNECTION;
	}
};


struct PACKET_SHUT_DOWN_PROXY
{
	BYTE bPtcl;
	BYTE bHeader;
	DWORD GetPacketSize() { return (DWORD)2;	}

	PACKET_SHUT_DOWN_PROXY()
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_SHUTDOWN_PROXY;
	}

};



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

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

struct PACKET_KICKOFF_USER
{
	BYTE bPtcl;
	BYTE bHeader;

	char	szUserID[20];
	//PACKET_KICKOFF_USER()
	//{
	//	bPtcl = PTCL_RM;
	//	bHeader = MSG_RM_KICKOFF_USER;
	//	memset( szUserID, 0, 20 );
	//}
};


struct PACKET_KICKOFF_USERALL
{
	BYTE bPtcl;
	BYTE bHeader;
};

//<! BBD 040109
struct PACKET_KICKOFF_AGENTCANJOIN
{
	BYTE bPtcl;
	BYTE bHeader;
};
//> BBD 040109

struct PACKET_CONNECT_ALL_LISTENER
{
	BYTE bPtcl;
	BYTE bHeader;
	DWORD dwFrameID;
	DWORD GetPacketSize()	{	return (DWORD)6;	}
	
	PACKET_CONNECT_ALL_LISTENER(DWORD frameID)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_CONNECT_ALL_LISTENER;
		dwFrameID = frameID;
	}
};

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_RM_LOGIN_OK
{
	BYTE	bHeader;
	BYTE	bServerSetNum;
};

struct PACKET_RM_LOGIN_FAIL
{
	BYTE	bHeader;
};

struct PACKET_RM_LOGIN
{
	BYTE	bPtcl;
	BYTE	bHeader;
	
	char	IP[16];
	char	ID[20];
	char	Name[25];
	DWORD GetPacketSize(){ return (DWORD)63;	}
	PACKET_RM_LOGIN(char* id, char* name)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_LOGIN;

		char szHostName[40];
		::gethostname(szHostName, sizeof(szHostName));
		HOSTENT FAR* lphostent = ::gethostbyname(szHostName);
		sprintf(IP,"%s",inet_ntoa(*((struct in_addr*)lphostent->h_addr)));
				
		memset(ID,0,20);
		memset(Name,0,25);
		memcpy(ID,id, strlen(id));
		memcpy(Name,name,strlen(id));
	}
};

struct PACKET_SET_DOWNLOAD_PATH
{
	BYTE bPtcl;
	BYTE bHeader;
	char szDrive;
	char szPath[ MAX_PATH ];

	DWORD GetPacketSize() { return (DWORD)(MAX_PATH + 3); }
	PACKET_SET_DOWNLOAD_PATH(char drive, char* path)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_DOWNLOAD_PATH;
		szDrive = drive;
		memset(szPath,0,MAX_PATH);
		strcpy(szPath,path);
	}
};

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 = (BYTE)strlen(filename);
		memcpy(szFileName, filename, bFileNameLen);
	}
};

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_SET_COPY_PATH
{
	BYTE bPtcl;
	BYTE bHeader;
	char szPath[ MAX_PATH ];
	DWORD GetPacketSize(){	return (DWORD)(2+MAX_PATH);	}

	PACKET_SET_COPY_PATH(char *path)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_COPY_PATH;
		memset(szPath,0,MAX_PATH);
		strcpy(szPath,path);
	}
};

struct PACKET_FILE_COPY
{
	BYTE bPtcl;
	BYTE bHeader;
	BYTE bType;
	BYTE bExecute;
	WORD wPort;
	char szFileName[ MAX_PATH ];

	DWORD GetPacketSize() { return (DWORD)(MAX_PATH + 6); }
	PACKET_FILE_COPY(BYTE type, WORD port, BYTE execute, char* file)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_COPY_FILE_AUTO;
		bType = type;
		wPort = port;
		bExecute = execute;
		memset(szFileName, 0, MAX_PATH);
		memcpy(szFileName, file, strlen(file));
	}
};

struct PACKET_LISTENER_PATCH
{
	BYTE bPtcl;
	BYTE bHeader;

	DWORD GetPacketSize() { return (DWORD)2; }
	PACKET_LISTENER_PATCH()
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_LISTENER_PATCH;
	}
};


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

//Listener Sync Packet Header
#define MSG_RM_SET_EXEC_PATCH		5

struct PACKET_SET_TEMP_DOWNLOAD_PATH
{
	BYTE bPtcl;
	BYTE bHeader;
	char szDrive;
	char szPath[ MAX_PATH ];

	DWORD GetPacketSize() { return (DWORD)(MAX_PATH + 3); }

	PACKET_SET_TEMP_DOWNLOAD_PATH(char drive, char* path)
	{
		bPtcl = PTCL_RM;
		bHeader = MSG_RM_SET_EXEC_PATCH;
		szDrive = drive;
		memset(szPath,0,MAX_PATH);
		strcpy(szPath,path);
	}
};


#define MANAGER_CLIENT_FIRST_PACKET_TYPE		421
#define MANAGER_CLIENT_FIRST_PACKET_SIZE		0
#define MANAGER_CLIENT_FIRST_PACKET_CRC			247

typedef struct manager_packet_header
{
	BYTE		bPTCL;
	WORD		wCMD;
	DWORD		dwCRC;

	union
	{
		WORD		wTargetServerID;
		DWORD		dwTargetManagerID;
	} uTarget;

} MANAGER_PACKET_HEADER, *LP_MANAGER_PACKET_HEADER;


//kyo 020629----------------------------------------------------------------------
struct PACKET_RMSERVER_INFO		//府胶呈俊 狼秦 罐绰 rm_server_info
{
	BYTE bPtcl ;
	BYTE bHeader ;
	QueryServerInfo pServerInfo;

};

struct PACKET_CLOSE_RMSERVER	//府胶呈俊 狼秦 罐绰, 楷搬阑 肋扼扼.
{
	BYTE bPtcl;
	BYTE bHeader;
};
//----------------------------------------------------------------------------------


#pragma pack(pop)

⌨️ 快捷键说明

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