当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇#call跳转失效全排查:路径、编码与引擎差异

热度:
一、路径与文件基础检查

1.路径分隔符与大小写
不同引擎对路径格式要求严格。GOM、GEE、996引擎通常要求使用正斜杠/且区分大小写;HERO引擎部分版本仅支持反斜杠\。若路径中包含中文或空格,极易导致解析失败。

2.文件物理存在性
#call指令是硬链接,文件不存在则直接静默失败。需手动进入服务器目录Mir200\Envir\QuestDiary逐级核对文件夹和文件名,确认目标.txt文件真实存在。

3.标签名匹配
被调用脚本内必须存在严格对应的标签段。例如调用@MAIN,脚本内必须是[@MAIN],多一个空格或少一个括号都会导致跳转无效。

二、脚本语法格式修正(分引擎)

1.GOM/GEE/996引擎(主流)
•外部调用:#CALL[\功能系统\奖励.txt]@发放

-注意:路径以QuestDiary为根目录,开头用\,标签前加@。若使用Script目录,格式为#CALL[Script\奖励.txt]。

2.HERO/BLUE引擎(老版本)
•外部调用:#CALL\功能系统\奖励.txt@发放

-内部跳转:#CALL@内部标签
•差异:老引擎常省略中括号[],且路径分隔符必须为\。

3.常见错误写法对比
错误写法问题修正

#CALL[奖励.txt]缺少标签名#CALL[奖励.txt]@MAIN

#CALL[\功能\奖励]缺少文件后缀#CALL[\功能\奖励.txt]@MAIN

#CALL[奖励.txt][@MAIN]标签格式错误#CALL[奖励.txt]@MAIN

三、编码格式与重载流程

1.强制ANSI编码
脚本文件(.txt)必须保存为ANSI编码。若使用UTF-8或带BOM的格式,引擎读取时会出现乱码或直接报错,导致#call无法解析。

2.正确的重载姿势
修改脚本后,必须在M2Server→管理→脚本管理中执行“重载NPC脚本”或“重载全部脚本”。仅刷新网页或重启游戏客户端无效。

四、高级排查:日志与变量冲突

1.查看引擎日志
打开MirServer\Log\目录下的ScriptError.log或M2控制台日志。若看到Filenotfound或Labelnotfound报错,直接按日志提示的路径修正。

2.变量与逻辑拦截
检查#call语句上方的#IF条件是否过于严苛(如检测不存在的变量),导致#ACT未能触发。可在#call前加一行SENDMSG6测试点确认是否执行到该行。

3.循环调用死锁
避免在QManage.txt或QFunction.txt中通过#call形成A→B→A的无限循环,部分引擎会强制中断此类逻辑。

五、特殊引擎差异说明

•GOM引擎:若路径正确仍无效,尝试在路径前加Script前缀,如#CALL[Script\文件.txt]。

•GEE引擎:支持相对路径,如#CALL[..\QuestDiary\文件.txt]@MAIN。

•BLUE引擎:对标签名大小写极其敏感,@Main和@MAIN被视为两个不同标签。

若以上步骤仍无法解决,请提供具体的#call代码行及引擎版本,以便进一步定位是语法兼容还是目录权限问题。
[顶部]