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

洱海月 v0-07-0300 封包解析:ID 297 GCObjTeleport(对象瞬移同步)

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

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

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

×

GCObjTeleport 是场景对象瞬移位置同步包,用 1 个对象 ID 和 1 个坐标点直接通知客户端更新位置。

包信息

项目 内容
封包 ID 297
包名 GCObjTeleport
方向 Server -> Client
对应请求 无专用请求;当前由服务端主动广播
固定包长 12
作用 同步对象瞬移后的目标坐标

包体结构

偏移 长度 字段 类型 含义
0x00 0x04 m_objID uint32 目标对象 ID
0x04 0x04 world_pos.x float 瞬移目标 X
0x08 0x04 world_pos.y float 瞬移目标 Y

总长度:

12 字节

当前实际行为

  • 当前 character.lua 会在对象瞬移后广播这条包。
  • 包体很纯粹,只同步对象 ID 和落点坐标,不携带路径、方向等额外信息。
  • 它适合用在直接换坐标而不是平滑移动的场景。

服务端落点

  • 协议定义:/home/ubuntu/Game2/services/game/packet.lua
  • 发送点:/home/ubuntu/Game2/services/scene/obj/character.lua

关键代码

packet.GCObjTeleport = {
    bos = function(self)
        local stream = bostream.new()
        stream:writeuint(self.m_objID)
        stream:writefloat(self.world_pos.x)
        stream:writefloat(self.world_pos.y)
        return stream:get()
    end
}

结论

  1. GCObjTeleport(297) 是对象瞬移同步包。
  2. 结构固定为 m_objID + world_pos.x + world_pos.y。
  3. 当前项目用它直接把客户端对象拉到新的落点。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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