当前位置:首页 > 游戏信息 > 正文

星露谷物语每日幸运和buff幸运的相对影响分析

星露谷物语每日幸运和buff幸运的相对影响分析-第1张-游戏信息-龙启网

星露谷物语中每日幸运和buff幸运之间有什么相对影响呢?一些玩家可能不是很清楚,下面一起来看看星露谷物语每日幸运和buff幸运的相对影响分析吧。

星露谷物语每日幸运和buff幸运的相对影响分析

最近有萌新提问幸运buff和每日幸运对事件的影响差距到底有多大?和吧友产生了一些争执,虽然我直接应用wiki对幸运的描述但确实wiki也没有解释这个数据是怎么来的。于是打算直接看看源代码。

首先展示wiki提出的幸运模型

简单来说幸运分为每日幸运和buff幸运,每**uff是一个[-0.1, 0.1]中的随机数。对于一些事件两者共同影响发生概率,对于一些事件其中一者影响。但wiki表示:

A 0.01 increase in daily luck generally means a random event is about 1% more likely to happen.

A luck buff of +1 means a random event is roughly 1% more likely to happen. Any luck buff is treated separately from daily luck, so the effects of the two types of luck are not automatically the same; both the types of events affected by luck buffs and the magnitude of the effect can be different.

这话有几层意思:

对大多数事件而言,我们可以套用简单的模型:

第一层,每0.01每日幸运会让随机事件有额外1%概率发生

第二层,每1 buff幸运会让随机事件有额外1%概率发生

第三次, 两种幸运不相互覆盖

第四层,对于受幸运影响的事件,每日幸运和buff幸运影响的程度可能不同;一方面这符合第一层第二层意思,另一方面某些事件可能有额外的系数调整两种幸运的影响程度

对于有额外系数调整影响程度事件,本贴将在最后对这些特殊情况进行粗略的分析。本贴的主旨是证明在非特殊形况下,两者的影响比例确实是1比100

上github,我是直接搜源码。也可以用reflector反编译但我嫌麻烦

大概还有一百多个文件我没放出来,我看了大概五六十个可能含有luck关键词的文件。长的文件动不动上万行,看了我一个多小时,头晕眼花。

先上最关键的证据

看到Game1.cs文件,这个文件是1.5.4版本的 五天前才更新过,所以可以保证时效性

在这个文件的第8243行,我们可以看到每日幸运是如何计算的

这个函数可以简化为 min(0.1, (double)random(-100, 101)/1000)

也就是说在0.1和(double)random(-100, 101)/1000之间取较小的值

(double)表示random(-100, 101)/1000的类型是双精度浮点数

random(-100, 101)表示在-100和101之间随机生成一个数

除了1000就相当于在-0.1到0.101之间随机选一个数。这个时候就能显示出前面min函数的价值,一旦这个数大于0.101就会取0.1和这个数之中较小的,也就是0.1

也就是说这一行实际上是说每日幸运是-0.1到0.1之间的一个双精度浮点数,和wiki上的定义是完全一致的。

下面看到GameLocation.cs文件,这个文件同样是最新的。

看到这个文件的第11606行

ChanceModfier是一个量化幸运对事件产生几率的函数,从这个函数我们就能分析每日幸运和buff幸运的相对影响程度。

ChanceModifier对不同函数会有一些额外的项,这个函数关于挖矿和经验,所以表达式里会额外多一个mining level。

这里ChanceModifer = 每日幸运/2.0 + buff幸运 * 0.001 + c

c是一个我们不关心的常数

buff幸运永远是个正整数,所以这个影响是千分之一

那么每日幸运的范围是多少? -0.1到0.1

到这里我就能明白分歧所在,萌新问的是铱星幸运,我理解的铱星幸运(每日幸运)算的是机会成本,也就是说从最不好运到最好运之间的这段距离都是好运的功劳(buff幸运永远是正的所以没有这个歧义)。从这个角度来看每0.1幸运确实有0.05的幸运,但这只是正半轴;我认为最不幸和最幸运这段距离叫做最幸运,那么这个值还需要乘2,因为原点变成了-0.1,也就是每份每日幸运影响0.1概率。

那么这么算一个是1份对0.1,一个是1份对0.001;相对影响的比例确实是1比100

但是如果把最幸运理解成从中和的幸运 到达最好运或者从中和到最不信的距离,那么一影响的比例就是1比50. 个人来说我对这个定义持保留态度,因为这个显然不是这个区间内能找到的最大子区间的长度,而且对于非对称区间来说这种定义对我来说比较反直觉。但是我也认为这个定义有可取之处,是一种合理的解释;所谓横看成岭侧成峰,毕竟只是个人为的定义罢了。我学计算机,对于计算机领域 数也好 区间也好 概念也好的定义确实也有先入为主的成分。

虽然wiki和我选的是同一种定义,但确实这个定义存在歧义,而且甚至这个值有时不是50也不是100

看到同样是最新的event.cs的第417行

这一行有一个itemlose rate,应该指的是死亡后的物品丢失概率

itemlose rate = 0.25 - buff幸运*0.05 - 每日幸运

可以看到这里的相对影响比例是20.

我不太确定这指个概率是指对于每个物品独立还是对所有物品,还是这是个基础概率但是物品之间互相影响。

但可以确定的是 不管哪个情况,如果每个物品丢失概率都是0,那一定是什么东西都不丢的。

这就会得出一个有趣的结论,每日幸运是铱星,金星或者绝对中立,那只要吃一个棒棒糖(+5buff幸运),丢失物品概率就大于等于0。有兴趣的同学可以试试,当然不保证 在另外哪个文件调整了这个概率,或者调用的时候改了。

ps:绝对中立和中立是不一样的,绝对中立代表每日幸运刚好是0. 中立代表每日幸运是-0.02到0.02之间的一个非0的数

有时候这个比例甚至还要小,不过已经属于比较边缘的特殊情况了

在Locations文件夹里的MineShaft.cs文件第2361

结合语境来看应该是在沙漠矿洞130层之后(也有可能是10层,取决于现版本沙漠矿洞一层还算不算矿洞121)

有一个双倍获取宝石的参数 这个参数是0.01 + 每日幸运/10 + 幸运buff/100

两者的相对影响率高达1比10,那这里就容易产生一个误区了。如果幸运buff这么有效,是不是猛叠幸运buff对这些相对比高的事件会很有效呢。并不一定,这个有效只是相对每**uff有效,如果两者前面乘的系数都很小,那么两者造成的影响就都很小。拿这里来举例,这个满铱星幸运 + 10幸运buff依然只有可怜的12%概率