星露谷物語 運勢系統程式原始碼測試解析 運勢怎麽計算
4月末入手stardew valley,玩了一個檔。基本上能玩的元素都玩到了,覺得這個遊戲的許多地方都很有趣,重要的是這個遊戲是xna的,因此想看一下。在網上也沒有什麽比較好的關於運勢系統的分析攻略,所以就選擇了這個來分析。
首先打開遊戲中的人物狀態這裡,發現有5個人物的屬性等級,farming,mining,foraging,fishing,combat這5個技能類型,在這裡我發現其實同等級的技能類型不止有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)
但是,在程式碼中發現還有三種不同的運勢,我是沒有遇到過,不知道有沒有人玩到過這三種運勢:
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的,不知道這是不是作者沒完成的設定,或者我還沒有發現。而0.00這個值是可以出現的,和它自己說的一樣,這個確實比較罕見(0.5%機率)。
還有就是最上面說的玩家是有“魅力”的,這個時候,有90%的機率是好運(80+20*50%)。那什麽是有魅力的呢,這個我還沒有仔細的分析過,貌似只有作者Debug的時候才用到,或者與創建人物時寫的那個”喜愛的東西“有關。
那這個運勢都會影響什麽東西:
1.動物出產的產品
2.礦洞死亡後物品掉落
3.夏天的閃電
4.作物收獲
5.蟹籠
6.送禮
7.敲碎石頭後掉落物品
下面逐一進行介紹。