Elin:解析/釣り: Difference between revisions

m
EN版の更新を反映
(EN版の情報を反映。釣果表はElin:釣りに引っ越し。)
m (EN版の更新を反映)
Line 1: Line 1:
==計算式==
'''[[Elin:釣り|釣り]]'''に関する計算式などのページです。


===魚 LV===
==魚 LV==


自分の釣りレベルから釣れる魚LVを算出する公式:
自分の釣りレベルから釣れる魚LVを算出する公式:
Line 10: Line 10:
*'''rnd''': '''0'''から関数に渡された値までの間のランダムな数値。
*'''rnd''': '''0'''から関数に渡された値までの間のランダムな数値。


====例====
====調整済み魚LV====
釣りレベルが'''22'''の場合、潜在的な魚のLVは次のように計算されます。<pre>rnd(3 * 2) + 1</pre>
 
調整済み魚LVはアイテム作成時に計算されます。これは「rnd」関数に複数回呼び出しを行い、最後に「+2」というハードコードされた値を追加します。最終的な調整レベルは次のようになります。
 
<pre>adjustedLV = fishLV + 2 + rnd(rnd(rnd(rnd(Mathf.Min(fishLV * 2, 20)) + 1) + 1) + 1)</pre>
 
*調整プロセスには以下の処理が含まれます。
**基本となる '''fishLV''' を '''rnd(fishingLevel * 2) + 1''' と決定します。
**「rnd」関数に複数回呼び出しを適用します。
***「rnd」は「0」から「(最大値 - 1)」までの間のランダムな数値を生成します。
***各呼び出しは、直前の「rnd」の結果に依存し、徐々に可能な範囲を狭めていきます。
**ハードコードされた「+2」を追加し、調整されたLVが常にオフセットを持つようにします。
 
==== 例====
 
釣りレベルが「10」の場合:
 
*「基本レベル」:
**「fishLV = rnd(10 * 2) + 1 = rnd(20) + 1」。
**結果例:「10」。
 
*'''調整''':
**1つ目 '''rnd(20)''' → 結果 = '''7'''.
**2つ目 '''rnd(7 + 1)''' → 結果 = '''3'''.
**3つ目 '''rnd(3 + 1)''' → 結果 = '''2'''.
**4つ目 '''rnd(2 + 1)''' → 結果 = '''0'''.


これは1から6までの範囲を示しており、LV1からLV6までの魚を釣ることができることを意味します。
*'''最終的な調整後LV''':
**'''adjustedLV = 10 + 2 + 0 = 12'''.


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


====コード (EA 23.37)====
====コード (EA 23.41)====


<syntaxhighlight lang="c#" line="1">
<syntaxhighlight lang="c#" line="1">
int num3 = EClass.rnd(num * 2) + 1;
int num3 = EClass.rnd(num * 2) + 1;
thing = ThingGen.Create("fish", -1, num3);
thing = ThingGen.Create("fish", -1, num3);
lv = lv + 2 + EClass.rnd(EClass.rnd(EClass.rnd(EClass.rnd(Mathf.Min(lv * 2, 20)) + 1) + 1) + 1);
</syntaxhighlight>
</syntaxhighlight>


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


Line 130: Line 154:


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


====土地フィートの例====
====土地フィートの例====
Line 177: Line 201:


ランダムチェックは、追加の魚の確率が同じであることを除いて、上記と同じ動作をします。
ランダムチェックは、追加の魚の確率が同じであることを除いて、上記と同じ動作をします。
====魚の数表 ====
====魚の数表====
{| class="wikitable"
{| class="wikitable"
|-
|-
!魚LV !!魚を2匹釣るための最低釣りレベル!!魚を3匹釣るための最低釣りレベル
!魚LV!!魚を2匹釣るための最低釣りレベル!!魚を3匹釣るための最低釣りレベル
|-
|-
|1||22||33
|1||22||33
Line 192: Line 216:
|20||60||90
|20||60||90
|-
|-
|25||70||105
| 25||70||105
|-
|-
|30||80||120
|30 ||80||120
|-
|-
|35||90||135
|35|| 90||135
|-
|-
|40||100||150
|40||100||150
Line 268: Line 292:
!釣りレベル!!最小成功閾値!!最大成功閾値
!釣りレベル!!最小成功閾値!!最大成功閾値
|-
|-
|1||10||10
|1|| 10||10
|-
|-
|5||10||10
|5||10||10
Line 280: Line 304:
|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 295: Line 319:
|}
|}


==== リセット ====
====リセット====
「ヒット」のリセットを決定する計算式は以下の通りです。
「ヒット」のリセットを決定する計算式は以下の通りです。


Line 318: Line 342:
2番目の乱数ロール、<code>rnd(8)</code>が実行されます。結果が「0」の場合、「ヒット」カウンターがリセットされます。
2番目の乱数ロール、<code>rnd(8)</code>が実行されます。結果が「0」の場合、「ヒット」カウンターがリセットされます。


==== リセット閾値テーブル ====
====リセット閾値テーブル====
{| class="wikitable sortable」"
{| class="wikitable sortable」"
|-
|-