User:びゃっこ/すたぶ/解析魔法: Difference between revisions

 
Line 51: Line 51:
return a;
return a;
}
}
</syntaxhighlight>ここではカーブ関数を使用します:<syntaxhighlight lang="「c#」" line="「1」">
public static int curve(int a, int start, int step, int rate = 75)
{
if (a <= start)
{
return a;
}
for (int i = 0; i < 10; i++)
{
int num = start + i * step;
if (a <= num)
{
return a;
}
a = num + (a - num) * rate / 100;
}
return a;
} }.
</syntaxhighlight>まず初めに、魔法パワーの算出に使用する値(以下、'''基礎魔法パワー''')を決定します。
</syntaxhighlight>まず初めに、魔法パワーの算出に使用する値(以下、'''基礎魔法パワー''')を決定します。


Line 78: Line 60:


最終的な魔法パワーは以下の式で算出されます。
最終的な魔法パワーは以下の式で算出されます。
  魔法パワー = curve('''基礎魔法パワー, 400, 100, 75)''' × MAX((1 + ('''魔法強化エンチャント強度 × 0.01)''' - '''反魔法エンチャント強度 × 0.01'''), 0.01)
  魔法パワー = [[Elin:解析/共通処理|curve]]('''基礎魔法パワー, 400, 100, 75)''' × MAX((1 + ('''魔法強化エンチャント強度 × 0.01)''' - '''反魔法エンチャント強度 × 0.01'''), 0.01)
※MAX()は2値の内どちらか高い方を返す関数です。この場合、反魔法エンチャントによる魔法パワーの低下は0.01倍が下限となります。
※MAX()は2値の内どちらか高い方を返す関数です。この場合、反魔法エンチャントによる魔法パワーの低下は0.01倍が下限となります。
'''curve 関数について: ''' '''<code>curve(a, start, step, rate)</code>'''
簡単に言うと、この関数は数値の伸びを抑えるために使われます。
<code>i = 0</code> をセットします。計算 <code>num = start + i * step</code>. <code>a</code> が <code>num</code> を超えたら、超えた部分に <code>rate / 100</code> を掛けます。その後、<code>i</code> を 1 ずつ増やします。上記のステップを 10 回繰り返します。
関数の曲線の傾きは徐々に小さくなり、最終的には<code>(rate / 100)^10</code> となります。
==魔法:デバフ魔法への抵抗==
==魔法:デバフ魔法への抵抗==
<syntaxhighlight lang="c#" line="1">
<syntaxhighlight lang="c#" line="1">
250

edits