Elin:解析/釣り: Difference between revisions

EN版の更新を反映。魚以外のアイテムを釣り上げる判定に関わる計算式について。
m (注意書きテンプレートを設置(仮))
(EN版の更新を反映。魚以外のアイテムを釣り上げる判定に関わる計算式について。)
Line 25: Line 25:
**ハードコードされた「+2」を追加し、調整されたLVが常にオフセットを持つようにします。
**ハードコードされた「+2」を追加し、調整されたLVが常にオフセットを持つようにします。


==== 例====
*備考:まれに、rndへの複数回の呼び出しの最終結果が理論上は最大19まで上昇し、調整LVが大幅に上昇することがあります。
 
====例====


釣りレベルが「10」の場合:
釣りレベルが「10」の場合:


*「基本レベル」:
*「基本レベル」:  
**「fishLV = rnd(10 * 2) + 1 = rnd(20) + 1」。
**「fishLV = rnd(10 * 2) + 1 = rnd(20) + 1」。
**結果例:「10」。
**結果例:「10」。


*'''調整''':
*'''調整''':
**1つ目 '''rnd(20)''' → 結果 = '''7'''.
**1つ目 '''rnd(20)''' → 結果 = '''7'''.
**2つ目 '''rnd(7 + 1)''' → 結果 = '''3'''.
**2つ目 '''rnd(7 + 1)''' → 結果 = '''3'''.
Line 42: Line 44:
**'''adjustedLV = 10 + 2 + 0 = 12'''.
**'''adjustedLV = 10 + 2 + 0 = 12'''.


====魚LV範囲表 ====
====魚LV範囲表====
{| class="wikitable sortable"
{| class="wikitable sortable"
|-
|-
!釣りレベル!!最低LV!!最大LV
!釣りレベル!!最低LV!!最大LV
|-
|-
|1||3||5
|1||3||4
|-
|-
|2||3||7
|2||3||6
|-
|-
|3||3||9
|3||3||8
|-
|-
|4||3||11
|4||3||10
|-
|-
|5||3||13
|5||3||12
|-
|-
|6||3||15
|6||3||14
|-
|-
|7||3||17
|7||3||16
|-
|-
|8||3||19
|8||3||18
|-
|-
|9||3||21
|9||3||20
|-
|-
|10||3||23
|10||3||22
|-
|-
|11||3||25
|11||3||24
|-
|-
|12||3||27
|12||3||26
|-
|-
|13||3||29
|13||3||28
|-
|-
|14||3||31
|14||3||30
|-
|-
|15||3||33
|15||3||32
|-
|-
|16||3||35
|16||3||34
|-
|-
|17||3||37
|17||3||36
|-
|-
|18||3||39
|18|| 3||38
|-
|-
|19||3||40
| 19||3||40
|}
|}


Line 95: Line 97:
</syntaxhighlight>
</syntaxhighlight>


== 魚の数 ==
==魚の数==
自分の釣りレベルから釣れる匹数を計算する式は次の通りです。
自分の釣りレベルから釣れる匹数を計算する式は次の通りです。


Line 104: Line 106:
*'''rnd''':'''0'''から関数に渡された値までの間のランダムな数値。
*'''rnd''':'''0'''から関数に渡された値までの間のランダムな数値。


====例====
==== 例====
釣りレベルが'''22'''で、魚のレベルが'''1'''と判定された場合、潜在的な魚の数は以下のように計算されます。<pre>rnd(22 / (1 + 10)) + 1</pre>
釣りレベルが'''22'''で、魚のレベルが'''1'''と判定された場合、潜在的な魚の数は以下のように計算されます。<pre>rnd(22 / (1 + 10)) + 1</pre>


Line 111: Line 113:
<pre>rnd(22 / 11) + 1</pre>
<pre>rnd(22 / 11) + 1</pre>


<code>rnd(2)</code>は、'''0'''から約'''1'''の間の乱数を生成します。1を足すと、少なくとも1匹の魚を捕まえることができます。魚の数は、ランダムな結果によって1匹か2匹のどちらかになります。
<code>rnd(2)</code>は、'''0'''から約'''1'''の間の乱数を生成します。1を足すと、少なくとも1匹の魚を釣り上げることができます。魚の数は、ランダムな結果によって1匹か2匹のどちらかになります。
====土地フィート====
====土地フィート====


追加で1匹の魚を捕まえる最初のチャンスは「5%」から始まります。
追加で1匹の魚を釣り上げる最初のチャンスは「5%」から始まります。


土地フィートに以下を含む場合:
土地フィートに以下を含む場合:
Line 133: Line 135:
*'''isFishingSpot''': 土地が'''釣り場(3706)'''であるかどうかを示すフラグ(0または1)。
*'''isFishingSpot''': 土地が'''釣り場(3706)'''であるかどうかを示すフラグ(0または1)。


例えば:
例えば:  
*'''海 (3605)'''が存在し、さらに'''釣り場(3706)'''も存在する場合:
*'''海 (3605)'''が存在し、さらに'''釣り場(3706)'''も存在する場合:
<pre>
<pre>
Line 156: Line 158:


例えば:
例えば:
*chanceForOneMoreFish = 50'''、かつ <code>rnd(100)</code> によって生成された乱数が '''50 以下''' の場合、魚が1匹追加で釣れます。'''  
*chanceForOneMoreFish = 50'''、かつ <code>rnd(100)</code> によって生成された乱数が '''50 以下''' の場合、魚が1匹追加で釣れます。'''


====土地フィートの例====
====土地フィートの例====
Line 206: Line 208:
{| class="wikitable"
{| class="wikitable"
|-
|-
!魚LV!!魚を2匹釣るための最低釣りレベル!!魚を3匹釣るための最低釣りレベル
!魚LV!!2匹釣るための最低釣りレベル!!3匹釣るための最低釣りレベル
!4匹以上釣るための最低釣りレベル
|-
|-
|1||22||33
|1||22||33|| 44, etc.
|-
|-
|5||30||45
| 5||30||45 ||60, etc.
|-
|-
|10||40||60
|10||40||60||80, etc.
|-
|-
|15||50||75
| 15 ||50||75||100, etc.
|-
|-
|20||60||90
|20||60|| 90||120, etc.
|-
|-
| 25||70||105
|25||70||105||140, etc.
|-
|-
|30 ||80||120
|30||80||120||160, etc.
|-
|-
|35|| 90||135
|35||90||135 ||180, etc.
|-
|-
|40||100||150
|40||100 ||150||200, etc.
|}
|}
 
備考:4匹以降の魚の値も同じパターンに従う(前の列と同じ間隔で増加していく)。
====コード (EA 23.40)====
====コード (EA 23.40)====


Line 272: Line 275:
progress = MaxProgress;
progress = MaxProgress;
}
}
</pre>
</pre>  
*'''hit''': 現在の試行回数を追跡します。hit''がsuccessThresholdのランダムロールを超えると魚が釣れたことになります。''
*'''hit''': 現在の試行回数を追跡します。hit''がsuccessThresholdのランダム判定を超えると魚が釣れたことになります。''
*'''progress''': 成功すると自動的に完了します。
*'''progress''': 成功すると自動的に完了します。


Line 294: Line 297:
!釣りレベル!!最小成功閾値!!最大成功閾値
!釣りレベル!!最小成功閾値!!最大成功閾値
|-
|-
|1|| 10||10
|1||10 ||10
|-
|-
|5||10||10
|5||10||10
Line 304: Line 307:
|20||8||10
|20||8||10
|-
|-
|25||8||10
|25|| 8||10
|-
|-
|30|| 7||10
|30||7||10
|-
|-
|35||7|| 10
|35||7||10
|-
|-
|40||6||10
|40||6||10
Line 324: Line 327:
「ヒット」のリセットを決定する計算式は以下の通りです。
「ヒット」のリセットを決定する計算式は以下の通りです。


<pre>resetThreshold = Mathf.Clamp(10 - rnd(fishingLevel + 1) / 5, 2, 10)</pre>
<pre>resetThreshold = Mathf.Clamp(10 - rnd(fishingLevel + 1) / 5, 2, 10)</pre>  


*'''fishingLevel''': 現在の釣りスキルレベル。
*'''fishingLevel''': 現在の釣りスキルレベル。
Line 342: Line 345:
*<code>rnd(31) = 10</code>の場合、計算は次のようになります。
*<code>rnd(31) = 10</code>の場合、計算は次のようになります。
<pre>resetThreshold = Mathf.Clamp(10 - (10 / 5), 2, 10) = 8</pre>
<pre>resetThreshold = Mathf.Clamp(10 - (10 / 5), 2, 10) = 8</pre>
2番目の乱数ロール、<code>rnd(8)</code>が実行されます。結果が「0」の場合、「ヒット」カウンターがリセットされます。
2番目の乱数判定、<code>rnd(8)</code>が実行されます。結果が「0」の場合、「ヒット」カウンターがリセットされます。


====リセット閾値テーブル====
====リセット閾値テーブル====
Line 355: Line 358:
|10||8||10
|10||8||10
|-
|-
|15||7||10
| 15||7||10
|-
|-
|20||6||10
|20||6||10
Line 365: Line 368:
|35||3||10
|35||3||10
|-
|-
|40||2||10
|40||2|| 10
|-
|-
|45||2||10
|45||2||10
Line 405: Line 408:
this.Ripple();
this.Ripple();
}
}
}
</syntaxhighlight>
==チャンスと確率==
釣りで手に入る各アイテムや魚には、以下のルールと計算によって決定される固有の確率が存在します。
{| class="wikitable"
!判定
!ロジック
|-
|何もなし
|これが成功すると、それ以上の判定は発生しません。
|-
|レアアイテム
|「何もなし」が失敗した場合にチェックされます。これが成功すると、それ以上の判定は発生しません。
|-
|ジャンク
|「何もなし」と「レアアイテム」の両方が失敗した場合にチェックされます。成功した場合、それ以上の判定は発生しません。
|-
|魚
|それまでのすべての判定が失敗した場合の代替/デフォルトの判定です。
|}
====初期判定:何も釣れない確率====
最初の判定では、プレイヤーが何かを釣れるかどうかを決定します。この判定に失敗した場合は、アイテムも魚も生成されず、関数は <code>null</code> を返します。何も釣り上げることができない確率は、以下の式で計算されます。
<syntaxhighlight lang="「csharp」">
if (rnd(3 + fishingLevel) == 0)
{
return null;
}
</syntaxhighlight>
*'''計算式''': <code>rnd(3 + fishingLevel)</code> は、<code>0</code> から <code>(3 + fishingLevel - 1)</code> までの範囲の乱数を生成します。
*'''条件''': 結果が <code>0</code> の場合、判定は失敗し、何も釣れません。
=====確率=====
何も釣れない確率は、プレイヤーの釣りレベルが上がるにつれて減少します。
*'''最大値''': <code>3 + fishingLevel</code>、ここで <code>fishingLevel = c.Evalue(245)</code>。
*'''何も釣れない確率''':
**<code>1 / (3 + fishingLevel)</code>
例えば:
*「釣りレベル1」の場合:
**<code>rnd(3 + 1)</code> は <code>0</code> から <code>3</code> の間の数値を生成します。
**<code>0</code> の確率: <code>1 / 4</code> (25%)
*「釣りレベル10」の場合:
**<code>rnd(3 + 10)</code> は、<code>0</code>から<code>12</code>までの数字を生成します。
**<code>0</code>の確率: <code>1 / 13</code>(約7.69%)。
これは、高い釣りレベルでは、判定に失敗する可能性が大幅に減少し、何かが釣れる可能性が高くなることを意味します。
====条件付き判定:レアアイテムと報酬====
このセクションでは、レアアイテムまたは報酬が生成されるかどうかを決定します。最も外側の条件では、ランダムな判定が成功するかどうかをチェックします。条件が満たされると、入れ子になった条件で生成するアイテムの種類を評価します。
<syntaxhighlight lang="「csharp」">
if (rnd(20) == 0)
</syntaxhighlight>
*'''条件''': ランダム判定に合格: <code>rnd(20) == 0</code>。
この条件が満たされると、以下の判定で生成されるアイテムが決定されます。
=====古の本=====
古の本は、特定の条件を満たした場合に釣りによって生成される可能性がある、レアアイテムのひとつです。 生成されるかどうかは、初期判定を通過した後のランダムな判定に依存します。
<syntaxhighlight lang="「csharp」">
if (rnd(30) == 0)
{
text = 「book_ancient」;
}
</syntaxhighlight>
*'''条件''': <code>rnd(30) == 0</code>の場合にアイテムが生成されます。
*'''確率''': <code>1 / 30</code>、つまり約3.33%です。
この条件が満たされた場合、古の本が報酬として作成されます。
=====プラチナ硬貨=====
プラチナ硬貨は、釣りでも稀に入手できるレアアイテムです。 生成はランダム判定に依存します。
<syntaxhighlight lang="「csharp」">
if (rnd(35) == 0)
{
text = 「plat」;
}
</syntaxhighlight>
*'''条件''': <code>rnd(35) == 0</code>の場合にアイテムが生成されます。
*'''確率''': <code>1 / 35</code> (~2.86%)。
この条件が満たされた場合、報酬としてプラチナ硬貨が作成されます。
=====スクラッチカード=====
スクラッチカードは、プラチナ硬貨の抽選後に生成できる交換アイテムです。その生成は、プラチナ硬貨の条件を満たした後のランダムな抽選に依存します。
<syntaxhighlight lang="「csharp」">
if (rnd(2) == 0)
{
text = 「scratchcard」;
}
</syntaxhighlight>
*条件: <code>rnd(2) == 0</code> の場合にアイテムが生成され、プラチナ硬貨と置き換わります。
*確率: <code>1 / 2</code> (50%) ですが、プラチナ硬貨の成功した判定に依存します。
*従属確率: <code>1 / (20 * 35 * 2)</code> (~0.071%)。
**計算式:
***レアアイテムの抽選: <code>1 / 20</code> (5%)。
***プラチナ硬貨の抽選: <code>1 / 35</code> (~2.86%)。
***スクラッチカードの抽選: <code>1 / 2</code> (50%)。
この条件が満たされた場合、プラチナ硬貨の代わりにスクラッチカードが報酬として提供されます。
=====カジノチップ=====
カジノチップは、プラチナ硬貨の判定後に生成される別の交換アイテムです。その生成は、プラチナ硬貨の条件が満たされた後のランダムな判定に依存します。
<syntaxhighlight lang="「csharp」">
if (rnd(3) == 0)
{
text = 「casino_coin」;
}
</syntaxhighlight>
*条件: <code>rnd(3) == 0</code> の場合にアイテムが生成され、プラチナ硬貨と置き換わります。
*確率: <code>1 / 3</code>(~33.33%)ですが、プラチナ硬貨の成功した判定に依存します。
*'''依存確率''': <code>1 / (20 * 35 * 3)</code> (~0.048%).
**計算式:
***レアアイテムの抽選: <code>1 / 20</code> (5%).
***プラチナ硬貨の抽選: <code>1 / 35</code> (~2.86%).
カジノチップの判定: <code>1 / 3</code> (~33.33%)。
この条件が満たされた場合、報酬としてプラチナ硬貨の代わりにカジノチップが支給されます。
=====異国の金貨/銀貨/銅貨=====
異国の金貨/銀貨/銅貨は、プラチナ硬貨の判定後に生成される可能性がある別の交換アイテムです。その生成は、プラチナ硬貨の条件が満たされた後のランダムな判定に依存します。
<syntaxhighlight lang="「csharp」">
if (rnd(3) == 0)
{
text = 「gacha_coin」;
}
</syntaxhighlight>
*'''条件''': <code>rnd(3) == 0</code>の場合にアイテムが生成され、プラチナ硬貨と置き換わります。
*確率: <code>1 / 3</code>(約33.33%)ですが、プラチナ硬貨の成功した判定に依存します。
*従属確率: <code>1 / (20 * 35 * 3)</code>(約0.048%)です。
**計算式:
***レアアイテムの判定: <code>1 / 20</code>(5%)です。
***プラチナ硬貨の判定: <code>1 / 35</code>(約2.86%)です。
***異国の金貨/銀貨/銅貨の判定: <code>1 / 3</code>(約33.33%)です。
この条件が満たされた場合、報酬としてプラチナ硬貨の代わりに異国の金貨/銀貨/銅貨が支給されます。
=====神像=====
神々の像は、プラチナ硬貨の判定後に生成される可能性がある、非常にレアなアイテムです。像の生成はランダムな判定に依存し、7つの像のうちの1つが選択されます。
<syntaxhighlight lang="「csharp」">
if (rnd(50) == 0)
{
    text = "Randomly choose one of these statues: "
          "Statue of Earth",
          "Statue of Element",
          "Statue of Harvest",
          "Statue of Healing",
          "Statue of Luck",
          "Statue of Machine",
          "Statue of Wind";
}
</syntaxhighlight>
*条件: <code>rnd(50) == 0</code> の場合に像が生成されます。
*確率: <code>1 / 50</code> (2%) ですが、これはプラチナ硬貨の成功した判定に依存します。
*従属確率: <code>1 / (20 * 35 * 50)</code> (~0.00286%)。
**計算式:
***レアアイテムの判定: <code>1 / 20</code> (5%)。
***プラチナ硬貨の判定: <code>1 / 35</code> (~2.86%)。
***神像の判定: <code>1 / 50</code> (2%)。
この条件が満たされた場合、以下のいずれかの像がランダムに選択されます。
*『大地の神像』
*『元素の神像』
*『収穫の神像』
*『癒しの女神像』
*『幸運の女神像』
*『機械の神像』
*『風の女神像』
各像は、7つの像の中から等しい確率で選ばれます。
*「特定の像の確率」:像が選ばれる確率は <code>1 / 7</code>(約14.29%)です。
*「特定の像の従属確率」:<code>1 / (20 * 35 * 50 * 7)</code>(約0.00041%)です。
=====小さなメダル=====
小さなメダルは、釣りによって稀に入手できるアイテムです。その入手確率は、2つのランダムな判定に依存します。基本判定とレベル依存の閾値チェックです。
<syntaxhighlight lang="「csharp」">
if (rnd(40) == 0 && rnd(40) < fishingLevel / 3 + 10)
{
text = 「medal」;
}
</syntaxhighlight>
*'''条件''':
**最初の判定は、<code>rnd(40) == 0</code>(2.5%)の場合に成功します。
**2回目の判定は、<code>rnd(40) < fishingLevel / 3 + 10</code>の場合に成功します。
*'''確率''':
**最初の判定は、固定確率:<code>1 / 40</code>(2.5%)です。
**2回目の判定の確率は、プレイヤーの釣りレベルに依存します。
***釣りレベルが高いほど、閾値(<code>fishingLevel / 3 + 10</code>)が大きくなり、成功しやすくなります。
*'''安定した成功に必要な最低釣りレベル''':
**2回目の判定を常に成功させるには、閾値が40以上になる必要があります。これを解くと、
***<code>fishingLevel / 3 + 10 >= 40</code>。
***<code>fishingLevel >= (40 - 10) * 3</code>。
***<code>fishingLevel >= 90</code>。
**<code>fishingLevel = 90</code>の場合、しきい値は <code>90 / 3 + 10 = 40</code>となり、安定した成功が保証されます。
*'''依存確率''':
**複合確率:<code>(1 / 20) * (1 / 40) * (釣りレベル依存のしきい値)</code>。
**釣りレベル10の例:
***しきい値:<code>10 / 3 + 10 = ~13.33</code>。
***2回目の判定は、<code>rnd(40) < 13</code>、または <code>13 / 40</code> (32.5%) の場合、成功します。
***総合確率:<code>(1 / 20) * (1 / 40) * (13 / 40)</code> (~0.01625%)。
====ジャンク====
ジャンクは、釣り中に獲得できる価値の低い報酬のカテゴリーです。 それらの生成は、より優先度の高いアイテム(レアアイテムやメダルなど)がすべて生成されなかった場合のランダムな判定に依存します。
<syntaxhighlight lang="「csharp」">
if (rnd(5 + fishingLevel / 3) == 0)
{
    thing = "Randomly choose one of these junk items: "
            "Boots",
            "Empty Bottle (1)",
            "Empty Bottle (2)",
            "Empty Can (1)",
            "Empty Can (2)",
            "Flotsam from the North",
            "Lucky Cat",
            "Rubber Duck",
            "Rubber Putit",
            "Rubber Snail",
            "Sandal (1)",
            "Sandal (2)",
            "Sea Pants";
}
</syntaxhighlight>
*'''条件''': ジャンクは以下の場合に生成されます。
**レアアイテムのダイスと、それより優先順位の高いダイスすべてが失敗した場合。
**次のダイスが成功した場合:<code>rnd(5 + fishingLevel / 3) == 0</code>。
*'''確率''':
**確率はプレイヤーの釣りレベルに依存します。
***<code>1 / (5 + fishingLevel / 3)</code>。
***釣りレベルが高いほど分母が大きくなるため、ジャンクが生成される確率が減少します。
*'''ジャンクアイテムプール''':
**この判定が成功した場合、以下のリスト(合計15個)からランダムに1つのアイテムが選択されます。
***'''長靴'''
***'''空き瓶 (1)'''
***'''空き瓶 (2)'''
***'''空き缶 (1)'''
***'''空き缶 (2)'''
***'''北からの漂着物'''
***'''ラッキーキャット'''
***'''ラバーダック'''
***'''ラバープチ'''
***'''ラバーカタツムリ'''
***'''下駄'''
***'''草履'''
***'''海パン'''
*『特定のジャンクの確率』:
**リスト内の各アイテムに等しい確率:ジャンク判定の成功確率は <code>1 / 15</code>(約6.67%)です。
=====計算例=====
*『釣りレベル10』の場合:
**ジャンク判定の閾値: <code>5 + 10 / 3 = ~8.33</code>。
**ジャンク判定成功の確率: <code>1 / 8</code> (12.5%)。
**特定のジャンクの確率: <code>1 / 8 * 1 / 15 = 1 / 120</code> (~0.83%)。
====魚====
魚の生成は、優先順位の高いすべての判定が失敗した場合の既定の結果として発生します。
*'''依存関係''':
**魚の判定は、以下の場合に発生します。
***「何もなし」の判定が失敗した場合。
***「レアアイテム」の判定が失敗した場合。
***「ジャンク」の判定が失敗した場合。
=====確率のコンテキスト=====
魚の判定は最後の代替手段として発生するため、その確率は以下のように計算されます。
*'''魚の判定の確率''':
<code>1 - P(Nothing) - P(Rare Item) - P(Junk)</code>
*'''従属確率''':
**これは以下に依存します。
***釣りレベル(「何もなし」と「ジャンク」の確率に影響します)。
***前回の判定の成功/失敗。
=====クジラの計算例=====
釣りレベル19では、クジラの「最低釣りレベル」は19です。 調整レベル(adjustedLV)が40以上の場合、クジラを釣り上げることができます。
クジラを釣り上げる確率を計算するには:
<syntaxhighlight lang="「csharp」">
P(Whale) = 50 / Total Chance of All Eligible Fish
</syntaxhighlight>
もし「Fishing Level 19」におけるすべての対象魚の「total chance」が「22050」である場合、
<syntaxhighlight lang="「csharp」">
P(Whale) = 50 / 22050 = 0.00227 または ~0.227%
</syntaxhighlight>
=====魚の確率表 (魚LV 40)=====
{| class="wikitable sortable」"
|-
!名前!!Chance!!独立確率
|-
|おたまじゃくし||1000||1000 / 22050 (~4.54%)
|-
|ゼニタナゴ||1000||1000 / 22050 (~4.54%)
|-
|亀||200||200 / 22050 (~0.91%)
|-
|ハゼ||1000||1000 / 22050 (~4.54%)
|-
|カジカ||1000||1000 / 22050 (~4.54%)
|-
|金魚||200||200 / 22050 (~0.91%)
|-
|コイ||100||100 / 22050 (~0.45%)
|-
|アユ||1000||1000 / 22050 (~4.54%)
|-
|ウニ||200||200 / 22050 (~0.91%)
|-
|イワシ||1000||1000 / 22050 (~4.54%)
|-
|ウナギ||500||500 / 22050 (~2.27%)
|-
|スズキ||1000||1000 / 22050 (~4.54%)
|-
|キレアジ||1000||1000 / 22050 (~4.54%)
|-
|アロワナ||600||600 / 22050 (~2.72%)
|-
|シロアマダイ||1000||1000 / 22050 (~4.54%)
|-
|ハリマグロ||400||400 / 22050 (~1.81%)
|-
|シマアジ||1000||1000 / 22050 (~4.54%)
|-
|サバ||1000||1000 / 22050 (~4.54%)
|-
|カツオ||1000||1000 / 22050 (~4.54%)
|-
|キンメダイ||200||200 / 22050 (~0.91%)
|-
|ブラックバス||1000||1000 / 22050 (~4.54%)
|-
|フグ||200||200 / 22050 (~0.91%)
|-
|真鯛||500||500 / 22050 (~2.27%)
|-
|ヒラメ||1000||1000 / 22050 (~4.54%)
|-
|マグロ||500||500 / 22050 (~2.27%)
|-
|キス||1000||1000 / 22050 (~4.54%)
|-
|サーモン||500||500 / 22050 (~2.27%)
|-
|マンボウ||1000||1000 / 22050 (~4.54%)
|-
|サメ||100||100 / 22050 (~0.45%)
|-
|深海魚||1000||1000 / 22050 (~4.54%)
|-
|古代魚||200||200 / 22050 (~0.91%)
|-
|ムーンフィッシュ||500||500 / 22050 (~2.27%)
|-
|シーラカンス||100||100 / 22050 (~0.45%)
|-
|クジラ||50||50 / 22050 (~0.23%)
|}
====すべてのアイテムの確率表====
{| class="wikitable"
!アイテム
!独立確率
!従属確率
!備考
|-
|なし
|<code>1 / (3 + fishingLevel)</code>
|N/A
|釣りレベルが高いほど、この結果になる確率が低くなります。
|-
|レアアイテム
|<code>1 / 20</code> (5%)
|<code>1 / 20</code>
|レアアイテムが出るかどうかを決定します。
|-
|古文書(古の本)
|<code>1 / 30</code> (~3.33%)
|<code>1 / (20 * 30)</code> (~0.167%)
|まずレアアイテムの使用に成功する必要があり、その後、自身の確率が適用されます。
|-
|プラチナ硬貨
|<code>1 / 35</code> (~2.86%)
|<code>1 / (20 * 35)</code> (~0.143%)
|レアアイテムの判定成功、その後、独自の確率が必要です。
|-
|スクラッチカード
|<code>1 / 2</code> (50%)
|<code>1 / (20 * 35 * 2)</code> (~0.071%)
|条件が満たされた場合、プラチナ硬貨と置き換わります。
|-
|カジノチップ
|<code>1 / 3</code> (33.3%)
|<code>1 / (20 * 35 * 3)</code> (~0.048%)
|条件を満たした場合、プラチナ硬貨と交換されます。
|-
|異国の金貨/銀貨/銅貨
|<code>1 / 3</code> (33.3%)
|<code>1 / (20 * 35 * 3)</code> (~0.048%)
|条件を満たした場合、プラチナ硬貨と交換されます。
|-
|神像
|<code>1 / 50</code> (2%)
|<code>1 / (20 * 35 * 50)</code> (~0.00286%)
|レアアイテムの判定成功が必要です。7つの像のうちの1つがランダムに選択されます。
|-
|特定の神像
|<code>1 / 7</code> (~14.29% of Statue Roll)
|<code>1 / (20 * 35 * 50 * 7)</code> (~0.00041%)
|7つの像のうち、特定の神像を得る確率。
|-
|小さなメダル
|レベル依存
|<code>(1 / 20) * (1 / 40) * (fishingLevel threshold)</code>
|2回の判定成功が必要です。fishingLevel >= 90で安定した成功。
|-
|ジャンク
|レベル依存
|<code>1 / (5 + fishingLevel / 3)</code>
|レアアイテムの判定に失敗する必要があります。釣りレベルが高くなるにつれ、確率が減少します。
|-
|特定のジャンク
|<code>1 / 15</code> (~6.67%)
|<code>(1 / (5 + fishingLevel / 3)) * (1 / 15)</code>
|特定のジャンク品を入手する確率。
|-
|魚
|<code>fishChance / fishTotalChance</code>
|<code>1 - P(Nothing) - P(Rare Item) - P(Junk)</code>
|他のすべての判定が失敗した場合のデフォルトの結果。
|}
====コード (EA 23.43)====
<syntaxhighlight lang="「c#」" line="「1」">
public static Thing Makefish(Chara c)
{
int num = c.Evalue(245);
if (EClass.rnd(3 + num) == 0)
{
return null;
}
int[] source = new int[]
{
233,
235,
236,
236,
236,
1170,
1143,
1144,
727,
728,
237,
869,
1178,
1179,
1180
};
int num2 = 1;
string text = 「」;
if (c.IsPC || EClass.rnd(20) == 0)
{
if (EClass.rnd(30) == 0)
{
text = 「book_ancient」;
}
if (EClass.rnd(35) == 0 || EClass.debug.enable)
{
text = 「plat」;
if (EClass.rnd(2) == 0)
{
text = 「scratchcard」;
}
if (EClass.rnd(3) == 0)
{
text = 「casino_coin」;
}
if (EClass.rnd(3) == 0)
{
text = 「gacha_coin」;
}
if (EClass.rnd(50) == 0 || EClass.debug.enable)
{
text = new string[]
{
「659」,
「758「,
「759」,
「806「,
「828」,
「1190「,
「1191」
}.RandomItem<string>();
}
}
if (EClass.rnd(40) == 0 && EClass.rnd(40) < num / 3 + 10)
{
text = 」medal」;
}
}
thing thing;
if (text != 「」)
{
thing = ThingGen.Create(text, -1, -1);
}
else if (EClass.rnd(5 + num / 3) == 0)
{
thing = ThingGen.Create(source.RandomItem<int>().ToString() ?? 「」, -1, -1);
}
else
{
int num3 = EClass.rnd(num * 2) + 1;
thing = ThingGen.Create(「fish」, -1, num3);
num2 = EClass.rnd(num / (num3 + 10)) + 1;
int num4 = 5;
if (EClass.Branch != null)
{
num4 += EClass.Branch.Evalue(3604) * 20 + EClass.Branch.Evalue(3605) * 20 + EClass.Branch.Evalue(3706) * 25;
}
if (num4 >= EClass.rnd(100))
{
num2++;
}
}
if (thing != null)
{
thing.SetNum(num2);
thing.SetBlessedState(BlessedState.Normal);
}
return thing;
}
}
</syntaxhighlight>
</syntaxhighlight>
[[Category:Elin Spoiler]]
[[Category:Elin Spoiler]]
[[Category:JA]]
[[Category:JA]]