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

洱海月 v0-07-0300 封包解析:ID 279 GCCharStopAction(角色停止动作广播)

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

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

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

×

GCCharStopAction 是角色动作或技能被中断时的广播包,当前项目明确用它通知客户端停止当前表现。

包信息

项目 内容
封包 ID 279
包名 GCCharStopAction
方向 Server -> Client
对应请求 无专用请求;当前由服务端主动广播
固定包长 12
作用 广播对象 ID、逻辑计数和停止时间

包体结构

偏移 长度 字段 类型 含义
0x00 0x04 m_objID uint32 停止动作的对象 ID
0x04 0x04 logic_count uint32 逻辑计数
0x08 0x04 stop_time uint32 停止时间或剩余表现时间

总长度:

12 字节

当前实际行为

  • 当前 character.lua、std_impact_014.lua 以及部分 AI 中断逻辑都会发送这条包。
  • 现役注释已经明确说明:客户端只会对能力开始包作出反应,中断时必须走 GCCharStopAction。
  • 因此这条包在当前版本里是动作打断和中断表现的关键同步包。

服务端落点

  • 协议定义:/home/ubuntu/Game2/services/game/packet.lua
  • 主要广播点:/home/ubuntu/Game2/services/scene/obj/character.lua
  • 相关影响逻辑:/home/ubuntu/Game2/services/scene/skill/impact_logic/std_impact_014.lua
  • 说明注释:/home/ubuntu/Game2/services/scene/ability/base.lua

关键代码

packet.GCCharStopAction = {
    bos = function(self)
        local stream = bostream.new()
        stream:writeuint(self.m_objID)
        stream:writeuint(self.logic_count)
        stream:writeuint(self.stop_time)
        return stream:get()
    end
}

结论

  1. GCCharStopAction(279) 是角色动作中断广播包。
  2. 结构固定为 m_objID + logic_count + stop_time。
  3. 当前客户端中断表现主要依赖它,而不是靠能力开始包自行结束。
您需要登录后才可以回帖 登录 | registerss

本版积分规则

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

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

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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