函数名:WGNotifyUserHandler::Execute
地址0x08232784
概述
CGAskQuitHandler::Execute 是一个网络包处理函数,用于处理客户端发送的退出请求或取消退出请求。负责管理玩家角色的退出流程。
函数签名
UINT CGAskQuitHandler::Execute(CGAskQuit* pPacket, Player* pPlayer)
参数
pPacket: 指向 CGAskQuit 数据包的指针,包含客户端发送的退出请求信息
pPlayer: 指向 Player 对象的指针,表示发起请求的玩家
主要返回值
PACKET_EXE_CONTINUE: 表示包处理成功,继续处理后续包
PACKET_EXE_ERROR: 表示处理过程中发生错误
功能描述
1.初始化检查
- 获取玩家所在场景并验证有效性
- 执行线程安全检查,确保在正确的线程中执行
2.处理取消退出请求
- 检查玩家是否已准备退出但尚未向世界服务器发送退出消息
- 如果条件满足,清除退出标志 (m_bReadyToQuit)
- 记录取消退出操作的日志
- 处理退出请求
- 检查玩家是否可以进行逻辑操作
- 验证退出条件
- 玩家状态不是特定状态 (111)
- 玩家未准备退出
- 玩家尚未向世界服务器发送退出消息
- 如果条件满足:
- 设置退出标志 (m_bReadyToQuit)
- 设置退出密钥 (m_uQuitKey)
- 记录退出开始时间 (m_uStartedTimeForAskQuit)
- 记录退出操作的日志
4.如果条件不满足,记录错误日志
|