查看: 14|回复: 0

上线自动学技能脚本写了却不触发?QFunction-0.txt 里最容易踩的三个坑

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
本帖最后由 陆大王 于 2026-11-8 11:14 编辑

昨天晚上一个开区的朋友找我,说版本里加了上线自动学技能,玩家登录后技能栏还是空的。脚本确实放在 QuestDiary 里,[@Login] 也写了,就是不生效。远程看了十分钟,问题不在命令本身,而在三个很容易忽略的地方。


一、先确认脚本有没有被读到

GOM 引擎的 QFunction-0.txt 要放在 Mir200\Envir\QuestDiary 根目录,部分整合版本放在 QuestDiary\全局脚本 下,具体以你引擎的目录结构为准。文件编码必须是 ANSI,用记事本另存成 UTF-8 带 BOM,整段脚本会直接失效:不报错,也不执行。

判断方法很土但有效:在 [@Login] 里先加一句 SENDMSG 6 登录触发成功。上线能看到这句话,说明文件被读到了,剩下的才是逻辑问题;看不到,就别再改技能命令,先去查路径和编





码。

二、三个最常见的坑

第一个是技能名和 DB 对不上。ADDSKILL 后面跟的是 Magic 表里的技能名,不是玩家界面上看到的显示名。有些版本为了区分同名技能,DB 里写的是“烈火剑法1”,脚本里写“烈火剑法”就学不会。直接复制 Magic 表里那一列,别凭印象敲。

第二个是 #IF 判断写了,却忘了 #ELSEACT。等级不够时没有任何分支,玩家上线没反应,看起来就像脚本根本没执行。补上 #ELSEACT 加一句提示,玩家自己就知道原因,也省了客服解释。

第三个是英雄技能没单独写。人物学会了,英雄技能栏照样空。[@HeroLogin] 要单独一段,命令前加 H. 前缀,比如 H.ADDSKILL,别指望人物那段能带走英雄。

三、可以直接套用的写法

  1. [@Login]
  2. #IF
  3. CHECKLEVELEX > 34
  4. #ACT
  5. ADDSKILL 烈火剑法 3
  6. ADDSKILL 开天斩 3
  7. SENDMSG 6 欢迎回来,技能已补到3级
  8. #ELSEACT
  9. SENDMSG 6 等级不足35级,升到35级后重新上线即可学习

  10. [@HeroLogin]
  11. #IF
  12. H.CHECKLEVELEX > 34
  13. #ACT
  14. H.ADDSKILL 烈火剑法 3
  15. SENDMSG 6 英雄技能已同步
复制代码



注意 CHECKLEVELEX 用大于号时,34 级和 35 级都要测一遍;自定义变量名不要和版本里已有的重复,否则互相覆盖,玩家技能就会时有时无。

四、改完按这个顺序验

先拿 34 级号上线,应该收到“等级不足”的提示,说明分支走通了;再升到 35 级重新上线,技能栏出现 3 级技能;然后换英雄上线,单独测 [@HeroLogin] 那段;最后用普通玩家账号测一次,不要只用 GM 号,GM 号经常自带全技能,会把问题盖掉。

配图是按这套写法做的示例截图,技能名请按自己版本 Magic 表核对:



说到底就三句话:先验证触发再怀疑命令,技能名从 DB 抄不要手打,人物和英雄分成两段写。脚本不长,坑都在细节上,照着顺序排查基本十分钟能定位。









本帖子中包含更多资源

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

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册登录

本版积分规则

网站分类|小黑屋|爱上gm论坛

GMT+8, 2026-11-8 12:15 , Processed in 0.058659 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.