《星露谷物语 / 像素谷》运势系统代码分析

更新时间:2022-03-27 23:22:43作者:未知

《星露谷物语 / 像素谷》运势系统代码分析

  《星露谷物语 / 像素谷》中运势系统是怎样的呢?很多玩家都不了解。下面小编带来《星露谷物语 / 像素谷》运势系统代码分析,一起来看吧。

  lz4月末入手stardew valley,玩了一个档。基本上能玩的元素都玩到了,觉得这个游戏的许多地方都很有趣,重要的是这个游戏是xna的,因此想看一下。在网上也没有什么比较好的关于运势系统的分析攻略,所以就选择了这个来分析。现场码字可能比较慢。首先打开游戏中的人物状态这里,发现有5个人物的属性等级,farming,mining,foraging,fishing,combat这5个技能类型,在这里lz发现其实同等级的技能类型不止有5个,而是6个。

《星露谷物语 / 像素谷》运势系统代码分析

  第六个是Luck,也就是幸运等级,只不过这个不会显示在玩家可见的状态栏里。

  这就解释了吃某一些料理的时候会增加人物的运气等级,其实增加的就是这个属性

  通过代码发现,这个运气等级其实和我们每天早起看电视的那个运气并不是同个东西。

  在代码中显示:运气等级在代码中的名称叫做:LuckLevel,而每日的运气名称叫做:dailyLuck,许多取决于运气的几率事件都是将这两个运气值同时进行计算的。

《星露谷物语 / 像素谷》运势系统代码分析

这段代码显示的就是每天在电视上看到的内容,会根据每日随机的运势值来进行显示

  那每日运势这个东西是如何计算的呢

《星露谷物语 / 像素谷》运势系统代码分析

  是这一句话进行随机的。

  意思大概是,会首先在0.0-1.0之间进行随机一个数字,如果这个数字小于0.8,同时玩家是有“魅力”的,这样的话那运气是固定为0.1,也就是“非常开心”,但这个还不是最幸运的情况,最幸运需要到0.12。如果这个数字大于0.8,或者玩家不是“有魅力的”,那么就会对玩家再进行一次随机,相当于是在-0.1-0.1之间随机。这个概率就比较平均了。

  在游戏中,我们一般会遇到几种运势:

  1.精灵非常开心(大于0.07)

  2.精灵很开心(0.02-0.07)

  3.命运掌握在自己手中(-0.02-0.02)

  4.精灵不太开心(-0.02--0.07)

  5.捣蛋(小于-0.07)

  但是,在代码中发现还有三种不同的运势,lz是没有遇到过,不知道有没有人玩到过这三种运势:

  1.The spirits are joyous! Someone gave them a nice offering today, and they are very pleased.意思大概是今天精灵极开心,会带给你特别好的一天。(0.12)

  2.This is rare. The spirits feel absolutely neutral today.

  意思说这很罕见。今天的精灵绝对中立。(0.00)

  3.The spirits are furious. Apparently someone tried to give them a worthless offering... Hmm. It's unwise to play jokes on the spirits!

  意思是精灵很愤怒。显然有人试图给他们糟糕的东西,给精灵开这个玩笑很不明智!(-0.12)

  不过,在代码中分析,按照正常的随机算法,是不会出现0.12或者-0.12的,不知道这是不是作者没完成的设定,或者lz还没有发现。而0.00这个值是可以出现的,和它自己说的一样,这个确实比较罕见(0.5%几率)。

  还有就是最上面说的玩家是有“魅力”的,这个时候,有90%的几率是好运(80+20*50%)。那什么是有魅力的呢,这个lz还没有仔细的分析过,貌似只有作者Debug的时候才用到,或者与创建人物时写的那个”喜爱的东西“有关。

  那这个运势都会影响什么东西:

  1.动物出产的产品

  2.矿洞死亡后物品掉落

  3.夏天的闪电

  4.作物收获

  5.蟹笼

  6.送礼

  7.敲碎石头后掉落物品

《星露谷物语 / 像素谷》运势系统代码分析

  1.运势对动物出产的产品的影响

  每个动物在购买/出生后会有一个开心值,代码中叫happiness。初始值是0xff(255)。也就是你每天摸动物之后,动物头上会出现一个心,就是代表这个动物的开心情况以及表示动物增加了开心值(表示一团乱麻的时候也会加开心值),开心值和点击动物出现的信息里面的心(好感度)是不一样的两个东西。

  开心值<30 : look sad

  30<开心值<200 : look fine

  开心值>200 :looks really happy today!

  根据观察发现好感度的取值是0-1000,对应0-5心。

  根据算法,目前来看,是否产出物品完全与开心值有关,当动物的开心值高于150时产出概率是100%,当小于150时,值越小产出几率越小(75开心值产出率为50%)。

  而运势仅仅是在动物有产出的情况下,决定了产出特殊物品的概率(鸭毛、兔脚)。

  产出特殊产品的算法的大概意思是:

  鸭子:

  当动物开心值大于200时

  ((开心值+好感度)/5000 + 今日的运势)+(玩家幸运等级*0.01)

  当动物开心值小于200时

  ((好感度-开心值)/5000 + 今日的运势)+(玩家幸运等级*0.01)

  兔子:

  当动物开心值大于200时

  ((开心值+好感度)/5000 + 今日的运势)+(玩家幸运等级*0.02)

  当动物开心值小于200时

  ((好感度-开心值)/5000 + 今日的运势)+(玩家幸运等级*0.02)

  根据实际情况估算一下:

  某天,一只鸭子的好感为3心,开心值满,你的幸运等级默认为1的情况,这只兔子在不同的运势情况(取中间值)下产出情况为:

  非常开心:26.6%

  开心:22.6%

  命运在自己手中:18.1%

  不开心:13.6%

  捣蛋:9.6%

  兔子同理。可见运势对动物产出的影响还是很大的。

《星露谷物语 / 像素谷》运势系统代码分析

  2.运势对矿洞死亡后物品掉落的影响

  相信大家都在矿洞里挂过,lz也挂过两次,一次掉了武器(我 的黑曜石剑啊啊),还有一次掉了背包里的不少东西(包括我给penny送礼用的好几十个甜瓜

《星露谷物语 / 像素谷》运势系统代码分析

  3.闪电出现几率的影响

  上面说的是对夏天闪电出现的影响,lz也忘了是不是只有夏天才有闪电,总之,前提就是那种会打闪电的天气。在这种天气的情况下,闪电出现就可以产电池组,所以和鸡下不下蛋一个道理吧,都是和运势有关。

  这个比较简单:

  在这种天气下,你在户外,而且不在沙漠,不同运势在每个时间点产生闪电的几率为:

  非常开心:31%

  开心:27%

  命运在自己手中:22.5%

  不开心:18%

  捣蛋:14%

《星露谷物语 / 像素谷》运势系统代码分析

  4.作物收获

  这个比较有意思了,不知道有没有大神知道这个dwoop是什么声音,lz认为这里作者就是闲着没事玩了一下,没什么实际的意义。

按代码分析,作物收获的时候应该有一个特效,就是周边会散落作物的”残骸“(吃东西的时候也有,不过不知道是不是同一种用法),基本上是产生就消失了,绝大多数玩家都不会在意的细节。而在收获作物的时候,有大概0.06%的几率会让这个”残骸“产生的数量翻倍

《星露谷物语 / 像素谷》运势系统代码分析

  5.运势对送礼好感度的影响

  运势本身其实对一份礼物给NPC所增加的好感度不会有影响。好感度系统仅有一处是和运势有关的。研究完之后,lz发现作者心机婊,并且不会降低好感度(30)。这个几率是:

  非常开心:79.5%

  开心:75.5%

  命运在自己手中:71%

  不开心:66.5%

  捣蛋:62.5%

  晚上接着更

  回来了,下面是运势对于挖矿系统的影响。这里lz发现运势会影响三个方面:

  1.特殊矿石的爆出数量

  2.经验的获得(影响挖矿等级)

  3.暴击率

  首先来说特殊矿石的爆出数量

《星露谷物语 / 像素谷》运势系统代码分析

  代码比较复杂不多过解释,直接说结果(默认无技能,就是那个5级10级学一次的,会有影响):

  受到影响的矿石种类:

  1.铁(380)

  2.石头(390)

  3.铜(378)

  4.金(384)

  5.铱(386)

  当挖矿等级与幸运等级都为1级时,

  挖普通石头矿,有50%几率出1个石头,50.5%几率出两个,0.501%几率出三个,0.005%的几率出四个(lz概率学的不好,差不多就是这样。。算晕了),这个几率会因为挖矿等级与幸运等级的提升而增加,貌似增加的还不小(从万分之0.5到千分之0.5,。这样)

  挖其他的矿,33%几率1个,33%几率两个,33%几率三个,出四个,五个是可以发生的事件,等级高,学了技能出四个并不特别意外,要是技能等级低的情况下出了5个那你基本和彩票中奖一样了。

  矿石出产数量不因为类型不同而相异

《星露谷物语 / 像素谷》运势系统代码分析

  2.经验的增加

  默认挖矿等级,幸运等级为1.每挖一块石头有几率加5点经验

  这个几率为:

  非常开心:5.24%

  开心:5.14%

  命运在自己手中:5.03%

  不开心:4.92%

  捣蛋:4.82%

  这里可以发现,其实挖矿等级,幸运等级越高,增加经验的几率就越大,最大为5.55%

  影响不大

《星露谷物语 / 像素谷》运势系统代码分析

  3.暴击率。

  这个也是和每日运势不相关的

  假设暴击率为20%,那么幸运等级1-10的情况的暴击率为:20.5%-25%。也就是说,暴击几率的值并不完全取决于装备上显示的值,这个基础暴击率越高增幅越大,假设暴击率为50%的时候,

  真实暴击率为:

  51.25%-62.5%,还取决于幸运值,

  所以,走暴击流的别忘了同时要增加幸运等级!

  补充几点后来的发现:

  1.砍树的时候,今日运势好,会额外掉1快木头(5%),运势等级高也会掉(4%-40%)

  2.挖农场里的石头,计算方式同上

  3.矿洞中出现特殊宝石(五彩碎片,钻石,精炼石英看到了有人问这个运势等级怎么提升,lz翻看了一下代码,发现提升方式只有吃+幸运的料理,直接加等级,有持续时间。

  但是!!在gainExperience这个方法里,第一句是一个判断

《星露谷物语 / 像素谷》运势系统代码分析

  fuck!!懂代码的可以看一下。

  )

  所以结论就是,目前没有发现可以增加幸运等级的手段(除了吃料理)。这可能是作者目前没完成的一项设定。

  这里发现失落之书的爆率是20%,如果失落之书全了,那么再挖到都会变成混合种子。冬天挖的东西作者有过调整,山药是40%,冬根更高。