|
发表于 2007-12-4 11:32:00
|
显示全部楼层
Re:【交流】物品掉落的解决方案
哎,4楼的人真小气,知道也不告诉大家,要想弄清掉落机制就必须有魔兽世界的源代码,当然这是绝对不可能,不过私服的源代码公司同仁有点,兄弟我又在网上四下浏览找寻答案,下面文字是到别人那借来的.
1,所有的X怪,都联系(注意是联系而不是带有,之所以这么说是为了避免有人咬文嚼字)着一张总的掉落率列表(注意是掉落率列表而不是掉落列表,这两个概念很容易混淆)。
...举个例子:不同区也好,不同服也好,不同副本也好,所有的狗王玛格曼达(MC老2),都联系着同样的一张总掉落率列表,包括各职业的T1护腿+专属的紫装(比如速射强弓)+交叉紫装(比如迅击戒指)+交叉蓝色物品(图纸公式)+其他材料(也就是垃圾)。
而且,其中每个物品的掉率在总的掉落列表中都是固定的。为了方便起见,我们可以假设这样分类:
T1护腿(掉率A)+专属的紫装(掉率B)+交叉紫装(掉率C)+交叉蓝色物品(掉率D)+其他材料(掉率E)。
事实上相信每个职业的T1护腿的掉率具体也是不一样的,我们只是为了说明方便先假设这么分。
也就是说,这张总掉落率列表只是决定这些物品在该怪身上可能掉落的几率,而不是掉落。
以上文字和我看法的也一样的,一个怪物联系一张装备掉率表,而且是可修改的.很多公司都这样做的.
以下是我和公司同仁讨论结果
怪物诞生时产生一个类:
NEW NPC()
{
ID="001_011";
Name="奈法里安";
monster="monster011.act";
item="奈法里安.txt";
....
}
假设奈法里安.TXT文件如下
多彩之剑 ID 100 50%
无畏肩膀 ID 200 10%
黑铁头盔 ID 300 20%
....
当一个怪物被攻击服务器判定怪物死亡,服务器加载奈法里安.TXT文件,rand产生随机数,决定掉落何种物品,假设掉落多彩之剑,无畏肩膀.向客户端发出怪物死亡消息,消息中包括掉落物品ID,客户端接收消息,执行怪物死亡动画,随后开始把在道具文件item.dat中核对掉落物品ID,在尸体内产生对应图标.
如果有不同意见的请把自己看法写出来,请不要丢下"如果是WOW大家觉得太近了,说个远点的,暗黑2,大家觉得暗黑2里面的物品掉落是跟怪物绑定的吗?这个答案明显是否定的"的话就走好吗?
|
|