Jump to content

User:びゃっこ/すたぶ/解析だめけいさん: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 1: Line 1:
DamageHP()を参照しています。
DamageHP()を参照しています。
==Evalue==
==Evalue==
{| class="wikitable"
{| class="wikitable"
Line 19: Line 20:
|属性軽減
|属性軽減
|}
|}
==計算==
 
==PV==
 
 
ApplyProtection(int dmg, int mod = 100)
    {
        int armorSkill = GetArmorSkill();
        Element orCreateElement = elements.GetOrCreateElement(armorSkill);
        int num = PV + orCreateElement.Value + DEX / 10;
        int num2 = 1;
        int sides = 1;
        int bonus = 0;
        if (num > 0)
        {
            int num3 = num / 4;
            num2 = num3 / 10 + 1;
            sides = num3 / num2 + 1;
            bonus = 0;
            dmg = dmg * 100 / (100 + num);
        }
        int num4 = Dice.Roll(num2, sides, bonus, this);
        dmg -= num4 * mod / 100;
        if (dmg < 0)
        {
            dmg = 0;
        }
        return dmg;
    }
軽装備か重装備かを取得します。
 
PV + 軽or重装備のスキル + 器用/10として変数numを定めて、
 
その値が正である場合、4で割った値を変数num3に保管し、num2=num3/10 +1とし、
 
更にそこから sides = num3/num2 + 1を定義し、bonus=0とします。
 
そののち、ダメージを100/(100+num)倍にします。
 
さらに、num4 = Dice.Roll<ref>よくわからない。専用のページが必要な複雑さ</ref>(num2, sides, bonus, this)としてnum4を定め、
 
ダメージからnum4 * mod<ref>modが何か不明</ref> / 100 を引き算します。
 
最後に、ダメージが負になっていたら0に変更します。
 
==ダメージ計算==


上から見ていくので、計算の順序もこの通りになります。
上から見ていくので、計算の順序もこの通りになります。
Line 262: Line 307:


===ダメージ耐性===
===ダメージ耐性===
  if (Evalue(971) > 0)
  if (Evalue(971) > 0)
             {
             {
Line 267: Line 313:
             }
             }


ダメージ耐性を持つなら、被ダメージが100/(100+その値)倍になります。ダメージ耐性が何かは不明。
ダメージ耐性を持つなら、被ダメージが100/(100+その値)倍になります。


ただし、(100+その値)は下限25、上限1000に押し込められます。
ただし、(100+その値)は下限25、上限1000に押し込められます。
ダメージ耐性は詳細は不明ですが、内部的には物理という属性への耐性であり、物理属性は通常の属性軽減の式では計算が除外されていることから、
ここで計算している可能性があります。魔法属性のファンネルが無属性に弱点であり、この計算式に関連する可能性があります。


===大地の加護===
===大地の加護===