游戏中有各种各样的目标(object),包括箱子,尸体,石头,陷阱,金钱等等,他们的物品掉落规则根据他们在object.txt中initFN(initiationFN)和 controlFN 这两个标识的不同而不同。有些object看起来可能一样,但是事实上他们是不同的object,initFN和 controlFN 标识不同,因而在物品掉落过程中会使用不同的初始值(initiation)和控制函数(control)。而有些外形不同的object则可能使
用相同的初始值(initiation)和控制函数(control)。在object.txt中共有接近600种object 。
一.initFN and controlFN
首先需要了解一下不同的initFN and controlFN分别控制的什么object
initFN:
initfn 2, 其他initFN不能处理的object都归它处理。
initfn 3, 主要用于处理chest。
initfn 57, 用于处理sparkly chest和special chest(就是宝箱类,很多箱子都是special chest,比如act2的Arcane Sanctuary场景有三个方向是以箱子作为结束的。那些箱子也是由initfn 57处理。更多的细节在object.txt中查找)
initfn 27, 用于处理sand maggot lair中的goo piles(就是看上去是绿色的,粘粘的)
initfn 28 ,用于地上摆放着的gold的生成
controlFN
operatefn 4, 主要用于处理chest,包括sparkly chest 和special chest。同时也用来处理ratnest(老鼠窝), caskets(棺材) in arcane sanctuary, hidden stashes in act 5, tombs, and some dead bodies.
operatefn 1, 用来处理绝大部分的棺材,石馆什么的。caskets, beds and sarcophaguses
operatefn 3, urns(瓮), rock piles, baskets(篮子) and jars
operatefn 5, barrels(木桶)
operatefn 14, crates(柳条箱), rogue corpses(rogue的尸体), jugs, rock piles, logs(原木), boulders, stashes, cocoons(茧), goo piles, dead guards and some more.
operatefn 26, bookshelves(书架)
二.TC选择。
所有的object在这里是相同的。
选择的原理:在TearsureClassEx.txt中(Ex是指资料片)有关于箱子的TC定义,其命名规则如下:
"Act "+act_number+" "+difficulty_code{"","(N)","(H)"}+" Chest "+area_code{"A","B","C"}
比如hell难度下act3的object有以下三个TC:Act 3 (H) Chest A,Act 3 (H) Chest B,Act 3 (H) Chest C。
每一act都有A,B,C三种TC,系统按照如下规则确定到底该object属于a,b还是c:
首先,对于每一act系统会选取某一场景,将其alvl作为最高值;同时选择另一场景,将其alvl作为最低值。
然后,根据最高值和最低值将他们中间的区域3等份。
最后,考虑待判定TC的object所在的场景的alvl是属于以上3个区间中的那一个。
第一个则为A,第二个则为B,第三个则为C。
对于每一act所选取的作为最高值和最低值的场景是固定的。
我们这次关心的神秘避难所
普通 噩梦 地狱 场景名称
A________C________C________Arcane Sanctuary
至于这些TC名称代表了什么,这里作个简单介绍:
1.任何object的TC都包括4 pick,即最多掉4件物品。把包含4-picks的一次drop称为对TC的一次调用。(这个概念在后面的宝箱的物品掉落规律中要多次用到,为什么有些箱子能掉很多东西,远远大于4,因为他们在drop过程中会多次调用某一TC)
2.任何object的TC都包括nodrop参数,即每一次pick都有可能选择不掉东西
可以查阅到
TC 名称 rune qlvl
Act 2 (H) Chest C 28 69
所以能掉的最高#是28#。。。刚才那位同学所帖的27#也是绝对符合的
备注
TC 名称 rune qlvl
Act 1 (H) Chest A 26 63
Act 1 (H) Chest B 26 66
Act 1 (H) Chest C 26 66
Act 2 (H) Chest A 28 69
Act 2 (H) Chest B 28 69
Act 2 (H) Chest C 28 69
Act 3 (H) Chest A 30 72
Act 3 (H) Chest B 30 75
Act 3 (H) Chest C 30 75
Act 4 (H) Chest A 32 78
Act 4 (H) Chest B 32 78
Act 4 (H) Chest C 32 78
Act 5 (H) Chest A 33 84
Act 5 (H) Chest B 33 87
Act 5 (H) Chest C 33 87
dya5翻箱子出33#其实不是梦想
三.object的物品掉落的一般过程。
1.再创建游戏的过程中,地图被创建,同时确定所有的object的位置。
2.对于所有合适的object检测它是否变为一个陷阱。变为陷阱的几率是(monlvl1/8 + 5) %.其中monlvl1是从levels.txt中读取,代表普通难度下D2C模式该场景的alvl。如果变为陷阱,则等几率变为8种不同陷阱中的任何一个。注意,有些场景的陷阱只能变为8种陷阱中的少数几个,如sand maggot lair。
3.对于所有合适的chest检测它上锁的几率。上锁的几率是(monlvl1/2 + 8) % ,其中monlvl1同上。未上锁的普通箱子在drop过程中只对TC进行一次调用,而上锁的箱子会对TC进行两次调用。所以上锁的箱子会比不上锁的掉更多的东西
4.按照前面的法则,确定该object的TC。
5.接下来的部分是object中最为特殊的部分。
系统中有些dlls函数会检测不同object的controlFN ,从而确定一个X值,使得该object有(100-X)%的几率不掉任何装备,X%的几率按照选定的TC进行drop。
以下是一些object的X值。
operatefn1, caskets, sarcophagues and beds
始终按照选定TC进行drop。但是有18.07%的几率生成怪物。
operatefn3, urns, jars, baskets, dead body sewers, rock piles
21%的几率按照选定的几率drop。
operatefn14, creates, rogue corpses, skull piles, jugs, loose rocks, a bunch of stashes, rat nests, cocoons, various other
bodies, some beds and a bunch of other stuff too
始终按照选定TC进行drop。
operatefn26, bookhelf
35%掉书, 65%掉卷轴. 鉴定和回城的几率是1:1
operatefn5, barell
21%几率按照选定TC进行drop. 同时18.07%的几率生成怪物
operatefn4, chest
始终按照选定TC进行drop。
6.mf及其他
object掉落的物品成色判断等同于怪物掉落物品的成色判断。但是有时候会有一个特定的品质参数,比如下面要说的sparkly chest和special chest的drop过程。
四.sparkly chest和special chest的drop过程(应该就是特殊的金色箱子的drop过程,英语不好=。=)
当一个sparkly chest或special chest打开时,系统按照不同的概率选择不同的drop方案:
方案1 == 2% chance
方案2 == 4% chance
方案3 == 6% chance
方案4 == 20% chance
方案5 == 30% chance
方案6 == 38% chance
方案1:unique drop:这个方案有特定的品质参数,为unique。系统会对该箱子的TC进行第一次调用,并且强制性将所有掉落的物品设定为暗
金的。除去以下3种情况;
1)该物品类型没有unique形态,则物品降格为rare形态,耐久度*3
2)该物品的ilvl不满足unique形态的qlvl要求,则物品降格为rare形态,耐久度*3
补充说明object drop的ilvl计算:兵器架上的物品, ilvl = arealvl -1; 其它物品 ilvl = arealvl 。
3)掉落的是rune,gold等物品。
系统将检测该次调用所掉落的最后一件物品,如果是暗金的,则本次drop结束。该sparkly chest不会再掉落任何东西。
但是如果最后一件物品属于以上3种情况,则系统会对TC进行第二次调用,并且对第二次调用中最后掉落的物品进行unique检测。
如果成功,则本次drop结束;如果再次失败,则转到方案6继续drop。
方案2:set drop:和1的区别是,该方案的特定品质参数是set。
系统同样首先进行第一次调用,并强制设定掉落物品为set 形态。同样会有3种例外:
1)该物品无set形态,则物品降格为magic形态,耐久度*2
2)ilvl不满足对应的set形态的qlvl要求,则物品降格为magic形态,耐久度*2
3)掉落的是rune,gold等。
系统同样会检测最后一件物品的品质,如果失败则再次调用,如果再次失败则转到方案6继续。
方案3:rare drop:特定的品质参数是rare。其他同1,2
唯一的区别是只有一种例外:即rune,gold等不可能为rare形态的物品。
同样两次检测失败后转到方案6继续。
方案4:magic drop:这里开始有所不同。
特定的品质参数是magic。
系统会前后最多进行10次调用,并检测每次调用最后掉出物品的品质。
如果检测到有3次调用的最后掉落物品是magic形态,则停止下次调用,drop完成。
即使10次调用全部失败,也不会转到方案6去。
方案5:magic drop:特定的品质参数还是magic。
系统会前后最多进行10次调用,并检测每次调用最后掉出物品的品质。
如果检测到有2次调用的最后掉落物品是magic形态,则停止下次调用。而继续掉落(7-#)堆金钱。#的数目等于
前面检测失败的调用次数。至此drop完成。
即使10次调用全部失败,也不会转到方案6去。
方案6:magic drop:首先系统还是前后最多进行10次调用并检测每次调用最后掉出物品的品质。这10次调用的品质参数是magic。
如果检测到有1次调用的最后掉落物品是magic形态,则系统还会调用一次TC,但是这次的调用是没有品质参数的。同时这次调用
的pick次数=(4-#),其中#的数目等于前面检测失败的调用次数。在这次调用中,玩家的mf值将决定掉落物品的品质。(前面过程中
玩家的mf值没起作用)。调用结束后,系统再掉落5堆gold, 2个血瓶和2 个mana瓶.至此drop结束。
有人问牛场翻箱子能出最大#是多少
普通 噩梦 地狱 场景名称
C________C________C________Moo Moo Farm
TC 名称 rune qlvl
Act 1 (H) Chest C 26 66
很明显。。牛场翻箱子能出的最大#是26#。。。
但是牛场的怪确实是可以出33#的
从第四条总结可以看出来只有方案1.2.3的分别2%,4%,6%的概率才会有有runedrop的几率
而且。分别是在例外的情况下产生的。
如果runedrop的原理跟女伯爵的runedrop类似的话,那么,出现高级#的概率其实是相当小的。 |