📄 cmsdbmsgparser.cpp
字号:
Msg.Protocol = MP_RMTOOL_ADMIN_OPERATORINFO;
Msg.dwTemplateIdx = tempIdx;
Msg.bEnd = TRUE;
Msg.wCount = 0;
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
return;
}
DWORD MyIdx = atoi((char*)pData[0].Data[eOI_MyIdx]);
DWORD startIdx = 0;
Msg.wCount = 0;
for( DWORD i = 0 ; i < pMessage->dwResult ; ++i )
{
Msg.sOper[Msg.wCount].dwOperIdx = atoi((char*)pData[i].Data[eOI_OperIdx]);
strcpy(Msg.sOper[Msg.wCount].strOperID, (char*)pData[i].Data[eOI_OperID]);
strcpy(Msg.sOper[Msg.wCount].strOperName, (char*)pData[i].Data[eOI_OperName]);
strcpy(Msg.sOper[Msg.wCount].strOperPWD, (char*)pData[i].Data[eOI_OperPwd]);
Msg.sOper[Msg.wCount].wOperPower = atoi((char*)pData[i].Data[eOI_OperPower]);
strcpy(Msg.sOper[Msg.wCount].strRegDate, (char*)pData[i].Data[eOI_Date]);
strcat(Msg.sOper[Msg.wCount].strRegDate, " ");
strcat(Msg.sOper[Msg.wCount].strRegDate, (char*)pData[i].Data[eOI_Time]);
startIdx = Msg.sOper[Msg.wCount].dwOperIdx;
Msg.wCount++;
}
Msg.Category = MP_RMTOOL_ADMIN;
Msg.Protocol = MP_RMTOOL_ADMIN_OPERATORINFO;
Msg.dwTemplateIdx = tempIdx;
if( pMessage->dwResult >= 100)
{
Msg.bEnd = FALSE;
TotalOperatorInfo(connectIdx, tempIdx, startIdx, MyIdx);
}
else
{
// ÇöÀç ±îÁöÀÇ Á¤º¸°¡ ÀüºÎÀÌ´Ù ¶ó°í ¾Ë¸°´Ù.
Msg.bEnd = TRUE;
}
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}
void ROperatorLoginCheck(LPQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
DWORD connectIdx = pMessage->dwID;
if( count == 0 ) // ÀÌ»ó ¿À·ù
{
TMSG_WORD msg;
msg.Category = MP_RMTOOL_CONNECT;
msg.Protocol = MP_RMTOOL_CONNECT_NACK;
msg.dwTemplateIdx = 0;
msg.wData = 0;
MNETWORK->SendToMC(connectIdx, (char*)&msg, sizeof(msg));
return;
}
WORD check = atoi((char*)pData[0].Data[eOI_ErroCode]);
if( check != 0 ) // Á¢¼Ó ºÒ°¡
{
TMSG_WORD msg;
msg.Category = MP_RMTOOL_CONNECT;
msg.Protocol = MP_RMTOOL_CONNECT_NACK;
msg.dwTemplateIdx = 0;
msg.wData = check;
MNETWORK->SendToMC(connectIdx, (char*)&msg, sizeof(msg));
return;
}
TMSG_OPERATOR_LOGIN Msg;
Msg.Category = MP_RMTOOL_CONNECT;
Msg.Protocol = MP_RMTOOL_CONNECT_ACK;
Msg.sOper.dwOperIdx = atoi((char*)pData[0].Data[eOI_OperIdx]);
strcpy(Msg.sOper.strOperID, (char*)pData[0].Data[eOI_OperID]);
strcpy(Msg.sOper.strOperName, (char*)pData[0].Data[eOI_OperName]);
strcpy(Msg.sOper.strOperPWD, (char*)pData[0].Data[eOI_OperPwd]);
Msg.sOper.wOperPower = atoi((char*)pData[0].Data[eOI_OperPower]);
strcpy(Msg.sOper.strRegDate, (char*)pData[0].Data[eOI_Date]);
strcat(Msg.sOper.strRegDate, " ");
strcat(Msg.sOper.strRegDate, (char*)pData[0].Data[eOI_Time]);
Msg.sIP.dwIPIdx = atoi((char*)pData[0].Data[eOI_IPIdx]);
strcpy(Msg.sIP.strIP, (char*)pData[0].Data[eOI_IPAdress]);
strcpy(Msg.sIP.strRegDate, (char*)pData[0].Data[eOI_IPDate]);
strcat(Msg.sIP.strRegDate, " ");
strcat(Msg.sIP.strRegDate, (char*)pData[0].Data[eOI_IPTime]);
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
// ip regist
IPCHECKMGR->RegistIP( Msg.sIP.strIP );
IPCHECKMGR->RegistID( connectIdx, Msg.sOper.dwOperIdx, Msg.sOper.strOperID );
}
void RSearchUserInfo(LPMIDDLEQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
WORD tempIdx = HIWORD(pMessage->dwID);
WORD connectIdx = LOWORD(pMessage->dwID);
if( count == 0 )
{
// ÀÏÄ¡ Á¤º¸ ¾øÀ½À» ¾Ë¸²..
TMSGBASE msg;
msg.Category = MP_RMTOOL_USER;
msg.Protocol = MP_RMTOOL_USERSEARCH_NACK;
msg.dwTemplateIdx = tempIdx;
MNETWORK->SendToMC(connectIdx, (char*)&msg, sizeof(msg));
}
else
{
TMSG_USERSEARCHRESULT Info;
Info.sUser.bLoginFlag = atoi((char*)pData[0].Data[eUI_IsLogin]);
Info.sUser.dwMemberNo = atoi((char*)pData[0].Data[eUI_User_Idx]);
strcpy(Info.sUser.strID, (char*)pData[0].Data[eUI_Id]);
strcpy(Info.sUser.strPass, (char*)pData[0].Data[eUI_Pwd]);
strcpy(Info.sUser.strName, (char*)pData[0].Data[eUI_Name]);
strcpy(Info.sUser.strIdCard, (char*)pData[0].Data[eUI_Idcard]);
strcpy(Info.sUser.strPhon, (char*)pData[0].Data[eUI_Phone]);
strcpy(Info.sUser.strEmail, (char*)pData[0].Data[eUI_Email]);
strcpy(Info.sUser.strRegDateTime, (char*)pData[0].Data[eUI_Regdate]);
strcpy(Info.sUser.strLastLoginTime, (char*)pData[0].Data[eUI_LastLogintime]);
strcpy(Info.sUser.strLastLogoutTime, (char*)pData[0].Data[eUI_LastLogouttime]);
Info.sUser.nTotalTime = atoi((char*)pData[0].Data[eUI_Totaltime]);
int temp = Info.sUser.nTotalTime;
int oo, mm, ss;
ss = temp%60;
mm = (temp/60)%60;
oo = (temp/3600);
sprintf(Info.sUser.strTotalTime, "%d½Ã°£ %dºÐ %dÃÊ", oo, mm, ss );
Info.sUser.wUserLevel = atoi((char*)pData[0].Data[eUI_UserLevel]);
Info.wServer = atoi((char*)pData[0].Data[eUI_Char_Server]);
Info.Category = MP_RMTOOL_USER;
Info.Protocol = MP_RMTOOL_USERSEARCH_ACK;
Info.dwTemplateIdx = tempIdx;
MNETWORK->SendToMC(connectIdx, (char*)&Info, sizeof(Info));
}
}
/*
void RSearchSimpleCharacterInfo(LPMIDDLEQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
WORD tempIdx = HIWORD(pMessage->dwID);
WORD connectIdx = LOWORD(pMessage->dwID);
TMSG_SIMPLERESULT Msg;
Msg.Category = MP_RMTOOL_USER;
Msg.Protocol = MP_RMTOOL_SIMPLECHARACTER_ACK;
Msg.dwTemplateIdx = tempIdx;
Msg.Count = count;
for(BYTE i=0;i<count;++i)
{
Msg.sSimple[i].wServer = atoi((char*)pData[i].Data[0]);
Msg.sSimple[i].dwCharNo = atoi((char*)pData[i].Data[1]);
strcpy( Msg.sSimple[i].strName, (char*)pData[i].Data[2]);
strcpy( Msg.sSimple[i].strCreateDate, (char*)pData[i].Data[3]);
}
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}
*/
void RCharacterBaseInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
WORD tempIdx = HIWORD(pMessage->dwID);
WORD connectIdx = LOWORD(pMessage->dwID);
if(!count)
{
// error È£Ãâ
TMSG_WORD Msg;
Msg.Category = MP_RMTOOL_CHARACTER;
Msg.Protocol = MP_RMTOOL_CHARACTERINFO_NACK;
Msg.dwTemplateIdx = tempIdx;
Msg.wData = 0; //
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
return;
}
TMSG_CHARACTER_BASEINFO Msg;
memset(&Msg.m_sObjinfo,0,sizeof(BASEOBJECT_INFO));
memset(&Msg.m_sTotalinfo,0,sizeof(CHARACTER_TOTALINFO));
memset(&Msg.m_sHeroinfo,0,sizeof(HERO_TOTALINFO));
Msg.m_sObjinfo.dwObjectID = atoi((char*)pData->Data[eCS_ObjectID]);
Msg.m_sObjinfo.dwUserID = atoi((char*)pData->Data[eCS_UserID]);
Msg.m_sObjinfo.BattleID = 0;
Msg.m_sObjinfo.BattleTeam = 0;
strcpy(Msg.m_sObjinfo.ObjectName, (char*)pData->Data[eCS_Name]);
Msg.m_sTotalinfo.Gender = atoi((char*)pData->Data[eCS_Gender]);
Msg.m_sTotalinfo.Life = atoi((char*)pData->Data[eCS_Life]);
Msg.m_sTotalinfo.Shield = atoi((char*)pData->Data[eCS_Shield]);
// strcpy(Msg.m_sTotalinfo.HonorName, (char*)pData->Data[eCS_Repute]);
Msg.m_sTotalinfo.Stage = atoi((char*)pData->Data[eCS_Stage]);
Msg.m_sTotalinfo.Level = atoi((char*)pData->Data[eCS_Grade]);
Msg.m_sTotalinfo.CurMapNum = 0;
Msg.m_sTotalinfo.LoginMapNum = atoi((char*)pData->Data[eCS_Map]);
Msg.m_sTotalinfo.FaceType = atoi((char*)pData->Data[eCS_FaceType]);
Msg.m_sTotalinfo.HairType = atoi((char*)pData->Data[eCS_HeadType]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Hat] = atoi((char*)pData->Data[eCS_Hat]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Weapon] = atoi((char*)pData->Data[eCS_Weapon]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Dress] = atoi((char*)pData->Data[eCS_Dress]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Shoes] = atoi((char*)pData->Data[eCS_Shoes]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Ring1] = atoi((char*)pData->Data[eCS_Ring1]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Ring2] = atoi((char*)pData->Data[eCS_Ring2]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Cape] = atoi((char*)pData->Data[eCS_Cape]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Necklace] = atoi((char*)pData->Data[eCS_Necklace]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Armlet] = atoi((char*)pData->Data[eCS_Armlet]);
Msg.m_sTotalinfo.WearedItemIdx[eWearedItem_Belt] = atoi((char*)pData->Data[eCS_Belt]);
Msg.m_sTotalinfo.MunpaID = atoi((char*)pData->Data[eCS_MunpaIDX]);
Msg.m_sTotalinfo.PositionInMunpa = atoi((char*)pData->Data[eCS_MunpaPositon]);
Msg.m_sTotalinfo.MapChangePoint_Index = atoi((char*)pData->Data[eCS_MapChangePoint]);
Msg.m_sTotalinfo.LoginPoint_Index = atoi((char*)pData->Data[eCS_LoginPoint]);
Msg.m_sHeroinfo.PartyID = atoi((char*)pData->Data[eCS_PartyID]);
Msg.m_sHeroinfo.wGenGol = atoi((char*)pData->Data[eCS_Gengoal]);
Msg.m_sHeroinfo.wNaeRyuk = atoi((char*)pData->Data[eCS_Energe]);
Msg.m_sHeroinfo.wMinChub = atoi((char*)pData->Data[eCS_Dex]);
Msg.m_sHeroinfo.wCheRyuk = atoi((char*)pData->Data[eCS_Sta]);
Msg.m_sHeroinfo.wSimMek = atoi((char*)pData->Data[eCS_Simmak]);
Msg.m_sHeroinfo.Fame = atoi((char*)pData->Data[eCS_Fame]);
Msg.m_sHeroinfo.wKarma = atoi((char*)pData->Data[eCS_Karma]);
Msg.m_sHeroinfo.ExpPoint = atoi((char*)pData->Data[eCS_Expoint]);
Msg.m_sHeroinfo.LevelUpPoint = atoi((char*)pData->Data[eCS_GradeUpPoint]);
Msg.m_sHeroinfo.Money = atoi((char*)pData->Data[eCS_Money]);
strcpy(Msg.m_sHeroinfo.MunpaName, (char*)pData->Data[eCS_MunpaName]);
Msg.m_sHeroinfo.KyungGongGrade = atoi((char*)pData->Data[eCS_QuickPace]);
Msg.m_sHeroinfo.AbilityExp = atoi((char*)pData->Data[eCS_AbilityExp]);
// Á¤º¸ º¸³»±â
Msg.Category = MP_RMTOOL_CHARACTER;
Msg.Protocol = MP_RMTOOL_CHARACTER_BASEINFO;
Msg.dwTemplateIdx = tempIdx;
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}
void RCharacterInvenInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
DWORD count = pMessage->dwResult;
WORD tempIdx = HIWORD(pMessage->dwID);
WORD connectIdx = LOWORD(pMessage->dwID);
// °¡Á¤!!
// ¾ÆÀÌÅÛÀÇ Æ÷Áö¼ÇÀº Àý´ë °ãÄ¥¼ö ¾ø´Ù
// ¾ÆÀÌÅÛÀÇ Ä³¸¯ÅÍ ¹®ÆÄ â°í À妽ºµµ Àý´ë °ãÄ¥¼ö ¾ø´Ù. (ÀÌ°Ç ¾î¶»°Ô º¹±¸ÇϳÄ!!)
TMSG_CHARACTER_INVENINFO Msg;
memset(&Msg.m_sIteminfo, 0, sizeof(Msg.m_sIteminfo));
POSTYPE p = 0;
for(DWORD i = 0; i < count; i++)
{
POSTYPE ItemPos = atoi((char*)pData[i].Data[eCI_Position]);
// ±×¸®µå(Àκ¥Å丮)¾ÆÀÌÅÛ ¼ÂÆÃ
if(ItemPos >= TP_INVENTORY_START && ItemPos < TP_INVENTORY_END)
{
ItemPos -= TP_INVENTORY_START;
Msg.m_sIteminfo.Inventory[ItemPos].dwDBIdx = atoi((char*)pData[i].Data[eCI_DBIDX]);
Msg.m_sIteminfo.Inventory[ItemPos].wIconIdx = atoi((char*)pData[i].Data[eCI_IDX]);
Msg.m_sIteminfo.Inventory[ItemPos].Position = atoi((char*)pData[i].Data[eCI_Position]);
Msg.m_sIteminfo.Inventory[ItemPos].Durability = atoi((char*)pData[i].Data[eCI_Durability]);
Msg.m_sIteminfo.Inventory[ItemPos].QuickPosition = atoi((char*)pData[i].Data[eCI_QPosition]);
}
else if(ItemPos >= TP_WEAR_START && ItemPos < TP_WEAR_END)
{
POSTYPE ItemGrid = ItemPos - TP_WEAR_START;
Msg.m_sIteminfo.WearedItem[ItemGrid].dwDBIdx = atoi((char*)pData[i].Data[eCI_DBIDX]);
Msg.m_sIteminfo.WearedItem[ItemGrid].wIconIdx = atoi((char*)pData[i].Data[eCI_IDX]);
Msg.m_sIteminfo.WearedItem[ItemGrid].Position = atoi((char*)pData[i].Data[eCI_Position]);
Msg.m_sIteminfo.WearedItem[ItemGrid].Durability = atoi((char*)pData[i].Data[eCI_Durability]);
Msg.m_sIteminfo.WearedItem[ItemGrid].QuickPosition = atoi((char*)pData[i].Data[eCI_QPosition]);
}
else
{
ASSERT(0);
continue;
}
}
// Á¤º¸ º¸³»±â
Msg.Category = MP_RMTOOL_CHARACTER;
Msg.Protocol = MP_RMTOOL_CHARACTER_INVENINFO;
Msg.dwTemplateIdx = tempIdx;
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}
void RCharacterPyogukInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
WORD tempIdx = HIWORD(pMessage->dwID);
WORD connectIdx = LOWORD(pMessage->dwID);
TMSG_CHARACTER_PYOGUKINFO Msg;
DWORD UserIdx;
if( pMessage->dwResult == 0 )
{
UserIdx = 0;
Msg.m_wPyogukNum = 0;
Msg.m_dwMoney = 0;
}
else
{
UserIdx = atoi((char*)pData->Data[eCP_UserIdx]);
Msg.m_wPyogukNum = atoi((char*)pData->Data[eCP_PyogukNum]);
Msg.m_dwMoney = atoi((char*)pData->Data[eCP_PyogukMoney]);
}
if( Msg.m_wPyogukNum != 0)
CharacterPyogukItemInfo( connectIdx, tempIdx, UserIdx, TP_PYOGUK_START-1 );
Msg.Category = MP_RMTOOL_CHARACTER;
Msg.Protocol = MP_RMTOOL_CHARACTER_PYOGUKINFO;
Msg.dwTemplateIdx = tempIdx;
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
}
void RCharacterPyogukItemInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
WORD tempIdx = HIWORD(pMessage->dwID);
WORD connectIdx = LOWORD(pMessage->dwID);
TMSG_ITEMINFO_LARGECOUNT Msg;
memset(&Msg, 0, sizeof(Msg));
if( pMessage->dwResult == 0 )
{
// ÇöÀç ±îÁöÀÇ Á¤º¸°¡ ÀüºÎÀÌ´Ù ¶ó°í ¾Ë¸°´Ù.
Msg.Category = MP_RMTOOL_CHARACTER;
Msg.Protocol = MP_RMTOOL_CHARACTER_PYOGUKITEMINFO;
Msg.dwTemplateIdx = tempIdx;
Msg.m_bEnd = TRUE;
Msg.m_wCount = 0;
MNETWORK->SendToMC(connectIdx, (char*)&Msg, sizeof(Msg));
return;
}
DWORD UserIdx = atoi((char*)pData[0].Data[ePI_UserId]);
POSTYPE startPos = 0;
Msg.m_wCount = 0;
for( DWORD i = 0 ; i < pMessage->dwResult ; ++i )
{
POSTYPE ItemPos = atoi((char*)pData[i].Data[ePI_Position]);
if(TP_PYOGUK_START<= ItemPos && ItemPos < TP_PYOGUK_END)
{
Msg.m_Item[Msg.m_wCount].dwDBIdx = atoi((char*)pData[i].Data[ePI_DBIDX]);
Msg.m_Item[Msg.m_wCount].wIconIdx = atoi((char*)pData[i].Data[ePI_IDX]);
Msg.m_Item[Msg.m_wCount].Position = atoi((char*)pData[i].Data[ePI_Position]);
Msg.m_Item[Msg.m_wCount].QuickPosition = atoi((char*)pData[i].Data[ePI_QPosition]);
Msg.m_Item[Msg.m_wCount].Durability = atoi((char*)pData[i].Data[ePI_Durability]);
startPos = Msg.m_Item[Msg.m_wCount].Position;
Msg.m_wCount++;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -