找回密码
 registerss
搜索

洱海月 v0-07-0300 封包解析:ID 1345 GCNewSummoner_Death(死亡状态召唤物出生)

[复制链接]
Waylee 发表于 2026-4-15 17:20 | 显示全部楼层 |阅读模式 | Google Chrome | Windows 10

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

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

×

GCNewSummoner_Death 是 GCNewSummoner 的死亡态变体。当前 Game.exe 已能确认:它与 GCNewSummoner 共用完全相同的 28 字节包体结构,只是执行阶段会在召唤物出生后立刻补一条死亡动作,让对象直接进入死亡状态。

包信息

项目 内容
封包 ID 1345
包名 GCNewSummoner_Death
方向 GC 服务端 -> 客户端
固定包长 28
当前 Lua 协议定义 未检出
当前 Lua 发送点 未检出
当前用途 把死亡状态的召唤物同步到客户端视野

包体结构

这条包与 GCNewSummoner(1344) 完全共用同一套读写布局:

偏移 长度 字段 类型 含义
0x00 0x04 obj_id uint32 召唤物对象 ID
0x04 0x04 summoner_attr_id uint32 召唤物配置 / 属性表 ID
0x08 0x04 world_pos.x float 世界坐标 X
0x0C 0x04 world_pos.y float 世界坐标 Y
0x10 0x04 spawn_param uint32 出生附加参数
0x14 0x04 move_speed float 移动速度
0x18 0x01 state_flag_1 uint8 状态字节 1
0x19 0x01 state_flag_2 uint8 状态字节 2
0x1A 0x02 reserved_tail bytes[2] 保留尾段

当前实际行为

  • 客户端会先按 GCNewSummoner 的标准链路创建 / 匹配召唤物对象。
  • 创建成功后,除了应用位置、初始化参数、速度和状态字节外,还会额外向对象补一条“死亡动作”:
    • 动作主码固定为 500
    • 动作值固定为 4
  • 如果当前选中目标正好是这个召唤物,客户端还会顺带关闭对应的选中目标表现。
  • 因此,这条包不是普通出生包,而是“出生后立即进入死亡态”的召唤物同步包。

服务端落点

当前现役服务端未检出以下同名协议定义或发送链:

  • /home/ubuntu/Game2/services/game/packet.lua
  • /home/ubuntu/Game2/services/msgagent.lua
  • /home/ubuntu/Game2/services/scene/scenecore.lua

关键代码

Read() {
    // 与 GCNewSummoner 完全相同
}

GetPacketSize() {
    return 28;
}

Execute() {
    summoner = find_or_create_summoner(obj_id, summoner_attr_id);
    if (summoner) {
        apply_spawn_fields(...);
        apply_action_now(summoner, 500, 4);   // 直接进入死亡动作
        clear_target_if_needed(summoner);
    }
    return 2;
}

结论

GCNewSummoner_Death(1345) 可以直接理解为:

  1. 结构与 GCNewSummoner 完全相同。
  2. 差别只在执行阶段,它会把召唤物立即推入死亡动作。
  3. 当前版本里它属于客户端保留的死亡态召唤物出生包。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

GMT+8, 2026-10-24 13:01 , Processed in 0.031530 second(s), 27 queries .

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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