
- UID
- 471183
- 帖子
- 1452
- 精华
- 1
- 威望
- 79
- 阅读权限
- 100
- 来自
- 【楽&亊〗
- 注册时间
- 2008-1-15
|
原帖由 celavie 于 2011-8-25 12:08 发表 
LZ说的还是很有道理滴。游戏里面人物的一切东西,装备也好,消耗品,等级,经验神马的,最后在服务器端肯定是以数据形式存储的。比如:4洞笨拙短剑用数字1234表示,3洞笨拙短剑用1235表示,经验书用8754表示等等。
那么,对于RO这样一个有着许多任务的游戏来说,怎么知道哪个人物完成了多少任务,某个任务完成到哪个环节了呢?可能当时游戏设计人员为了方便起见,没有为任务状态单独设置数据库,而是与存储人物道具信息的数据库公用一个信息,通过设置一个道具数据来表示人物已经完成了某个任务。(因为这样1个人物只要1个数据表就可以了,否则可能要2个etc)比如:当人物完成了建国任务,那么就得到一个用代号1111的道具表示说完成该任务了,只不过这个道具你看不到而已。(你可以理解为拿到了一把看不见的4洞笨拙)当人物完成了无名任务,就得到一个1113的道具,表示完成该任务了。
而这个bug猜测是这样滴,正常情况下,不管是收购系统还是商店系统,完成1笔交易,例如:A开10w收购黄金,B卖了2块黄金给B,那么系统实质就是人物A的记录ro币的数据库字段,其数据相应减少20w,A记录道具的数据库内,黄金道具的数量相应增加2。B记录道具的数据库内,黄金道具的数量相应减少2,而记录ro币的数据库字段相应增加20w。此次收购系统出现后,由于游戏开发人员没有在后台数据实际增减的时候判断B的道具数据是否真的有2块黄金,而只是通过游戏界面控制。(因为正常情况下,卖出界面你B身上没有黄金是不会显示黄金的,也无法把黄金卖给A)但是没想到,有商店在卖黄金的情况下,会产生能够拖黄金到卖出界面,并且还真的成交了。结果,后台数据一下子没法处理,可能就随机把1种道具卖了。
我以前刚学写程序时也这么偷懒。。。。
原来是国人的思想啊。 |
|