找回密码
 registerss
搜索

洱海月 v0-07-0300 封包解析:ID 1340 GCDiaowenFeatureSkill(雕纹特性效果同步)

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

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

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

×

GCDiaowenFeatureSkill 是当前版本已经接入现役 Lua 的一条小型下行包,用于把某个角色对象的雕纹特性效果 ID 广播给客户端。现役 /home/ubuntu/Game2 Lua 服务端与当前 Game.exe 对它的结构完全一致,都是固定 8 字节。

包信息

项目 内容
封包 ID 1340
包名 GCDiaowenFeatureSkill
方向 GC 服务端 -> 客户端
固定包长 8
当前 Lua 协议定义 已检出
当前 Lua 发送点 已检出
当前用途 广播角色当前雕纹特性效果 ID

包体结构

偏移 长度 字段 类型 含义
0x00 0x04 obj_id uint32 目标角色对象 ID
0x04 0x04 effect_id uint32 雕纹特性效果 ID;对应客户端特性配置表中的主键

当前实际行为

  • 现役 Lua 在 human:features_effect_notify_client(id, objid) 中构造并广播这条包。
  • obj_id 默认取角色自身对象 ID,也允许显式指定目标对象。
  • 客户端收到后会先找到目标对象,再根据 effect_id 到雕纹特性配置表查找对应效果,并应用到该对象。
  • 这条包已经不需要任何 unknow 命名,当前 Lua 里的 objId 和 effect_id 已能直接对应客户端消费语义。

服务端落点

  • 协议定义:/home/ubuntu/Game2/services/game/packet.lua
  • 发送入口:/home/ubuntu/Game2/services/scene/obj/human.lua

当前现役发送链:

function human:features_effect_notify_client(id,objid)
    objid = objid or self:get_obj_id()
    local msg = packet_def.GCDiaowenFeatureSkill.new()
    msg.objId = objid
    msg.effect_id = id
    self:get_scene():broadcast(self, msg, true)
end

关键代码

Lua 协议定义:

packet.GCDiaowenFeatureSkill = {
    ctor = function(self)
        self.objId = -1
        self.effect_id = -1
    end,
    bos = function(self)
        local stream = bostream.new()
        stream:writeuint(self.objId)
        stream:writeuint(self.effect_id)
        return stream:get()
    end
}

当前 Game.exe 结构:

Read() {
    read_u32(obj_id);
    read_u32(effect_id);
    return 1;
}

GetPacketSize() {
    return 8;
}

Execute() {
    obj = find_obj(obj_id);
    if (obj)
        apply_diaowen_feature_effect(obj, effect_id);
    return 2;
}

结论

GCDiaowenFeatureSkill(1340) 的当前结论非常稳定:

  1. 固定 8 字节。
  2. 字段就是 obj_id + effect_id。
  3. 当前 Lua 已接入真实发送链,结论直接以当前 Lua 与当前 Game.exe 对齐。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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