當前位置:陽光遊戲站 >

單機圖文攻略

> 星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算

星露谷物語 運勢系統源代碼測試解析 運勢怎麼計算

4月末入手stardew valley,玩了一個檔。基本上能玩的元素都玩到了,覺得這個遊戲的許多地方都很有趣,重要的是這個遊戲是xna的,因此想看一下。在網上也沒有什麼比較好的關於運勢系統的分析攻略,所以就選擇了這個來分析。

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算

首先打開遊戲中的人物狀態這裏,發現有5個人物的屬性等級,farming,mining,foraging,fishing,combat這5個技能類型,在這裏我發現其實同等級的技能類型不止有5個,而是6個。

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第2張

第六個是Luck,也就是幸運等級,只不過這個不會顯示在玩家可見的狀態欄裏。

這就解釋了吃某一些料理的時候會增加人物的運氣等級,其實增加的就是這個屬性。

通過代碼發現,這個運氣等級其實和我們每天早起看電視的那個運氣並不是同個東西。

在代碼中顯示:運氣等級在代碼中的名稱叫做:LuckLevel,而每日的運氣名稱叫做:dailyLuck,許多取決於運氣的概率事件都是將這兩個運氣值同時進行計算的。

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第3張

這段代碼顯示的就是每天在電視上看到的內容,會根據每日隨機的運勢值來進行顯示

那每日運勢這個東西是如何計算的呢?

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第4張

是這一句話進行隨機的

意思大概是,會首先在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)

但是,在代碼中發現還有三種不同的運勢,我是沒有遇到過,不知道有沒有人玩到過這三種運勢:

spirits are joyous! Someone gave them a nice offering today, and they are very pleased.意思大概是今天精靈極開心,會帶給你特別好的一天。(0.12)

is rare. The spirits feel absolutely neutral today.意思説這很罕見。今天的精靈絕對中立。(0.00)

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的,不知道這是不是作者沒完成的設定,或者我還沒有發現。而0.00這個值是可以出現的,和它自己説的一樣,這個確實比較罕見(0.5%概率)。

還有就是最上面説的玩家是有“魅力”的,這個時候,有90%的概率是好運(80+20*50%)。那什麼是有魅力的呢,這個我還沒有仔細的分析過,貌似只有作者Debug的時候才用到,或者與創建人物時寫的那個”喜愛的東西“有關。


那這個運勢都會影響什麼東西:

1.動物出產的產品

2.礦洞死亡後物品掉落

3.夏天的閃電

4.作物收穫

5.蟹籠

6.送禮

7.敲碎石頭後掉落物品

下面逐一進行介紹。

1.運勢對動物出產的產品的影響

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第5張

每個動物在購買/出生後會有一個開心值,代碼中叫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.運勢對礦洞死亡後物品掉落的影響

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第6張

相信大家都在礦洞裏掛過,我也掛過兩次,一次掉了武器(我 的黑曜石劍啊啊),還有一次掉了揹包裏的不少東西(包括我給penny送禮用的好幾十個甜瓜)。

這個礦洞死亡掉落也是和運勢有關的:

首先死亡掉落有限制:

1.工具不能掉

2.特定武器不能掉(編號為47,編號為4的武器,可能是初始武器,沒仔細研究)

3.戒指不能掉

4.掉的物品都是可丟棄的,也就是可以把它丟垃圾桶的

這是四條限制,滿足這四條限制後,就會對每個這樣的物品進行一個算法:

(0.25-幸運等級*0.05)-今日的運勢

滿足條件的會掉落。

不同的運勢的掉落率(默認幸運等級為1):

非常開心:11.5%

開心:15.5%

命運在自己手中:20%

不開心:24.5%

搗蛋:28.5%

不過估計一般也沒人運氣不好的時候下礦吧。


3.閃電出現概率的影響

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第7張

上面説的是對夏天閃電出現的影響,我也忘了是不是隻有夏天才有閃電,總之,前提就是那種會打閃電的天氣。在這種天氣的情況下,閃電出現就可以產電池組,所以和雞下不下蛋一個道理吧,都是和運勢有關。

這個比較簡單:

在這種天氣下,你在户外,而且不在沙漠,不同運勢在每個時間點產生閃電的概率為:

非常開心:31%

開心:27%

命運在自己手中:22.5%

不開心:18%

搗蛋:14%


4.作物收穫

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第8張

這個比較有意思了,不知道有沒有大神知道這個dwoop是什麼聲音,我認為這裏作者就是閒着沒事玩了一下,沒什麼實際的意義。

按代碼分析,作物收穫的時候應該有一個特效,就是周邊會散落作物的”殘骸“(吃東西的時候也有,不過不知道是不是同一種用法),基本上是產生就消失了,絕大多數玩家都不會在意的細節。而在收穫作物的時候,有大概0.06%的概率會讓這個”殘骸“產生的數量翻倍。這個概率會受到運勢的影響。不説了,作者自娛自樂。


5.運勢對送禮好感度的影響

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第9張

運勢本身其實對一份禮物給NPC所增加的好感度不會有影響。好感度系統僅有一處是和運勢有關的。研究完之後,我發現作者心機婊。

條件是,當你已經結婚了之後,再給單身的人送禮,會有概率不被配偶發現,並且不會降低好感度(30)。這個概率是:

非常開心:79.5%

開心:75.5%

命運在自己手中:71%

不開心:66.5%

搗蛋:62.5%

下面是運勢對於挖礦系統的影響。這裏我發現運勢會影響三個方面:

1.特殊礦石的爆出數量

2.經驗的獲得(影響挖礦等級)

3.暴擊率

首先來説特殊礦石的爆出數量:

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第10張

代碼比較複雜不多過解釋,直接説結果(默認無技能,就是那個5級10級學一次的,會有影響):

受到影響的礦石種類:

1.鐵(380)

2.石頭(390)

3.銅(378)

4.金(384)

5.銥(386)

當挖礦等級與幸運等級都為1級時,

挖普通石頭礦,有50%概率出1個石頭,50.5%概率出兩個,0.501%概率出三個,0.005%的概率出四個(我概率學的不好,差不多就是這樣。。算暈了),這個概率會因為挖礦等級與幸運等級的提升而增加,貌似增加的還不小(從萬分之0.5到千分之0.5,。這樣)

挖其他的礦,33%概率1個,33%概率兩個,33%概率三個,出四個,五個是可以發生的事件,等級高,學了技能出四個並不特別意外,要是技能等級低的情況下出了5個那你基本和彩票中獎一樣了。

礦石出產數量不因為類型不同而相異

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第11張

2.經驗的增加

默認挖礦等級,幸運等級為1.每挖一塊石頭有概率加5點經驗

這個概率為:

非常開心:5.24%

開心:5.14%

命運在自己手中:5.03%

不開心:4.92%

搗蛋:4.82%

這裏可以發現,其實挖礦等級,幸運等級越高,增加經驗的概率就越大,最大為5.55%

影響不大

星露穀物語 運勢系統源代碼測試解析 運勢怎麼計算 第12張

3.暴擊率。

這個也是和每日運勢不相關的

假設暴擊率為20%,那麼幸運等級1-10的情況的暴擊率為:20.5%-25%。也就是説,暴擊概率的值並不完全取決於裝備上顯示的值,這個基礎暴擊率越高增幅越大,假設暴擊率為50%的時候,

真實暴擊率為:

51.25%-62.5%,還取決於幸運值,

所以,走暴擊流的別忘了同時要增加幸運等級!


補充幾點後來的發現:

1.砍樹的時候,今日運勢好,會額外掉1快木頭(5%),運勢等級高也會掉(4%-40%)

2.挖農場裏的石頭,計算方式同上

3.礦洞中出現特殊寶石(五彩碎片,鑽石,精煉石英等)的概率會受運勢影響,這個有空再説。稍微透漏一下,在今日運氣值滿,採礦,幸運等級都為1的情況下,五彩碎片的出現概率為0.565%。平均200層一個,這個東西出現的最高概率為0.7%。

4.賭博,這個遊戲出現賭博的地方也就是地下賭場了(沒賭過,具體情況不知道),運氣好賭的好(廢話)。代碼發現,賭博是有機會中爆炸大獎的,這個大獎在最佳運勢的情況下(每日運勢滿,運氣等級滿),中獎的概率是驚人的0.00929%。有興趣可以試一試,by the way 第二大獎概率為0.0929%約等於千分之一,坑爹。

5.礦洞中出現礦石的概率。這個不想算了,自然是運勢越好刷的越多,上面説的那個是敲碎了礦石之後爆的數量,這個是每一層的整礦數量。

6.翻垃圾桶出東西的概率:分別為28.5%,24.5%,20%,15.5%,11.5%。翻垃圾桶被人看見了,那個人好感度-25

7.釣魚出寶箱的概率,和翻垃圾桶翻出東西來的概率一樣。至於説運勢好,釣出垃圾的概率小,在代碼中暫時還沒有發現有這個設定。釣魚這系統感覺有不少可研究之處,我還沒有仔細的看過釣魚系統的代碼,以後看了會再分析。

運勢系統的分析暫時就這些了!以後再遇到就補充。目前在分析星露穀物語這款遊戲的全部代碼,遇到有趣的東西(比如作者的彩蛋)就會發到貼吧裏,以後可能還會寫一些關於好感系統,釣魚系統之類的源代碼分析,希望大家多多支持!


  • 文章版權屬於文章作者所有,轉載請註明 https://ygyxz.com/twdj/x8jvd.html