爆率说明
- 格式:doc
- 大小:51.50 KB
- 文档页数:4
爆率说明
1. 填写爆率
1. sk_dorpitemrule填写
ID:爆率的ID,最好在原有的基础上按顺序添加。
Ruleid:物品类型。如果需要添加多个物品类型,则在下面新建相同ID,但Ruleid按顺序从上往下递增。(最多4类物品)
例如:ID:1094 Ruleid:0001 (此类为药品) 则为某个怪会爆出药品,但我们还想要此怪爆出武器,则需要在下面新建ID:1094 Ruleid:0002 (此类为武器)
Chance:爆率数值。基数为千万(10000000)
例如:chance 1000000 则为1000000/10000000,也就是十分之一(1/10)。
Item0---item14:可以同时添加15种同类物品。
2. sk_monstertype填写(选取和爆率相关的说明)
drop_money_chance:钱的爆率数值。基数为百
例如:drop_money_chance 0010 则为10/100,也就是百分之十(10/100)。
drop_item_chance:爆单个物品的几率数值。基数为万(10000)
例如:drop_item_chance 7000 则为7000/10000,也就是十分之七(7/10)。
Explode_item_chance1:小爆爆率数值。基数为万(10000)
例如:Explode_item_chance1 0600 则为600/10000,也就是百分之六(6/100)。
Explode_item_chance2:中爆爆率数值。基数为万(10000)
例如:Explode_item_chance2 0300 则为300/10000,也就是百分之三(3/100)。
Explode_item_chance3:大爆爆率数值。单位为万(10000)
例如:Explode_item_chance3 0100 则为100/10000,也就是百分之一(1/100)。
Drop_item_rule:与之相对应的爆率ID。
例如:sk_dorpitemrule里的ID为1094。那么sk_monstertype里的Drop_item_rule也应该填写1094。
切记:一定要对应,否则无法实现。
2.爆率规则及说明
1.爆率规则(先进行第一步,然后再进行第二步,递进关系)
第一步:
程序会先算出爆出物品个数。(该详细规则如下)
Explode_item_chance3 Explode_item_chance2 Explode_item_chance1 drop_item_chance
大爆 中爆 小爆 单爆
0100(1%) 0300(3%) 0600(6%) 07000(70%)
例如:
1. 程序随机一个随机数,假设1,那么1=1,则会出现大爆的物品个数。
2. 程序随机一个随机数,假设2,那么2>1,程序会与大爆+中爆的和比较。2<1+3=4,此时则为中爆的物品个数。
3. 程序随机一个随机数,假设7,那么7>4,程序会与大爆+中爆+小爆的和比较。7<1+3+6=10,此时则为小爆的物品个数。
4. 程序随机一个随机数,假设30,那么30>10,程序会与大爆+中爆+小爆+单爆的和比较。30<1+3+6+70=80,此时则为单爆的物品个数。
5. 程序随机一个随机数,假设95,那么95>80,程序会与大爆+中爆+小爆+单爆的和比较。95>1+3+6+70=80,此时则不爆。
切记:此过程只看爆出物品的个数(具体大,中,小爆所爆出物品个数参见附表一)
第二步:
个别爆率的规则,也就是sk_dropitemrule里面的内容。此处举例说明:
例如:sk_dropitemrule里面有个怪爆4类物品,而此时前面的算出爆物品数为5。
Id Ruleid Chance Item0 Item1 Item2 Item3 Item4 Item…… Item14
1094 0001 3000000 1 2 3 4
1094 0002 3000000 5 6 7 8
1094 0003 2000000 9 10 11
1094 0004 1000000 12 13
注:item0---item14内应该为物品的ID,此处为描述直观,用数字1-13代替,一个数字代表一个物品ID!
程序一般会随机出现一个数值,例如:
第1次循环:随机出现数值为29,而上面ruleid为0001的爆率为30%,29<30。那么,则会随机在0001类物品里的1、2、3、4选出一个(1、2、3、4出现的几率是相同的)。假设选出了3。(以上为程序的一个循环过程,也就是说要爆出5个物品的话就要进行以上的循环5次。)
第2次循环:假设程序随机出现的数值为49,而0001的爆率为30%,49>30,程序会排除0001,然后将0001和0002的2个chance相加,得到数值60%。49<60,则此时程序会在0002类物品里的5、6、7、8(5、6、7、8出现的几率是相同的)选出一个。假设选出了5。
第3次循环:假设程序随机出现的数值为79。和第2次循环原理相同,0001的爆率为30<79,0002和0001的爆率和为60<79,那么此时就会和0001、0002、0003的爆率和对比。就是30+30+20=80>79,程序就会在0003类物品里的9、10、11(9、10、11出现的几率是相同的)选出一个。假设选 了11。
第4次循环:假设程序随机出现的数值为85。和第3次循环原理相同,但0001、0002、0003的爆率和为80<85,此时就会和0001、0002、0003、0004的爆率和90对比。90>85,则程序就会在0004类物品里的12、13(12、13出现的几率是相同的)选出一个。假设选了13。
第5次循环:假设程序随机出现的数值为92。和第4次循环原理相同,但此时90<92.那么程序就不会进行选择,也就是说不爆。
经过上面的5个循环之后,爆出的物品就会是3、5、11、13。
注:从上面过程看出,可以将爆率个数看成程序的循环次数。
以上过程图示如下:
程序随机数 30% 0001 ①
30% 0002 ②
20% 0003 ③
10% 0004 ④
第1次循环:随机数 29<①=30 则选出0001物品3
第2次循环:随机数 49<①+②=60 则选出0002物品5
第3次循环:随机数 79<①+②+③=80 则选出0003物品11
第4次循环:随机数 85<①+②+③+④=90 则选出0004物品13
第5次循环:随机数 92>①+②+③+④=90 则不选出物品,则不爆
2.爆率注意事项:
1.爆率总和不能超过100%。
例:0001为30% 0002为40% 0003为50%
因为此时爆率超过100%,则此时的0003爆率为100%-30%-40%=30%
2.爆率总和在不超过100%时,各项的爆率顺序不用按顺序排列。如果爆率总和超过100%的话,各项的爆率应该按从小到大的顺序排列。
3. sk_dorpitemrule里的Ruleid最多为4类物品。
4.小,中,大的爆率数值大小顺序为:
小爆 > 中爆 > 大爆
附表一
大暴,中暴,小暴的暴率根据级别调整
Drop取自数据库
EXPLODE_ITEM_CHANCE3, 大暴 暴10~15(7~10)
EXPLODE_ITEM_CHANCE2, 中暴 暴6~9(4~6)
EXPLODE_ITEM_CHANCE1, 小暴 暴2~5(2~3)
10000表示100%
原始暴率: drop
攻击者级别: atkLev
挨打者级别: defLev
1 < AtkLev <= 19
等级相差 <3 … drop
3<= 等级相差 <6 … drop/5
6<= 等级相关 … drop/10
//////////////////////////////////////////////////
19 < AtkLev <= 49
等级相差 <5 … drop
5<= 等级相差 <10 … drop/5
10<= 等级相关 … drop/10
/////////////////////////////////////////////////
49 < AtkLev <= 85
等级相差 <4 … drop
4<= 等级相差 <8 … drop/5
8<= 等级相关 … drop/10
//////////////////////////////////////////////////
85 < AtkLev <= 112
等级相差 <3 … drop
3<= 等级相差 <6 … drop/5
6<= 等级相关 … drop/10
最后返回0,或drop的最大值
此处得到[物品掉落数]