传奇服务端QManage脚本LOADVAR报错神影名单文件缺失修复

来源: 作者: 点击:
报错信息里已经把问题位置说出来了。脚本命令是 LOADVAR,NPC 是 QManage,参数1 HUMAN 表示读个人变量,参数2 CWFY 是变量名,参数3是文件路径 ..\QuestDiary\诚意网络\CWFYSave.txt,最后一行提示找不到神影名单.txt。这类错误不是命令写错这么简单,核心是脚本要去读一个 txt 文件,但服务端在那个路径下没找到文件。

报错路径真实指向哪里

M2 提示的路径是:
D:\MirServer\Mir200\Envir\MapQuest_def\..\QuestDiary\诚意网络\军团功能\神影名单.txt

里面的 ..\ 代表返回上一级目录。MapQuest_def 的上一级就是 Envir,所以真实路径其实是:
D:\MirServer\Mir200\Envir\QuestDiary\诚意网络\军团功能\神影名单.txt

同理 CWFYSave.txt 真实路径是:
D:\MirServer\Mir200\Envir\QuestDiary\诚意网络\CWFYSave.txt

别在 MapQuest_def 里面去建 QuestDiary 文件夹,那是错的。

第一步:先检查文件是不是真丢了

打开资源管理器,进到:
D:\MirServer\Mir200\Envir\QuestDiary\

看里面有没有「诚意网络」文件夹。
进去后看两样东西:

1. CWFYSave.txt 在不在「诚意网络」根目录
2. 「军团功能」文件夹在不在,里面有没有神影名单.txt

常见情况三种:

解压服务端时文件没解出来
之前改脚本把文件挪走了
脚本作者是按自己目录写的,你这套端目录结构不一样

只要文件不在对应路径,LOADVAR 就读不到,M2 启动或玩家登录时就会弹脚本错误。

第二步:直接新建缺失文件(最快解法)

如果确认文件丢了,不用去网上找原版也行,LOADVAR 只是要读文件,空白 txt 就能消报错。

操作顺序:

进 D:\MirServer\Mir200\Envir\QuestDiary
新建文件夹,改名:诚意网络
进诚意网络,右键新建文本文档,改名 CWFYSave.txt
在诚意网络里再建文件夹:军团功能
进军团功能,新建文本文档,改名 神影名单.txt

注意点:

文件名必须一模一样,别多空格
神影名单 .txt 这种中间多空格不行
电脑如果隐藏了已知后缀名,看起来是「神影名单」实际可能是「神影名单.txt.txt」
建完右键文件属性,把「只读」取消

第三步:文件在但还是报错,查脚本路径

文件明明存在还一直弹错误,就是脚本里路径写错了。

打开:
D:\MirServer\Mir200\Envir\MapQuest_def\QManage.txt
或者用记事本搜 Envir 下哪个文件写了 CWFY、神影名单

搜关键字:

LOADVAR
CWFY
神影名单

你会看到类似这种行:

LOADVAR HUMAN CWFY ..\QuestDiary\诚意网络\CWFYSave.txt

或者另一行调用:

CHECKNAMELIST ..\QuestDiary\诚意网络\军团功能\神影名单.txt
WRITENAMELIST ..\QuestDiary\诚意网络\军团功能\神影名单.txt

核对逻辑:

QManage.txt 在 MapQuest_def 里,..\ 回到 Envir 是对的
但如果脚本实际放在 QuestDiary 子目录里,..\ 就会多跳一层
有些端要把路径写成从 QuestDiary 开始
部分引擎支持绝对路径,最稳

改成绝对路径示例:

LOADVAR HUMAN CWFY D:\MirServer\Mir200\Envir\QuestDiary\诚意网络\CWFYSave.txt

神影名单相关也改:

D:\MirServer\Mir200\Envir\QuestDiary\诚意网络\军团功能\神影名单.txt

改完保存,别用 Word,别带 BOM,记事本 ANSI 就行。

第四步:确认变量声明没漏

LOADVAR 读的是已经声明过的 HUMAN 变量。虽然这次报错写的是「找不到文件」,但顺手检查下 QManage.txt 里有没有声明 CWFY。

一般在 [@Login] 或脚本头部会有:

VAR Integer HUMAN CWFY

或者字符串型:

VAR String HUMAN CWFY

没有这行不代表一定报错,但变量不会正常读写。

如果 CWFY 是军团功能里自己用的变量,确认:
变量名拼写一致
大小写一致
没写成 CWFY1、CWF、Cwfy

第五步:为什么老号不报新号报

这是个很常见的坑。

老角色以前登录过,CWFYSave.txt 里已经写过他的数据,文件存在,LOADVAR 能读到内容,所以不报错。
新建角色第一次登录,文件里没这人,或者 CWFYSave.txt 根本是空的甚至不存在,脚本没做容错,就直接弹错误。

临时解决就是先把文件建出来。
想彻底稳一点,在 QManage [@Login] 里 LOADVAR 前面别乱改逻辑,保证文件存在即可;如果原脚本作者写了「文件不存在就退出」,那只能补文件,不要删 LOADVAR。

第六步:军团功能相关连带检查

报错提到「军团功能」「神影名单」,说明不是单个 LOADVAR 出错,可能同一段脚本还会读名单。

顺手检查这几个点:

神影名单.txt 是否空白没问题,功能跑起来后会自动写
名单文件别设只读,不然写入时报错
如果还有 CWFYSave 里存的是玩家变量,格式一般是:
[角色名] CWFY=数值
不用手填
QuestDiary\诚意网络 下如果原版还有别的 txt,最好一起补齐
Enc 编码统一 ANSI,UTF-8 带 BOM 有的引擎会读乱

重启顺序

改完文件别只关 M2,整套端都重启:

关 M2
关引擎控制器
关网关
等几秒
先启 DB/登录/网关
最后起 M2

起来后看 M2 控制台有没有再刷:
脚本命令:LOADVAR
找不到文件 =>

不刷了就是好了。

还报错的排查顺序

按这个顺序来,别乱改命令:

1. 报错路径最后文件名是什么,就建什么文件
2. 路径里 ..\QuestDiary 换成 Envir\QuestDiary 理解
3. 文件存在还报错 → 改绝对路径
4. 新号报错老号不报 → 文件没建
5. 改完还错 → 搜全 Envir 里所有「神影名单」调用行
6. 有多处路径写法不一致,统一成同一绝对路径
7. 确认 QManage.txt 不是被分成 QManage-1.txt、QManage.txt 多个文件,加载的是哪一个

典型正确目录结构

Mir200
└─ Envir
└─ QuestDiary
└─ 诚意网络
├─ CWFYSave.txt
└─ 军团功能
└─ 神影名单.txt

QManage.txt 本身一般在:
Envir\MapQuest_def\QManage.txt
它用 ..\QuestDiary\... 是正确的相对写法,前提是文件真在那个位置。

常见错误写法

在 MapQuest_def 里新建 QuestDiary 文件夹(错)
文件名打成 神影名单 .txt(多空格)
神影名单.txt.txt(隐藏后缀)
路径写成 ..\..\QuestDiary(多跳一层)
脚本里写 / 还是 \ 混用
文件只读
用 UTF-8 保存带 BOM
只建神影名单.txt,忘了 CWFYSave.txt
只建文件不重启 M2

总结处理口径

这次报错不是 QManage 坏了对,也不是 LOADVAR 命令本身不能用。就是脚本要读:
诚意网络\CWFYSave.txt
诚意网络\军团功能\神影名单.txt
这两个文件不存在或路径对不上。

最快处理:
建文件夹 → 建两个 txt → 取消只读 → 重启端。
还报错:
打开 QManage.txt 把路径改成绝对路径。
新号登录才爆:
补文件就行,老号有缓存数据才不爆。

军团功能、神影名单这类一般都是自定义脚本模块,原版端没有,拿别人脚本套自己端最容易缺文件。以后看到「脚本错误 + 找不到文件 + LOADVAR」,第一反应永远是先去 Envir\QuestDiary 下对路径,不要先改命令格式。