找回密码
 register

QQ登录

只需一步,快速开始

查看: 13|回复: 0

[自写引擎] 退出游戏请求函数 WGNotifyUserHandler::Execute 函数解析

[复制链接]

[自写引擎] 退出游戏请求函数 WGNotifyUserHandler::Execute 函数解析

[复制链接]
  • 打卡等级:热心大叔
  • 打卡总天数:205
  • 打卡月天数:4
  • 打卡总奖励:203
  • 最近打卡:2025-06-04 09:26:46
Waylee

主题

0

回帖

2万

积分

仙帝

积分
21466
Waylee 2025-6-3 16:58 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

马上注册,查看网站隐藏内容!!

您需要 登录 才可以下载或查看,没有账号?register

×

函数名: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)
  • 记录取消退出操作的日志
  1. 处理退出请求
    • 检查玩家是否可以进行逻辑操作
    • 验证退出条件
    • 玩家状态不是特定状态 (111)
    • 玩家未准备退出
    • 玩家尚未向世界服务器发送退出消息
  • 如果条件满足:
    • 设置退出标志 (m_bReadyToQuit)
    • 设置退出密钥 (m_uQuitKey)
    • 记录退出开始时间 (m_uStartedTimeForAskQuit)
    • 记录退出操作的日志

4.如果条件不满足,记录错误日志

您需要登录后才可以回帖 登录 | register

本版积分规则

雪舞知识库 | 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 |网站地图|天天打卡

GMT+8, 2025-6-5 18:14 , Processed in 0.092475 second(s), 5 queries , Redis On.

Powered by XueWu Licensed

Copyright © Tencent Cloud.

快速回复 返回顶部 返回列表