|
看了张全写的《升级、合成成败因素的分析》,里面说成功几率是用某几个节拍器在计算,并说这样是最简单的方法,我看了后感觉不怎么赞同,这样其实是极大的增加了服务器的负担的,我在评论里说了我自己的观点,其实也是一个推测拉。 就我一个不太懂的人来说要设计MU这样大型的程序无意是井蛙望月,但是如果让我设计一个简单的模拟合成的程序,我要怎么样设想呢? 就是一个随机函数
首先要用Randomize取一个随机化种子(VB如不设置的话,每次产生的随机数会重复) 这个种子应当是每个人在不同的状态,不同的时间取到的无规则的,比如是午夜到现在经过的毫秒数,也比如。。。。。你的经验值的某个位数 (表斜眼看我,因为我用一个人物用灵魂点2把+7~12卓越一击无幸运太阳剑,用了4个灵魂,下了4次线,点了4次。都没有失败,都到9了。之后出去打了个怪,点鞋带幸运都爆了,我就想,如果我没有改变我人物的状态值[经验],那么会不会这个人物第一个灵魂都成功呢?又有人说那么1级人物是0怎么算了,表问我,我也疑问呢。这样我也想到在17173上一篇文章说在人物刚刚升级后立刻升级装备成功率很大,那么也是经验值的某几个数的问题?还有就是合装备要求人物等级在10以上,这样的规定初衷是什么?是不是无法取到某个种子?)
取到种子后事情就简单了 比如此次点击或合成的成功率为 **% (0.**) 那么服务器接到你点装备或合成的指令,立刻进行运算,简化点就是
if(int(random(1)+(0.**-0.5))==1) {...成功指令} else {...失败指令}
以上用C语言,判断句的意思是,random(1)在0-1之间任意取一个随机数. 0.**是此次的成功率,减去固定成功率0.5后成为附加成功率 比如无幸运装备点灵魂时成功率为0.5,相减后为0,也就是说产生的随机数在0-0.5,0.5-1之间的机会是均等的,int进行4舍5入取整后,大于0.5的数值为1,那么就成功,反之就失败(值为0) 而幸运装备点灵魂的成功率为0.75,那么减去0.5后为0.25,在与随机数相加,这就是说,除非随机数取在了0-0.25之间,+0.25后才小与0.5,用INT后值为0,表示失败. 无幸运装备冲+11时成功率为0.45,减去0.5后值为负的0.05,也就是说,随机数只有产生在0.55-1之间取整后值才为1,代表成功.
以上只是简单的运算,事实可能不这样简单,但估计思路会差不多,设计人员不会在多余的计算你的坐标,你是否喝酒,你网速是否够快,是不是,所以很多方法啊,都是个人的一种信仰,一种直觉.但这样确实是重要的,你的直觉确实很重要,心情好的时候运气自然就好,自然成功.
呵呵,我早已经忘了怎么编程了,只是我的装备被系统复制了,全无法装备,9C调查了几天了,无聊才写的,错误多多,骂人的,我就当你骂自己了.
我是6-2的[卓越的]阳光星愿 估计我的号时间会不太久了,因为很多朋友都因为复制物品被封了
祝福下大家,也许有人会说说了半天到底怎么点才能成功啊,我也不富裕,当然是也不知道,但随机化种子是非常重要的,有兴趣的人可以用VB试试,取一样的种子,取的随机序列是一样的,大家都来研究到底9C用什么当这个种子吧.
怀念我老婆sunsun22,虽然......呵呵,不说了,大家愉快
|