Jump to content

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

no edit summary
No edit summary
No edit summary
Line 4: Line 4:
|+
|+
|-
|-
!値!!意味
!値
!意味
|-
|-
|(93)|反魔法
|(93)
|反魔法
|-
|-
|(961)|魔法耐性
|(961)
|魔法耐性
|-
|-
|55|物理軽減|
|55
|物理軽減
|-
|-
|56|属性軽減|
|56
|属性軽減
|}
|}
==計算==
==計算==


上から見ていくので、計算の順序もこの通りになります。
上から見ていくので、計算の順序もこの通りになります。
===反魔法による物理ダメージ増加===
  Element e;
  Element e;
         if (ele == 0 || ele == 926)
         if (ele == 0 || ele == 926)
Line 27: Line 33:
         }
         }
          
          
この箇所は攻撃属性ごとの処理をしていて、Voidが物理に相当し、物理は反魔法によって強化されます。
この箇所は攻撃属性ごとの処理をしていて、Voidが物理に相当し、物理は攻撃者の反魔法によって強化されます。
強度を2で割ったあまり%だけ上昇します。ただし、下限10により、反魔法が負の大きい強度であっても最低限のダメージが出ます。
強度を2で割ったあまり%だけ上昇します。ただし、下限10により、反魔法が負の大きい強度であっても最低限のダメージが出ます。


Line 42: Line 48:
不明。演出関連か?
不明。演出関連か?


== 属性耐性による軽減 ==
=== 属性耐性による軽減 ===
まずElement.cs中のGetResistLvを見ると、
まずElement.cs中のGetResistLvを見ると、
   {
   {
Line 96: Line 102:
ただし、100-強度には下限100があります。
ただし、100-強度には下限100があります。


===濡れ補正===
  switch (e.id)
  switch (e.id)
             {
             {
Line 117: Line 124:
             }
             }
濡れ状態でダメージが増減する処理です。
濡れ状態でダメージが増減する処理です。
火炎は濡れ状態でダメージ三分の一。
火炎は濡れ状態でダメージ三分の一。
電撃はダメージ1.5倍。
電撃はダメージ1.5倍。


if (origin != null && origin.isChara && origin.Chara.HasCondition<ConSupress>())
===制圧による与ダメージ減少===
if (origin != null && origin.isChara && origin.Chara.HasCondition<ConSupress>())
         {
         {
             dmg = dmg * 2 / 3;
             dmg = dmg * 2 / 3;
         }
         }
制圧状態のキャラの与ダメージが減る処理です。
制圧状態のキャラの与ダメージが減る処理です。
ダメージが、2/3倍になります。
ダメージが、2/3倍になります。


※ここからはしばらく、AttackTypeがFinishでないときの計算です。
※ここからはしばらく、AttackTypeがFinishでないときの計算です。
==敵のレベルに応じたダメージ軽減==
===敵のレベルに応じたダメージ軽減===




Line 134: Line 145:


まず、レベル50以下の敵の軽減率は0%、レベル1074以上の敵は軽減率80%となります。
まず、レベル50以下の敵の軽減率は0%、レベル1074以上の敵は軽減率80%となります。
  if (!this.IsPCFaction && this.LV > 50)
  if (!this.IsPCFaction && this.LV > 50)
  {
  {
Line 220: Line 232:
|80
|80
|}
|}
===物理軽減と属性軽減によるダメージ減少===


  dmg = dmg * Mathf.Max(0, 100 - Evalue((e == Element.Void || e.id == 926) ? 55 : 56)) / 100;
  dmg = dmg * Mathf.Max(0, 100 - Evalue((e == Element.Void || e.id == 926) ? 55 : 56)) / 100;
Line 228: Line 241:


これらの軽減は基本的には種族特性ですが、信仰AFの一部にはこれらを上昇させるものが存在します。
これらの軽減は基本的には種族特性ですが、信仰AFの一部にはこれらを上昇させるものが存在します。
===弱点の知識による与ダメージ減少===


  if (origin != null && origin.IsPC && EClass.player.codex.Has(id))
  if (origin != null && origin.IsPC && EClass.player.codex.Has(id))
Line 234: Line 249:
             }
             }
危ない本かカード収集によるそのモンスターへの与ダメージ増加を示しています。
危ない本かカード収集によるそのモンスターへの与ダメージ増加を示しています。
(100+収集数<ref>未確認</ref>)%増加します。
(100+収集数<ref>未確認</ref>)%増加します。
ただし、上限は110%です。
ただし、上限は110%です。


===盾による軽減===
             if (isChara && Chara.body.GetAttackStyle() == AttackStyle.Shield && elements.ValueWithoutLink(123) >= 5 && (e == Element.Void || e.id == 926))
             if (isChara && Chara.body.GetAttackStyle() == AttackStyle.Shield && elements.ValueWithoutLink(123) >= 5 && (e == Element.Void || e.id == 926))
             {
             {
Line 243: Line 261:
スタイルが盾持ちのキャラにはダメージが0.9倍になります。
スタイルが盾持ちのキャラにはダメージが0.9倍になります。


===ダメージ耐性===
  if (Evalue(971) > 0)
  if (Evalue(971) > 0)
             {
             {
Line 249: Line 268:


ダメージ耐性を持つなら、被ダメージが100/(100+その値)倍になります。ダメージ耐性が何かは不明。
ダメージ耐性を持つなら、被ダメージが100/(100+その値)倍になります。ダメージ耐性が何かは不明。
ただし、(100+その値)は下限25、上限1000に押し込められます。
ただし、(100+その値)は下限25、上限1000に押し込められます。


===大地の加護===
             if (HasElement(1305))
             if (HasElement(1305))
             {
             {
Line 256: Line 277:
             }
             }


大地の加護を持つなら被ダメージが0.9倍。
オパートス信仰による大地の加護を持つなら被ダメージが0.9倍。
 


===狐守===
             if (EClass.pc.HasElement(1207) && isChara)
             if (EClass.pc.HasElement(1207) && isChara)
             {
             {
Line 292: Line 313:
味方ミニオンへの配慮がないために、味方ミニオンが敵からデバフをもらうと、被ダメージが増加すると考えられます。
味方ミニオンへの配慮がないために、味方ミニオンが敵からデバフをもらうと、被ダメージが増加すると考えられます。


 
===オートコンバット時の被ダメージ減少===
             if (IsPCParty && EClass.pc.ai is GoalAutoCombat)
             if (IsPCParty && EClass.pc.ai is GoalAutoCombat)
             {
             {
Line 299: Line 320:


プレイヤーのパーティ内のキャラなら、オートコンバット中はダメージが100/(105+戦略スキル/10)倍になります。
プレイヤーのパーティ内のキャラなら、オートコンバット中はダメージが100/(105+戦略スキル/10)倍になります。
ただし、(105+戦略スキル/10)は下限10、上限110に押し込められます。
ただし、(105+戦略スキル/10)は下限10、上限110に押し込められます。
つまり、戦略スキル50で軽減が上限に達します。
つまり、戦略スキル50で軽減が上限に達します。


 
===メタルフィートによるダメージ軽減===
             if (HasElement(1218))
             if (HasElement(1218))
             {
             {
Line 312: Line 335:
             }
             }
メタルによるダメージ軽減です。
メタルによるダメージ軽減です。
まず、ダメージが(1000-メタルのフィートLv.)/1000倍になります。
 
まず、ダメージが(1000-メタルのフィートLv.)/1000倍になります。メタルのフィートLv.は基本的に999なので、
 
ダメージは1000分の一になります。


そして、ダメージが0以下かつ、0-3が均等に出る乱数で0が出たとき、
そして、ダメージが0以下かつ、0-3が均等に出る乱数で0が出たとき、
ダメージが1増えます。
ダメージが1増えます。
これはメタルにほとんどダメージを与えられない時でも、ときどきダメージが入る現象を起こしています。
これはメタルにほとんどダメージを与えられない時でも、ときどきダメージが入る現象を起こしています。


===致命傷防御によるダメージ軽減===
             if (dmg >= MaxHP / 10 && Evalue(68) > 0)
             if (dmg >= MaxHP / 10 && Evalue(68) > 0)
             {
             {
Line 326: Line 355:
             }
             }
致命傷防御を持っているとき、被ダメージが最大HPの10%を超えるようであれば、ダメージは、num3 + num4になります。
致命傷防御を持っているとき、被ダメージが最大HPの10%を超えるようであれば、ダメージは、num3 + num4になります。
num3は最大HPの10%で、
num3は最大HPの10%で、
num4は元のダメージが最大HPの10%を超えた量に、100/(200 + 致命傷防御の値*10)をかけたものです。
num4は元のダメージが最大HPの10%を超えた量に、100/(200 + 致命傷防御の値*10)をかけたものです。
現状、致命傷防御は黄金の騎士で100、防衛者で50です。
現状、致命傷防御は黄金の騎士で100、防衛者で50です。


※ここからはAttackTypeがFinishでも発生します。
※ここからはAttackTypeがFinishでも発生します。


 
===暴力禁止による与ダメージ消滅===
         if (origin != null && origin.IsPC && EClass.pc.Evalue(654) > 0)
         if (origin != null && origin.IsPC && EClass.pc.Evalue(654) > 0)
         {
         {
Line 338: Line 370:
         }
         }
子狐丸の、暴力禁止エンチャントの効果です。
子狐丸の、暴力禁止エンチャントの効果です。
ダメージがプレイヤーに由来するなら0にします。
ダメージがプレイヤーに由来するなら0にします。


===フェイルセーフ的符号確認===
   if (dmg < 0)
   if (dmg < 0)
         {
         {
Line 346: Line 380:
もしダメージがマイナスなら、0にします。
もしダメージがマイナスなら、0にします。


===攻撃の手痛さ===
  int num5 = Mathf.Clamp(dmg * 6 / MaxHP, 0, 4) + ((dmg > 0) ? 1 : 0);
  int num5 = Mathf.Clamp(dmg * 6 / MaxHP, 0, 4) + ((dmg > 0) ? 1 : 0);
しばらく後に使われるnum5を計算します。
しばらく後に使われるnum5を計算します。
num5は攻撃の手痛さを示すと考えられます。
num5は攻撃の手痛さを示すと考えられます。
まず、ダメージの6倍を最大HPで割ったものを上限4、下限0に押し込めます。
まず、ダメージの6倍を最大HPで割ったものを上限4、下限0に押し込めます。
次に、ダメージが正の数なら、それに1を足し、そうでないなら0を足したものがnum5です。
次に、ダメージが正の数なら、それに1を足し、そうでないなら0を足したものがnum5です。
===マナの体の仕様===
[[Elin:解析/フィート#featManameat (マナの体)|こちらのページで説明されています]]。