📄 processmsg.cpp
字号:
{
//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 + -