staff mod的选择规则,from Hammerman
原帖地址:
http://til.sggo.cn/showthread.php?t=974staff mod的选择
首先,游戏选择加入的技能的数量,作rnd[100](0-99),如果是注入的,加入ilvl。如果得到的大于90,选择3个技能,如果大于70,两个技能,如果大于30,一个技能。
然后选择技能base id,是基于物品ilvl的确定数值。
大于36:5
25-36:4
19-24:3
12-18:2
小于等于11:1
这是所有技能id的基础,然后再经过随机的修正:
20%的机会加1
50%的机会不变
10%的机会减2
20%的机会减1
如果是低品质的物品,最终的数值不大于4。最终的技能id的计算方法如下,skill_adder就是最终的base id,base_id是那个角色类型的技能id的初始值。
id = skill_adder + (base_id + 4 * skill_adder) - 5 + rnd[5]
得到结果后再作rnd[5]。最后选择技能等级的数值,作rnd[100],如果是注入的,加入ilvl/2。
如果大于等于90:+3
如果60-89:+2
如果小于60:+1
以上的说明作用于:
ItemType StaffMods
Cloak asn <unused>
Hand to Hand 2 asn
Primal Helm bar
Pelt dru
Wand nec
Voodoo Heads nec
Scepter pal
Staff sor
Orb sor
Ruvanal的解释:
base_id是每种角色在skill.txt中的第一个技能的id(下面有列表),最终得出的id是在skill.txt中的确定id。你不明白rnd[5]的意思的话,就是一个从0到4的范围。
id = skill_adder + (base_id + 4 * skill_adder) - 5 + rnd[5]
简化公式:
ID = base_id + 5*skill_adder -5 +(0 to 4)
例子:一个20级的人物在商店里买sor的法杖。ilvl=25,base id=4,然后你得到一个减2的修正,skill_adder=2,最后得到的最低的id为:
ID = 36 (first sor skill in list) +(5*2) -5 +0(looking for the lowest ID)
= 41 (Inferno)
最高的id为:(加1的修正)
ID = 36+(5*5) -5 +4(for the highest ID)
=60 (Chilling Armor)