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

洱海月 v0-07-0300 封包解析:ID 321 GCNewMonster(怪物创建广播)

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

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

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

×

GCNewMonster 是怪物进入视野时的创建广播包。当前 Game.exe 与 Lua 都确认它固定 116 字节,但现役 Lua 只明确使用了其中少数字段,其余大段内容仍是旧客户端兼容区。

包信息

项目 内容
封包 ID 321
包名 GCNewMonster
方向 Server -> Client
对应请求 无专用请求;当前由场景对象主动广播
固定包长 116
作用 把新怪物对象的创建信息广播给客户端

包体结构

偏移 长度 字段 类型 含义
0x00 0x04 m_objID uint32 怪物对象 ID
0x04 0x04 story_point uint32 剧情点字段,当前 Lua 名为 juqing_point
0x08 0x0C reserved_block_1 bytes[12] 旧客户端兼容区
0x14 0x04 guid int32 怪物 GUID
0x18 0x10 reserved_block_2 bytes[16] 旧客户端兼容区
0x28 0x08 world_pos float[2] 怪物坐标
0x30 0x10 reserved_block_3 bytes[16] 旧客户端兼容区
0x40 0x04 dir float 朝向
0x44 0x10 reserved_block_4 bytes[16] 旧客户端兼容区
0x54 0x04 speed float 移动速度
0x58 0x14 reserved_block_5 bytes[20] 旧客户端兼容区
0x6C 0x08 reserved_tail bytes[8] 尾部保留字节

总长度:

116 字节

当前实际行为

  • 当前 monster:create_new_obj_packet() 明确填写的字段只有 guid、m_objID、dir、speed、juqing_point 和 world_pos。
  • 其余字段当前 Lua 仍写一组固定常量,明显属于旧客户端兼容区。
  • 因此写文档时最重要的是把“现役明确使用字段”和“大段兼容保留区”分开。

服务端落点

  • 协议定义:/home/ubuntu/Game2/services/game/packet.lua
  • 怪物创建点:/home/ubuntu/Game2/services/scene/obj/monster.lua

关键代码

local msg = packet_def.GCNewMonster.new()
msg.guid = self:get_guid()
msg.m_objID = self:get_obj_id()
msg.dir = self:get_dir()
msg.speed = self:get_speed()
msg.juqing_point = 0
msg.world_pos = table.clone(self:get_world_pos())
msg.worldPos = msg.world_pos

结论

  1. GCNewMonster(321) 是固定 116 字节的怪物创建广播包。
  2. 当前真正坐实的现役字段只有对象 ID、GUID、剧情点、坐标、朝向和速度。
  3. 其余大段内容应按兼容旧客户端的保留区记录。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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