提交人员:某厂客服
提交时间:2025-01-18
适配版本:花落版本·数据库天机版本·数据库大仓库版本 以上版本通用
修复人员:雪舞
问题描述:
出BUG的账号,无法交易任何人,别人也无法交易ta。并且和游戏性设置里面的拒绝交易无关,不管开启还是关闭都无效。使用SystemSetup:SaveGameSetup 清空设置也无效。
同时也不是以下Flag中的116、118的设置问题。
MF_IS_BAN_EXCHANGE = 116 --是否禁止交易
MF_IS_BAN_RECEXCHANGE = 118 --是否允许被交易
演示视频 && 修复结果
(技术有限,仅仅通过NPC修复的方法解决,通过指针直接操作内存中的数据,对相关信息进行修正)
触发方法(通过复刻BUG版本的数据库达到复现效果)
打开数据库软件navicat ,找到你的服务器数据库:tlbbdb -> t_char -> settings 下边一整行替换
引擎相关信息
相关引擎函数名(已被逍遥子Hook):old__ZN7Packets23CGExchangeApplyIHandler7ExecuteEPNS_16CGExchangeApplyIEP6Player(int a1, GamePlayer *a2)
客户端提示信息为:
616 GCExchangeErrHandler_Info_Refuse_To_Trade 对方拒绝交易
解决方案
具体触发原因暂时没有研究,雪舞只能通过补救方法来解决了,在NPC上面新增一个修复功能。函数的话,我通过链接库新增一个引擎函数,进行修正错误信息。
正常的settings角色数据为(每个人略有区别,仅供演示,直接替换也没有关系):
00603D080000040000000100000000000000000000000000000000000000000000000000000000000116000000012300000002010000000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FF0000000000000000000000000000B76100000000000000000000000000017D7C6C0E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
解决过程 和 引擎补丁
***付费内容***
关于更优解决办法
技术有限,暂时没有更好的方法。以后学习C++和反汇编和再进行研究。
剩余 43% 内容需要支付 260.00
金币 后可完整阅读
支持付费阅读,激励作者创作更好的作品。
|