返回列表 发帖
因为游戏设计是这样的:
每种会收集地面掉落物品的魔物,每个魔物单独都有个吃进去东西的列表,这样才能实现打死魔物以后掉落他吞进去的物品。
为了节省服务器资源,避免服务端压力过大,这个列表项目数量是有限的,超过此数量,就吃进去的物品就不会记录(相当于被抛弃)
所以就有那种吃进去以后打死魔物不会掉落吃进去物品的情况

这样解释:

假设魔收集物品列表大小为5
波利->吃进去的物品列表:
1. 三叶幸运草
2. 空瓶
3. 柔毛
4. 苹果
5. 空

如果这个情况,你打掉了一张虫蛹卡片,波利过来吃掉,将会变为->
1. 三叶幸运草
2. 空瓶
3. 柔毛
4. 苹果
5. 虫蛹卡片

你打死波利,虫蛹卡片还会出来

但是,如果是下面这种情况 ->
1. 三叶幸运草
2. 空瓶
3. 柔毛
4. 苹果
5. 毛

你打掉了一张虫蛹卡片,波利过来吃掉,结果将是悲剧的,列表仍旧是 ->
1. 三叶幸运草
2. 空瓶
3. 柔毛
4. 苹果
5. 毛

你打死波利,就不会掉出你被它吞掉的卡片。你要问,卡片哪里去了?我告诉你,系统做丢弃处理了……也就是,消失了
J女逻辑:一个女人不卖,只有2种可能:
1. 大姨妈造访
2. 价格不合适

TOP

原帖由 小骡那耳朵 于 2011-3-23 16:51 发表
这种设定实在是让人无力吐槽了……设定为按先后顺序不就可以避免这种杯具?


技术上是完全可行的。也很简单。但是对于服务器来说是有代价的。需要动态的维护这个列表,即用最新吃进去的东西替换最早吃进去的那个。但是,这样会增加服务器的压力。这选项应该是可设置的。但是目前的服务器都没有开启。
J女逻辑:一个女人不卖,只有2种可能:
1. 大姨妈造访
2. 价格不合适

TOP

原帖由 天使喝可乐 于 2011-3-23 18:15 发表

主要的并不是为了避免服务器压力过大 服务器对于几个数据还是有承受能力的 很大程度上是避免数据处理上的繁琐
是每个怪物有个数组 m01_[1,12,2104]  ←数据为道具ID
关联后,在判断掉落时调用该数组
设定 ...


非也,非也
每张地图N个怪,每个怪一个列表(如果是能新旧更新的,那就是FIFO列表,也就是队列),N张地图
这压力就是几何级增长
也许你说,我再弄个哈希表,只存已经吃了物品的怪——没错,应该就是这样实现
那么再算算,即使是这个列表,这处理列表的工作有繁复,因为你得及时更新列表,还得及时删除已经死掉的魔物,添加新的吃了物品魔物,然后设置魔物列表,还得保证客户端的及时响应
怎么会对服务器没有增加压力
J女逻辑:一个女人不卖,只有2种可能:
1. 大姨妈造访
2. 价格不合适

TOP

原帖由 熊猫小非 于 2011-3-23 21:23 发表
阁下莫非是专业人士?很高端~呵呵


我是谁不重要。喜欢玩RO就是了,哈哈
J女逻辑:一个女人不卖,只有2种可能:
1. 大姨妈造访
2. 价格不合适

TOP

返回列表