传奇GOM引擎攻速脚本不生效逐条排雷

来源: 作者: 点击:

GOM 里“攻速”不是单点参数,是 M2 全局游戏速度、武器 Shape/攻击间隔、装备附加攻速、ChangeSpeed 脚本、QM/QFunction 触发、封挂/网关限速 六处一起管。脚本写了没反应,先别怀疑引擎坏了,按下面顺序拆。

一、命令用错:ChangeSpeed 不是所有版本都认
GOM 常见攻速命令是:

CHANGESPEED 2 5

速度类型:1 移速、2 攻速、3 魔法速度。第二个值不是“倍率”,很多 GOM 版本里是 -10 到 10 的偏移,0 是不变速,正数加快、负数变慢(也有反着来的版本)。
你写:

CHANGESPEED 2 1000
CHANGESPEED 攻击速度 5
SetAttackSpeed 10
AttackSpeed = 10

引擎不认就直接跳过,游戏里零变化。

二、触发点放错文件
• 登录给攻速:放 QM(LoginQuest.qm / QManage.txt)

• 穿装备触发:放 QFunction.txt 的 [@TakeOn1](武器)、[@TakeOn0](衣服)

- 脱装备取消:放 [@TakeOff1]、[@TakeOff0]
• NPC 点一下临时加:放 Merchant 脚本

• 机器人持续刷:放 Robot.txt + QuestDiary 被 #CALL

把 [@TakeOn1] 里的 ChangeSpeed 写到普通 NPC 的 [@main] 里,不穿装备永远不触发,看起来就是“脚本没用”。

三、QFunction / QM 改了没重载
GOM 的 QFunction.txt、QM 很多情况不会“保存即生效”。
做法:
1. M2 → 脚本管理 → 重新加载 QFunction
2. 重新加载 QM / 登录脚本
3. 还不行就重启 M2Server
玩家也要小退重进,在线热改有时不刷属性。

四、M2 全局攻速把脚本压住
M2 → 选项 → 参数设置 → 游戏速度:
• 攻击速度(攻击间隔)默认几百 ms

• 勾了“启用攻击速度限制 / 检测攻击加速”

• 最大允许速度设得很低

脚本加出来的攻速被上限吃掉,表现就是“加了跟没加一样”。

排查:
• 关掉“检测攻击加速 / 速度限制”先测

• 攻击间隔调小一点(比如 100~300ms,别设 0)

• 看是否还被封挂插件限死

五、封挂 / G盾 / 网关限速没关
单机或自己服务端,封挂层最常误杀:
• G盾:动作控制 / 超级不卡检测 / 攻击加速检测

• RunGate:数据包频率、操作数据量控制

• M2:操作数据库控制、速度异常踢人

脚本其实生效了,客户端出刀被网关当加速丢包,看起来“刀速没变 / 空刀 / 卡刀”。
测试时先关封挂插件 DLL,或把速度阈值拉到最大。

六、武器数据库和装备附加属性搞反
StdItems.DB 里武器:
• Shape 值影响攻击间隔(不同版本算法不同)

• 攻击速度字段,数值小=快,数值大=慢

- 用 UPGRADEITEMEX 加“攻速属性”时,正增量可能变成“更慢”

比如原攻速 40,升级后 41,间隔更长,越升越慢。
装备极品属性:

@supermake 1 6 10

1=武器,6=攻击速度,10=加点。但版本里“6 是攻速还是别的”要看 ItemExt / StdItems 定义,定义错了加点加进防御里,攻速当然不动。

七、ChangeSpeed 时间参数没写对
格式:

CHANGESPEED 2 5 3600

2=攻速,5=强度,3600=持续 3600 秒。
不写时间有的版本是“本次登录有效”,有的版本当 0 秒直接失效。
穿装备触发却没写时间,玩家一移动/重登/脱穿,效果没了,以为没生效。

八、英雄 / 假人 / 分身要单独调
玩家改了,英雄还是慢:
• 英雄有独立攻速系数

• 假人看 DummyConfig 里的 AttackSpeed

• 分身/宝宝看召唤物攻击速度系数、MagicDelay.txt

只改主号 ChangeSpeed 2 5,英雄和宝宝不动,体感就是“攻速脚本不完整”。

九、客户端动画帧限制
服务端出刀快了,但 Magic.wzl / 武器动作帧没配:
• 攻击动画还没播完

• 伤害判定帧在第 3~4 帧

• 客户端 FrameRate 没改

表现:刀光疯抖、伤害空刀、看起来没快。这不是脚本没生效,是客户端表现没跟上。

十、改错文件 / 编码坏了 / 文件没保存
• 改的是桌面备份 QFunction.txt,M2 读的是 Mir200\Envir\QFunction.txt

• 记事本存成 UTF-8 带 BOM,[@TakeOn1] 被 BOM 头吃掉

• 文件只读,编辑器显示存了,硬盘没动

• 段名写 [@Takeon1](小写 n),引擎大小写敏感不认

• #IF 后面 CheckItemW 武器名和数据库不一致,条件不成立,#ACT 不执行

先放裸测试:

[@TakeOn1]
#ACT
CHANGESPEED 2 5 3600
SENDMSG 6 攻速脚本已触发

穿武器没收到这行黄字,就是没触发;收到了但刀不快,是 M2/封挂/武器库/客户端问题。

十一、无限刀版本别用 ChangeSpeed 硬堆
无限刀一般走:
• M2 出刀间隔 100 以内

• 武器 Shape / 攻击间隔

- 不卡插件攻击速度
• 技能 Action / 魔法帧

拿 ChangeSpeed 2 10 硬顶,超过引擎上限就空刀、卡刀、掉线。

十二、标准排错顺序
1. QM 里登录直接 CHANGESPEED 2 5 3600,小退重进,看刀速
2. 有反应 → 说明命令和引擎 OK,问题在穿脱装备/触发条件
3. 没反应 → 看 M2 日志 Script Error、看文件是不是真保存、看编码
4. 有反应但出刀不快 → M2 游戏速度、封挂、RunGate、武器 Shape
5. 主号快英雄慢 → 调英雄/宝宝/假人速度
6. 刀光快但没伤害 → 客户端动作帧 / 伤害判定帧 / 攻速上限
7. 单机总提示速度检测异常 → 关 M2 速度限制、关封挂、放宽网关心跳

十三、最稳写法(GOM 通用)
QM 登录:

[@Login]
#ACT
CHANGESPEED 2 5 86400

穿武器:

[@TakeOn1]
#IF
CHECKUSEITEM 1
#ACT
CHANGESPEED 2 8 86400
SENDMSG 6 佩戴武器触发攻速

脱武器:

[@TakeOff1]
#ACT
CHANGESPEED 2 0
SENDMSG 6 攻速恢复

再进 M2 把攻击间隔调小、关掉攻击加速检测、关封挂速度控制,重启 M2,小退重进。

攻速脚本“没变化”九成不是命令不存在,而是:放错文件、没重载、触发条件不成立、M2 上限压住、封挂网关丢包、武器库方向反了、英雄/客户端没同步。先拿登录 CHANGESPEED 2 5 86400 做最小验证,能快就往下查,不能快就查 M2 和加载链路