|
20200419更新:发稿后收到不少小伙伴们的留言,其中包括对一些文中错误的更正。感谢大家,今天把这些内容一并更新。同时提醒大家,本文结论是根据分析gameofmir引擎代码得到的,一些具体数值上的设定并非绝对适用于官服以及其它引擎。因此建议大家只参考整体方法思路。
-------------------------------------分隔线--------------------------------------------------
认真玩,深度聊。本来以为之前写的文章没啥人看,但看见很多小伙伴留言说在等着更新,内心还是小感动了一下,于是心想不管怎么说也先把武器升级这块给完整写完。
OK,话不多说,我们接着上回的聊。上回我们讲到了武器升级的总纲,也讲到了我们玩家为了提升武器升级成功率能够做的唯一一件事情就是用最科学的方法提升n10这个值。那n10这个值是怎么算的呢?我列个公式吧:
n10 = min(85, n90 * 7 + 10 + 武器幸运值 - 武器诅咒值 + 人身幸运等级)
从上式看出,n10最大取值为85,决定n10的主要因素有4个:n90的值,要升级的武器幸运值,要升级的武器诅咒值,人身自身幸运等级。
我们先讲讲后三个因素:从上式看出,武器幸运值越大,n10越大;多一点幸运值,n10就会多1点;反之,武器多一点诅咒,n10就会少一点;而人物自身的幸运等级也会对n10有影响。值得一提的是,这个数值是不可见的,并非身上所有装备的幸运相加的值。这个值与杀怪数,杀人数有关。杀怪会增加该值,杀人会降低该值。
接下来是比较复杂的n90,n90=min(11, 目标属性的首饰加点),最大不超过11。
其中,目标属性的首饰加点,即是上回我们提到的UpgradeInfo.btDc, UpgradeInfo.btMc, UpgradeInfo.btSc。如果UpgradeInfo.btDc最大,则武器升级加攻击;若UpgradeInfo.btMc最大,则武器升级加魔法;若UpgradeInfo.btSc最大,则武器升级加道术。UpgradeInfo.btDc, UpgradeInfo.btMc, UpgradeInfo.btSc是怎么算的呢?上回我们说了,这三个值是由你投入的各项加点最高的两样首饰各自加点的上下值决定的。嗯?好像听不太懂是吗?那我们举个例子好了。
假设我在升级武器时,投入了2件蓝翡翠项链,1个绿色项链,2个圣战项链,2个龙之手镯,2个灵魂项链。那这三个值分别会是多少呢?
首先我们看攻击,即UpgradeInfo.btDc。蓝翡翠的攻击力是2-2,其上下值相加为4点;绿色项链的攻击力为2-5,其上下值相加为7点;圣战项链的攻击力3-6,其上下值相加为9点。那么,对于攻击这一项来说,加点最高的两样首饰是2个圣战项链。所以UpgradeInfo.btDc=(3+6)/5+(3+6)/3=4。蓝翡翠和绿色项链相当于白扔,一点儿用都没起。这里/5和/3是引擎所设定的,意思是加点最高的首饰的上下值和只取其20%,加点次高的首饰上下值和只取33%。小数点后的小数统统舍去。
同理,对于魔法,UpgradeInfo.btMc=(0+3+1)/5+(0+3+1)/3=1。可能有同学要问,为什么不是(0+3)呢?这是因为手镯的属性普遍低于同等级的项链和戒指,所以在升级武器时,引擎会对手镯有个+1的优惠,让它们的作用比面板上的值多1点。
同理对于道术,UpgradeInfo.btSc=(1+6)/5+(1+6)/3=3。
计算完这一圈后,我们知道了UpgradeInfo.btDc=4, UpgradeInfo.btMc=1, UpgradeInfo.btSc=3。所以这次升级武器会加攻击,也就是说攻击会是此次砸武器的目标属性。
绕了一大圈,我们再说回n90。因为已经确定了目标加点属性是攻击,所以n90=min(11,UpgradeInfo.Dc)=min(11,4),即11和4两个数中取最小,则自然就是4喽。
算完了n90=4,下面就可以计算n10啦。假设武器无幸运无诅咒,人物幸运等级为0。将n90=4代入最上面的n10计算公式,可以算出n10=min(85, 4*7+10)=min(85,38)=38。
N10确定后,后面的事情就完全是看人品了。我们再回顾一下上期对升器武器结果的判断:
(1)系统从[0,g_Config.nUpgradeWeaponDcRate]范围随机抽一个数,如果这个数小于n10,则武器升级成功,至少加一点攻击;
(2)如果n10>63,那么系统再从[0, g_Config.nUpgradeWeaponDCTwoPointRate]中随机抽一个数,如果这个数=0,那么武器跳点(即加两点攻击)。
(3)如果n10>79,那么系统再从[0, g_Config.nUpgradeWeaponDcThreePointRate]中随机抽一个数,如果这个数=0,那么武器跳两点(即加三点攻击)。
为了让大家更容易理解,还是举刚才的例子。我们假设在引擎里,g_Config.nUpgradeWeaponDcRate=100, g_Config.nUpgradeWeaponDCTwoPointRate=30, g_Config.nUpgradeWeaponDcThreePointRate=200。那么结果是怎么判定的呢?
首先,系统从0-100之间(准确说是0-99,不包括100)随机抽一个数。我们假设抽到的数字是24。如果24<我们的n10(别忘了我们的n10是38),那么恭喜你:武器升级成功,至少会加1点攻击。
对于正常176或者180的服来说,算到这里基本就已经算是完事儿了。因为n10想大于63甚至79,基本上是不太可能的。但如果你真的有极品装备(或者是185以上的服,有特别强的首饰),能将n10推至80以上,假如n10=81>63时,所以系统再从0-30间抽一个数。我们假设抽到了0(这个概率是1/30),那么武器实现了跳点,加2点攻击。
然后又因为我们的n10还大于79,所以系统再从0-200间抽一个数。这次运气没那么好,抽到的数是77——不是0!那么很可惜,跳2点失败。最后武器升级的结果就是攻击+2。
如果你耐心看到了这里,恭喜你,你已经掌握了武器升级全部的算法流程。最后,我们做2点简单的总结,讲一下如何最高效科学的升级武器从而避免不必要的浪费:
(1)武器升级目标属性的首饰投入2件即可,多了浪费;最高点数的首饰上下值相加除以5的余数要尽量小(因为要除以5舍去小数点后面的数),次高点数首饰上下值相加除以3的余数要尽量小(因为要除以3舍去小数点后面的数)。
(2)武器在幸运高的情况下,成功率会变高。因此,有条件的话,最好把武器加上幸运。至于人物幸运等级,大家能做的就只有多杀怪,少犯罪杀人这一条方法了。
亲爱的小伙伴们,你们会砸武器了吗?下期我们聊聊战士的伤害输出研究,敬请期待吧。 |
|