- UID
 - 459726 
 - 帖子
 - 4185 
 - 精华
 - 8 
 - 威望
 - 229  
 - 阅读权限
 - 100 
 - 性别
 - 女 
 - 来自
 - 神之帝国 专业咸鱼团 
 - 注册时间
 - 2007-10-31 
 
   
 | 
不是说了吗……只要是0.01%的物品,无论你几级去打都是一样的 
 
简单地补习下编程基础好了,虽然我对编程什么的也不是太熟 
例如我要判定一个掉率为0.0x%的物品,最简单的写法是: 
 
if  int((10000)*rnd+1) <=int(x) then 
物品掉落 
end if 
 
注意这个小于等于,这就是零偷出现的原因…… 
如果要进行扩展,例如吃掉宝糖,就后加一个else,循环一次。依然很简单。 
如果要做惩罚,就在前面加一个if判定等级差,直接对x进行修正。但是这里存在一个问题,这里用了rnd,然而结果不允许出现小数,于是如果x出现小数,那么要正确判断两者的关系,两者最终值就都要进行取整,所以有了int。那么,修正后的x取整的结果只可能是0或者1。现在实际情况是有惩罚依然掉,所以0是不可能的,只可能是1。 
 
回过头来看,如果要出现0.005%,那么这段代码要怎么改?重力社再怎么笨也不可能会去动那个rnd的,更不可能再来一段特殊的判断代码,这相当冗余。 
 
嗯,有错,修正 
 
[ 本帖最后由 黑暗咆哮 于 2010-12-7 09:42 编辑 ] |   
 
 
 
 |