找回密码
 registerss
搜索
查看: 15|回复: 0

洱海月 v0-07-0300 封包解析:ID 272 GCMenpaiInfo(门派编号通知,当前未启用)

[复制链接]
  • 打卡等级:本地老炮
  • 打卡总天数:603
  • 打卡月天数:1
  • 打卡总奖励:600
  • 最近打卡:2026-10-03 06:32:28
Waylee 发表于 2026-4-13 17:00 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

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

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

×

GCMenpaiInfo 是客户端里仍然保留的一个旧门派信息包。当前 Game.exe 可以明确确认它的包体只有 2 字节;但当前 Lua 服务端主链中已经找不到这条协议的定义、包 ID 常量和任何发送点,客户端 handler 也已经是空实现。

结合当前版本门派相关协议的写法,这 2 字节字段可以收敛命名为 menpai_id。不过就现役链路而言,这条包已经不是当前门派同步主包,更接近一个遗留保留包。

包信息

项目 内容
封包 ID 272
包名 GCMenpaiInfo
方向 GC 服务端 -> 客户端
固定包长 2
对应请求 无专用请求
主要作用 旧门派编号通知包;当前客户端仍保留类定义,但当前 Lua 主链未启用

当前 Game.exe 的虚函数结论为:

GetPacketID()   = 272;
GetPacketSize() = 2;

包体结构

按当前 Game.exe 现状,这条包固定为 2 字节。

偏移 长度 字段 类型 含义
0x00 0x02 menpai_id uint16 门派编号

Game.exe 自身只能直接确认“这是一个 2 字节值”。字段名采用 menpai_id,主要依据是包名 GCMenpaiInfo,以及当前版本其他门派相关协议仍统一使用 uint16 menpai / menpai_id。

当前实际行为

  • 当前 Lua 服务端全目录未找到 GCMenpaiInfo、XYID_GC_MENPAI_INFO 或对应的包定义,说明这条包在现版本 Lua 主链里已经不再定义也不再发送。
  • 当前门派加入流程走的是 script_base:LuaFnJoinMenpai(),核心行为是:
    • 调用 obj:set_menpai(menpai) 写入人物门派属性
    • 重建心法列表
    • 清理并重建门派技能
  • 当前门派学习相关初始化则走 GCXinfaStudyInfo,不是 GCMenpaiInfo。
  • 当前客户端 Game.exe 的 GCMenpaiInfo::Execute() 只是直接返回 2,没有任何额外界面刷新或状态落点。

综合当前 Lua 与当前 Game.exe,这条包应视为“当前未启用的遗留保留包”,而不是现役门派同步链中的关键协议。

服务端落点

  • 当前 Lua 主链未定义:/home/ubuntu/Game2/services/game/packet.lua
  • 当前门派加入流程:/home/ubuntu/Game2/lualib/script_base.lua
  • 当前门派属性写入:/home/ubuntu/Game2/services/scene/obj/human.lua

这些代码能说明当前门派流程仍在运行,但不再经过 GCMenpaiInfo。

关键代码

当前 Lua 的门派加入流程

function script_base:LuaFnJoinMenpai(selfId, menpai)
    local obj = self.scene.objs[selfId]
    obj:set_menpai(menpai)
    obj:change_menpai_points()
    obj:clear_xinfa_list(true)
    ...
    obj:clear_menpai_skills()
    ...
end

这条现役流程里没有 GCMenpaiInfo 的构包与发送。

当前 Lua 的门派学习初始化

function script_base:DispatchXinfaLevelInfo(selfId, targetId, menpai)
    local msg = packet_def.GCXinfaStudyInfo.new()
    msg.teacher = targetId
    msg.menpai = menpai
    self.scene:send2client(selfId, msg)
end

当前需要把门派编号主动发给客户端时,Lua 主链实际使用的是 GCXinfaStudyInfo。

当前 Game.exe 的读写与执行结论

GetPacketID() = 272;
GetPacketSize() = 2;

Read(stream) {
    read(buf + 24, 2);
}

Write(stream) {
    write(buf + 24, 2);
}

Execute() {
    return 2;
}

结论

  1. GCMenpaiInfo 的封包 ID 是 272,固定长度 2 字节。
  2. 当前 Game.exe 只确认它携带一个 2 字节值,字段可按当前门派协议统一命名为 menpai_id。
  3. 当前 Lua 服务端主链已经不再定义和发送这条包。
  4. 当前客户端 handler 为空实现,说明它在现版本里也没有实际处理逻辑。
  5. 因此这条包应归类为“当前未启用的旧门派编号通知包”。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

QQ|手机版|雪舞知识库 ( 浙ICP备15015590号-1 | 萌ICP备20232229号|浙公网安备33048102000118号 )|天天打卡

GMT+8, 2026-10-4 11:26 , Processed in 0.097332 second(s), 26 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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