一、错误定位
报错信息“脚本错误2: 40 第:2467 行: D:MirServerMir200EnvirMarket_Def盟重省/盟重城_雇用兵团-3.txt”中,关键点在于错误代码“2:40”。在传奇服务端脚本系统中,错误2通常表示“文件路径无效”或“调用目标不存在”,而40为具体行号偏移。结合脚本内容,问题出在#CALL指令所指向的外部文件路径格式不合法。
二、根本原因分析
路径分隔符混用
脚本中使用了反斜杠与正斜杠/混合的写法,如:
#CALL [雇佣兵团道士天尊.txt] @天尊
但该脚本文件本身位于:
D:MirServerMir200EnvirMarket_Def盟重省/盟重城_雇用兵团-3.txt
其父目录“盟重省”名称含中文,且路径中使用了正斜杠/(Windows系统标准为反斜杠)。服务端在解析#CALL时,会基于当前脚本所在目录拼接相对路径。若当前路径因/被识别异常,导致后续雇佣兵团...无法正确回溯到Envir根目录,从而找不到目标文件。
相对路径起点错误
#CALL [雇佣兵团...]中的开头反斜杠表示从服务端根目录(即D:MirServer)开始查找。但实际目标文件通常位于D:MirServerMir200QuestDiary雇佣兵团...。而脚本中写的是雇佣兵团...,缺少了Mir200QuestDiary层级,路径不完整。
目标文件确实不存在
若D:MirServerMir200QuestDiary雇佣兵团道士天尊.txt等文件未创建或命名不符(如多空格、后缀错误),也会触发此错误。
三、逐项修正方法
步骤1:统一使用反斜杠并补全路径
将所有#CALL语句中的路径改为从Mir200目录起始的完整相对路径,格式如下:
CALL [..QuestDiary雇佣兵团道士天尊.txt] @天尊
注意:
使用..返回上一级目录(从EnvirMarket_Def盟重省回到Mir200);
所有分隔符必须为反斜杠;
路径区分大小写,需与实际文件夹名完全一致。
以第一条为例,原句:
CALL [雇佣兵团道士天尊.txt] @天尊
应改为:
CALL [..QuestDiary雇佣兵团道士天尊.txt] @天尊
其余#CALL行同理修改,例如法师5级:
CALL [..QuestDiary雇佣兵团法师法神.txt] @法神
步骤2:验证目标文件存在性
检查以下目录是否存在且文件命名准确:
D:MirServerMir200QuestDiary雇佣兵团道士\
D:MirServerMir200QuestDiary雇佣兵团法师\
D:MirServerMir200QuestDiary雇佣兵团战士\
确保每个职业对应5个等级的文本文件(如天尊.txt、道尊.txt、战圣.txt等)均已创建,且内部包含对应的标签(如[@天尊])。
步骤3:修正脚本所在目录路径
将脚本文件从:
D:MirServerMir200EnvirMarket_Def盟重省/盟重城_雇用兵团-3.txt
移动至:
D:MirServerMir200EnvirMarket_Def盟重省盟重城_雇用兵团-3.txt
即把盟重省文件夹内的路径分隔符由/改为,确保整个路径为合法Windows路径。若“盟重省”是文件夹名,则其下不应再有/,应直接存放.txt文件。
四、其他注意事项
所有checknamelist和addnamelist中的路径也需同步修正,例如:
checknamelist ..QuestDiary雇佣兵团封号名单5级名单.txt
确保QuestDiary目录位于Mir200下,而非服务端根目录。
文件编码建议保存为ANSI或UTF-8无BOM格式,避免乱码导致标签识别失败。
修改后重启M2Server使脚本重新加载,切勿仅重载脚本。
完成上述调整后,脚本即可正确解析路径,调用外部文件,消除“错误2:40”提示。核心原则是:路径必须符合Windows规范、层级完整、文件真实存在。

