📄 tempuser.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 + -