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

📄 cmsdbmsgparser.cpp

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

		InsertLogTool( eToolLog_RM, eRMLog_ItemInsert, pData->dwIdx, pData->sID, dwCharIdx, name,
					   item.dwDBIdx, item.wIconIdx, item.Position, item.Durability );

//		InsertItemMoneyLog( 0, "", dwCharIdx, name, eLog_RMTool, 0, 0, 0, item.wIconIdx, item.dwDBIdx,
//							item.Position, item.Position, item.Durability, 0 );
	}
}

void PyogukItemInsert( WORD wConnectIdx, WORD wTempIdx, DWORD dwUserIdx, ITEMBASE* pItem, ITEM_OPTION_INFO* pOptionInfo )
{
//	char txt[256];
	sprintf(txt, "EXEC RP_PyogukItemInsert %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d,  %d, %d, %d, %d, %d,  %d, %d,  %d, %d, %d, %d, %d,  %d",
		dwUserIdx, 
		pItem->wIconIdx,
		pItem->Durability,
		pItem->Position,
		pOptionInfo->dwOptionIdx,
		pOptionInfo->GenGol,					
		pOptionInfo->MinChub,				
		pOptionInfo->CheRyuk,				
		pOptionInfo->SimMek,				
		pOptionInfo->Life,					
		pOptionInfo->NaeRyuk,			
		pOptionInfo->Shield,				
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyAttack,
		pOptionInfo->CriticalPercent,
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyDefense);
	if(g_DB.Query(eQueryType_FreeQuery, ePyogukItemInsert, MAKEDWORD(wConnectIdx, wTempIdx), txt) == FALSE)
	{
	}
}

void RPyogukItemInsert(LPQUERY pData, LPDBMESSAGE pMessage)
{
	WORD tempIdx = HIWORD( pMessage->dwID );
	WORD connectIdx = LOWORD( pMessage->dwID );
	DWORD count = pMessage->dwResult;

	if( pMessage->dwResult == 1 )
	{
		DWORD dwCharIdx = (DWORD)atoi((char*)pData[0].Data[0]);
		DWORD dwItemDBIdx = (DWORD)atoi((char*)pData[0].Data[1]);
		DWORD dwItemIdx = (DWORD)atoi((char*)pData[0].Data[2]);
		WORD wItemPos = (WORD)atoi((char*)pData[0].Data[3]);
		WORD wItemQPos = (WORD)atoi((char*)pData[0].Data[4]);
		DWORD dwItemDu = (DWORD)atoi((char*)pData[0].Data[5]);
		DWORD dwMunpaIdx = (DWORD)atoi((char*)pData[0].Data[6]);
		DWORD dwPyogukIdx = (DWORD)atoi((char*)pData[0].Data[7]);

		// log
		OPERID* pData = IPCHECKMGR->GetID( connectIdx );
		if( strcmp(pData->sID, "") == 0 )
			return;

		InsertLogTool( eToolLog_RM, eRMLog_ItemInsert, pData->dwIdx, pData->sID, dwPyogukIdx, "",
					   dwItemDBIdx, dwItemIdx, wItemPos, dwItemDu );

//		InsertItemMoneyLog( 0, "", dwPyogukIdx, "", eLog_RMTool, 0, 0, 0, dwItemIdx, dwItemDBIdx,
//							wItemPos, wItemPos, dwItemDu, 0 );
	}
}

void MunpaItemInsert( WORD wConnectIdx, WORD wTempIdx, DWORD dwMunpaIdx, ITEMBASE* pItem, ITEM_OPTION_INFO* pOptionInfo )
{
//	char txt[256];
	sprintf(txt, "EXEC RP_MunpaItemInsert %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d, %d,  %d, %d, %d, %d, %d,  %d, %d,  %d, %d, %d, %d, %d,  %d",
		dwMunpaIdx, 
		pItem->wIconIdx,
		pItem->Durability,
		pItem->Position,
		pOptionInfo->dwOptionIdx,
		pOptionInfo->GenGol,					
		pOptionInfo->MinChub,				
		pOptionInfo->CheRyuk,				
		pOptionInfo->SimMek,				
		pOptionInfo->Life,					
		pOptionInfo->NaeRyuk,			
		pOptionInfo->Shield,				
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyAttack,
		pOptionInfo->CriticalPercent,
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyDefense);
	if(g_DB.Query(eQueryType_FreeQuery, eMunpaItemInsert, MAKEDWORD(wConnectIdx, wTempIdx), txt) == FALSE)
	{
	}
}

void RMunpaItemInsert(LPQUERY pData, LPDBMESSAGE pMessage)
{
	WORD tempIdx = HIWORD( pMessage->dwID );
	WORD connectIdx = LOWORD( pMessage->dwID );
	DWORD count = pMessage->dwResult;

	if( pMessage->dwResult == 1 )
	{
		DWORD dwCharIdx = (DWORD)atoi((char*)pData[0].Data[0]);
		DWORD dwItemDBIdx = (DWORD)atoi((char*)pData[0].Data[1]);
		DWORD dwItemIdx = (DWORD)atoi((char*)pData[0].Data[2]);
		WORD wItemPos = (WORD)atoi((char*)pData[0].Data[3]);
		WORD wItemQPos = (WORD)atoi((char*)pData[0].Data[4]);
		DWORD dwItemDu = (DWORD)atoi((char*)pData[0].Data[5]);
		DWORD dwMunpaIdx = (DWORD)atoi((char*)pData[0].Data[6]);
		DWORD dwPyogukIdx = (DWORD)atoi((char*)pData[0].Data[7]);

		// log
		OPERID* pData = IPCHECKMGR->GetID( connectIdx );
		if( strcmp(pData->sID, "") == 0 )
			return;

		InsertLogTool( eToolLog_RM, eRMLog_ItemInsert, pData->dwIdx, pData->sID, dwMunpaIdx, "",
					   dwItemDBIdx, dwItemIdx, wItemPos, dwItemDu );

//		InsertItemMoneyLog( 0, "", dwMunpaIdx, "", eLog_RMTool, 0, 0, 0, dwItemIdx, dwItemDBIdx,
//							wItemPos, wItemPos, dwItemDu, 0 );
	}
}

void ItemUpdate(DWORD dwDBIdx, ITEMBASE* pItem)
{
//	char txt[128];
	sprintf(txt, "EXEC RP_ItemUpdate %d, %d, %d, %d", dwDBIdx, pItem->wIconIdx, pItem->Durability, pItem->Position);
	if(g_DB.Query(eQueryType_FreeQuery, eItemUpdate, 0, txt) == FALSE)
	{
	}
}

void ItemOptionUpdate(DWORD dwItemDBIdx, ITEM_OPTION_INFO* pOptionInfo)
{
//	char txt[256];
	sprintf(txt, "EXEC RP_ItemOptionUpdate %d, %d, %d, %d, %d, %d, %d, %d,  %d, %d, %d, %d, %d,  %d, %d,  %d, %d, %d, %d, %d,  %d",
		dwItemDBIdx, 
		pOptionInfo->GenGol,					
		pOptionInfo->MinChub,				
		pOptionInfo->CheRyuk,				
		pOptionInfo->SimMek,				
		pOptionInfo->Life,					
		pOptionInfo->NaeRyuk,			
		pOptionInfo->Shield,				
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyAttack,
		pOptionInfo->CriticalPercent,
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyDefense);
	if(g_DB.Query(eQueryType_FreeQuery, eItemOptionUpdate, 0, txt) == FALSE)
	{
	}
}

void ItemOptionInsert(DWORD dwItemDBIdx, ITEM_OPTION_INFO* pOptionInfo)
{
//	char txt[256];
	sprintf(txt, "EXEC RP_ItemOptionInsert %d, %d, %d, %d, %d, %d, %d, %d,  %d, %d, %d, %d, %d,  %d, %d,  %d, %d, %d, %d, %d,  %d",
		dwItemDBIdx, 
		pOptionInfo->GenGol,					
		pOptionInfo->MinChub,				
		pOptionInfo->CheRyuk,				
		pOptionInfo->SimMek,				
		pOptionInfo->Life,					
		pOptionInfo->NaeRyuk,			
		pOptionInfo->Shield,				
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrRegist.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyAttack,
		pOptionInfo->CriticalPercent,
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_FIRE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_WATER)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_TREE)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_IRON)),
		(int)(pOptionInfo->AttrAttack.GetElement_Val(ATTR_EARTH)),
		pOptionInfo->PhyDefense);
	if(g_DB.Query(eQueryType_FreeQuery, eItemOptionInsert, 0, txt) == FALSE)
	{
	}
}

void ItemOptionDelete(DWORD dwItemDBIdx)
{
//	char txt[128];
	sprintf(txt, "EXEC RP_ItemOptionDelete %d", dwItemDBIdx);
	if(g_DB.Query(eQueryType_FreeQuery, eItemOptionDelete, 0, txt) == FALSE)
	{
	}
}

void MugongInsert(DWORD dwCharIdx, MUGONGBASE* pMugong)
{
//	char txt[128];
	sprintf(txt, "EXEC RP_MugongInsert %d, %d, %d, %d, %d, %d", dwCharIdx, pMugong->wIconIdx, pMugong->ExpPoint, pMugong->Sung, pMugong->Position, pMugong->bWear);
	if(g_DB.Query(eQueryType_FreeQuery, eMugongInsert, 0, txt) == FALSE)
	{
	}
}

void MugongUpdate(DWORD dwMugongDBIdx, MUGONGBASE* pMugong)
{
//	char txt[128];
	sprintf(txt, "EXEC RP_MugongUpdate %d, %d, %d, %d", dwMugongDBIdx, pMugong->wIconIdx, pMugong->ExpPoint, pMugong->Sung);
	if(g_DB.Query(eQueryType_FreeQuery, eMugongUpdate, 0, txt) == FALSE)
	{
	}
}

void MugongDelete(DWORD dwMugongDBIdx)
{
//	char txt[128];
	sprintf(txt, "EXEC RP_MugongDelete %d", dwMugongDBIdx);
	if(g_DB.Query(eQueryType_FreeQuery, eMugongDelete, 0, txt) == FALSE)
	{
	}
}

void AbilityUpdate(DWORD dwCharIdx, ABILITY_TOTALINFO* pAbility)
{
//	char txt[256];
	sprintf(txt, "RP_AbilityUpdate %d, \'%s\', \'%s\', \'%s\', \'%s\'",
			dwCharIdx, pAbility->AbilityDataArray[eAGK_Battle], pAbility->AbilityDataArray[eAGK_KyungGong],
			pAbility->AbilityDataArray[eAGK_Society], pAbility->AbilityDataArray[eAGK_Job]);

	if(g_DB.Query(eQueryType_FreeQuery, eAbilityUpdate, 0, txt) == FALSE)
	{
	}
}

void CharacterWearItemUpdate(DWORD dwCharIdx, BYTE type, WORD wItemIdx)
{
//	char txt[256];
	sprintf(txt, "RP_CharacterWearItemUpdate %d, %d, %d", dwCharIdx, type, wItemIdx);
	if(g_DB.Query(eQueryType_FreeQuery, eCharacterWearItemUpdate, 0, txt) == FALSE)
	{
	}
}

//---------------------------------------------------------------------------------------------
// DBResult Callback Function List
// Programmer°¡ »ç¿ëÇÏ´Â ºÎºÐ
// parameter : (LPQUERY pData, LPDBMESSAGE pMessage)

void RInsertIpAdress(LPQUERY pData, LPDBMESSAGE pMessage)
{
	WORD tempIdx = HIWORD(pMessage->dwID);
	WORD connectIdx = LOWORD(pMessage->dwID);

	WORD wEcode = atoi((char*)pData[0].Data[0]);

	TMSGBASE Msg;
	Msg.Category = MP_RMTOOL_ADMIN;
	if( wEcode == 0 )
		Msg.Protocol = MP_RMTOOL_ADMIN_INSERTIP_ACK;
	else
		Msg.Protocol = MP_RMTOOL_ADMIN_INSERTIP_NACK;

	Msg.dwTemplateIdx = tempIdx;

	MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}

void RInsertOperator(LPQUERY pData, LPDBMESSAGE pMessage)
{
	WORD tempIdx = HIWORD(pMessage->dwID);
	WORD connectIdx = LOWORD(pMessage->dwID);

	WORD wEcode = atoi((char*)pData[0].Data[0]);

	TMSGBASE Msg;
	Msg.Category = MP_RMTOOL_ADMIN;
	if( wEcode == 0 )
		Msg.Protocol = MP_RMTOOL_ADMIN_INSERTOPERATOR_ACK;
	else
		Msg.Protocol = MP_RMTOOL_ADMIN_INSERTOPERATOR_NACK;

	Msg.dwTemplateIdx = tempIdx;

	MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}

void RTotalIpAdressInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
	DWORD count = pMessage->dwResult;
	WORD tempIdx = HIWORD(pMessage->dwID);
	WORD connectIdx = LOWORD(pMessage->dwID);

	TMSG_IPTOTALINFO Msg;
	memset(&Msg, 0, sizeof(Msg));

	if( pMessage->dwResult == 0 )
	{
		// ÇöÀç ±îÁöÀÇ Á¤º¸°¡ ÀüºÎÀÌ´Ù ¶ó°í ¾Ë¸°´Ù.
		Msg.Category = MP_RMTOOL_ADMIN;
		Msg.Protocol = MP_RMTOOL_ADMIN_IPINFO;
		Msg.dwTemplateIdx = tempIdx;
		Msg.bEnd = TRUE;
		Msg.wCount = 0;

		MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
		return;
	}

	DWORD startIdx = 0;
	Msg.wCount = 0;

	for( DWORD i = 0 ; i < pMessage->dwResult ; ++i )
	{
		Msg.sIP[Msg.wCount].dwIPIdx = atoi((char*)pData[i].Data[eII_IPIdx]);
		strcpy( Msg.sIP[Msg.wCount].strIP, (char*)pData[i].Data[eII_IPAdress]);

		strcpy(Msg.sIP[Msg.wCount].strRegDate, (char*)pData[i].Data[eII_Date]);
		strcat(Msg.sIP[Msg.wCount].strRegDate, " ");
		strcat(Msg.sIP[Msg.wCount].strRegDate, (char*)pData[i].Data[eII_Time]);

		startIdx = Msg.sIP[Msg.wCount].dwIPIdx;
		Msg.wCount++;
	}

	Msg.Category = MP_RMTOOL_ADMIN;
	Msg.Protocol = MP_RMTOOL_ADMIN_IPINFO;
	Msg.dwTemplateIdx = tempIdx;

	if( pMessage->dwResult >= 100)
	{
		Msg.bEnd = FALSE;
		TotalIpAdressInfo(connectIdx, tempIdx, startIdx);
	}
	else
	{
		// ÇöÀç ±îÁöÀÇ Á¤º¸°¡ ÀüºÎÀÌ´Ù ¶ó°í ¾Ë¸°´Ù.
		Msg.bEnd = TRUE;
	}

	MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}

void RTotalOperatorInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
	DWORD count = pMessage->dwResult;
	WORD tempIdx = HIWORD(pMessage->dwID);
	WORD connectIdx = LOWORD(pMessage->dwID);

	TMSG_OPERTOTALINFO Msg;
	memset(&Msg, 0, sizeof(Msg));

	if( pMessage->dwResult == 0 )
	{
		// ÇöÀç ±îÁöÀÇ Á¤º¸°¡ ÀüºÎÀÌ´Ù ¶ó°í ¾Ë¸°´Ù.
		Msg.Category = MP_RMTOOL_ADMIN;

⌨️ 快捷键说明

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