当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇单机清除角色物品变量数据命令

热度:
传奇单机清数据分几层:清账号、清角色、清背包物品、清变量、清行会、清日志、清数据库表里脏数据。别上来把整个库删了,有时候端里Map、Envir、Market跟库是两套,库删了角色没了但NPC卖的东西还在,不算真“还原”。

先说游戏内命令。M2里给自己GM权限后,常用:
@clearbag清自己背包
@clearitem清身上/背包物品
@delchar删当前角色
@delaccount删账号
@reborn转生/重生类,不等于清数据
@gv看全局变量
@set改局部变量
@setglobal改全局变量
不同引擎命令名字不一样,GOM、GEE、Hero、3K不是同一套。GOM里全局变量常用GLOBALVAL、GLOBALSTR这种,Hero里可能是VAR整数/字符串那套。想“清变量”,不是敲一个万能命令,而是把变量值写回0或空串。

M2控制台里能做的:
脚本变量清0:把VarIntegerHumanMyVar=0
全局变量清0:GlobalVal1=0
全局字符串清空:GlobalStr1=
NPC里写
[@清变量]
IF

ACT

Set[001]0
Set[002]0
SetGlobal10
SetGlobalStr1<$null>
这样玩家点NPC就把自定义变量归位。

数据库层面最彻底。MySQL端进库:
TRUNCATETABLEcharacters;
TRUNCATETABLEaccount;
TRUNCATETABLEguild;
TRUNCATETABLEguild_member;
TRUNCATETABLEitem;
TRUNCATETABLEmail;
TRUNCATETABLElog_login;
TRUNCATETABLElog_chat;
别TRUNCATE配置表、商店表、怪物表、地图表。只清玩家侧:账号、角色、行会、物品、邮件、日志。

SQLServer端用:
DELETEFROMCharacters;
DELETEFROMGuild;
DBCCCHECKIDENT('Characters'RESEED0);
想连自增ID也重置就RESEED。不清配置表、Market表、MonGen表、Magic表。

Envir里的变量文件也要清:
Envir/UserData/*.txt角色扩展数据
Envir/Market_prices别清,是商店
Envir/Market_saves玩家市场挂售要清就删文件
Envir/GuildBase行会数据
Envir/Castle沙巴克数据
Envir/QuestDiary里自己写的变量别手删段,只把值改0
Mir200/Envir/Map不清,地图不是玩家数据
Mir200/Data是装备/特效资源,不清
Mir200/Map是地图文件,不清

想“像刚下的一键端”那样干净,做法:
1.关所有网关和M2
2.删Mir200/Envir/UserData下玩家文件
3.删Mir200/Envir/GuildBase
4.删Mir200/Envir/Castle
5.删Mir200/Log下日志
6.数据库里清account/characters/guild/item/mail/log_*
7.启动服务端,建新号就是空世界

只清“变量数据”不清角色:
进M2→脚本变量→把Human变量、Global变量、Integer变量、String变量全设0/空。很多服主做的“清CD、清任务进度、清首充标记、清累充金额、清沙巴克次数”就是改这些变量,不是删号。

常见变量名:
首充标记FirstPay=0
累充金额TotalPay=0
每日签到DaySign=0
转生次数ZhuanSheng=0
切割值CutValue=0
攻沙次数SiegeCount=0
这些都在QuestDiary或M2变量管理器里。自己写的版本就在QuestDiary里搜Set[xxx]看逻辑,然后写个清变量NPC把它们全置0。

想通过GM命令清别人数据:
@Kill别人没用,是杀人
@DelChar角色名删角色
@ClearItem角色名清物品
@SetLevel角色名1变1级
@SetMoney角色名0金币清零
@DelGuild行会名删行会
具体看引擎帮助文件,GEE的GM命令文档最全,GOM其次,Hero老端命令散在Merchandize和QuestDiary里。

脚本里批量清全服变量例子:
[@清全服变量]
IF

ACT

FOR1TO200
SetGlobal<$STR(N)>0
SetGlobalStr<STR(N)><null>
其实不同引擎不支持这么写,GOM可用QFunction里循环,Hero用Label+Goto。新手别硬写循环,直接M2里手动把GlobalVal1-500设0最稳。

配置文件里也有“假变量”:
!Setup.txt里经验倍数、爆率倍数不是玩家变量
GameConfig.txt里在线人数、开区时间不是玩家数据
Envir/MonItems是怪物爆率,不是角色数据
Env/AdminList是GM列表,删了你就没权限

单机想重来一遍:
方案A轻清:清账号表+删UserData+全局变量归零,版本配置保留。
方案B中清:方案A+删行会/沙巴克/市场/邮件/日志。
方案C硬清:关服,备份Envir/Map/Data/Magic/Market后,数据库整库删表重建,服务端只留原端自带示例NPC。
方案D核清:删端重下,最干净但最费事。

新手推荐方案A+B。C容易把Market_Def里商店NPC存的数据一起搞乱,D是端本身有毒/改烂了才用。

清数据后角色进游戏还显示旧物品,原因:
客户端缓存没清,登录器缓存了角色面板
服务端没真重启,M2还挂着旧内存
数据库连错库,你清了mir2_test,端连的是mir2
Item表清了但角色blob里还存装备,部分老引擎角色装备写在characters表字段里,要UPDATEcharactersSETbody=0herobody=0

MySQL修角色装备字段:
UPDATEcharactersSETWeapon=0Helmet=0Armor=0LeftHand=0RightHand=0Necklace=0Ring1=0Ring2=0Bracelet1=0Bracelet2=0ItemBag=''WHEREName='角色名';

SQLServer:
UPDATECharactersSETWeapon=0Armor=0Helmet=0LeftRing=0RightRing=0WHERECharName='角色名';

想清“任务进度/活动进度”但留等级装备:
别删号,改字段。比如每日任务次数、周任务标记、首杀标记单独存UserData/任务.txt,删这个文件就行。

M2自带“清理垃圾数据”:
M2→数据管理→清理无效角色
M2→数据管理→清理离线超N天
M2→物品管理→清理地面物品
M2→行会管理→解散空行会
M2→日志管理→清空日志
这些比手敲SQL安全,一键端新手先用界面再学SQL。

地面物品清不掉:
Map里地上掉落存在GameSrv内存+DropItem表,关服再开还在,是因为DropItem表没清。
DELETEFROMdroplog;
或端里叫ItemDrop、GroundItem,看表名。

变量清了刷新还回来:
QuestDiary里OnLogin段又给变量赋值了。比如登录自动Set[首充]0但另一段Set[在线奖励]+1,你清完一上线又被脚本写回去。真要空状态,改QuestDiary登录段,暂时注释掉赋值行。

自己写“清档NPC”最实用:
[@main]
清角色数据\n清全局变量\n清行会沙巴克\n清日志
[@清角色]
ACT

DelChar<$USERNAME>
[@清全局]
ACT

SetGlobal10
...
[@清行会]
ACT

DelGuildAll
不同引擎命令不存在DelGuildAll就循环读行会名再DelGuild。

备份顺序别反:
先关服→备库→备Envir→备Mir200/Data→再清。清完发现商店NPC不卖东西了,八成把Market_Def或Market_Saves误删了。Market_Def是NPC定义,Market_Saves是交易/拍卖状态,前者不能清,后者能清。

最稳单机清档流程:
1.点M2关所有网关
2.导库:mysqldump或附加库复制
3.删characters/account/guild/item/mail/log_*
4.删Mir200/Envir/UserData/*
5.删Mir200/Envir/GuildBase/*
6.删Mir200/Envir/Castle/*
7.删Mir200/Log/*
8.M2里全局变量1-300设0
9.重启服务端
10.新号进,首充/累充/签到/转生/切割全是初始值

记牢:清“玩家数据”和清“服务端版本”是两件事。玩家数据在库+UserData+行会文件;版本配置在Envir/QuestDiary、Market_Def、MonGen、MapInfo、MonItems、Magic。前者可清,后者清了服就残。

命令记几个够用:
清自己背包:@clearbag
删自己号:@delchar
删账号:@delaccount
清金币:@setgold0
清等级:@setlevel1
清全身装备:M2里脱装或SQL置0
清全局变量:M2变量管理器设0
清登录变量:改QuestDiary的[@Login]段
清地面物品:M2清理地面物品
清离线角色:M2清理无效角色
清行会:M2行会管理解散/@delguild行会名

自己弄单机版,别被“清变量”三个字吓住。变量就是脚本里存的计数器,清了就是归零;角色就是库里一行;物品就是角色字段或item表;行会就是guild表加GuildBase文件;日志就是log表。一层层对,就能从“满号满行会满邮件”回到“刚开服啥都没有”。

要是你改过Pay、Cut、ZS、SAB这种自定义系统,清档时还得进它们对应的txt/json:累充.json、转生数据.txt、切割数据.txt、沙巴克次数.txt。一键端作者爱把数据塞Envir/UserData/插件名/下面,清档前全局搜自己加的系统名,别只清characters表,结果“角色是1级但首充送的刀刀切割还在”,就是这个原因。

最后提醒:清之前一定关M2再动库。M2开着你DELETE完,它内存里角色还在,玩家在线还能动,你以为清了,重启又从内存写回一部分,看起来“清不干净”。关服、清库、清文件、再起服,才是真清干净。
[顶部]