天龙源码框架分析_天龙源码分析 - 客户端登录流程

本文详细分析了天龙源码框架中的客户端登录流程,包括登录状态定义、登录状态的Tick处理、连接登录服务器的逻辑、登录线程的创建与超时检查,以及登录验证成功后的角色选择步骤。通过对各个阶段的解析,展示了游戏客户端如何与服务器进行交互,完成用户登录的过程。
摘要由CSDN通过智能技术生成

1 登录状态定义

//登录状态enumPLAYER_LOGIN_STATUS

{

LOGIN_DEBUG_SETTING,//!

2 登录流程采用轮回方式,在Tick中判断当前所处状态

VOID CGamePro_Login::Tick(VOID)

{

CGameProcedure::Tick();switch(m_Status)

{caseLOGIN_DEBUG_SETTING:

{if(!CGameProcedure::s_pUISystem)

{

SetStatus(CGamePro_Login::LOGIN_DISCONNECT);

}else{//DO NOTING,WAIT UI...}

}break;caseLOGIN_SELECT_SERVER://选择服务器状态{//--- for debugif(CGameProcedure::s_pVariableSystem->GetAs_Int("GameServer_ConnectDirect")==1)

{//直接切换到Change-Server流程CGameProcedure::SetActiveProc((CGameProcedure*)CGameProcedure::s_pProcChangeScene);return;

}//--- for debugbreak;

}caseLOGIN_DISCONNECT:

{

s_pGfxSystem->PushDebugString("Connect to login server %s:%d...", m_szLoginServerAddr, m_nLoginServerPort);//开始登录SetStatus(LOGIN_CONNECTING);

CNetManager::GetMe()->ConnectToServer(m_szLoginServerAddr, m_nLoginServerPort);

}break;caseLOGIN_CONNECTING:break;//连接成功caseLOGIN_CONNECTED_OK:

{//设置正在验证密码//SetStatus(LOGIN_ACCOUNT_REQUESTING);}break;//连接失败caseLOGIN_CONNECT_FAILED:

CNetManager::GetMe()->Close();

SetStatus(LOGIN_SELECT_SERVER);break;//正在验证用户名和密码.caseLOGIN_ACCOUNT_REQUESTING:

{//判断是否超时, 超时就提示错误信息.break;

}caseLOGIN_ACCOUNT_BEGIN_REQUESTING:

{break;

}//登录信息验证成功caseLOGIN_ACCOUNT_OK:

{//保存选择的服务器CGameProcedure::s_pVariableSystem->SetAs_Int("Login_Area",   CGameProcedure::s_p

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值