星露谷物語 從游戲代碼層面探討星級釣魚點解析
- 來源:互聯(lián)網(wǎng)
- 作者:洛塵
- 編輯:ChunTian

星露谷物語 從游戲代碼層面探討星級釣魚點解析
從游戲代碼層面探討星級釣魚點問題
?????
今天看貼吧有不少人在爭論流傳的必出星級釣魚點是否確實是因為地點才出星級魚的問題。
所以晚上翻了下代碼, 先上結(jié)論, 等下有空的話再更新推論截圖和計算公式。
結(jié)論: 一般情況下, 出不出星級魚和地點無關(guān), 而是與浮標(biāo)位置離最近非水格子的距離有關(guān)(當(dāng)然還有其他因素影響)。
但是星級釣魚點也有一定的道理, 因為在那些地點揮桿一般就是會把浮標(biāo)揮到較好的位置。
不想看代碼的可以直接拉到最下面看公式和 Tips.

首先在游戲代碼里找到與魚評星級直接有關(guān)的決定性語句, 就是上圖選中的那行
fishQuality 不難看出就是魚的質(zhì)量等級, 當(dāng) fishSize < 0.33 就是無星, 在 0.33~0.66 內(nèi)就是銀星, 高于 0.66 就是金星。
注意這里的 fishSize 跟 this.fishSize 是不同的, 是傳進來的參數(shù)。
那么繼續(xù) trace 看看在哪里生成了這個 BobberBar 對象。

在這個函數(shù)最后一行可以看到 new 了個 BobberBar 對象, 而傳進去的 fishSize 的值跟上面劃線的部分有關(guān), 中間算法先略過不提。
追到最上面可以看到 clearWaterDistance 這個變量是由 distanceToLand 這個方法的返回值決定的, 于是查看這個方法。

這個方法里面涉及到的是對于浮標(biāo)附近區(qū)域的 tile 的 property 進行判定。
一開始檢查的范圍是以浮標(biāo)為中心 3x3 的矩形, 然后是 5x5 …… 一直到 11x11.
如果檢查的區(qū)域內(nèi)有屬于不是水的(并且在地圖內(nèi)的) tile 的話, 即跳出。
返回的值:
3x3 對應(yīng) 0
5x5 對應(yīng) 1
...
11*11 對應(yīng) 4
13*13 對應(yīng) 5
至此, 一般情況下決定魚的等級的所有參數(shù)均已得知, 可以直接寫出式子。
但我還是嘗試找了下是否有由地點來影響評級的片段, 最后沒有找到, 只發(fā)現(xiàn)由地點影響的魚是那些限制某區(qū)域釣的魚王, 比如說:


================================================================
最后附上魚類評級式子和尺寸的大小式子:
魚類評級式子:設(shè) X = max(0, min(1.0, (浮標(biāo)離岸距離 / 5.0 * [(1 + (min(10, 釣魚等級) / 2) ~ 6)內(nèi)取隨機數(shù) / 5.0] * (1.0 + (-10 ~ 10)
內(nèi)取隨機數(shù) / 100))));
浮標(biāo)離岸距離: 3x3內(nèi)有非水=0, 5x5內(nèi)有非水=1 ... 13x13內(nèi)有非水=5. 這里的單位是 tile, 不一定是游戲里的格子, 默認情況下應(yīng)該是 64 像素
大。
X 為 [0 - 0.33) 無星, [0.33, 0.66) 銀星, 0.66 以上金星。
例子: 浮標(biāo) 11x11 內(nèi)均是水(以浮標(biāo)為中心,半寬為 5), 即浮標(biāo)離岸距離=4. 且釣魚等級=10 的且隨機數(shù)均取中間值的情況下
X = max(0, min(1.0, (4 / 5.0 * 6.0 / 5.0) * (1.0 + 0 / 100))) = 0.96. 大于 0.66 所以是金星。
尺寸大小式子:(該種魚最小尺寸 + (最大尺寸 - 最小尺寸) * X )向上取整。
所以是否是星級魚由 釣魚技能等級 浮標(biāo)位置 隨機值 來共同決定。
在過程中發(fā)現(xiàn)的一些其他東西:
1. 部分魚對釣魚等級有需求
2. waterDepth 一般情況下就是 clearWaterDistance/distanceToLand
3. waterDepth 影響魚咬鉤的效率(撒下浮標(biāo)到有魚上鉤的時間)
4. clearWaterDistance 影響寶藏種類。
點此進入3DM《星 露谷 物語》游戲論壇專區(qū)

玩家點評 (0人參與,0條評論)
熱門評論
全部評論