晚上十点多。
陈天刚准备休息,电话忽然响了。
罗景峰打来的。
刚接通,对面第一句话就让他坐了起来。
“陈总,出结果了。”
“我们把装备复制出来了。”
陈天顿了一下。
“确定?”
“确定。”
“重新登录过,两件装备都还在。”
“数据库里也有完整记录。”
罗景峰的声音有些发沉。
“你最好过来看一眼。”
陈天看了眼时间。
“等我。”
二十多分钟后。
银丰大厦十四层的测试机房里。
测试机上,两个角色同时停在仓库旁边。
罗景峰盯着屏幕看了几秒,伸手指了一下。
“就是这个。”
陈天往前走了两步。
左边角色的背包里,是一把刚刚从仓库取出来的武器。
右边角色的背包里,同样多了一把。
名字。
属性。
强化等级。
一模一样。
“原来只有一件?”
“嗯。”
旁边的程序员点了点头。
“我们已经重新登录过了。”
“数据库里确实有两份完整记录,不是显示错误。
陈天没说话。
虽然前世早就知道《奇迹》后来被复制装备折腾得够呛,但真正看到一件装备在眼前变成两件,感觉还是不太一样。
“怎么弄出来的?”
程序员把几页打印出来的代码放到桌上。
“仓库和角色数据的保存不是一次完成的。”
“正常操作没问题。”
“但在几个状态切换之间,如果连续发送请求,再配合异常断线,就有机会让一边已经保存,另一边还没来得及清掉。”
“重新登录以后,两边的数据都被认了。”
罗景峰在旁边补了一句。
“我们试了十几次。”
“不是每次都行,但已经能重复做出来。”
这就够了。
只要有人找到规律,十次成功一次和十次成功十次,区别并没有那么大。
尤其是宝石和高级装备。
一旦能复制,就有人愿意一直试。
陈天看向程序员。
“能修吗?”
“能。”
回答得很快。
“现在源码在手里,很多东西比以前好查多了。”
“仓库存取、交易和角色保存这几块,我们准备重新加一层状态检查。”
“前一次操作没真正完成,后面的请求就不再执行。”
“异常断线以后,也不能直接按照客户端传回来的状态恢复。”
陈天点头。
“改。”
“其他地方呢?”
罗景峰又拿过另一份记录。
“之前那两个外挂也顺着查了。”
“变速最好处理。”
“以前服务器虽然有检查,但范围放得太松。”
“外挂只要别改得太离谱,就有机会混过去。”
“攻击速度也是差不多的问题。”
“现在把服务端这层重新收紧,再加上连续异常记录,比之前只靠后台筛数据强得多。”
“自动补血、自动捡东西呢?”
“这两个没法彻底解决。”
罗景峰摇了摇头。
“很多操作都发生在玩家自己电脑上。”
“只要最后发给服务器的数据还是合法的,我们很难光靠服务端判断他到底是自己按的,还是程序帮他按的。”
陈天倒不意外。
“那就别追求全灭。”
“先把真正破坏平衡的堵住。”
“变速。”
“异常攻击。”
“非法数据。”
“还有仓库、交易这些能把整个游戏经济弄乱的地方。”
“这些不能留。”
罗景峰点头。
几个人重新回到电脑前。
有源码和没有源码,完全是两回事。
前几天,他们拿到外挂以后,只能盯着服务器记录一点点往回猜。
哪个数据异常。
哪一段时间不对。
外挂到底从哪个位置钻进来的,还要不停测试。
现在却可以顺着程序直接往下看。
数据从哪里进。
在哪里检查。
检查完以后又去了哪里。
原本藏在一堆黑箱里的东西,一下全摊开了。
第二天上午,技术组先改出了第一个测试版本。
没有直接碰正式服务器。
几台隔离出来的机器重新搭了一套环境。
之前那两个外挂也重新装了进去。
测试开始以后,最明显的就是变速。
人物刚跑出去一段距离,服务器便直接把异常位置打了回来。
攻击速度拉高以后,连续几次动作同样被拦下。
后台同时多出了异常记录。
程序员看着日志。
“这个可以。”
“正常玩家的数据还在原来的范围里。”
“开变速以后,很快就会撞上检查。”
“再多跑几组。”
陈天站在后面。
“别为了封外挂,把正常玩家也弄得走一步卡一步。”
“明白。”
真正麻烦的还是仓库。
第一版修改完以后,之前那套复制办法确实失效了。
可技术组换了几种操作顺序,又在其中一个极端情况下弄出了数据不同步。
罗景峰没急着汇报结果。
直接让人继续改。
第二版。
第三版。
一直折腾到下午。
同一套办法重新跑了几十次。
断线。
重连。
重复请求。
仓库存取。
交易中断。
能想到的情况几乎都过了一遍。
之前那件用来测试的武器,再也没出现第二把。
程序员又检查了一遍数据库。
“这次没留下重复记录。”
罗景峰看着屏幕。
“交易那边呢?”
“也过了。”
“物品保存状态现在以服务器最后确认的数据为准。”
“异常操作会直接中止,不再两边各留一份。”
罗景峰这才往后靠了靠。
“总算堵住了。”
陈天却看向另外几台机器。
“别光盯这个。”
“既然代码都拿到了,顺着查。”
“以前没出过问题的地方,也过一遍。”
“嗯。”
“还有一件事。”
陈天看了一眼桌上的几个文件。
“以后韩方再发更新过来,别急着直接上。”
“先在我们自己这里过一遍。”
“该查的查,该改的改。”
罗景峰看向他。
“我们自己动?”
“嗯。”
“他们更新他们的。”
“我们处理我们的。”
“这边改了什么,也不用专门告诉他们。”
罗景峰点了点头。
以前出了问题,他们只能把日志和数据发去韩国,然后等。
现在源码就在自己手里。
没必要了。
技术组很快又忙了起来。
一直到傍晚,这一轮修改总算做完。
没有急着动正式服务器。
几台测试机继续跑了起来。
之前发现问题的几个环节,又被换着方式反复测试了一遍。
晚上九点多,最后一轮结果出来。
暂时没有再发现明显异常。
罗景峰把测试记录递给陈天。
“今晚再压一晚。”
“要是还没问题,明天维护的时候全区更新?”
“更新。”
陈天翻了两页。
“旧版本留好,更新以后把数据和日志全部盯住。”
“真有问题,随时退回去。”
“外挂那边继续盯。”
“他们一更新,我们就跟着查。”
“现在有源码,应该比以前好处理不少。”
“肯定。”
罗景峰笑了笑。
“以后再碰上这种问题,至少不用什么都等韩国那边回复了。”
陈天把测试记录合上。
“那就继续跑。”
“今晚别停。”
“明白。”
罗景峰拿着东西重新回了测试机那边。
陈天也没再多留。
该查的已经查了。
该堵的,也有办法堵了。
今晚再跑最后一遍。
明天全部换上。
大陆这边最危险的几个口子,算是暂时堵住了。
至于以后网禅那边会不会出什么问题?
谁管它呢。