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

📄 mssystem.cpp

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

void CMSSystem::MunpaMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
	MSGROOT* pTempMsg = (MSGROOT*)pMsg;
	ySWITCH(pTempMsg->Protocol)
	{
		yCASE(MP_RMTOOL_MUNPASEARCH_SYN)
		{
			TMSG_MUNPASEARCH* msg = (TMSG_MUNPASEARCH*)pMsg;
			// ÀÎÀÚ·Î Äõ¸®¸¦ ³¯¸°´Ù.

			SearchMunpaIdxByName((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->wServer, msg->strSearch);
		}
		yCASE(MP_RMTOOL_MUNPAINFO_RESYN)
		{
			TMSG_DWORD* msg = (TMSG_DWORD*)pMsg;

			MunpaBaseInfo(dwConnectionIndex, msg->dwTemplateIdx, msg->dwData);
		}
	}
	yENDSWITCH	
}

void CMSSystem::GameLogMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
	MSGROOT* pTempMsg = (MSGROOT*)pMsg;

	ySWITCH(pTempMsg->Protocol)
	{
		yCASE(MP_RMTOOL_QUERY_CHARIDX_SYN)
		{
			TMSG_CHECKNAME* pmsg = (TMSG_CHECKNAME*)pMsg;
			SearchCharIdxFromCharName( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->sName );
		}
		yCASE(MP_RMTOOL_ITEMMONEYLOGFROMTYPE_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;

			ItemMoneyLogFromType( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->wType,
								  pmsg->dwChrIdx, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate ); 	
		}		
		yCASE(MP_RMTOOL_CHARACTERLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			CharacterLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_EXPPOINTLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			ExpPointLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_MUGONGLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			MugongLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_MUGONGEXPLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			MugongExpLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_MONEYLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			MoneyLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_MONEYWRONGLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			MoneyWrongLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_ABILITYLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			AbilityLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_CHEATLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			CheatLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_HACKINGLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			HackingLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->dwItem, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
		yCASE(MP_RMTOOL_TOOLLOG_SYN)
		{
			TMSG_GAMELOGSEARCH* pmsg = (TMSG_GAMELOGSEARCH*)pMsg;
			ToolLog( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, 0, pmsg->wType, pmsg->sName, pmsg->bDayOnly, pmsg->sSDate, pmsg->sEDate );
		}
	}
	yENDSWITCH	
}

void CMSSystem::OperLogMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
}

void CMSSystem::StatisticsMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
}

void CMSSystem::AdminMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
	OPERID* pData = IPCHECKMGR->GetID( dwConnectionIndex );
	if( strcmp(pData->sID, "") == 0 )
		return;
	
	MSGROOT* pTempMsg = (MSGROOT*)pMsg;
	ySWITCH(pTempMsg->Protocol)
	{
		yCASE(MP_RMTOOL_ADMIN_TOTALINFO_SYN)
		{
			TMSG_DWORD* msg = (TMSG_DWORD*)pMsg; 
			// DB¿¡ ¿î¿µÀÚ Á¤º¸¹× ¾ÆÀÌÇÇ Á¤º¸¸¦ ¿äûÇÑ´Ù.
			TotalIpAdressInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, 0);
			TotalOperatorInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, 0, msg->dwData);
		}
		yCASE(MP_RMTOOL_ADMIN_INSERTOPERATOR_SYN)
		{
			TMSG_ADMIN_INSERTOPERATOR* msg = (TMSG_ADMIN_INSERTOPERATOR*)pMsg; 
			InsertOperator((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->strID, msg->strName, msg->strPass, msg->wPower);

			// log
			InsertLogTool( eToolLog_RM, eRMLog_OperInsert, pData->dwIdx, pData->sID, msg->wPower, msg->strID, 0, 0, 0, 0 );
		}
		yCASE(MP_RMTOOL_ADMIN_DELETEOPERATOR_SYN)
		{
			TMSG_DWORD* pmsg = (TMSG_DWORD*)pMsg;
			DeleteOperator( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData );

			// log
			InsertLogTool( eToolLog_RM, eRMLog_OperDelete, pData->dwIdx, pData->sID, pmsg->dwData, "", 0, 0, 0, 0 );
		}
		yCASE(MP_RMTOOL_ADMIN_INSERTIP_SYN)
		{
			TMSG_ADMIN_INSERTIP* msg = (TMSG_ADMIN_INSERTIP*)pMsg; 
			InsertIpAdress((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->strIP);

			// log
			InsertLogTool( eToolLog_RM, eRMLog_IpInsert, pData->dwIdx, pData->sID, 0, msg->strIP, 0, 0, 0, 0 );
		}		
		yCASE(MP_RMTOOL_ADMIN_DELETEIP_SYN)
		{
			TMSG_DWORD* pmsg = (TMSG_DWORD*)pMsg;
			DeleteIpAdress( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData );

			// log
			InsertLogTool( eToolLog_RM, eRMLog_IpDelete, pData->dwIdx, pData->sID, pmsg->dwData, "", 0, 0, 0, 0 );
		}
	}
	yENDSWITCH	
}

void CMSSystem::CharacterMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
	OPERID* pData = IPCHECKMGR->GetID( dwConnectionIndex );
	if( strcmp(pData->sID, "") == 0 )
		return;

	MSGROOT* pTempMsg = (MSGROOT*)pMsg;
	ySWITCH(pTempMsg->Protocol)
	{
		yCASE(MP_RMTOOL_CHARACTERINFO_SYN)
		{
			TMSG_DWORD3* msg = (TMSG_DWORD3*)pMsg; 
			// DB¿¡ ij¸¯Á¤º¸ ¿äû (¼­¹ö¿¡ µû¸¥ ij¸¯ÅÍ Á¤º¸ °¡Á®¿À´Â ·çƾ..)
			// msg->dwData1 : ¼­¹öÀ妽º, msg->dwData2 : À¯ÀúÀ妽º, msg->dwData3 : ij¸¯ÅÍÀ妽º
			CharacterBaseInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData3);
//			CharacterInvenInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData3);
			CharacterPyogukInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData2);
			CharacterMugongInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData3);
			CharacterAbilityInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData3);
			CharacterItemOptionInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData2, msg->dwData3, 0);

			CharacterInvenInfo2((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->dwData3);
		}
		yCASE(MP_RMTOOL_CHARACTER_UPDATE_BASEINFO)
		{
			TMSG_CHARACTER_UPDATEBASEINFO* msg = (TMSG_CHARACTER_UPDATEBASEINFO*)pMsg;
			UpdateCharacterBaseInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg);

			// log
			WORD wLevel = msg->Level;
			WORD wGenGol = msg->wGenGol;
			WORD wMinChub = msg->wMinChub;
			WORD wCheRyuk = msg->wCheRyuk;
			WORD wSimMek = msg->wSimMek;
			WORD wPoint = (WORD)msg->LevelUpPoint;
			WORD wMoney = (WORD)msg->Money;
			WORD wAbilPoint = (WORD)msg->AbilityExp;

			DWORD dwParam1 = (wLevel << 16) + wGenGol;
			DWORD dwParam2 = (wMinChub << 16) + wCheRyuk;
			DWORD dwParam3 = (wSimMek << 16) + wPoint;
			DWORD dwParam4 = (wMoney << 16) + wAbilPoint;
			
			InsertLogTool( eToolLog_RM, eRMLog_ChangeCharacterInfo, pData->dwIdx, pData->sID, msg->CharIdx, msg->ObjectName,
						   dwParam1, dwParam2, dwParam3, dwParam4 );
		}
		yCASE(MP_RMTOOL_CHARACTER_UPDATE_PYOGUKINFO)
		{
			TMSG_CHARACTER_PYOGUKINFO* msg = (TMSG_CHARACTER_PYOGUKINFO*)pMsg;
			UpdateCharacterPyogukInfo((WORD)dwConnectionIndex, (WORD)msg->dwTemplateIdx, msg->m_dwUserIdx,
										msg->m_wPyogukNum, msg->m_dwMoney);

			// log
			InsertLogTool( eToolLog_RM, eRMLog_ChangeWareInfo, pData->dwIdx, pData->sID, msg->m_dwUserIdx, msg->m_sUserName, msg->m_wPyogukNum, msg->m_dwMoney, 0, 0 );
		}		
		yCASE(MP_RMTOOL_CHARACTER_INSERTMUGONG)
		{
			TMSG_MUGONG_EDIT* msg = (TMSG_MUGONG_EDIT*)pMsg;
			MugongInsert(msg->dwData, &msg->Mugong);

			// log
			InsertLogTool( eToolLog_RM, eRMLog_SkillInsert, pData->dwIdx, pData->sID, msg->dwData, msg->sName,
						   msg->Mugong.wIconIdx, msg->Mugong.Position, msg->Mugong.Sung, msg->Mugong.ExpPoint );
		}		
		yCASE(MP_RMTOOL_CHARACTER_UPDATEMUGONG)
		{
			TMSG_MUGONG_EDIT* msg = (TMSG_MUGONG_EDIT*)pMsg;
			MugongUpdate(msg->Mugong.dwDBIdx, &msg->Mugong);

			// log
			InsertLogTool( eToolLog_RM, eRMLog_SkillUpdate, pData->dwIdx, pData->sID, msg->dwData, msg->sName,
						   msg->Mugong.wIconIdx, msg->Mugong.Position, msg->Mugong.Sung, msg->Mugong.ExpPoint );
		}		
		yCASE(MP_RMTOOL_CHARACTER_DELETEMUGONG)
		{
			TMSG_MUGONG_EDIT* msg = (TMSG_MUGONG_EDIT*)pMsg;
			MugongDelete( msg->Mugong.dwDBIdx );

			// log
			InsertLogTool( eToolLog_RM, eRMLog_SkillDelete, pData->dwIdx, pData->sID, msg->dwData, msg->sName,
						   msg->Mugong.wIconIdx, msg->Mugong.Position, msg->Mugong.Sung, msg->Mugong.ExpPoint );
		}
		yCASE(MP_RMTOOL_CHARACTER_UPDATE_ABILLITYINFO)
		{
			TMSG_CHARACTER_UPDATE_ABILITY* msg = (TMSG_CHARACTER_UPDATE_ABILITY*)pMsg;
			AbilityUpdate(msg->dwCharIdx, &msg->sAbility);

			// log
//			InsertLogTool( eToolLog_RM, eRMLog_AbilityUpdate, pData->dwIdx, pData->sID, msg->dwCharIdx, msg->sName,
//						   msg->sAbility , 0, 0 );
		}
		yCASE(MP_RMTOOL_CHARACTER_MAINQUESTINFO_SYN)
		{
			TMSG_DWORD* pmsg = (TMSG_DWORD*)pMsg;
			CharacterMainQuestInfo( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData );
		}
		yCASE(MP_RMTOOL_CHARACTER_MAINQUESTDELETE)
		{
			TMSG_NAME_DWORD* pmsg = (TMSG_NAME_DWORD*)pMsg;
			MainQuestDelete( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwChrIdx, pmsg->dwData );

			// log
			InsertLogTool( eToolLog_RM, eRMLog_QuestDelete, pData->dwIdx, pData->sID, pmsg->dwChrIdx, pmsg->sName,
						   pmsg->dwData, 0, 0, 0 );
		}
		yCASE(MP_RMTOOL_CHARACTER_SUBQUESTINFO_SYN)
		{
			TMSG_DWORD2* pmsg = (TMSG_DWORD2*)pMsg;
			CharacterSubQuestInfo( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData1, pmsg->dwData2 );
		}
		yCASE(MP_RMTOOL_CHARACTER_CHANGE_LOGINPOINT_SYN)
		{
			TMSG_NAME_DWORD* pmsg = (TMSG_NAME_DWORD*)pMsg;
			ChangeLoginPoint( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwChrIdx, pmsg->dwData );

			// log
			InsertLogTool( eToolLog_RM, eRMLog_ChangeLoginPoint, pData->dwIdx, pData->sID, pmsg->dwChrIdx, pmsg->sName,
						   pmsg->dwData, 0, 0, 0 );
		}
		yCASE(MP_RMTOOL_CHANGE_ITEMPOSITION)
		{
			TMSG_DWORD3* pmsg = (TMSG_DWORD3*)pMsg;
			ChangeItemPosition( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData1, pmsg->dwData2, pmsg->dwData3 );

			// log
//			InsertLogTool( eToolLog_RM, eRMLog_ChangeItemPosition, pData->dwIdx, pData->sID, msg->wPower, msg->strID, 0, 0, 0 );
		}
		yCASE(MP_RMTOOL_CHANGE_WAREITEMPOSITION)
		{
			TMSG_DWORD3* pmsg = (TMSG_DWORD3*)pMsg;
			ChangeWareItemPosition( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData1, pmsg->dwData2, pmsg->dwData3 );

			// log
//			InsertLogTool( eToolLog_RM, eRMLog_ChangeWareItemPosition, pData->dwIdx, pData->sID, msg->wPower, msg->strID, 0, 0, 0 );
		}
		yCASE(MP_RMTOOL_CHANGE_MUGONGPOSITION)
		{
			TMSG_DWORD3* pmsg = (TMSG_DWORD3*)pMsg;
			ChangeMugongPosition( (WORD)dwConnectionIndex, (WORD)pmsg->dwTemplateIdx, pmsg->dwData1, pmsg->dwData2, pmsg->dwData3 );

			// log
//			InsertLogTool( eToolLog_RM, eRMLog_ChangeSkillPosition, pData->dwIdx, pData->sID, msg->wPower, msg->strID, 0, 0, 0 );
		}
	}
	yENDSWITCH	
}

void CMSSystem::ItemMsgParse(DWORD dwConnectionIndex,char* pMsg,DWORD dwLength)
{
	OPERID* pData = IPCHECKMGR->GetID( dwConnectionIndex );
	if( strcmp(pData->sID, "") == 0 )
		return;

	MSGROOT* pTempMsg = (MSGROOT*)pMsg;
	ySWITCH(pTempMsg->Protocol)
	{
		yCASE(MP_RMTOOL_INSERTITEM)
		{
			TMSG_ITEM_INSERT* msg = (TMSG_ITEM_INSERT*)pMsg;
			if( msg->Item.dwDBIdx != 0 || msg->Item.wIconIdx == 0 || msg->dwTagetIdx == 0 ) 
				return;

			if(msg->bTable == 0) // Inven 
			{
				InvenItemInsert( dwConnectionIndex, msg->dwTemplateIdx, msg->sCharName, msg->dwTagetIdx, &msg->Item, &msg->Option);

				if( TP_WEAR_START <= msg->Item.Position && msg->Item.Position < TP_WEAR_END )
				{
					BYTE WearType = msg->Item.Position - TP_WEAR_START;

					CharacterWearItemUpdate(msg->dwTagetIdx, WearType, msg->Item.wIconIdx);
				}
			}
			else if(msg->bTable == 1) // Pyoguk
			{
				PyogukItemInsert( dwConnectionIndex, msg->dwTemplateIdx, msg->dwTagetIdx, &msg->Item, &msg->Option);
			}
			else if(msg->bTable == 2) // Munpa
			{
				MunpaItemInsert( dwConnectionIndex, msg->dwTemplateIdx, msg->dwTagetIdx, &msg->Item, &msg->Option);
			}
			else
				return;
		}
		yCASE(MP_RMTOOL_UPDATEITEM)
		{
			TMSG_ITEM_UPDATE* msg = (TMSG_ITEM_UPDATE*)pMsg;

			ItemUpdate( msg->dwDBIdx, &msg->Item );

			if( msg->bDeleteOption == 1 ) // option »èÁ¦
				ItemOptionDelete(msg->dwDBIdx);
			else if( msg->Item.Durability != 0 && msg->Option.dwOptionIdx != 0 )
			{
				if( msg->Item.Durability == msg->Option.dwOptionIdx && msg->dwOptionIdx ) // Option ¼öÁ¤
					ItemOptionUpdate(msg->dwDBIdx, &msg->Option);
				else // Option ÷°¡
					ItemOptionInsert(msg->dwDBIdx, &msg->Option);
			}

			if( TP_WEAR_START <= msg->Item.Position && msg->Item.Position < TP_WEAR_END )
			{
				BYTE WearType = msg->Item.Position - TP_WEAR_START;
				
				CharacterWearItemUpdate(msg->dwCharIdx, WearType, msg->Item.wIconIdx);
			}

			// log
			InsertLogTool( eToolLog_RM, eRMLog_ItemUpdate, pData->dwIdx, pData->sID, msg->dwCharIdx, msg->sCharName,
				msg->dwDBIdx, msg->Item.wIconIdx, msg->Item.Position, msg->Item.Durability );
		}
		yCASE(MP_RMTOOL_DELETEITEM)
		{
			TMSG_ITEM_DELETE* msg = (TMSG_ITEM_DELETE*)pMsg;
			
			if( msg->dwDBIdx != 0 )
			{
				ItemDelete(msg->dwDBIdx, msg->dwOptionIdx);

				if( TP_WEAR_START <= msg->wItemPosition && msg->wItemPosition < TP_WEAR_END )
				{
					BYTE WearType = msg->wItemPosition - TP_WEAR_START;
				
					CharacterWearItemUpdate(msg->dwCharIdx, WearType, 0);
				}

				// log
				InsertLogTool( eToolLog_RM, eRMLog_ItemDelete, pData->dwIdx, pData->sID, msg->dwCharIdx, msg->sCharName,
							   msg->dwDBIdx, msg->dwItemIdx, 0, 0 );
			}
		}		
	}
	yENDSWITCH	
}


////////////////////////////////////////////////////////////////////////////////////////

⌨️ 快捷键说明

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