传奇单机版清空游戏数据怎么做 清理变量数据命令与角色存档教程

来源: 作者: 点击:
自己架设的传奇单机版玩久了,账号、角色、物品、任务进度堆了一大堆,想从头开一局干净的,却不知道数据到底存在哪、该用什么命令清。下面把清数据的两种对象、三种操作方式,以及各引擎对应的变量清零命令一次讲清。

先分清两类数据

清之前要搞明白,传奇服务端里的玩家数据分两类,处理方式完全不同。

常规数据是引擎按固定路径、固定格式存下来的,包括账号、角色、背包物品、仓库、个人商店、沙巴克占领信息、行会信息等。这类数据路径固定,用引擎自带功能或直接删文件都能清干净。

非常规数据是版本作者用脚本变量记录下来的,比如天下第一、排行榜名次、二级密码、活动计数、宝箱开启次数、各种自定义标记。这类数据没有固定路径,写在哪个文本里全靠写版本的人自己设定,只能用变量清零命令处理,或者找到对应文本手动清空。很多人清完常规数据发现排行榜还挂着旧名字,就是漏了这一类。

方法一 引擎控制器的数据清理按钮

这是最省事的一步到位做法,GOM、GEE、HERO、BLUE 等主流引擎基本都带这个功能。

打开服务端目录里的游戏引擎控制器,找到数据清理按钮点进去,界面上会列出可清理的项目,通常包含账号数据、角色数据、个人商店、沙巴克数据、行会数据等。把要清的项目前面打勾,最后一项是删除人物数据时不再弹确认提示,需要批量清就一起勾上,然后点开始清理,几秒钟就完成。

要注意的是,引擎控制器清理的只是常规数据。脚本变量产生的非常规数据不在它的范围内,得另外用命令或改文本处理。

方法二 手动清数据库和引擎文件

没有控制器清理功能,或者想清得更彻底,就手动来。

数据库部分,账号、角色、物品、任务技能、交易日志一般都存在 MySQL 里。用 Navicat 之类的工具连上数据库,展开表目录,常见的表名有 account、character、items、quest、skills、log_battle、log_trade 等,不同引擎名字略有差别,按关键词匹配即可。

清的时候只删表里的数据,别删表本身。右键表选择打开表,全选所有行按删除,或者执行 DELETE FROM account; 这类语句。物品表有些引擎和角色表关联,要先清物品表再清角色表,顺序反了可能删不掉。表结构一旦误删,得重新导入服务端 DB 文件夹里的 SQL 脚本才能恢复。

文件部分,重点清这几个位置。角色存档在 Mir200\Envir\UserData,里面按角色名命名,删掉就是清空对应角色。摆摊和个人商店记录在 Mir200\Envir\Market_Def。行会信息在 Mir200\GuildBase,把里面的 txt 文件清掉。登录日志、游戏日志在 Log 或 LogServer 文件夹,缓存文件在 Temp、Cache 以及 Mir200\Map 下的 cache 文件,这些都可以直接删,删了不影响运行,引擎会重新生成。

GEE 和 GOM 引擎的 Envir\QuestDiary 里还会存玩家任务进度,HERO 引擎的 Mir2000\Account 里留有账号备份的 bak 文件,BLUE 引擎的数据集中在 Data 目录下的 UserRole 子文件夹和 UserAccount.dat、UserWarehouse.dat 等文件里,清的时候按自己用的引擎对号入座。

方法三 变量清零命令

非常规数据就靠这一类命令解决,命令写在功能脚本里,通过 NPC 或 GM 触发执行。

最基础的是赋值清零。MOV 变量 0 把单个变量归零,变量多了就要写一大串。

老引擎常用 reset,格式是 reset [变量号] 数量,作用是把从起始变量往后数个变量一并归零。比如 reset [100] 7,就是把 100 到 106 这七个变量全部还原成 0,效果等同于连续写七句 set。

主流引擎新增了批量清零命令 ClearVar,格式是 ClearVar 起始变量 数量,支持 P、G、D、M、I、A、S、H 等内置变量。写 ClearVar G0 99,G0 到 G99 的全局变量全被清空;写 ClearVar S50 10,S50 到 S60 的文本变量一起清掉。这条命令免去了逐句赋值的麻烦,开新区清测试变量时特别顺手。

清 P 变量还有专用命令 ClearVarp。有些版本的对话框是用 P 变量控制的,做完活动想把 P 变量全部归零,在脚本里写

[@P]
#act
ClearVarp
SENDMSG 6 你的P变量全部清空重置为0

就能把当前玩家身上的 P 变量整段清空。

装了插件版本的服务端还有更细的批量命令,比如 DQCLEARVAR 起始变量 数量 默认值,支持 P、D、M、N、S、G、A、I、U、T 十族变量。写 DQCLEARVAR N10 90,就是把 N10 到 N99 一整段计数清零;写 DQCLEARVAR G100 50,清掉 G100 到 G149 的全局标记。第三个参数可填可不填,填了就在清零的同时给变量赋一个默认值,适合清完即初始化的场景。

用全局变量命令要格外当心,G 和 A 是全服共享的,一条命令下去所有玩家人手一份的数据一起归零。正式版本清档只在开新区或压测之后跑,活动进行中别乱动。清理数量也别写超出号段尾部,写超了可能报错或者只清到边界。

常用的 GM 命令

角色还登着游戏不想关服务的时候,可以用 GM 命令临时处理。进游戏先输入 @GameMaster 开启管理员模式,之后就能用各项指令。

@清理垃圾 清地面掉落物,@清理背包 清空背包所有物品,@重读GM 重新加载管理员列表,@加载机器人配置、@加载机器人脚本 重新读取机器人设置,这些在脚本频繁改动时很好用。行会相关有 @删除行会、@更改城主 之类,配合前面说的行会文件清理一起做更彻底。

清沙巴克占领信息也可以用机器人脚本定时执行。配置文件在 Envir\Robot.txt,运行脚本在 Envir\Robot_def\RobotManage.txt,用 #AutoRunNPC DAY 0:00 @清沙 这样的格式设定每天零点触发,把对应的占领状态重置掉。

操作前的几个硬规矩

第一,动手前先关掉所有服务端进程,包括 DBServer、LoginSrv、M2Server 这些,进程没关数据文件处于占用状态,删不干净还可能损坏。

第二,正式清之前把数据库文件夹和引擎配置文件夹复制一份到别处,出问题能整个还原回来。

第三,清数据库只删数据不删表结构,删文件只删文件夹内的内容不删文件夹本身。

第四,开多区的时候,要先把分区版本路径和端口改好,再去点清理,不然清的是还没改过来的旧区数据,白忙一场。

把常规数据和非常规数据两类都清到位,配合上面几组命令,一个干净的单机版服务端就能重新开局了。