传奇脚本中#CALL指令无法跳转,通常源于文件路径解析异常、目标段落结构缺失或变量条件阻断。该指令用于跨文本文件调用脚本,其执行逻辑高度依赖引擎对文件索引的读取精度。
文件路径与名称的绝对匹配是#CALL指令生效的前提。指令格式必须严格遵循“#CALL [相对路径/文件名.txt] @目标段落”的规范。方括号内的路径必须与Mir200/QuestDiary目录下的实际物理路径完全一致,包括大小写与后缀名。若目标文件未放置在正确的子目录下,或文件名包含引擎无法识别的特殊字符与全角空格,引擎将直接丢弃该跳转指令。
被调用的目标脚本段落必须具备完整的标准结构。目标段落必须以“[@段落名称]”作为独立行起始,且段落名称需与#CALL指令中指定的名称逐字对应。段落下方必须紧跟“#IF”条件判断标签与“#ACT”执行动作标签。若目标段落缺失#IF或#ACT标签,或标签之间存在非法空行,引擎在解析时会判定该段落为无效代码块,导致跳转请求被拦截。
变量状态与条件判断的阻断是导致静默跳转失败的常见原因。#CALL指令通常嵌套在#IF条件块中,当玩家角色未满足前置条件(如CHECKITEM物品检测、CHECKLEVEL等级检测或自定义变量校验)时,脚本引擎会直接跳过#CALL指令,不会触发任何报错提示。需检查#IF下方的变量赋值逻辑,确认N变量、S变量或G变量在当前NPC脚本的上下文中已被正确初始化。
脚本语法与特殊字符的干扰同样会导致指令失效。#CALL指令与方括号之间必须保留标准半角空格,指令拼写错误或使用全角字符将导致整行代码被引擎忽略。修改脚本后,必须通过M2Server控制台执行“重新加载NPC脚本”或“重新加载QFunction”命令,清除内存中的旧版脚本缓存,确保引擎重新读取修改后的文件内容。
传奇#CALL跳转失效排查,路径与脚本格式深度解析
来源:
作者:
点击:

