自己架设的传奇单机版玩久了,账号、角色、物品、任务进度堆了一大堆,想从头开一局干净的,却不知道数据到底存在哪、该用什么命令清。下面把清数据的两种对象、三种操作方式,以及各引擎对应的变量清零命令一次讲清。
先分清两类数据
清之前要搞明白,传奇服务端里的玩家数据分两类,处理方式完全不同。
常规数据是引擎按固定路径、固定格式存下来的,包括账号、角色、背包物品、仓库、个人商店、沙巴克占领信息、行会信息等。这类数据路径固定,用引擎自带功能或直接删文件都能清干净。
非常规数据是版本作者用脚本变量记录下来的,比如天下第一、排行榜名次、二级密码、活动计数、宝箱开启次数、各种自定义标记。这类数据没有固定路径,写在哪个文本里全靠写版本的人自己设定,只能用变量清零命令处理,或者找到对应文本手动清空。很多人清完常规数据发现排行榜还挂着旧名字,就是漏了这一类。
方法一引擎控制器的数据清理按钮
这是最省事的一步到位做法,GOM、GEE、HERO、BLUE等主流引擎基本都带这个功能。
打开服务端目录里的游戏引擎控制器,找到数据清理按钮点进去,界面上会列出可清理的项目,通常包含账号数据、角色数据、个人商店、沙巴克数据、行会数据等。把要清的项目前面打勾,最后一项是删除人物数据时不再弹确认提示,需要批量清就一起勾上,然后点开始清理,几秒钟就完成。
要注意的是,引擎控制器清理的只是常规数据。脚本变量产生的非常规数据不在它的范围内,得另外用命令或改文本处理。
方法二手动清数据库和引擎文件
没有控制器清理功能,或者想清得更彻底,就手动来。
数据库部分,账号、角色、物品、任务技能、交易日志一般都存在MySQL里。用Navicat之类的工具连上数据库,展开表目录,常见的表名有account、character、items、quest、skills、log_battle、log_trade等,不同引擎名字略有差别,按关键词匹配即可。
清的时候只删表里的数据,别删表本身。右键表选择打开表,全选所有行按删除,或者执行DELETEFROMaccount;这类语句。物品表有些引擎和角色表关联,要先清物品表再清角色表,顺序反了可能删不掉。表结构一旦误删,得重新导入服务端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等内置变量。写ClearVarG099,G0到G99的全局变量全被清空;写ClearVarS5010,S50到S60的文本变量一起清掉。这条命令免去了逐句赋值的麻烦,开新区清测试变量时特别顺手。
清P变量还有专用命令ClearVarp。有些版本的对话框是用P变量控制的,做完活动想把P变量全部归零,在脚本里写
[@P]
#act
ClearVarp
SENDMSG6你的P变量全部清空重置为0
就能把当前玩家身上的P变量整段清空。
装了插件版本的服务端还有更细的批量命令,比如DQCLEARVAR起始变量数量默认值,支持P、D、M、N、S、G、A、I、U、T十族变量。写DQCLEARVARN1090,就是把N10到N99一整段计数清零;写DQCLEARVARG10050,清掉G100到G149的全局标记。第三个参数可填可不填,填了就在清零的同时给变量赋一个默认值,适合清完即初始化的场景。
用全局变量命令要格外当心,G和A是全服共享的,一条命令下去所有玩家人手一份的数据一起归零。正式版本清档只在开新区或压测之后跑,活动进行中别乱动。清理数量也别写超出号段尾部,写超了可能报错或者只清到边界。
常用的GM命令
角色还登着游戏不想关服务的时候,可以用GM命令临时处理。进游戏先输入@GameMaster开启管理员模式,之后就能用各项指令。
@清理垃圾清地面掉落物,@清理背包清空背包所有物品,@重读GM重新加载管理员列表,@加载机器人配置、@加载机器人脚本重新读取机器人设置,这些在脚本频繁改动时很好用。行会相关有@删除行会、@更改城主之类,配合前面说的行会文件清理一起做更彻底。
清沙巴克占领信息也可以用机器人脚本定时执行。配置文件在Envir\Robot.txt,运行脚本在Envir\Robot_def\RobotManage.txt,用#AutoRunNPCDAY0:00@清沙这样的格式设定每天零点触发,把对应的占领状态重置掉。
操作前的几个硬规矩
第一,动手前先关掉所有服务端进程,包括DBServer、LoginSrv、M2Server这些,进程没关数据文件处于占用状态,删不干净还可能损坏。
第二,正式清之前把数据库文件夹和引擎配置文件夹复制一份到别处,出问题能整个还原回来。
第三,清数据库只删数据不删表结构,删文件只删文件夹内的内容不删文件夹本身。
第四,开多区的时候,要先把分区版本路径和端口改好,再去点清理,不然清的是还没改过来的旧区数据,白忙一场。
把常规数据和非常规数据两类都清到位,配合上面几组命令,一个干净的单机版服务端就能重新开局了。
先分清两类数据
清之前要搞明白,传奇服务端里的玩家数据分两类,处理方式完全不同。
常规数据是引擎按固定路径、固定格式存下来的,包括账号、角色、背包物品、仓库、个人商店、沙巴克占领信息、行会信息等。这类数据路径固定,用引擎自带功能或直接删文件都能清干净。
非常规数据是版本作者用脚本变量记录下来的,比如天下第一、排行榜名次、二级密码、活动计数、宝箱开启次数、各种自定义标记。这类数据没有固定路径,写在哪个文本里全靠写版本的人自己设定,只能用变量清零命令处理,或者找到对应文本手动清空。很多人清完常规数据发现排行榜还挂着旧名字,就是漏了这一类。
方法一引擎控制器的数据清理按钮
这是最省事的一步到位做法,GOM、GEE、HERO、BLUE等主流引擎基本都带这个功能。
打开服务端目录里的游戏引擎控制器,找到数据清理按钮点进去,界面上会列出可清理的项目,通常包含账号数据、角色数据、个人商店、沙巴克数据、行会数据等。把要清的项目前面打勾,最后一项是删除人物数据时不再弹确认提示,需要批量清就一起勾上,然后点开始清理,几秒钟就完成。
要注意的是,引擎控制器清理的只是常规数据。脚本变量产生的非常规数据不在它的范围内,得另外用命令或改文本处理。
方法二手动清数据库和引擎文件
没有控制器清理功能,或者想清得更彻底,就手动来。
数据库部分,账号、角色、物品、任务技能、交易日志一般都存在MySQL里。用Navicat之类的工具连上数据库,展开表目录,常见的表名有account、character、items、quest、skills、log_battle、log_trade等,不同引擎名字略有差别,按关键词匹配即可。
清的时候只删表里的数据,别删表本身。右键表选择打开表,全选所有行按删除,或者执行DELETEFROMaccount;这类语句。物品表有些引擎和角色表关联,要先清物品表再清角色表,顺序反了可能删不掉。表结构一旦误删,得重新导入服务端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等内置变量。写ClearVarG099,G0到G99的全局变量全被清空;写ClearVarS5010,S50到S60的文本变量一起清掉。这条命令免去了逐句赋值的麻烦,开新区清测试变量时特别顺手。
清P变量还有专用命令ClearVarp。有些版本的对话框是用P变量控制的,做完活动想把P变量全部归零,在脚本里写
[@P]
#act
ClearVarp
SENDMSG6你的P变量全部清空重置为0
就能把当前玩家身上的P变量整段清空。
装了插件版本的服务端还有更细的批量命令,比如DQCLEARVAR起始变量数量默认值,支持P、D、M、N、S、G、A、I、U、T十族变量。写DQCLEARVARN1090,就是把N10到N99一整段计数清零;写DQCLEARVARG10050,清掉G100到G149的全局标记。第三个参数可填可不填,填了就在清零的同时给变量赋一个默认值,适合清完即初始化的场景。
用全局变量命令要格外当心,G和A是全服共享的,一条命令下去所有玩家人手一份的数据一起归零。正式版本清档只在开新区或压测之后跑,活动进行中别乱动。清理数量也别写超出号段尾部,写超了可能报错或者只清到边界。
常用的GM命令
角色还登着游戏不想关服务的时候,可以用GM命令临时处理。进游戏先输入@GameMaster开启管理员模式,之后就能用各项指令。
@清理垃圾清地面掉落物,@清理背包清空背包所有物品,@重读GM重新加载管理员列表,@加载机器人配置、@加载机器人脚本重新读取机器人设置,这些在脚本频繁改动时很好用。行会相关有@删除行会、@更改城主之类,配合前面说的行会文件清理一起做更彻底。
清沙巴克占领信息也可以用机器人脚本定时执行。配置文件在Envir\Robot.txt,运行脚本在Envir\Robot_def\RobotManage.txt,用#AutoRunNPCDAY0:00@清沙这样的格式设定每天零点触发,把对应的占领状态重置掉。
操作前的几个硬规矩
第一,动手前先关掉所有服务端进程,包括DBServer、LoginSrv、M2Server这些,进程没关数据文件处于占用状态,删不干净还可能损坏。
第二,正式清之前把数据库文件夹和引擎配置文件夹复制一份到别处,出问题能整个还原回来。
第三,清数据库只删数据不删表结构,删文件只删文件夹内的内容不删文件夹本身。
第四,开多区的时候,要先把分区版本路径和端口改好,再去点清理,不然清的是还没改过来的旧区数据,白忙一场。
把常规数据和非常规数据两类都清到位,配合上面几组命令,一个干净的单机版服务端就能重新开局了。

