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

📄 mapnetworkmsgparser.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 5 页
字号:

	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 + -