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

来源: 作者: 点击:
报错信息里已经把问题位置说出来了。脚本命令是LOADVAR,NPC是QManage,参数1HUMAN表示读个人变量,参数2CWFY是变量名,参数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
神影名单

你会看到类似这种行:

LOADVARHUMANCWFY..\QuestDiary\诚意网络\CWFYSave.txt

或者另一行调用:

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

核对逻辑:

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

改成绝对路径示例:

LOADVARHUMANCWFYD:\MirServer\Mir200\Envir\QuestDiary\诚意网络\CWFYSave.txt

神影名单相关也改:

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

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

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

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

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

VARIntegerHUMANCWFY

或者字符串型:

VARStringHUMANCWFY

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

如果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下对路径,不要先改命令格式。
[顶部]