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

📄 processmsg.cpp

📁 A3服务端AccountServer源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		{
			//Main Server肺 Ask_Create_Player 傈价
			memcpy(Msg_S2M_Ask_Create_Player.szCharacterName, pMsg->szCharacterName, sizeof(Msg_S2M_Ask_Create_Player.szCharacterName));
			Msg_S2M_Ask_Create_Player.szCharacterName[sizeof(Msg_S2M_Ask_Create_Player.szCharacterName) - 1] = NULL;
			memcpy(Msg_S2M_Ask_Create_Player.szAccountName, AccountManage.GetAccountName(pMsg->MsgHeader.dwPCID), sizeof(Msg_S2M_Ask_Create_Player.szAccountName));
			Msg_S2M_Ask_Create_Player.szAccountName[sizeof(Msg_S2M_Ask_Create_Player.szAccountName) - 1] = NULL;
			Msg_S2M_Ask_Create_Player.byClassIndex = pMsg->byClassIndex;
			Msg_S2M_Ask_Create_Player.byNation = pMsg->byNation;
			Msg_S2M_Ask_Create_Player.dwPCID = pMsg->MsgHeader.dwPCID;
			Msg_S2M_Ask_Create_Player.byGateSvrID = iGate;
			
			if (MainServer.SendMsg(&Msg_S2M_Ask_Create_Player, sizeof(Msg_S2M_Ask_Create_Player)))
			{
				//printf("Send Ok - Msg_S2M_Ask_Create_Player\n");
			}
			else
			{
				// SendMsg Error Processing
			}
		}
		else
		{
			// Invaild Account Error Processing
		}

	}
	else	//Account Server郴俊辑 某腐磐 积己 角菩 - 后 浇吩捞 绝芭唱 殿殿
	{
		Msg_S2C_Error.MsgHeader.dwPCID = pMsg->MsgHeader.dwPCID;
		Msg_S2C_Error.wErrCode = CHAR_LIST_FULL;
		strncpy(Msg_S2C_Error.szErrStr, "某腐磐 府胶飘狼 后 浇吩捞 绝嚼聪促.", sizeof(Msg_S2C_Error.szErrStr));
		Msg_S2C_Error.szErrStr[sizeof(Msg_S2C_Error.szErrStr) - 1] = NULL;

		if (GateManage.SendMsg(iGate, &Msg_S2C_Error, sizeof(Msg_S2C_Error)))
		{
			//printf("Send Ok - Msg_S2C_Error:%d\n",Msg_S2C_Error.wErrCode);
		}
		else
		{
			// Error Processing
			//printf("Send Fail - Msg_S2C_Error\n");
		}
	}
}

void	Func_C2S_ASK_DELETE_PLAYER(MSG_C2S_ASK_DELETE_PLAYER * pMsg, BYTE iGate)
{
	StrTrim(pMsg->szCharacterName, " ");

	if (AccountManage.DeleteCharacter(pMsg->MsgHeader.dwPCID, pMsg->szCharacterName))
	{
		if (AccountManage.IsValidAccount(pMsg->MsgHeader.dwPCID, pMsg->szCharacterName))
		{
			//Main Server肺 Ask_Delete_Player 傈价
			memcpy(Msg_S2M_Ask_Delete_Player.szCharacterName, pMsg->szCharacterName, sizeof(Msg_S2M_Ask_Delete_Player.szCharacterName));
			Msg_S2M_Ask_Delete_Player.szCharacterName[sizeof(Msg_S2M_Ask_Delete_Player.szCharacterName) - 1] = NULL;
			Msg_S2M_Ask_Delete_Player.dwPCID = pMsg->MsgHeader.dwPCID;
			Msg_S2M_Ask_Delete_Player.byGateSvrID = iGate;

			if (MainServer.SendMsg(&Msg_S2M_Ask_Delete_Player, sizeof(Msg_S2M_Ask_Delete_Player)))
			{
				//printf("Send Ok - Msg_S2M_Ask_Delete_Player\n");
			}
			else
			{
				// SendMsg Error Processing
			}
		}
		else
		{
			// Invaild Account Error Processing
		}

	}
	else	//Account Server郴俊辑 某腐磐 积己 圾菩 - 弊 某腐捞 绝芭唱 殿殿
	{
		Msg_S2C_Error.MsgHeader.dwPCID = pMsg->MsgHeader.dwPCID;
		Msg_S2C_Error.wErrCode = CANT_FIND_CHAR;
		strncpy(Msg_S2C_Error.szErrStr, "昏力 窍妨绰 某腐磐啊 粮犁窍瘤 臼嚼聪促.", sizeof(Msg_S2C_Error.szErrStr));
		Msg_S2C_Error.szErrStr[sizeof(Msg_S2C_Error.szErrStr) - 1] = NULL;

		if (GateManage.SendMsg(iGate, &Msg_S2C_Error, sizeof(Msg_S2C_Error)))
		{
			//printf("Send Ok - Msg_S2C_Error:%d\n",Msg_S2C_Error.wErrCode);			
		}
		else
		{
			// Error Processing
			//printf("Send Fail - Msg_S2C_Error\n");
		}
	}
}


//----------------------------------------------------------------------------------------------
// Main Server to Account Server Packet Processing Functions
//----------------------------------------------------------------------------------------------

void	Func_M2S_ERROR(MSG_M2S_ERROR * pMsg)
{
	//printf("Error Code=%d, Str=%s \n",pMsg->wErrCode, pMsg->szErrStr);

	switch(pMsg->wErrCode)
	{
		case ALREADY_DELETED_CHAR :
			Msg_S2C_Error.MsgHeader.dwPCID = pMsg->dwPCID;
			Msg_S2C_Error.wErrCode = pMsg->wErrCode;
			strncpy(Msg_S2C_Error.szErrStr, "捞固 昏力登菌芭唱 粮犁窍瘤 臼绰 某腐磐涝聪促.", sizeof(Msg_S2C_Error.szErrStr));
			Msg_S2C_Error.szErrStr[sizeof(Msg_S2C_Error.szErrStr) - 1] = NULL;
			
			//--------------------------------------------------------------------------------
			// 捞 版快 pMsg->szErrStr俊 昏力甫 矫档茄 某腐磐 捞抚捞 甸绢乐促.
			// 绢瞒乔 粮犁窍瘤 臼绰 某腐磐 捞骨肺 FDB客 Client俊辑 瘤快档废 茄促. 
			if(AccountManage.VerifyDeletePlayer(pMsg->dwPCID, pMsg->szErrStr))
			{
				Msg_S2C_Ans_Delete_Player.MsgHeader.dwPCID = pMsg->dwPCID;
				strncpy(Msg_S2C_Ans_Delete_Player.szCharacterName, pMsg->szErrStr, sizeof(Msg_S2C_Ans_Delete_Player.szCharacterName));	
				Msg_S2C_Ans_Delete_Player.szCharacterName[sizeof(Msg_S2C_Ans_Delete_Player.szCharacterName) - 1] = NULL;
				GateManage.SendMsg(pMsg->byGateSvrID, &Msg_S2C_Ans_Delete_Player, sizeof(Msg_S2C_Ans_Delete_Player));
			}

			break;

		case ALREADY_EXIST_CHAR :
			Msg_S2C_Error.MsgHeader.dwPCID = pMsg->dwPCID;
			Msg_S2C_Error.wErrCode = pMsg->wErrCode;
			strncpy(Msg_S2C_Error.szErrStr, pMsg->szErrStr, sizeof(Msg_S2C_Error.szErrStr));
			Msg_S2C_Error.szErrStr[sizeof(Msg_S2C_Error.szErrStr) - 1] = NULL;
			break;
	}

	AccountManage.INITforM2S_Error(pMsg->dwPCID);	//Account Map Init

	//Send Error Packet
	if (GateManage.SendMsg(pMsg->byGateSvrID, &Msg_S2C_Error, sizeof(Msg_S2C_Error)))
	{
		//printf("Send Ok - Msg_S2C_Error\n");			
	}
	else
	{
		// Error Processing
		//printf("Send Fail - Msg_S2C_Error\n");
	}
}


void	Func_M2S_CHAR_LOGIN(MSG_M2S_CHAR_LOGIN * pMsg)
{
	Msg_S2G_Switch_Zone.MsgHeader.dwPCID = pMsg->dwPCID;
	Msg_S2G_Switch_Zone.byNewServerID = pMsg->byNewZoneSvrID;
	
	if (GateManage.SendMsg(pMsg->byGateSvrID, &Msg_S2G_Switch_Zone, sizeof(Msg_S2G_Switch_Zone)))
	{
		//printf("Send Ok - Msg_S2G_Switch_Zone\n");
		Msg_S2C_Char_Login_Ok.MsgHeader.dwPCID = pMsg->dwPCID;
		Msg_S2C_Char_Login_Ok.dwPCID = pMsg->dwPCID;
		Msg_S2C_Char_Login_Ok.wMapIndex = pMsg->wMapIndex;
		char * pPCName = AccountManage.GetCurrentPCName(pMsg->dwPCID);
		if (pPCName)
		{
			memcpy(Msg_S2C_Char_Login_Ok.szPCName, pPCName, 13);
		}
		else
		{
			//printf ("++++++ERROR GetCurrentPCName : %u \n", pMsg->dwPCID);
		}

		if (GateManage.SendMsg(pMsg->byGateSvrID, &Msg_S2C_Char_Login_Ok, sizeof(Msg_S2C_Char_Login_Ok)))
		{
			//printf("Send Ok - Msg_S2C_Char_Login_Ok : conn=%d, buff=%d\n", MainServer.m_bConnect, MainServer.GetSizeInSendBuf());			
		}
		else
		{
			// Error Processing
		}
	}
	else
	{
		// Error Processing
	}

	// Account File DB甫 Update且 鞘夸啊 乐绰瘤 犬牢窍绊 Update 角青
	if (AccountManage.IsUpdateAccount(pMsg->dwPCID))
	{
		if (FDB.SaveAccCharInfo(AccountManage.GetAccountName(pMsg->dwPCID)))
		{
		}
		else
		{
		}
	}
	else
	{
	}

	// Account Map俊辑 秦寸 Account Info 昏力
	if (AccountManage.Remove(pMsg->dwPCID))
	{
		//printf("Remove Account Map - TRUE!\n");		
	}
	else
	{
		//printf("Remove Account Map - FALSE!\n");		
	}
}

void	Func_M2S_CHAR_UPDATE(MSG_M2S_CHAR_UPDATE * pMsg)
{
	if (FDB.LoadAccCharInfo(pMsg->szAccountName))
	{
		for (int i=0; i < MAX_CHARACTER; i++)
		{
			if (strcmp(FDB.m_AccountCharInfo.CharInfo[i].szPCName, pMsg->CharInfo.szPCName) == 0)
			{				
				FDB.m_AccountCharInfo.CharInfo[i] = pMsg->CharInfo;
				FDB.SaveAccCharInfo(pMsg->szAccountName);

				return;
			}
		}
	}

	//printf("Func_M2S_CHAR_UPDATE, Error!\n");
}

void	Func_M2S_ANS_CREATE_PLAYER(MSG_M2S_ANS_CREATE_PLAYER * pMsg)
{
	//printf("Main M2S_ANS_CREATE_PLAYER : %s\n", pMsg->CharacterName);

	if(AccountManage.VerifyCreatePlayer(pMsg->dwPCID, pMsg->CharacterName))
	{
		//Msg_S2C_Ans_Create_Player.byClassIndex = AccountManage.GetClassIndex(pMsg->dwPCID, pMsg->CharacterName);		
		//Msg_S2C_Ans_Create_Player.MsgHeader.dwPCID = pMsg->dwPCID;
		//strcpy(Msg_S2C_Ans_Create_Player.szCharacterName, pMsg->CharacterName);

		if (GateManage.SendMsg(pMsg->byGateSvrID, &Msg_S2C_Ans_Create_Player, sizeof(Msg_S2C_Ans_Create_Player)))
		{
			//printf("Send Ok - Msg_S2C_Ans_Create_Player\n");			
		}
		else
		{
			// Error Processing
			//printf("Send Error - Func_M2S_ANS_CREATE_PLAYER()\n");
		}

	}
	else
	{
		//printf("Error - Func_M2S_ANS_CREATE_PLAYER()\n");
	}
	return;
}

void	Func_M2S_ANS_DELETE_PLAYER(MSG_M2S_ANS_DELETE_PLAYER * pMsg)
{
	// sooree debug
	//printf ("\nM2S_ANS_DELETE_PLAYER : %s : ");

	if(AccountManage.VerifyDeletePlayer(pMsg->dwPCID, pMsg->CharacterName))
	{
		Msg_S2C_Ans_Delete_Player.MsgHeader.dwPCID = pMsg->dwPCID;
		strncpy(Msg_S2C_Ans_Delete_Player.szCharacterName, pMsg->CharacterName, sizeof(Msg_S2C_Ans_Delete_Player.szCharacterName));
		Msg_S2C_Ans_Delete_Player.szCharacterName[sizeof(Msg_S2C_Ans_Delete_Player.szCharacterName) - 1] = NULL;
				
		if (GateManage.SendMsg(pMsg->byGateSvrID, &Msg_S2C_Ans_Delete_Player, sizeof(Msg_S2C_Ans_Delete_Player)))
		{
			//printf("Send Ok - Msg_S2C_Ans_Delete_Player : %s\n", Msg_S2C_Ans_Delete_Player.szCharacterName);			
		}
		else
		{
			// Error Processing
			//printf("Send Error - Func_M2S_ANS_DELETE_PLAYER()\n");
		}
	}
	else
	{
		//printf("Error - Func_M2S_ANS_DELETE_PLAYER()\n");
	}
	return;
}

⌨️ 快捷键说明

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