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

📄 mndbmsgparser.cpp

📁 墨香最新私服
💻 CPP
字号:
#include "stdafx.h"
#include "CommonDBMsgParser.h"
#include "MNDBMsgParser.h"
#include "MNPlayer.h"
#include "MurimNetSystem.h"
#include "MNPlayerManager.h"
//#include "PlayRoomManager.h"
#include "ChannelManager.h"
#include "Channel.h"


DBMsgFunc g_DBMsgFunc[MaxQuery] =
{
	RCharacterNumSendAndCharacterInfo,
};

void CharacterNumSendAndCharacterInfo(DWORD CharacterIDX)
{
	char txt[128];
	sprintf(txt, "EXEC %s %d", STORED_CHARACTER_SELECT, CharacterIDX);
	if(g_DB.Query(eQueryType_FreeQuery, eCharacterInfoQuery, 0, txt) == FALSE)
	{
	}
}

void	RCharacterNumSendAndCharacterInfo(LPQUERY pData, LPDBMESSAGE pMessage)
{
/*
	DWORD count = pMessage->dwResult;
	if(!count)
	{
		// ij¸¯ÅÍ Á¤º¸¹Þ±â ½ÇÆÐ¿À·ù
		ASSERTMSG(0,"DB¿¡ Äɸ¯ÅÍ µ¥ÀÌŸ°¡ ¾ø½À´Ï´Ù.");
		return;
	}
	
	BASEOBJECT_INFO Objinfo;
	CHARACTER_TOTALINFO Totalinfo;
	HERO_TOTALINFO Heroinfo;
	BASEMOVE_INFO Moveinfo;
	memset(&Objinfo,0,sizeof(BASEOBJECT_INFO));
	memset(&Totalinfo,0,sizeof(CHARACTER_TOTALINFO));
	memset(&Heroinfo,0,sizeof(HERO_TOTALINFO));
	memset(&Moveinfo,0,sizeof(BASEMOVE_INFO));

	
	
	Objinfo.dwObjectID = atoi((char*)pData->Data[eCS_ObjectID]);
	Objinfo.dwUserID =  atoi((char*)pData->Data[eCS_UserID]);
	Objinfo.BattleID = 0;
	Objinfo.BattleTeam = 0;
	
	// UserIDX´Â ³Ñ±âÁö ¾Ê´Â´Ù
	Heroinfo.PartyID = atoi((char*)pData->Data[eCS_PartyID]);
	
	Totalinfo.Gender = atoi((char*)pData->Data[eCS_Gender]);
	Heroinfo.wGenGol = atoi((char*)pData->Data[eCS_Gengoal]);
	Totalinfo.Life = atoi((char*)pData->Data[eCS_Life]);
	Totalinfo.Shield = atoi((char*)pData->Data[eCS_Shield]);
	Heroinfo.wNaeRyuk = atoi((char*)pData->Data[eCS_Energe]);
	Heroinfo.wMinChub = atoi((char*)pData->Data[eCS_Dex]);
	Heroinfo.wCheRyuk = atoi((char*)pData->Data[eCS_Sta]);
	Heroinfo.wSimMek = atoi((char*)pData->Data[eCS_Simmak]);
	Heroinfo.Fame = atoi((char*)pData->Data[eCS_Fame]);
	Heroinfo.wKarma = atoi((char*)pData->Data[eCS_Karma]);
	strcpy(Objinfo.ObjectName, (char*)pData->Data[eCS_Name]);
	strcpy(Totalinfo.HonorName, (char*)pData->Data[eCS_Repute]);
	Totalinfo.Stage = atoi((char*)pData->Data[eCS_Stage]);
	Totalinfo.Level = atoi((char*)pData->Data[eCS_Grade]);
	Heroinfo.ExpPoint = atoi((char*)pData->Data[eCS_Expoint]);
	Heroinfo.LevelUpPoint = atoi((char*)pData->Data[eCS_GradeUpPoint]);
	Heroinfo.Money = atoi((char*)pData->Data[eCS_Money]);
	Totalinfo.CurMapNum = 99;
	Totalinfo.LoginMapNum = atoi((char*)pData->Data[eCS_Map]);
	Totalinfo.FaceType = atoi((char*)pData->Data[eCS_FaceType]);
	Totalinfo.HairType = atoi((char*)pData->Data[eCS_HeadType]);
	Totalinfo.WearedItemIdx[eWearedItem_Hat] = atoi((char*)pData->Data[eCS_Hat]);
	Totalinfo.WearedItemIdx[eWearedItem_Weapon] = atoi((char*)pData->Data[eCS_Weapon]);
	Totalinfo.WearedItemIdx[eWearedItem_Dress] = atoi((char*)pData->Data[eCS_Dress]);
	Totalinfo.WearedItemIdx[eWearedItem_Shoes] = atoi((char*)pData->Data[eCS_Shoes]);
	Totalinfo.WearedItemIdx[eWearedItem_Ring1] = atoi((char*)pData->Data[eCS_Ring1]);
	Totalinfo.WearedItemIdx[eWearedItem_Ring2] = atoi((char*)pData->Data[eCS_Ring2]);
	Totalinfo.WearedItemIdx[eWearedItem_Cape] = atoi((char*)pData->Data[eCS_Cape]);
	Totalinfo.WearedItemIdx[eWearedItem_Necklace] = atoi((char*)pData->Data[eCS_Necklace]);
	Totalinfo.WearedItemIdx[eWearedItem_Armlet] = atoi((char*)pData->Data[eCS_Armlet]);
	Totalinfo.WearedItemIdx[eWearedItem_Belt] = atoi((char*)pData->Data[eCS_Belt]);
	Totalinfo.MunpaID = atoi((char*)pData->Data[eCS_MunpaIDX]);
	Totalinfo.PositionInMunpa = atoi((char*)pData->Data[eCS_MunpaPositon]);

	strcpy(Heroinfo.MunpaName, (char*)pData->Data[eCS_MunpaName]);
	Heroinfo.Ability[0] = atoi((char*)pData->Data[eCS_Ability1]);
	Heroinfo.Ability[1] = atoi((char*)pData->Data[eCS_Ability2]);
	Heroinfo.Ability[2] = atoi((char*)pData->Data[eCS_Ability3]);
	Heroinfo.Ability[3] = atoi((char*)pData->Data[eCS_Ability4]);
	Heroinfo.Ability[4] = atoi((char*)pData->Data[eCS_Ability5]);
	Heroinfo.Ability[5] = atoi((char*)pData->Data[eCS_Ability6]);
	Heroinfo.Ability[6] = atoi((char*)pData->Data[eCS_Ability7]);
	
	Totalinfo.MapChangePoint_Index = atoi((char*)pData->Data[eCS_MapChangePoint]);
	Totalinfo.LoginPoint_Index = atoi((char*)pData->Data[eCS_LoginPoint]);
	
	Heroinfo.KyungGongGrade = atoi((char*)pData->Data[eCS_QuickPace]);
	
	CMNPlayer* pPlayer = g_MNSystem.GetMNPlayerManager()->FindPlayer(Objinfo.dwObjectID);
	if(pPlayer == NULL)
		return;

	pPlayer->InitPlayerInfo( &Objinfo, &Totalinfo, &Heroinfo );
*/

	DWORD count = pMessage->dwResult;
	if(!count)
	{
		// ij¸¯ÅÍ Á¤º¸¹Þ±â ½ÇÆÐ¿À·ù
		ASSERTMSG(0,"DB¿¡ Äɸ¯ÅÍ µ¥ÀÌŸ°¡ ¾ø½À´Ï´Ù.");
		return;
	}
	
	BASEOBJECT_INFO Objinfo;
	CHARACTER_TOTALINFO Totalinfo;
	HERO_TOTALINFO Heroinfo;
	BASEMOVE_INFO Moveinfo;
	memset(&Objinfo,0,sizeof(BASEOBJECT_INFO));
	memset(&Totalinfo,0,sizeof(CHARACTER_TOTALINFO));
	memset(&Heroinfo,0,sizeof(HERO_TOTALINFO));
	memset(&Moveinfo,0,sizeof(BASEMOVE_INFO));

	
	
	Objinfo.dwObjectID = atoi((char*)pData->Data[eCS_ObjectID]);
	Objinfo.dwUserID =  atoi((char*)pData->Data[eCS_UserID]);
	Objinfo.BattleID = 0;
	Objinfo.BattleTeam = 0;
	
	// UserIDX´Â ³Ñ±âÁö ¾Ê´Â´Ù
	Heroinfo.PartyID = atoi((char*)pData->Data[eCS_PartyID]);
	
	Totalinfo.Gender = atoi((char*)pData->Data[eCS_Gender]);
	Heroinfo.wGenGol = atoi((char*)pData->Data[eCS_Gengoal]);
	Totalinfo.Life = atoi((char*)pData->Data[eCS_Life]);
	Totalinfo.Shield = atoi((char*)pData->Data[eCS_Shield]);
	Heroinfo.wNaeRyuk = atoi((char*)pData->Data[eCS_Energe]);
	Heroinfo.wMinChub = atoi((char*)pData->Data[eCS_Dex]);
	Heroinfo.wCheRyuk = atoi((char*)pData->Data[eCS_Sta]);
	Heroinfo.wSimMek = atoi((char*)pData->Data[eCS_Simmak]);
	Heroinfo.Fame = atoi((char*)pData->Data[eCS_Fame]);
	Heroinfo.wKarma = atoi((char*)pData->Data[eCS_Karma]);
//	strcpy(Objinfo.ObjectName, (char*)pData->Data[eCS_Name]);
	SafeStrCpy( Objinfo.ObjectName, (char*)pData->Data[eCS_Name], MAX_NAME_LENGTH + 1 );
//	strcpy(Totalinfo.HonorName, (char*)pData->Data[eCS_Repute]);
//	SafeStrCpy( Totalinfo.HonorName, (char*)pData->Data[eCS_Repute], MAX_NAME_LENGTH + 1 );
	Totalinfo.Stage = atoi((char*)pData->Data[eCS_Stage]);
	Totalinfo.Level = atoi((char*)pData->Data[eCS_Grade]);
	Heroinfo.ExpPoint = atoi((char*)pData->Data[eCS_Expoint]);
	Heroinfo.LevelUpPoint = atoi((char*)pData->Data[eCS_GradeUpPoint]);
	Heroinfo.Money = atoi((char*)pData->Data[eCS_Money]);
	Totalinfo.CurMapNum = 99;
	Totalinfo.LoginMapNum = atoi((char*)pData->Data[eCS_Map]);
	Totalinfo.FaceType = atoi((char*)pData->Data[eCS_FaceType]);
	Totalinfo.HairType = atoi((char*)pData->Data[eCS_HeadType]);
	Totalinfo.WearedItemIdx[eWearedItem_Hat] = atoi((char*)pData->Data[eCS_Hat]);
	Totalinfo.WearedItemIdx[eWearedItem_Weapon] = atoi((char*)pData->Data[eCS_Weapon]);
	Totalinfo.WearedItemIdx[eWearedItem_Dress] = atoi((char*)pData->Data[eCS_Dress]);
	Totalinfo.WearedItemIdx[eWearedItem_Shoes] = atoi((char*)pData->Data[eCS_Shoes]);
	Totalinfo.WearedItemIdx[eWearedItem_Ring1] = atoi((char*)pData->Data[eCS_Ring1]);
	Totalinfo.WearedItemIdx[eWearedItem_Ring2] = atoi((char*)pData->Data[eCS_Ring2]);
	Totalinfo.WearedItemIdx[eWearedItem_Cape] = atoi((char*)pData->Data[eCS_Cape]);
	Totalinfo.WearedItemIdx[eWearedItem_Necklace] = atoi((char*)pData->Data[eCS_Necklace]);
	Totalinfo.WearedItemIdx[eWearedItem_Armlet] = atoi((char*)pData->Data[eCS_Armlet]);
	Totalinfo.WearedItemIdx[eWearedItem_Belt] = atoi((char*)pData->Data[eCS_Belt]);
	Totalinfo.MunpaID = atoi((char*)pData->Data[eCS_MunpaIDX]);
	Totalinfo.PositionInMunpa = atoi((char*)pData->Data[eCS_MunpaPositon]);

//	strcpy(Heroinfo.MunpaName, (char*)pData->Data[eCS_MunpaName]);
	SafeStrCpy(Heroinfo.MunpaName, (char*)pData->Data[eCS_MunpaName], MAX_MUNPA_NAME+1);

	
	Totalinfo.MapChangePoint_Index = atoi((char*)pData->Data[eCS_MapChangePoint]);
	Totalinfo.LoginPoint_Index = atoi((char*)pData->Data[eCS_LoginPoint]);
	
	Heroinfo.KyungGongGrade = atoi((char*)pData->Data[eCS_QuickPace]);
	
	Heroinfo.AbilityExp = 0;//atoi((char*)pData->Data[eCS_AbilityExp]);
	
//	VECTOR3 pos,RandPos;
//	GAMERESRCMNGR->GetRegenPoint(pos,RandPos,Totalinfo.LoginPoint_Index,Totalinfo.MapChangePoint_Index);

//	CPlayer* pPlayer = g_pServerSystem->InitPlayerInfo(&Objinfo, &Totalinfo, &Heroinfo);
//	if(pPlayer == NULL)
//		return;

	CMNPlayer* pPlayer = g_MNSystem.GetMNPlayerManager()->FindPlayer(Objinfo.dwObjectID);
	if(pPlayer == NULL)
		return;

	pPlayer->InitPlayerInfo( &Objinfo, &Totalinfo, &Heroinfo );

//	pos = g_pServerSystem->GetMap()->GetTileManager()->GetNextCloserPos(pPlayer,&RandPos,&pos,70,170);
//	CCharMove::InitMove(pPlayer,&pos);
	
//	pPlayer->SetInitState(PLAYERINITSTATE_HERO_INFO,pMessage->dwID);

//---Enter Player into Default-Channel
	g_MNSystem.GetChannelManager()->GetDefaultChannel()->PlayerIn( pPlayer );

	
//È®Àοä.
//---Á¢¼Ó¼º°ø ¾Ë¸²(°ÔÀÓ·ëÀ̳ª, ä³Î¿¡ µé¾î°£ÈÄ¿¡ º¸³»¾ßÇÔ, hero settingÀ» À§Çؼ­)
	MSGBASE msg;
	msg.Category	= MP_MURIMNET;
	msg.Protocol	= MP_MURIMNET_CONNECT_ACK;
	msg.dwObjectID	= pPlayer->GetID();

	pPlayer->SendMsg( &msg, sizeof( msg ) );
}

⌨️ 快捷键说明

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