大渝传奇论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

大渝传奇
查看: 6731|回复: 31

2020年还有研究武器升级系统的么~ 大佬是不是早跑了

[复制链接]

2

主题

22

回帖

277

积分

中级会员

Rank: 3Rank: 3

注册时间
2020-11-20
最后登录
2021-4-20
在线时间
17 小时
积分
277
发表于 2020-11-20 16:48:43 | 显示全部楼层 |阅读模式

我在知乎上面 看一个大佬(我觉得他就是个弟弟)发了一篇帖子,先挖出来看看
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!

2

主题

22

回帖

277

积分

中级会员

Rank: 3Rank: 3

注册时间
2020-11-20
最后登录
2021-4-20
在线时间
17 小时
积分
277
 楼主| 发表于 2020-11-20 16:48:59 | 显示全部楼层
话不多说,我们直接上代码。下面图1部分的代码可以理解为砸武器的总纲,这部分代码最后会计算出一个值UserItem.btValue[10],这个值非常重要,它决定了砸武器的结果。图2呢就是通过UserItem.btValue[10]这个值,来给你砸武器结果作出最终判决的代码。这部分就比较简单了,如果UserItem.btValue[10]=1,那砸武器失败。如果UserItem.btValue[10]=10~12,则加攻击。如果是10,则加1点攻击;如果为11,加2点攻击;如果为12,则加3点攻击(即跳点)。如果UserItem.btValue[10]=20~22,则加魔法;如果UserItem.btValue[10]=30~32,则加道术。

所以解读完图2,我们就清楚了,最关键的就是要搞清楚UserItem.btValue[10]是怎么计算得到了。想弄清楚这个,我们就必须得回到图1。


图1:武器升级代码总纲

图2:决定武器升级结果的代码
我们首先看图1的1518、1523、1539和1554行。这几行代码是决定你的武器到底加什么属性。它是根据UpgradeInfo.btDc,UpgradeInfo.btMc,UpgradeInfo.btSc这三个值决定的。如果Dc>=Mc且Dc>=Sc,则加攻;如果Mc>=Dc且Mc>=Sc,则加魔;如果Sc>=Dc且Sc>=Mc,则加道。UpgradeInfo.btDc,UpgradeInfo.btMc,UpgradeInfo.btSc这三个值是由你投入的各项加点最高的两样首饰各自加点的上下值决定的。如果你投了2个铃铛(魔0-7)、2个放大镜(1-3),那么UpgradeInfo.btMc这个值=(0+7)/5+(0+7)/3=3。所以看到这儿,大家就清楚了首饰放得多不如放得好的原因了,因为只看最好的两样首饰。同时,也可以看出来,如果你加魔,你就没必要放加攻和加道的装备,因为只要你的UpgradeInfo.btMc大于对应的Dc和Sc,那对Dc和Sc贡献的首饰将会对最终砸武器的成败没有丝毫影响。至于/5和/3以及这三个值具体的计算方法,我们下期再详细聊。

讲完了这个,我们再看看决定完加哪样之后,会发生什么。我们以加攻为例,看从1523-1538行的代码,我们就可以知道,最终决定武器结果的UserItem.btValue[10]最后等于多少,是和n10这个值有关的。具体机制如下,引擎首先会从[0,g_Config.nUpgradeWeaponDCRate]这个范围区间随机抽一个数。g_Config.nUpgradeWeaponDCRate这个是引擎里可以调整的数字,为了方便说明,我们假定这个值是100。那也就是说,引擎从0-100之间随机抽一个数字。如果这个数字小于n10,则UserItem.btValue[10]=10,即武器升级成功且至少加1点攻;否则,UserItem.btValue[10]=1,即武器升级失败。

如果前一步判定武器升级成功且n10大于63,系统会再从[0, g_Config.nUpgradeWeaponDCTwoPointRate]之间再摇一个数。这个g_Config.nUpgradeWeaponDCTwoPointRate是调节武器跳点升级的变量,这个值越大,跳点越难。我们就以g_Config.nUpgradeWeaponDCTwoPointRate=30为例好了,也就是从[0,30]间再抽一个数。如果这个抽出来的数=0(概率为1/30),那么UserItem.btValue[10]=11,即武器跳1点(即加2点攻)。如果n10还大于79的时候,系统则会从[0,g_Config.nUpgradeWeaponDCThreePointRate]再抽一个数决定武器是否跳2点。

如果你耐心看完以上的解读,你应该就能明白,整个砸武器的过程中会有1-3次摇随机数的过程,这部分我们是无法控制的。对于游戏玩家来说,唯一能做的就是通过科学的方法提高n10,让n10尽量高,从而最大概率地避免让UserItem.btValue[10]=1并且尽可能地实现跳点。那n10这个值是怎么算的呢?1526这一行就是n10的计算过程,它由n90,UpgradeInfo.UserItem.btValue[3] , UpgradeInfo.UserItem.btValue[4], User.m_nBodyLuckLevel这四个变量以及一大堆常数通过各种数学运算得到。
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

2

主题

22

回帖

277

积分

中级会员

Rank: 3Rank: 3

注册时间
2020-11-20
最后登录
2021-4-20
在线时间
17 小时
积分
277
 楼主| 发表于 2020-11-20 16:49:15 | 显示全部楼层
上回我们讲到了武器升级的总纲,也讲到了我们玩家为了提升武器升级成功率能够做的唯一一件事情就是用最科学的方法提升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)武器在幸运高的情况下,成功率会变高。因此,有条件的话,最好把武器加上幸运。至于人物幸运等级,大家能做的就只有多杀怪,少犯罪杀人这一条方法了。
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

2

主题

22

回帖

277

积分

中级会员

Rank: 3Rank: 3

注册时间
2020-11-20
最后登录
2021-4-20
在线时间
17 小时
积分
277
 楼主| 发表于 2020-11-20 16:49:32 | 显示全部楼层

有点乱 将就看吧, 这个玩意儿我 看半天总结出来的  就是 一点吊用都没有,回头还在那个随机函数那里,如果想要武器升级达到100%  就必须得 预测随机函数。如何预测,我倒是做了一些尝试,等这贴有人来了再说吧
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

4

主题

15

回帖

259

积分

中级会员

Rank: 3Rank: 3

注册时间
2020-8-8
最后登录
2024-1-1
在线时间
48 小时
积分
259
发表于 2020-11-21 14:42:28 | 显示全部楼层
不懂哟,原来在万宇上有个叫  没事发呆下的,升级很厉害的,现在看不到了!怀念!!!
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

40

主题

266

回帖

1720

积分

金牌会员

Rank: 6Rank: 6

注册时间
2020-6-25
最后登录
2023-9-1
在线时间
264 小时
积分
1720
发表于 2020-11-21 15:18:36 来自手机 | 显示全部楼层
完全看不懂!升武器喝油的都是牛逼人物,
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

85

主题

1003

回帖

1万

积分

一星主宰

Rank: 8Rank: 8

注册时间
2019-11-8
最后登录
2024-1-25
在线时间
735 小时
积分
10740

热心会员最佳新人活跃会员

发表于 2020-11-21 17:42:53 | 显示全部楼层
空了我砸把开天试试,现在经典区白板开天还是90元左右。
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

70

主题

671

回帖

3048

积分

钻石会员

Rank: 7Rank: 7Rank: 7

注册时间
2020-2-7
最后登录
2023-7-7
在线时间
249 小时
积分
3048
发表于 2020-11-21 19:46:18 | 显示全部楼层
黑市的代码 研究下 ,有共享的么
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

28

主题

42

回帖

360

积分

中级会员

Rank: 3Rank: 3

注册时间
2019-9-14
最后登录
2021-3-19
在线时间
24 小时
积分
360
发表于 2020-11-22 17:33:33 | 显示全部楼层
没有任何帮助。数据大概是从S服服务端用的数据出来的。SD不知道更新换代几个版本了。如残刀法为例,186以前的区有95%,187-188有80%,189以后的区砍到了60%。数据一直在更新换代,今天研究出来的明天报废。至于规律这种东西,高手都只知道一点,死亡后规律刷新。所以升刀一定不能被K死。就算你3天一把+7吧。要废多少吧,成了价值有几何?十几块。有意思吗?没有意思
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

2

主题

22

回帖

277

积分

中级会员

Rank: 3Rank: 3

注册时间
2020-11-20
最后登录
2021-4-20
在线时间
17 小时
积分
277
 楼主| 发表于 2020-11-23 08:40:05 | 显示全部楼层
zhaomeishifadai 发表于 2020-11-21 14:42
不懂哟,原来在万宇上有个叫  没事发呆下的,升级很厉害的,现在看不到了!怀念!!! ...

以前厉害和现在厉害真是两码事~因为以前的规律不适用用现在。而探索现在的规律才是难事
大渝传奇论坛已开启账号手机验证。未验证用户将无法发贴回贴等操作。请大家尽快完成验证(未验证用户发贴回贴会自动跳转至验证页面)。 大渝传奇1.76版本已经开放,下载体验请进大渝传奇版块查看!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|大渝传奇论坛 ( 渝ICP备15011245号 )|网站地图

GMT+8, 2024-4-27 08:07 , Processed in 0.035373 second(s), 9 queries , Gzip On, MemCached On.

快速回复 返回顶部 返回列表