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

📄 rmproc.cpp

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 CPP
字号:
#include "stdafx.h"
#include "LowerLayers\\inetwork.h"
#include "LowerLayers\\ServerTable.h"
#include "RMDefine.h"
#include "HigherLayers\\KickOffAll.h"		// BBD 040110

extern void __stdcall ReLoadGameServerDataByKeyInput(DWORD dwValue); //020511 lsw

CKickOffAll g_KickMgr;		// BBD 040110

void RMProc(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
	BYTE header;
	memcpy(&header, pMsg + 1, 1);

	switch (header)
	{
	case MSG_SHUT_DOWN:
		{
			g_pServerTable->DestroyServer(FINISH_TYPE_NORMAL);
			break;
		}
	case MSG_RELOAD_GAMESERVER_DATA:
		{
			ReLoadGameServerDataByKeyInput(0);
			break;
		}
	case MSG_CHANGE_WEATHER:	//努扼捞攫飘甸俊霸 皋技瘤 谎妨扼~
		{
			PACKET_CHANGE_WEATHER *rcvPacket = (PACKET_CHANGE_WEATHER*)pMsg;

			t_packet packet;
			packet.h.header.type = CMD_RM_CHANGE_WEATHER;
			packet.h.header.size = sizeof(t_rm_change_weather);
			packet.u.RmChangeWeather.bWeather = rcvPacket->bWeather;
			packet.u.RmChangeWeather.dwAmount = rcvPacket->dwAmount;
			packet.u.RmChangeWeather.bStopWeather = rcvPacket->bStopWeather;
			
			for (int cn = DRAGON_CONNECTIONS_START ; cn < DRAGON_MAX_CONNECTIONS ; cn ++)
			{
				if(connections[cn].dwAgentConnectionIndex && connections[cn].state >= CONNECT_JOIN)
				{
					QueuePacket(connections, cn, &packet, 1);
				}
			}

			break;
		}
	case MSG_ECHO:
		{	// Echo
			if (g_pINet)
			{
				g_pINet->SendToServer(dwConnectionIndex, pMsg, dwLength, FLAG_SEND_NOT_ENCRYPTION);
			}
			
			break;
		}
	//<! BBD 040110	RM栏肺 傈力立加阑 辆丰矫累
	case MSG_RM_KICKOFF_USER_ALL:	// 傈眉 蜡历甫 甘辑滚啊 瞒肥措肺 肋扼霖促
		{
			if(!g_KickMgr.IsKicking())				// 柳青吝 促矫 甸绢坷搁 公矫茄促
			{
				//<! BBD 040401
				if(g_KickMgr.InitKickOffUserAll())
				{
					MyLog( LOG_NORMAL, "Start Blocking Agent -> Map Join" );
					MyLog( LOG_NORMAL, "Start Blocking Map -> Map Move" );	// BBD 040329
				}
				//> BBD 040401
			}
			break;
		}
	//> BBD 040110	RM栏肺 傈力立加阑 辆丰矫累

	//<! BBD 040110 RM栏肺 老沥荐狼 立加蜡历甫 磊弗促
	case MSG_RM_KICKOFF_USER_SEVERAL:
		{
			g_KickMgr.KickOffSeverlUser();
			break;
		}
	//> BBD 040110 RM栏肺 老沥荐狼 立加蜡历甫 磊弗促

	//<! BBD 040110 Agent狼 甘辑滚 炼牢 倾侩
	case MSG_RM_KICKOFF_AGENTCANJOIN:
		{
			//<! BBD 040401
			if(g_KickMgr.IsKicking())	// 疟吝老锭父 贸府
			{
				g_KickMgr.StopKicking();
				MyLog( LOG_NORMAL, "End Blocking Agent -> Map Join" );
				MyLog( LOG_NORMAL, "End Blocking Map -> Map Move" );			// BBD 040329
			}
			//> BBD 040401
			break;
		}
	//> BBD 040110 Agent狼 甘辑滚 炼牢 倾侩
	}
}

⌨️ 快捷键说明

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