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

📄 tempuser.cpp

📁 奇迹世界 部分源代码奇迹世界 部分源代码奇迹世界 部分源代码
💻 CPP
字号:
#include "StdAfx.h"
#include ".\tempuser.h"
#include "UserFactory.h"
#include "WaitingUserList.h"
#include "Channel.h"
#include "ChannelManager.h"
#include <Protocol_CW.h>
#include <PacketStruct_CW.h>

TempUser::TempUser(void)
{
}

TempUser::~TempUser(void)
{
}

VOID TempUser::Init()
{
	User::Init();
	m_bFistTime = TRUE;
}

VOID TempUser::OnRecv( BYTE *pMsg, WORD wSize )
{
	assert( m_bFistTime );
	m_bFistTime = FALSE;

	MSG_CW_ENTER_SERVER_SYN *pRecvMsg = (MSG_CW_ENTER_SERVER_SYN*)pMsg;

	// 橇肺配妮捞 肋给等 版快 府畔
	if( pRecvMsg->m_byCategory != CW_CONNECTION || pRecvMsg->m_byProtocol != CW_ENTER_SERVER_SYN )
	{
		MessageOut(eCRITICAL_LOG,   "弥檬 橇肺配妮 坷幅(%d)(%d)", pRecvMsg->m_byCategory, pRecvMsg->m_byProtocol );
		Disconnect();
		return;
	}

	User *pActiveUser = WaitingUserList::Instance()->FindUserWithAuthID( pRecvMsg->dwAuthUserID );

	// WaitingUserList俊 绝绰 版快 立加阑 谗绊 府畔
	if( !pActiveUser )
	{
		MessageOut(eCRITICAL_LOG,   "措扁 府胶飘俊 绝绰 蜡廉捞骨肺 立加 谗澜(AuthID:%d)", pRecvMsg->dwAuthUserID );
		Disconnect();
		return;
	}

	// IP 犬牢 饶 撇府搁 立加阑 谗绊 府畔	
	if( strncmp( GetIP(), pActiveUser->GetAuthIP(), IP_MAX_LEN ) != 0 )
	{
		MessageOut(eCRITICAL_LOG,   "Warning: 立加茄 蜡廉狼 IP啊 AgentServer肺何磐 罐篮 IP客 促福骨肺 立加 谗澜 盲澄(%d)",
			GetChannelID() );
		Disconnect();
		return;
	}

	// TempUser 馆券
	UserFactory::Instance()->Free( this );

	// 咀萍宏 蜡廉甫 WaitingUserList俊辑 力芭
	WaitingUserList::Instance()->RemoveUser( pRecvMsg->dwAuthUserID );

	// 咀萍宏 蜡廉肺 匙飘亏 坷宏璃飘 背眉
	Redirect( pActiveUser );
	pActiveUser->OnRedirect();

	eZONETYPE	eZoneType = pActiveUser->GetStatus();
	DWORD		dwZoneKey = pActiveUser->GetZoneKey();

	pActiveUser->SetStatus( eZONETYPE_MAX );
	pActiveUser->SetZoneKey( 0 );

	// 盲澄俊 蜡廉 眠啊
	Channel *pChannel = ChannelManager::Instance()->GetChannel( pActiveUser->GetChannelID() );
	if( pChannel )
	{
		//pChannel->AddUser( pActiveUser, US_IN_CHARSCENE, 0 );
		pChannel->AddUser( pActiveUser, eZoneType, dwZoneKey );
//		pChannel->AddUser( pActiveUser, eZONETYPE_CHARSELECT, 0 );

		MessageOut(eFULL_LOG,   "蜡廉 立加 己傍! 盲澄(%d) Guid(%d) IP(%s) Status(%u)",
			pActiveUser->GetChannelID(), pActiveUser->GetGUID(), pActiveUser->GetAuthIP(), pActiveUser->GetStatus() );
	}
	else
	{
		pActiveUser->Disconnect();
		MessageOut(eCRITICAL_LOG,   "Fatal error: 盲澄(%d)俊 蜡廉 眠啊 角菩!", pActiveUser->GetChannelID() );
	}
}

⌨️ 快捷键说明

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