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

📄 cmsdbmsgparser.cpp

📁 墨香最新私服
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	TMSG_GAMELOGITEM1 Msg;
	memset(&Msg, 0, sizeof(Msg));

	if( pMessage->dwResult == 0 )
	{
		TMSGBASE msg;
		msg.Category = MP_RMTOOL_GAMELOG;
		msg.Protocol = MP_RMTOOL_GAMELOGSEARCH_NACK;
		msg.dwTemplateIdx = tempIdx;

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

	strcpy(Msg.strCharName, (char*)pData[0].Data[eGI_CharName]);
	Msg.bDayOnly = atoi((char*)pData[0].Data[eGI_Dayonly]);
	strcpy(Msg.strStart, (char*)pData[0].Data[eGI_StartDate]);
	strcpy(Msg.strEnd, (char*)pData[0].Data[eGI_EndDate]);
	DWORD startIdx = 0;
	Msg.wCount = 0;

	for( DWORD i = 0 ; i < pMessage->dwResult ; ++i )
	{
		Msg.sLog[Msg.wCount].dwLogidx = atoi((char*)pData[i].Data[eGI_LogIdx]);
		Msg.sLog[Msg.wCount].bLogtype = atoi((char*)pData[i].Data[eGI_LogType]);
		Msg.sLog[Msg.wCount].dwCharIdx = atoi((char*)pData[i].Data[eGI_CharIdx]);
		Msg.sLog[Msg.wCount].dwTargetIdx = atoi((char*)pData[i].Data[eGI_TargetIdx]); 
		strcpy(Msg.sLog[Msg.wCount].strTargetName, (char*)pData[i].Data[eGI_TargetName]);
		Msg.sLog[Msg.wCount].dwItemIdx = atoi((char*)pData[i].Data[eGI_ItemIdx]);
		Msg.sLog[Msg.wCount].dwItemDBIdx = atoi((char*)pData[i].Data[eGI_ItemDBIdx]);
		strcpy(Msg.sLog[Msg.wCount].strLogdate, (char*)pData[i].Data[eGI_Logdate]);
		strcat(Msg.sLog[Msg.wCount].strLogdate, " ");
		strcat(Msg.sLog[Msg.wCount].strLogdate, (char*)pData[i].Data[eGI_Logtime]);
		Msg.sLog[Msg.wCount].dwMoney = atoi((char*)pData[i].Data[eGI_Money]);

		startIdx = Msg.sLog[Msg.wCount].dwLogidx;
		Msg.wCount++;
	}

	Msg.Category = MP_RMTOOL_GAMELOG;
//	Msg.Protocol = MP_RMTOOL_GAMELOG_ITEMMOVELOG;
	Msg.dwTemplateIdx = tempIdx;

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

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

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

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

	if( pMessage->dwResult == 0 )
	{
		TMSGBASE msg;
		msg.Category = MP_RMTOOL_GAMELOG;
		msg.Protocol = MP_RMTOOL_GAMELOGSEARCH_NACK;
		msg.dwTemplateIdx = tempIdx;

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

	strcpy(Msg.strCharName, (char*)pData[0].Data[eGI_CharName]);
	Msg.bDayOnly = atoi((char*)pData[0].Data[eGI_Dayonly]);
	strcpy(Msg.strStart, (char*)pData[0].Data[eGI_StartDate]);
	strcpy(Msg.strEnd, (char*)pData[0].Data[eGI_EndDate]);
	DWORD startIdx = 0;
	Msg.wCount = 0;

	for( DWORD i = 0 ; i < pMessage->dwResult ; ++i )
	{
		Msg.sLog[Msg.wCount].dwLogidx = atoi((char*)pData[i].Data[eGI_LogIdx]);
		Msg.sLog[Msg.wCount].bLogtype = atoi((char*)pData[i].Data[eGI_LogType]);
		Msg.sLog[Msg.wCount].dwCharIdx = atoi((char*)pData[i].Data[eGI_CharIdx]);
		Msg.sLog[Msg.wCount].dwTargetIdx = atoi((char*)pData[i].Data[eGI_TargetIdx]); 
		strcpy(Msg.sLog[Msg.wCount].strTargetName, (char*)pData[i].Data[eGI_TargetName]);
		Msg.sLog[Msg.wCount].dwItemIdx = atoi((char*)pData[i].Data[eGI_ItemIdx]);
		Msg.sLog[Msg.wCount].dwItemDBIdx = atoi((char*)pData[i].Data[eGI_ItemDBIdx]);
		strcpy(Msg.sLog[Msg.wCount].strLogdate, (char*)pData[i].Data[eGI_Logdate]);
		strcat(Msg.sLog[Msg.wCount].strLogdate, " ");
		strcat(Msg.sLog[Msg.wCount].strLogdate, (char*)pData[i].Data[eGI_Logtime]);
		Msg.sLog[Msg.wCount].dwMoney = atoi((char*)pData[i].Data[eGI_Money]);

		startIdx = Msg.sLog[Msg.wCount].dwLogidx;
		Msg.wCount++;
	}

	Msg.Category = MP_RMTOOL_GAMELOG;
//	Msg.Protocol = MP_RMTOOL_GAMELOG_ITEMOBTAINLOG;
	Msg.dwTemplateIdx = tempIdx;

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

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

void RGameLogBaseInfoLog(LPQUERY pData, LPDBMESSAGE pMessage)
{
}

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

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

	if( pMessage->dwResult == 0 )
	{
		TMSGBASE msg;
		msg.Category = MP_RMTOOL_GAMELOG;
		msg.Protocol = MP_RMTOOL_GAMELOGSEARCH_NACK;
		msg.dwTemplateIdx = tempIdx;

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

	strcpy(Msg.strCharName, (char*)pData[0].Data[eGLM_CharName]);
	Msg.bDayOnly = atoi((char*)pData[0].Data[eGLM_Dayonly]);
	strcpy(Msg.strStart, (char*)pData[0].Data[eGLM_StartDate]);
	strcpy(Msg.strEnd, (char*)pData[0].Data[eGLM_EndDate]);
	DWORD startIdx = 0;
	Msg.wCount = 0;

	for( DWORD i = 0 ; i < pMessage->dwResult ; ++i )
	{
		Msg.sLog[Msg.wCount].dwLogIdx = atoi((char*)pData[i].Data[eGLM_LogIdx]);
		Msg.sLog[Msg.wCount].LogType = atoi((char*)pData[i].Data[eGLM_LogType]);
		Msg.sLog[Msg.wCount].dwCharIdx = atoi((char*)pData[i].Data[eGLM_CharIdx]);
		Msg.sLog[Msg.wCount].dwInvenMoney = atoi((char*)pData[i].Data[eGLM_InvenMoney]);
		Msg.sLog[Msg.wCount].dwPyogukMoney = atoi((char*)pData[i].Data[eGLM_PyogukMoney]);
		strcpy(Msg.sLog[Msg.wCount].strLogdate, (char*)pData[i].Data[eGLM_LogDate]);
		strcat(Msg.sLog[Msg.wCount].strLogdate, " ");
		strcat(Msg.sLog[Msg.wCount].strLogdate, (char*)pData[i].Data[eGLM_LogTime]);
		startIdx = Msg.sLog[Msg.wCount].dwLogIdx;
		Msg.wCount++;
	}

	Msg.Category = MP_RMTOOL_GAMELOG;
//	Msg.Protocol = MP_RMTOOL_GAMELOG_MONEY;
	Msg.dwTemplateIdx = tempIdx;

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

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

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

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

	if( pMessage->dwResult == 0 )
	{
		TMSGBASE msg;
		msg.Category = MP_RMTOOL_GAMELOG;
//		msg.Protocol = MP_RMTOOL_GAMELOG_ITEM_NACK;
		msg.dwTemplateIdx = tempIdx;

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

	strcpy( Msg.strChrName, (char*)pData[0].Data[eGLI_ChrName]);
	Msg.bDayOnly = atoi((char*)pData[0].Data[eGLI_DayOnly]);
	strcpy( Msg.strStart, (char*)pData[0].Data[eGLI_StartDate] );
	strcpy( Msg.strEnd, (char*)pData[0].Data[eGLI_EndDate] );
	Msg.wCount = 0;

	DWORD startIdx = 0;
	for( DWORD i = 0; i < pMessage->dwResult; ++i )
	{
		Msg.sLog[i].dwLogIdx = atoi((char*)pData[i].Data[eGLI_LogIdx]);
		Msg.sLog[i].dwLogType = atoi((char*)pData[i].Data[eGLI_LogType]);
		Msg.sLog[i].dwItemIdx = atoi((char*)pData[i].Data[eGLI_ItemIdx]);
		Msg.sLog[i].dwItemDBIdx = atoi((char*)pData[i].Data[eGLI_ItemDBIdx]);
		Msg.sLog[i].dwCurChrIdx = atoi((char*)pData[i].Data[eGLI_CurChrIdx]);
		Msg.sLog[i].dwBeforeChrIdx = atoi((char*)pData[i].Data[eGLI_BeforeChrIdx]);
		Msg.sLog[i].dwMoney = atoi((char*)pData[i].Data[eGLI_Money]);
		strcpy( Msg.sLog[i].strLogDate, (char*)pData[i].Data[eGLI_LogDate] );
		strcat( Msg.sLog[i].strLogDate, " ");
		strcat( Msg.sLog[i].strLogDate, (char*)pData[i].Data[eGLI_LogTime] );
		strcpy( Msg.sLog[i].strCurChrName, (char*)pData[i].Data[eGLI_CurChrName] );
		strcpy( Msg.sLog[i].strBeforeChrName, (char*)pData[i].Data[eGLI_BeforeChrName] );
		startIdx = Msg.sLog[i].dwLogIdx;
		++Msg.wCount;
	}

	Msg.Category = MP_RMTOOL_GAMELOG;
//	Msg.Protocol = MP_RMTOOL_GAMELOG_ITEM_ACK;
	Msg.dwTemplateIdx = tempIdx;

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

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

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

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

	if( pMessage->dwResult == 0 )
	{
		TMSGBASE msg;
		msg.Category = MP_RMTOOL_GAMELOG;
//		msg.Protocol = MP_RMTOOL_GAMELOG_ITEM_NACK;
		msg.dwTemplateIdx = tempIdx;

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

	Msg.dwItemDBIdx = atoi((char*)pData[0].Data[eGLI_ChrName]);
	Msg.bDayOnly = atoi((char*)pData[0].Data[eGLI_DayOnly]);
	strcpy( Msg.strStart, (char*)pData[0].Data[eGLI_StartDate] );
	strcpy( Msg.strEnd, (char*)pData[0].Data[eGLI_EndDate] );
	Msg.wCount = 0;

	DWORD startIdx = 0;
	for( DWORD i = 0; i < pMessage->dwResult; ++i )
	{
		Msg.sLog[i].dwLogIdx = atoi((char*)pData[i].Data[eGLI_LogIdx]);
		Msg.sLog[i].dwLogType = atoi((char*)pData[i].Data[eGLI_LogType]);
		Msg.sLog[i].dwItemIdx = atoi((char*)pData[i].Data[eGLI_ItemIdx]);
		Msg.sLog[i].dwItemDBIdx = atoi((char*)pData[i].Data[eGLI_ItemDBIdx]);
		Msg.sLog[i].dwCurChrIdx = atoi((char*)pData[i].Data[eGLI_CurChrIdx]);
		Msg.sLog[i].dwBeforeChrIdx = atoi((char*)pData[i].Data[eGLI_BeforeChrIdx]);
		Msg.sLog[i].dwMoney = atoi((char*)pData[i].Data[eGLI_Money]);
		strcpy( Msg.sLog[i].strLogDate, (char*)pData[i].Data[eGLI_LogDate] );
		strcat( Msg.sLog[i].strLogDate, " ");
		strcat( Msg.sLog[i].strLogDate, (char*)pData[i].Data[eGLI_LogTime] );
		strcpy( Msg.sLog[i].strCurChrName, (char*)pData[i].Data[eGLI_CurChrName] );
		strcpy( Msg.sLog[i].strBeforeChrName, (char*)pData[i].Data[eGLI_BeforeChrName] );
		startIdx = Msg.sLog[i].dwLogIdx;
		++Msg.wCount;
	}

	Msg.Category = MP_RMTOOL_GAMELOG;
//	Msg.Protocol = MP_RMTOOL_GAMELOG_ITEM_ACK;
	Msg.dwTemplateIdx = tempIdx;

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

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

// jsd add 04.08.25 -----------------------------
// IP Check
void TotalIpInfo( DWORD startIdx )
{
//	char txt[128];
	sprintf(txt, "EXEC RP_IpAdressInfo %d", startIdx);	
	if(g_DB.LoginQuery(eQueryType_FreeQuery, eTotalIpInfo, 0, txt) == FALSE)
	{
	}
}

void RTotalIpInfo( LPQUERY pData, LPDBMESSAGE pMessage )
{
	IPCHECKMGR->Release();
	DWORD count = pMessage->dwResult;

	if( count == 0 )
		return;

	DWORD startIdx = 0;

	for( DWORD i = 0; i < count; ++i )
	{
		IPCHECKMGR->RegistIP( (char*)pData[i].Data[eII_IPAdress] );
		startIdx = atoi((char*)pData[i].Data[eII_IPIdx]);
	}

// ip 100°³ ³ÑÀ¸¸é ¾ÈµÊ
//	if( count >= 100)
//		TotalIpInfo( startIdx );
}

// New Log
void ItemMoneyLogFromType( WORD wConnectIdx, WORD wTempIdx, DWORD dwStartIdx, WORD wLogType, DWORD dwCharIdx, DWORD dwItem, int nDay, char* sSDate, char* sEDate )
{
	sprintf( txt, "EXEC TP_ItemMoneyLogFromType %d, %d, %d, %d, %d, \'%s\', \'%s\'", dwStartIdx, wLogType, dwCharIdx, dwItem, nDay, sSDate, sEDate );
	if( g_DB.LogQuery(eQueryType_FreeQuery, eItemMoneyLogFromType, MAKEDWORD(wConnectIdx, wTempIdx), txt) == FALSE )
	{
	}
}

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

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

	if( pMessage->dwResult == 0 )
	{
		TMSGBASE msg;
		msg.Category = MP_RMTOOL_GAMELOG;
		msg.Protocol = MP_RMTOOL_GAMELOGSEARCH_NACK;
		msg.dwTemplateIdx = tempIdx;

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

	Msg.wCount = 0;
	Msg.wType = atoi((char*)pData[0].Data[eIML_Type]);
	Msg.dwCharIdx = atoi((char*)pData[0].Data[eIML_ChrName]);
	Msg.dwItem = atoi((char*)pData[0].Data[eIML_Item]);
	Msg.bDayOnly = atoi((char*)pData[0].Data[eIML_DayOnly]);
	strcpy( Msg.sSDate, (char*)pData[0].Data[eIML_SDate] );
	strcpy( Msg.sEDate, (char*)pData[0].Data[eIML_EDate] );

⌨️ 快捷键说明

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