原神3.2真端炸档的一种修复方法

作者 : gm 本文共1968个字,预计阅读时间需要5分钟 发布时间: 2023-01-29 共2.6K人阅读

事情起因:手贱错误刷了废案武器 15505:悬黎千钧(不太确定)
物品虽然在游戏中能显示,但是重新上线后会提示无法初始化数据库
如下:
-1
在gameserver目录中使用tail -f nohup.out查看日志
会一直报

LOG_WARNING 2023-01-28 02:23:47 302 959802 [./src/player/item/weapon.cpp:123][init] invalid equip_level, item_id:15504 [uid:100007, cmd:PlayerLoginRsp_AsyncTask]
LOG_WARNING 2023-01-28 02:23:47 302 959802 [./src/player/item/player_item_comp.cpp:450][init] init for pack failed [uid:100007, cmd:PlayerLoginRsp_AsyncTask]

其中item_id明确指向了报错的物品

前置条件:Mysql已开启Binlog,我的端是删库塔搭的,在默认路径,其他端请自行了解Mysql存放位置,更改下对应路径即可
查询是否开启binlog
在Navicat中执行

show variables like ‘log_%’
-2
如果显示为ON可继续下一步
如果是OFF,下面可以不用看了,点下右上角关闭

MySQL自带的binlog工具回滚不了BLOB,试了几次没成功。所以只能手动回滚了。如果有懂Mysql数据库的大佬希望指导一下。


PS:只说重点,搭建教程里有的内容简单带过,不懂的重新翻架设教程

1.使用Navicat备份db_hk4e_user_gio全库,不怕二炸的可以跳过这步

2.下载一个WINHEX,用于数据提取
3.把服务端的数据库下载到Windows上。我用的是删库塔安装的,默认在/www/server/data,把data整个目录拉到本地,可以借用winscp。其他方式安装的请自行查找
4.在db_hk4e_user_gio库中找到你的存档位置,我的存档放在t_player_data_4这个表里,打开t_player_data_xxx这些表,根据UID找到你自己账号存档的序号
-3
5.打开刚才下载的数据库目录,你的存档在哪一个bin里面需要自己判断,这个文件一般是每重启一次服务器就会生成一个的。大体上可以看修改时间确认。
我自己本次的存档在mysql-bin.000018这个文件里。如果是库里有多给账号同时玩的,请自行甄别。步骤一样,这里不再阐述。
-4
6(重点).使用WINHEX打开mysql-bin文件,越往后存档越新。如果自己不确定在哪里炸的,建议从头开始翻
-5
搜索十六进制值5A4C49
-6
右键这里选择为起始位
-7
再搜索0A0A0801
-8
在0A0A之前选择为结束位
-9
随后右键编辑,复制选快,十六进制数值,粘贴到记事本里
-10
我的存档在t_player_data_4表里,后面的数字根据你实际的情况去修改
打开t_player_data_4这个表,选中这条数据,右键复制,Insert语句
-11
新建一个SQL窗口,粘贴,大概就是这个效果
-12

这里需要做以下魔改,把下面蓝色的字替换为刚才复制到记事本里的十六进制值
INSERT INTO `db_hk4e_user_gio`.`t_player_data_4`(`uid`, `nickname`, `level`, `exp`, `vip_point`, `json_data`, `bin_data`, `extra_bin_data`, `data_version`, `tag_list`, `create_time`, `last_save_time`, `is_delete`, `reserved_1`, `reserved_2`, `before_login_bin_data`) VALUES (100007, ’emo’, 59, 166770, 0, ‘{\n \”is_proficient_player\”: true\n}\n’, 0x5A4C494此处省略无数字, 0x0A0A08011206080118733873, 1541, ”, ‘2022-12-11 01:17:47’, ‘2023-01-28 00:58:21’, 0, 0, 0, 0x0A24E907EA07EB07EC07ED07EE07D10FD20FD30FD40FD50FD80FD90FE20FE60FE80F8A27C53E);

替换完成后,确保没毛病后点下运行,绿色箭头图标

再刷新一下t_player_data_4这个表就会多出一条数据
这里需要把上一条数据删除掉,否则会无法进入


一切准备就绪后重新进入游戏,这里不用重启整个服务端,实时生效的
-14
再次重新进入游戏,如果正常就会进入到之前的存档,如果失败,证明这个存档有问题,需要找更早的重新再来一遍

声明:
本站网游单机网-藏宝湾(www.jiaobenwang.com/www.cangbaowan.top)所有源码都来源于网络收集修改或者交换!本站所有程序、源码只供大家学习和研究软件内含的设计思想和原理之用,请下载后24小时内删除!。请大家不要用于商用及违法使用,否者如引起一切纠纷与本网站无关,后果自负!!
如果侵犯了您的权益,请及时告知我们(QQ: 18001103 email:[email protected]),我们即刻删除!
如遇到资源失效,请在此贴下方评论区留言,我们将尽快补充资源!
如遇资源实在不会架设,可以换其他游戏或者版本试试,不要纠结一个版本。


网游单机网-脚本王 » 原神3.2真端炸档的一种修复方法

常见问题FAQ

什么叫一键端?什么是手工端?
一键端:一般是虚拟机VM一键端或者windows一键启动服务端,适合新手!对于一键端来说,如果这个端是linux系统的,因为linux系统大家不熟悉,架设有点麻烦,所以很多人分享了自己架设服务端的linux系统镜像,这种叫VM一键端(虚拟机一键端)。 还有一种一键端是win系统的,大部分都是做好了启动服务端的快捷方式之类的,这种端实际和手工端相差不大了。win系统的一键端实际就是手工端!我个人认为如果端本身就是win系统的服务端,那就没必要去弄vm一键端了!

手工端:游戏服务端需手工安装配置,可以开服,适合老手,推荐方式!架设更有乐趣!
网单游戏有哪些架设方式?
1、单机玩耍,那么你只需要在你的电脑上 安装虚拟机软件+安卓模拟器即可。把服务端 运行在虚拟机的系统里面(如果是win服务端,也可以直接在电脑上运行服务端),客户端在安卓模拟器运行即可。各种VM一键端 基本就是用这种方式进行玩耍的!
2、局域网手机玩耍,局域网内,手机通过wifi连接你电脑上安装的服务端,离开这个wifi你就玩不了,这种方式虽然是局域网内可玩,但和外网架设实际上是一回事,都需要按照教程修改服务端、客户端。
3、外网玩耍,俗称开服,服务端架设在外网云服务器上,云服务器具有固定IP地址,在其他电脑上、手机上安装客户端即可玩耍。
最佳实现外网(互联网)开服玩耍的方式?
对于一般玩家来讲,如果是想实现和朋友一起玩耍网单游戏,那么就需要外网架设。最佳方式就是用内网映射的方式,仅需要一台百元级云服务器即可实现内网\局域网游戏穿透到互联网开服使用!本站提供了原创软件免费给大家使用!一般只要能局域网玩耍的网单游戏,均可实现外网玩耍!

发表评论