📄 mapnetworkmsgparser.cpp
字号:
case MP_CHEAT_ABILITYEXP_SYN:
{
MSG_DWORD * pmsg = (MSG_DWORD*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
pPlayer->AddAbilityExp(pmsg->dwData);
LogCheat(pPlayer->GetID(),eCHT_AbilityExp,pmsg->dwData,0,0);
}
break;
case MP_CHEAT_EVENT_MONSTER_REGEN:
{
MSG_EVENT_MONSTERREGEN* pmsg = (MSG_EVENT_MONSTERREGEN*)pMsg;
CObject* pPlayer = g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
RECALLMGR->EventRecall( pPlayer, pmsg->MonsterKind, pmsg->cbMobCount, pmsg->cbChannel, &pmsg->Pos, pmsg->wRadius, pmsg->ItemID, pmsg->dwDropRatio );
}
break;
case MP_CHEAT_EVENT_MONSTER_DELETE:
{
MSGBASE* pmsg = (MSGBASE*)pMsg;
CObject* pPlayer = g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
RECALLMGR->DeleteEventRecallMonster();
}
break;
case MP_CHEAT_GENGOL_SYN:
{
MSG_WORD *pmsg = (MSG_WORD*)pMsg;
CPlayer* pPlayer = (CPlayer*)g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
if((pmsg->wData < 12) || (pmsg->wData > 400))
return;
pPlayer->SetGenGol(pmsg->wData);
LogCheat(pPlayer->GetID(),eCHT_Gengol,pmsg->wData,0,0);
}
break;
case MP_CHEAT_MINCHUB_SYN:
{
MSG_WORD *pmsg = (MSG_WORD*)pMsg;
CPlayer* pPlayer = (CPlayer*)g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
if((pmsg->wData < 12) || (pmsg->wData > 400))
return;
pPlayer->SetMinChub(pmsg->wData);
LogCheat(pPlayer->GetID(),eCHT_Minchub,pmsg->wData,0,0);
}
break;
case MP_CHEAT_CHERYUK_SYN:
{
MSG_WORD *pmsg = (MSG_WORD*)pMsg;
CPlayer* pPlayer = (CPlayer*)g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
if((pmsg->wData < 12) || (pmsg->wData > 400))
return;
pPlayer->SetCheRyuk(pmsg->wData);
LogCheat(pPlayer->GetID(),eCHT_Cheryuk,pmsg->wData,0,0);
}
break;
case MP_CHEATE_SIMMEK_SYN:
{
MSG_WORD *pmsg = (MSG_WORD*)pMsg;
CPlayer* pPlayer = (CPlayer*)g_pUserTable->FindUser(pmsg->dwObjectID);
if(!pPlayer) return;
if((pmsg->wData < 12) || (pmsg->wData > 400))
return;
pPlayer->SetSimMek(pmsg->wData);
LogCheat(pPlayer->GetID(),eCHT_Simmak,pmsg->wData,0,0);
}
break;
case MP_CHEAT_KILL_ALLMONSTER_SYN:
{
CObject* pInfo = NULL;
g_pUserTable->SetPositionHead();
while(pInfo = g_pUserTable->GetData())
{
if(pInfo->GetObjectKind() == eObjectKind_Monster)
{
if(pInfo->GetGridID() == 1)
{
//g_pServerSystem->RemoveMonster( pInfo->GetID() );
pInfo->Die(NULL);
}
}
}
}
break;
case MP_CHEAT_PARTYINFO_SYN:
{
MSG_DWORD * pmsg = (MSG_DWORD*)pMsg;
CParty * pParty = PARTYMGR->GetParty(pmsg->dwData);
PARTY_INFO SendParty;
memset(&SendParty, 0, sizeof(PARTY_INFO));
if(pParty)
{
SendParty.Category = MP_CHEAT;
SendParty.Protocol = MP_CHEAT_PARTYINFO_ACK;
SendParty.PartyDBIdx = pmsg->dwData;
for(int i=0; i<MAX_PARTY_LISTNUM; ++i)
{
pParty->GetMemberInfo(i, &SendParty.Member[i]);
}
SendParty.Option = pParty->GetOption();
}
CPlayer* pPlayer = (CPlayer*)g_pUserTable->FindUser(pmsg->dwObjectID);
if(pPlayer)
{
pPlayer->SendMsg(&SendParty, sizeof(SendParty));
}
}
break;
default:
break;
}
}
void MP_QUICKMsgParser(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
MSGBASE* pTempMsg = (MSGBASE*)pMsg;
QUICKMNGR->NetworkMsgParse(pTempMsg->Protocol, pMsg);
/*
switch(pTempMsg->Protocol)
{
case MP_QUICK_ADD_SYN:
{
MSG_QUICK_ADD_SYN * msg = (MSG_QUICK_ADD_SYN *)pMsg;
CPlayer * player = (CPlayer *)g_pUserTable->FindUser(msg->dwObjectID);
if(!player) return;
QUICKMNGR->AddQuickItem(player, msg);
}
break;
case MP_QUICK_USE_SYN:
{
MSG_QUICK_USE_SYN * msg = (MSG_QUICK_USE_SYN *)pMsg;
CPlayer * player = (CPlayer *)g_pUserTable->FindUser(msg->dwObjectID);
if(!player) return;
player->UseQuickItem(msg->wQuickRelPosition);
}
break;
case MP_QUICK_MOVE_SYN:
{
MSG_QUICK_MOVE_SYN * msg = (MSG_QUICK_MOVE_SYN *)pMsg;
CPlayer * player = (CPlayer *)g_pUserTable->FindUser(msg->dwObjectID);
if(!player) return;
QUICKMNGR->MoveQuickItem(player, msg);
}
break;
case MP_QUICK_REM_SYN:
{
MSG_QUICK_REM_SYN * msg = (MSG_QUICK_REM_SYN *)pMsg;
CPlayer * player = (CPlayer *)g_pUserTable->FindUser(msg->dwObjectID);
if(!player) return;
QUICKMNGR->RemQuickItem(player, msg);
}
break;
}*/
}
void MP_PARTYMsgParser(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
MSGBASE* pTempMsg = (MSGBASE*)pMsg;
switch(pTempMsg->Protocol)
{
case MP_PARTY_ADD_SYN:
{
MSG_DWORD2* pmsg = (MSG_DWORD2*)pMsg;
// PARTYMGR->AddParty(pmsg->dwData2,pmsg->dwObjectID,pmsg->dwData1); //include DB
PARTYMGR->AddPartyInvite(pmsg->dwObjectID, pmsg->dwData1);
}
break;
case MP_PARTY_DEL_SYN:
{
MSG_DWORD * pmsg = (MSG_DWORD*)pMsg;
PARTYMGR->DelMemberSyn(pmsg->dwObjectID, pmsg->dwData);
}
break;
case MP_PARTY_CREATE_SYN:
{
MSG_BYTE * pmsg = (MSG_BYTE*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(pmsg->dwObjectID);
if(pPlayer == NULL)
return;
PARTYMGR->CreatePartyQuery(pPlayer, pmsg->bData); //include DB
}
break;
case MP_PARTY_CHANGEMASTER_SYN:
{
MSG_DWORD2* pmsg = (MSG_DWORD2*)pMsg;
PARTYMGR->ChangeMasterParty(pmsg->dwData2,pmsg->dwObjectID,pmsg->dwData1);
}
break;
case MP_PARTY_BREAKUP_SYN:
{
MSG_DWORD* pmsg = (MSG_DWORD*)pMsg;
PARTYMGR->BreakupParty(pmsg->dwData,pmsg->dwObjectID); //include DB
}
break;
case MP_PARTY_BAN_SYN:
{
MSG_DWORD2* pmsg = (MSG_DWORD2*)pMsg;
PARTYMGR->BanParty(pmsg->dwData2,pmsg->dwObjectID,pmsg->dwData1);
}
break;
case MP_PARTY_INVITE_ACCEPT_SYN:
{
MSG_DWORD * pmsg = (MSG_DWORD*)pMsg;
PARTYMGR->AddMember(pmsg->dwData, pmsg->dwObjectID);
}
break;
case MP_PARTY_INVITE_DENY_SYN:
{
MSG_DWORD * pmsg = (MSG_DWORD*)pMsg;
PARTYMGR->AddMemberNack(pmsg->dwData, pmsg->dwObjectID);
}
break;
case MP_PARTY_NOTIFYMEMBER_LOGIN_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyUserLogIn(pmsg);
}
break;
case MP_PARTY_NOTIFYMEMBER_LOGOUT_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyUserLogOut(pmsg);
}
break;
case MP_PARTY_NOTIFYADD_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyAddParty(pmsg);
}
break;
case MP_PARTY_NOTIFYDELETE_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyDelParty(pmsg);
}
break;
case MP_PARTY_NOTIFYBAN_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyBanParty(pmsg);
}
break;
case MP_PARTY_NOTIFYCHANGEMASTER_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyChangeMasterParty(pmsg);
}
break;
case MP_PARTY_NOTIFYBREAKUP_TO_MAPSERVER:
{
SEND_CHANGE_PARTY_MEMBER_INFO* pmsg = (SEND_CHANGE_PARTY_MEMBER_INFO*)pMsg;
PARTYMGR->NotifyBreakupParty(pmsg);
}
break;
case MP_PARTY_SYNDELETE_TO_MAPSERVER:
{
MSG_DWORD2* pmsg = (MSG_DWORD2*)pMsg;
PARTYMGR->NotifyDelSyn(pmsg);
}
break;
case MP_PARTY_NOTIFYCREATE_TO_MAPSERVER:
{
MSG_DWORD* pmsg = (MSG_DWORD*)pMsg;
PARTYMGR->NotifyCreateParty(pmsg->dwData);
}
break;
case MP_PARTY_NOTIFYMEMBER_LOGINMSG:
{
MSG_DWORD* pmsg = (MSG_DWORD*)pMsg;
PARTYMGR->NotifyMemberLoginMsg(pmsg->dwData, pmsg->dwObjectID);
}
break;
case MP_PARTY_NOTIFYMEMBER_LEVEL:
{
MSG_DWORD3* pmsg = (MSG_DWORD3*)pMsg;
PARTYMGR->DoMemberLevelUp(pmsg->dwData1, pmsg->dwData2, (LEVELTYPE)pmsg->dwData3);
}
break;
}
}
void MP_UNGIJOSIKMsgParser(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
MSGBASE* pTempMsg = (MSGBASE*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(pTempMsg->dwObjectID);
if(pPlayer == NULL)
return;
switch(pTempMsg->Protocol)
{
case MP_UNGIJOSIK_START:
UNGIMGR->UngijosikMode(pPlayer, TRUE);
break;
case MP_UNGIJOSIK_END:
UNGIMGR->UngijosikMode(pPlayer, FALSE);
break;
}
}
void MP_PEACEWARMODEMsgParser(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
MSGBASE* pTempMsg = (MSGBASE*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(pTempMsg->dwObjectID);
if(pPlayer == NULL)
return;
switch(pTempMsg->Protocol)
{
case MP_PEACEWARMODE_PEACE:
{
PWMODMGR_OBJ->Peace_WarMode(pPlayer, TRUE);
}
break;
case MP_PEACEWARMODE_WAR:
{
PWMODMGR_OBJ->Peace_WarMode(pPlayer, FALSE);
}
break;
}
}
void MP_TACTICMsgParser(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
MSGBASE* pTempMsg = (MSGBASE*)pMsg;
switch(pTempMsg->Protocol)
{
case MP_TACTIC_START_SYN:
{
SEND_TACTIC_START* pmsg = (SEND_TACTIC_START*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(pmsg->dwObjectID);
if(pPlayer == NULL)
return;
TACTICMGR->OnTacticStartReceived(pPlayer, pmsg);
}
break;
case MP_TACTIC_JOIN_SYN:
{
SEND_TACTIC_JOIN* pmsg = (SEND_TACTIC_JOIN*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(pmsg->dwObjectID);
if(pPlayer == NULL)
return;
TACTICMGR->OnTacticJoinReceived(pPlayer, pmsg);
}
break;
}
}
void MP_MUNPAMsgParser(DWORD dwConnectionIndex, char* pMsg, DWORD dwLength)
{
MSGBASE* pTempMsg = (MSGBASE*)pMsg;
switch(pTempMsg->Protocol)
{
case MP_MUNPA_LOAD_MUNPALIST_SYN:
{
SEND_MUNPALIST_SYN *msg = (SEND_MUNPALIST_SYN*)pMsg;
MUNPAMGR->LoadMunpaListSyn(msg);
}
break;
case MP_MUNPA_SEARCHMUNPA_SYN:
{
MUNPA_SEARCH_SYN* msg = (MUNPA_SEARCH_SYN*)pMsg;
MUNPAMGR->SearchMunpa(msg->dwObjectID, msg->SearchKey, msg->GotoPage);
}
break;
case MP_MUNPA_CREATE_SYN:
{
MUNPA_CREATE_INFO* msg = (MUNPA_CREATE_INFO*)pMsg;
MUNPAMGR->CreateMunpa(msg);
}
break;
case MP_MUNPA_BREAKUP_SYN:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
MUNPAMGR->BreakUpMunpa(msg);
}
break;
case MP_MUNPA_CHANGERANK_SYN:
{
SEND_MUNPAMEMBER_RANK_CHANGE* msg = (SEND_MUNPAMEMBER_RANK_CHANGE*)pMsg;
MUNPAMGR->ChangeRank(msg->dwObjectID, msg->TargetID, msg->Rank, msg->MunpaID);
}
break;
case MP_MUNPA_BAN_SYN:
{
SEND_MUNPACCEPT_INFO* msg = (SEND_MUNPACCEPT_INFO*)pMsg;
MUNPAMGR->BanMember(msg->dwObjectID, msg->MunpaID, msg->TargetID, msg->bLast);
}
break;
case MP_MUNPA_SECEDE_SYN:
{
MSGBASE* msg = (MSGBASE*)pMsg;
MUNPAMGR->SecedeMunpa(msg->dwObjectID);
}
break;
case MP_MUNPA_ADDMEMBER_SYN:
{
SEND_MUNPACCEPT_INFO* msg = (SEND_MUNPACCEPT_INFO*)pMsg;
MUNPAMGR->AcceptMember(msg->dwObjectID, msg->MunpaID, msg->TargetID, msg->bLast);
}
break;
case MP_MUNPA_DENYMEMBER_SYN:
{
SEND_MUNPACCEPT_INFO* msg = (SEND_MUNPACCEPT_INFO*)pMsg;
MUNPAMGR->DenyMember(msg->dwObjectID, msg->MunpaID, msg->TargetID, msg->bLast);
}
break;
case MP_MUNPA_JOINMEMBER_SYN:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
MUNPAMGR->JoinMember(msg->dwObjectID, msg->dwData);
}
break;
case MP_MUNPA_JOINMEMBERCANCEL_SYN:
{
MSGBASE* msg = (MSGBASE*)pMsg;
MUNPAMGR->JoinMemberCancel(msg->dwObjectID);
}
break;
case MP_MUNPA_MUNPAHOME_SYN:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
MUNPAMGR->MunpaHomeInfoSyn(msg->dwObjectID, msg->dwData);
}
break;
case MP_MUNPA_REGULARMEMBERS_INFO_SYN:
{
MSG_DWORD2* msg = (MSG_DWORD2*)pMsg;
CPlayer* pPlayer = (CPlayer *)g_pUserTable->FindUser(msg->dwObjectID);
if(pPlayer == NULL)
return;
MUNPAMGR->RegularMembersInfo(pPlayer, msg->dwData1, msg->dwData2);
}
break;
case MP_MUNPA_JOINMEMBERS_INFO_SYN:
{
MSG_DWORD2* msg = (MSG_DWORD2*)pMsg;
MUNPAMGR->JoinMembersInfo(msg->dwObjectID, msg->dwData1, msg->dwData2);
}
break;
case MP_MUNPA_BOARD_INFO_SYN:
{
MSG_DWORD* msg = (MSG_DWORD*)pMsg;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -