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

📄 msgsynmemberinfo.cpp

📁 网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志
💻 CPP
字号:
// MsgSynMemberInfo.cpp: interface for the CMsgSynMemberInfo class.
//
//////////////////////////////////////////////////////////////////////

#include "AllMsg.h"
#include "SynAttr.h"
#include "MapGroup.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMsgSynMemberInfo::CMsgSynMemberInfo()
{
	Init();
	m_pInfo	=(MSG_Info *)m_bufMsg;
}

CMsgSynMemberInfo::~CMsgSynMemberInfo()
{

}

//////////////////////////////////////////////////////////////////////
BOOL CMsgSynMemberInfo::Create(char* pbufMsg, DWORD dwMsgSize)
{
	if (!CNetMsg::Create(pbufMsg, dwMsgSize))
		return false;

	if(_MSG_SYNMEMBERINFO != this->GetType())
		return false;

	return true;
}

//////////////////////////////////////////////////////////////////////
BOOL CMsgSynMemberInfo::Create(CUser* pUser)
{
	CHECKF(pUser);
	
	// init
	this->Init();
	
	// fill info now
	SafeCopy(m_pInfo->szName, pUser->GetName(), _MAX_NAMESIZE);
	SafeCopy(m_pInfo->szMate, pUser->GetMate(), _MAX_NAMESIZE);

	if (pUser->QuerySynAttr())
	{
		m_pInfo->ucRank			= pUser->QuerySynAttr()->GetSynRankShow();
		m_pInfo->nProffer		= pUser->QuerySynAttr()->GetProffer();
		m_pInfo->sPk			= pUser->GetPk();
		m_pInfo->ucProfession	= pUser->GetProfession();
		m_pInfo->ucNobilityRank	= pUser->GetNobilityRank();
		m_pInfo->ucLevel		= pUser->GetLev();
		m_pInfo->dwLookFace		= pUser->GetLookFace();
	}
	m_unMsgType	=_MSG_SYNMEMBERINFO;
	m_unMsgSize	=sizeof(MSG_Info);
	
	return true;
}

//////////////////////////////////////////////////////////////////////
void CMsgSynMemberInfo::Process(void *pInfo)
{
	CUser* pUser = UserManager()->GetUser(this);
	if(!pUser)
	{
		// TransmitMsg
		CUser* pTargetUser = UserManager()->GetUser(m_pInfo->szName);
		if(pTargetUser)
		{
			CHECK(pTargetUser->GetSynID() != ID_NONE);

			IF_OK(Create(pTargetUser))
				SendMsg(this);
		}
		return ;
	}

	if(pUser->GetSynID() == ID_NONE)
		return ;

	CUser* pTargetUser = UserManager()->GetUser(m_pInfo->szName);
	if(pTargetUser)
	{
		CHECK(pTargetUser->GetSynID() != ID_NONE);

		IF_OK(Create(pTargetUser))
			SendMsg(this);
	}
	else
	{
		MapGroup(PID)->QueryIntraMsg()->TransmitMsg(this, GetSocketID(), GetNpcID());
	}
}

⌨️ 快捷键说明

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