msgteam.cpp

来自「网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志」· C++ 代码 · 共 80 行

CPP
80
字号
// MsgTeam.cpp: implementation of the CMsgTeam class.
//
//////////////////////////////////////////////////////////////////////

#include "allmsg.h"
#include "npcWorld.h"
#include "Agent.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMsgTeam::CMsgTeam()
{
	this->Init();
	m_pInfo	=(MSG_Info *)m_bufMsg;
}

CMsgTeam::~CMsgTeam()
{

}

//////////////////////////////////////////////////////////////////////
BOOL CMsgTeam::Create(OBJID idPlayer, int nAction)
{
	// init
	this->Init();

	// fill info now
	m_unMsgSize	=sizeof(MSG_Info);
	m_unMsgType	=_MSG_TEAM;

	m_pInfo->idPlayer	= idPlayer;
	m_pInfo->unAction	= nAction;
	return true;
}

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

	memcpy(this->m_bufMsg, pbufMsg, dwMsgSize);
	return true;
}

//////////////////////////////////////////////////////////////////////
void CMsgTeam::Process(void* pInfo)
{
	CAgent* pAgent	= NpcManager()->QueryAgent(GetNpcID());
	if (!pAgent)
		return;
	CTeam* pTeam = Cast<CTeam>(pAgent);

	switch(m_pInfo->unAction)
	{
	case _MSGTEAM_APPLYJOIN:
	case _MSGTEAM_INVITE:
		{
			pTeam->Apply(m_pInfo->idPlayer);
		}
		break;
	case _MSGTEAM_LEAVE:
	case _MSGTEAM_KICKOUT:
		{
			if(m_pInfo->idPlayer == pAgent->GetID())
				pTeam->Dismiss(m_pInfo->idPlayer);
			else
				pTeam->DelMember(m_pInfo->idPlayer);
		}
		break;
	case _MSGTEAM_DISMISS:
		{
			pTeam->Dismiss(m_pInfo->idPlayer);
		}
		break;
	}	
}

⌨️ 快捷键说明

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