📄 agentdbmsgparser.cpp
字号:
break;
case 3:
{
// 捞抚捞 NULL老锭
MSG_WORD msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_CHARACTER_NAMECHECK_NACK;
msg.wData = result;
g_Network.Send2User(dwConnectionIndex, (char*)&msg, sizeof(msg));
}
break;
case 4:
{
// 巩颇 捞抚苞 般磨 锭
MSG_WORD msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_CHARACTER_NAMECHECK_NACK;
msg.wData = result;
g_Network.Send2User(dwConnectionIndex, (char*)&msg, sizeof(msg));
}
break;
default:
ASSERT(0);
return;
}
}
void RCharacterNameCheck(LPQUERY pData, LPDBMESSAGE pMessage)
{
if(atoi((char*)pData->Data[0])==0)
{
// 捞抚 吝汗 救凳
MSGBASE msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_CHARACTER_NAMECHECK_ACK;
g_Network.Send2User(pMessage->dwID, (char*)&msg, sizeof(msg));
}
else
{
// 捞抚捞 吝汗凳 坷幅
MSG_WORD msg;
msg.Category = MP_USERCONN;
msg.Protocol = MP_USERCONN_CHARACTER_NAMECHECK_NACK;
msg.wData = 2;
g_Network.Send2User(pMessage->dwID, (char*)&msg, sizeof(msg));
}
}
void RSearchWhisperUserAndSend(LPQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
if(!count)
{
//return;
ASSERT(0);
}
else
{
MSG_CHAT* pMsgChat = g_MsgTable.GetMsg( pMessage->dwID );
if( pMsgChat == NULL ) return;
USERINFO* pSenderInfo = g_pUserTableForObjectID->FindUser( pMsgChat->dwObjectID );
if( !pSenderInfo )
{
g_MsgTable.RemoveMsg( pMessage->dwID );
return;
}
int nError = atoi((char*)pData->Data[0]);
if( nError == CHATERR_NO_NAME || nError == CHATERR_NOT_CONNECTED )
{
MSG_BYTE msg;
msg.Category = MP_CHAT;
msg.Protocol = MP_CHAT_WHISPER_NACK;
msg.dwObjectID = pMsgChat->dwObjectID;
msg.bData = nError;
g_Network.Send2User( pSenderInfo->dwConnectionIndex, (char*)&msg, sizeof(msg) );
}
else
{
DWORD dwReceiverID = (DWORD)atoi((char*)pData->Data[1]);
USERINFO* pReceiverInfo = g_pUserTableForObjectID->FindUser( dwReceiverID );
if( pReceiverInfo ) //罐阑 荤恩捞 捞 辑滚俊 乐绰瘤 八荤
{
if( pReceiverInfo->GameOption.bNoWhisper )
{
MSG_BYTE msg;
msg.Category = MP_CHAT;
msg.Protocol = MP_CHAT_WHISPER_NACK;
msg.dwObjectID = pMsgChat->dwObjectID; //焊辰荤恩 酒捞叼
msg.bData = CHATERR_OPTION_NOWHISPER;
g_Network.Send2User( pSenderInfo->dwConnectionIndex, (char*)&msg, sizeof(msg) );
}
else
{
//焊辰 荤恩俊霸 焊郴绊,
// pMsgChat->Category = MP_CHAT;
// pMsgChat->Protocol = MP_CHAT_WHISPER_ACK;
// g_Network.Send2User( pSenderInfo->dwConnectionIndex, (char*)pMsgChat, pMsgChat->GetMsgLength() ); //CHATMSG 040324
MSG_CHAT msgToSender = *pMsgChat;
msgToSender.Category = MP_CHAT;
msgToSender.Protocol = MP_CHAT_WHISPER_ACK;
g_Network.Send2User( pSenderInfo->dwConnectionIndex, (char*)&msgToSender, msgToSender.GetMsgLength() ); //CHATMSG 040324
//罐绰 荤恩俊霸 焊郴绊,
// pMsgChat->Protocol = MP_CHAT_WHISPER;
// SafeStrCpy( pMsgChat->Name, (char*)pData->Data[0], MAX_NAME_LENGTH + 1 ); //焊辰荤恩狼 捞抚栏肺 官厕
// g_Network.Send2User( pReceiverInfo->dwConnectionIndex, (char*)pMsgChat, pMsgChat->GetMsgLength() );
MSG_CHAT msgToReceiver = *pMsgChat;
msgToReceiver.Category = MP_CHAT;
msgToReceiver.Protocol = MP_CHAT_WHISPER;
SafeStrCpy( msgToReceiver.Name, (char*)pData->Data[0], MAX_NAME_LENGTH + 1 ); //焊辰荤恩狼 捞抚栏肺 官厕
g_Network.Send2User( pReceiverInfo->dwConnectionIndex, (char*)&msgToReceiver, msgToReceiver.GetMsgLength() );
}
}
else
{
MSG_WHISPER msgWhisper;
msgWhisper.Category = MP_CHAT;
msgWhisper.Protocol = MP_CHAT_WHISPER_SYN;
msgWhisper.dwObjectID = pMsgChat->dwObjectID; //焊辰荤恩
msgWhisper.dwReceiverID = (DWORD)atoi((char*)pData->Data[1]); //罐绰荤恩
SafeStrCpy( msgWhisper.SenderName, (char*)pData->Data[0], MAX_NAME_LENGTH + 1 ); //焊辰荤恩狼 捞抚
SafeStrCpy( msgWhisper.ReceiverName, pMsgChat->Name, MAX_NAME_LENGTH + 1 ); //罐绰荤恩狼 捞抚
SafeStrCpy( msgWhisper.Msg, pMsgChat->Msg, MAX_CHAT_LENGTH + 1 ); //盲泼郴侩
g_Network.Broadcast2AgentServerExceptSelf( (char*)&msgWhisper, msgWhisper.GetMsgLength() ); //CHATMSG 040324
}
}
}
g_MsgTable.RemoveMsg( pMessage->dwID );
}
void RSearchMunpaChatSendOnPlayer(LPQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
if(!count) return;
else
{
MSG_CHAT* pMsgChat = g_MsgTable.GetMsg( pMessage->dwID );
if( pMsgChat == NULL ) return;
pMsgChat->Category = MP_CHAT;
pMsgChat->Protocol = MP_CHAT_MUNPA;
SafeStrCpy( pMsgChat->Name, (char*)pData[0].Data[0], MAX_NAME_LENGTH + 1 ); //焊辰荤恩狼 捞抚栏肺 官厕
for(DWORD i=0; i<count; i++)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser((DWORD)atoi((char*)pData[i].Data[1]));
if(pRecverInfo) // 罐阑 荤恩捞 捞辑滚俊 加秦乐绰瘤 八荤
{
// 磊脚俊霸 加秦乐促.
//g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)pMsgChat, sizeof(MSG_CHAT) );
MSG_CHAT msgTemp = *pMsgChat;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msgTemp, msgTemp.GetMsgLength() ); //CHATMSG 040324
}
else
{
//促弗俊捞怜飘俊 加秦乐促.
pMsgChat->dwObjectID = (DWORD)atoi((char*)pData[i].Data[1]); //罐阑 荤恩狼 酒捞叼甫 持绢辑 焊辰促.
//g_Network.Broadcast2AgentServerExceptSelf( (char*)pMsgChat, sizeof(MSG_CHAT) );
g_Network.Broadcast2AgentServerExceptSelf( (char*)pMsgChat, pMsgChat->GetMsgLength() ); //CHATMSG 040324
}
}
}
g_MsgTable.RemoveMsg( pMessage->dwID );
}
void RFriendDelFriend(LPQUERY pData, LPDBMESSAGE pMessage)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
if(pRecverInfo)
{
if(atoi((char*)pData->Data[eFr_IsSuccess]) != 0)
{
MSG_NAME_DWORD msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_DEL_ACK;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_targetname], MAX_NAME_LENGTH + 1 );
msg.dwData = atoi((char*)pData->Data[eFr_IsSuccess]); //ack 老锭 friendidx return
msg.dwObjectID = pMessage->dwID;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(MSG_NAME_DWORD));
}
else
{
MSG_FRIEND_MEMBER_ADDDELETEID msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_DEL_NACK;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_targetname], MAX_NAME_LENGTH + 1 );
msg.dwObjectID = pMessage->dwID;
msg.PlayerID = atoi((char*)pData->Data[eFr_IsSuccess]);
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(MSG_FRIEND_MEMBER_ADDDELETEID));
}
}
}
void RFriendAddFriend(LPQUERY pData, LPDBMESSAGE pMessage)
{
//殿废 脚没茄 荤恩
MSG_FRIEND_MEMBER_ADDDELETEID msg;
msg.Category = MP_FRIEND;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_addToName], MAX_NAME_LENGTH + 1 );
msg.PlayerID = atoi((char*)pData->Data[eFr_addToIDX]);
msg.dwObjectID = atoi((char*)pData->Data[eFr_addFromIDX]);
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(atoi((char*)pData->Data[eFr_addFromIDX]));
if(pRecverInfo)
{
if(atoi((char*)pData->Data[eFr_addFromErr]) == 0)
msg.Protocol = MP_FRIEND_ADD_ACK;
else
{
msg.PlayerID = atoi((char*)pData->Data[eFr_addFromErr]);
msg.Protocol = MP_FRIEND_ADD_NACK;
}
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(MSG_FRIEND_MEMBER_ADDDELETEID));
}
else
{
//促弗 俊捞傈飘俊 乐促.
if(atoi((char*)pData->Data[eFr_addFromErr]) == 0)
msg.Protocol = MP_FRIEND_ADD_ACK_TO_AGENT;
else
{
msg.PlayerID = atoi((char*)pData->Data[eFr_addFromErr]);
msg.Protocol = MP_FRIEND_ADD_NACK_TO_AGENT;
}
g_Network.Broadcast2AgentServerExceptSelf((char*)&msg, sizeof(MSG_FRIEND_MEMBER_ADDDELETEID));
}
//殿废登绢瘤绰 荤恩
MSG_FRIEND_MEMBER_ADDDELETEID bmsg;
bmsg.Category = MP_FRIEND;
SafeStrCpy(bmsg.Name, (char*)pData->Data[eFr_addFromName], MAX_NAME_LENGTH+1);
bmsg.dwObjectID = atoi((char*)pData->Data[eFr_addToIDX]);
bmsg.PlayerID = atoi((char*)pData->Data[eFr_addFromIDX]);
USERINFO* pToRecverInfo = g_pUserTableForObjectID->FindUser(atoi((char*)pData->Data[eFr_addToIDX]));
if(pToRecverInfo)
{
if(atoi((char*)pData->Data[eFr_addToErr]) == 0) //ack
bmsg.Protocol = MP_FRIEND_ADD_ACCEPT_ACK;
else //nack
{
bmsg.PlayerID = atoi((char*)pData->Data[eFr_addToErr]);
bmsg.Protocol = MP_FRIEND_ADD_ACCEPT_NACK;
}
g_Network.Send2User(pToRecverInfo->dwConnectionIndex, (char*)&bmsg, sizeof(bmsg));
}
else //another agent
{
if(atoi((char*)pData->Data[eFr_addToErr]) == 0) //ack
bmsg.Protocol = MP_FRIEND_ADD_ACCEPT_TO_AGENT;
else //nack
{
bmsg.PlayerID = atoi((char*)pData->Data[eFr_addToErr]);
bmsg.Protocol = MP_FRIEND_ADD_ACCEPT_NACK_TO_AGENT;
}
g_Network.Broadcast2AgentServerExceptSelf((char*)&bmsg, sizeof(bmsg));
}
}
void RFriendIsValidTarget(LPQUERY pData, LPDBMESSAGE pMessage)
{
MSG_FRIEND_MEMBER_ADDDELETEID msg;
memset(&msg, 0, sizeof(msg));
USERINFO* pSenderInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(atoi((char*)pData->Data[eFr_vtTargetid]));
if(!pSenderInfo)
return;
if(atoi((char*)pData->Data[eFr_Err]) != 0)
{
//nack
msg.Category = MP_FRIEND;
msg.dwObjectID = pMessage->dwID;
msg.Protocol = MP_FRIEND_ADD_NACK;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_vtToname], MAX_NAME_LENGTH + 1 );
msg.PlayerID = atoi((char*)pData->Data[eFr_Err]); //errcode insert
g_Network.Send2User(pSenderInfo->dwConnectionIndex, (char*)&msg, sizeof(msg));
}
else
{
if(pRecverInfo)
{
if(pRecverInfo->GameOption.bNoFriend == TRUE)
{
msg.Category = MP_FRIEND;
msg.dwObjectID = pMessage->dwID;
msg.Protocol = MP_FRIEND_ADD_NACK;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_vtToname], MAX_NAME_LENGTH + 1 );
msg.PlayerID = eFriend_OptionNoFriend; //errcode insert
g_Network.Send2User(pSenderInfo->dwConnectionIndex, (char*)&msg, sizeof(msg));
}
else
{
msg.Category = MP_FRIEND;
msg.dwObjectID = atoi((char*)pData->Data[eFr_vtTargetid]);
msg.Protocol = MP_FRIEND_ADD_INVITE;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_vtFromname], MAX_NAME_LENGTH + 1 );
msg.PlayerID = pMessage->dwID;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(msg));
}
}
else
{
// 促弗 Agent俊 加秦乐促.
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_ADD_INVITE_TO_AGENT;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_vtFromname], MAX_NAME_LENGTH + 1 );
msg.PlayerID = pMessage->dwID;
msg.dwObjectID = atoi((char*)pData->Data[eFr_vtTargetid]);
g_Network.Broadcast2AgentServerExceptSelf((char*)&msg, sizeof(msg));
}
}
}
void RFriendDelFriendID(LPQUERY pData, LPDBMESSAGE pMessage)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
if(pRecverInfo)
{
MSG_DWORD_WORD msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_DELID_ACK;
msg.wData = atoi((char*)pData->Data[0]); //bLast
msg.dwData = atoi((char*)pData->Data[1]); //targetid
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(msg));
}
}
void RFriendNotifyLogintoClient(LPQUERY pData, LPDBMESSAGE pMessage)
{
MSG_NAME_DWORD msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_LOGIN_NOTIFY;
SafeStrCpy( msg.Name, (char*)pData[0].Data[eFr_LLoggedname], MAX_NAME_LENGTH + 1 );
msg.dwData = pMessage->dwID;
for(DWORD i=0; i<pMessage->dwResult; ++i)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(atoi((char*)pData[i].Data[eFr_LTargetID]));
msg.dwObjectID = atoi((char*)pData[i].Data[eFr_LTargetID]);
if(pRecverInfo)
{
MSG_NAME_DWORD msgTemp = msg;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msgTemp, sizeof(msgTemp));
}
else
{
//促弗 俊捞傈飘
msg.Protocol = MP_FRIEND_LOGIN_NOTIFY_TO_AGENT;
g_Network.Broadcast2AgentServerExceptSelf((char*)&msg, sizeof(msg));
}
}
}
void RFriendGetLoginFriends(LPQUERY pData, LPDBMESSAGE pMessage)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
if(!pRecverInfo)
return;
MSG_NAME msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_LOGIN_FRIEND;
msg.dwObjectID = pMessage->dwID;
for(DWORD i=0; i<pMessage->dwResult; ++i)
{
// strcpy(msg.Name, (char*)pData[i].Data[eFr_LFFriendName]);
SafeStrCpy( msg.Name, (char*)pData[i].Data[eFr_LFFriendName], MAX_NAME_LENGTH + 1 );
MSG_NAME msgTemp = msg;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msgTemp, sizeof(msgTemp));
}
}
void RFriendGetFriendList(LPQUERY pData, LPDBMESSAGE pMessage)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
if(!pRecverInfo)
return;
MSG_FRIEND_LIST_DLG msg;
memset(&msg, 0, sizeof(msg));
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_LIST_ACK;
ASSERT(pMessage->dwResult <= MAX_FRIEND_NUM);
msg.count = pMessage->dwResult <= MAX_FRIEND_NUM ? pMessage->dwResult : MAX_FRIEND_NUM;
for(DWORD i=0; i< msg.count; ++i)
{
msg.FriendList[i].Id = atol((char*)pData[i].Data[eFr_FLFriendid]);
msg.FriendList[i].IsLoggIn = atoi((char*)pData[i].Data[eFr_FLIsLogin]);
SafeStrCpy( msg.FriendList[i].Name, (char*)pData[i].Data[eFr_FLFriendname], MAX_NAME_LENGTH + 1 );
}
msg.dwObjectID = pMessage->dwID;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, msg.GetMsgLength());
}
void RNoteIsNewNote(LPQUERY pData, LPDBMESSAGE pMessage)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
if(!pRecverInfo)
return;
if(atoi((char*)pData->Data[0]) == 1)
{
MSGBASE msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_NEW_NOTE;
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(msg));
}
}
void RNoteSendtoPlayer(LPLARGEQUERY pData, LPDBMESSAGE pMessage)
{
USERINFO* pRecverInfo = g_pUserTableForObjectID->FindUser(pMessage->dwID);
if(!pRecverInfo)
return;
if(atoi((char*)pData->Data[eFr_NErr]) == 0) //success
{
MSG_NAME msg;
msg.Category = MP_FRIEND;
msg.Protocol = MP_FRIEND_SENDNOTE_ACK;
SafeStrCpy( msg.Name, (char*)pData->Data[eFr_NToName], MAX_NAME_LENGTH + 1 );
g_Network.Send2User(pRecverInfo->dwConnectionIndex, (char*)&msg, sizeof(msg));
}
else
{
MSG_BYTE msg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -