|
テーマ:REDSTONE(3570)
カテゴリ:Red Stone
ボトル投げのダメージの求め方で、「基礎ダメージ段階補正」の説明が分かり辛いとの指摘を受けました。
今回の記事ではその「基礎ダメージ段階補正」について詳しく解説をします。 まずはじめに、結論であるボトル投げでの魔法ダメージ部分の数値を求める式を書きますと ダメージ = ([弾丸の属性ダメージ部分] - INT([弾丸の属性ダメージ部分] * [元素抵抗])) * (1+ [スキルレベル]/10) * (1 + [知識補正] * [知識]/200) となります。 [弾丸の属性ダメージ部分]の説明は要らないと思いますが、例えば「ファイアーボトル」だと+9、「爆弾」だと+12と書かれている部分ですね。 INT()は、括弧の中の数字を整数化します。 具体的に言いますと、括弧の中の数値を越えない最大の数値を返します。 例えば、INT(4.3)ならINT(4.3)=4 INT(0.7)=0 という感じです。 [元素抵抗]は、対象の該当する属性の抵抗です。計算する際は元素抵抗が50%なら0.5として計算してください。 [知識補正]は、プレイヤーの知識が100以上になってから増え始める補正です。 [知識補正]=1 + 0.02 * INT(LOG([知識]/75;2)/0.4032100843167) つまり知識を75で割った値の、底が2の対数をとり、さらに0.4032100843167で割り、INT()で整数化し、0.02をかけ、最後に1を足したものです。 ただし知識が100未満だと知識の値に関わらずこの補正値は1に固定されます。 変な数値があるのは、この式が暫定のものであるからです。後々きれいな数式を求められると思います。 ()で囲まれている部分が他の魔法ダメージを求める部分には無い項です。 ()で囲まれている部分が他の魔法ダメージを求める際の式でいう「基礎ダメージ」にあたります。 「基礎ダメージ段階補正」とは、この()で囲まれている部分が独特の値を取ることから私が名づけた補正です。 さて、この部分が何を意味するのかを説明します。 例えばダメージ部分が+9の弾丸を用いる場合 モンスターに与えるダメージは、モンスターの抵抗に依存して9通りあります。 この「9通り」の分かれ方は、元素抵抗0%から100%の100個の「抵抗の種類」を9グループに分け、抵抗が低いグループの方から順に弾丸のダメージ部分を1ずつ小さくしていった数値を基礎ダメージとして適用することになります。 図で言えば、一番左のグループに属するモンスターは基礎ダメージは弾丸のダメージである「9」がそのまま適用されます。 各グループでもっとも大きな値は、↑の表の値です。 つまり元素抵抗が0%から11.11%までのモンスターは全て、基礎ダメージを9としたダメージを受けることになります。 同様に、11.12%から22.22%の抵抗を持っているのモンスターは基礎ダメージを8としたダメージを受けます。 ただし、赤石の仕様では元素抵抗は整数しかとれないので、小数にはなりません。 よって正確には基礎ダメージが9になるのは抵抗が0%~11%、基礎ダメージが8になるのは12%~22%の対象です。 ※この表だと抵抗が100%でもダメージを与えられそうですが、これは99.999…が100として表示されるだけで、実際の基礎ダメージが1になる抵抗範囲は89%~99%です。 これは、私が始めて「基礎ダメージ段階補正」を扱った時に作った表です。 もう5ヶ月も前の表ですねw 掲示板の質問は、この表の「理論抵抗」が「抵抗をグループ分けした時の最大抵抗」と違っているのは何故か。というものでした。 当時の私の説明が不足していました… ここの「理論抵抗」は 最高のダメージを与えている時の対象の抵抗を0%としたとき その他のダメージを与えているモンスターの抵抗はいくつになるのか、というのを計算から理論的に求めた抵抗です。 9弾で言えば、380のダメージを与えている対象の抵抗を0%であると仮定します。 そうすると、338のダメージは、(1-338/380)*100=11.05 となり、11.05%の抵抗を持った対象に与えていると計算できます。 当時「基礎ダメージ段階補正」を知らず、通常の魔法ダメージを求める式しか知らなかった私にとっては、当然このようにして対象の抵抗を推測するしかありませんからね。 それで実際に与えたダメージでモンスターをグループに分け、それらのモンスターの抵抗力をデータベースで調べてみたところ、「大体理論抵抗値を超えていない」ということに気づき、「基礎ダメージ段階補正」を提案してみたところ、大当たりだったという訳です。 データベースで調べた抵抗は、先ほどの表の「抵抗」という部分に当たります。 …これで分かっていただけましたでしょうか… ついでに当時の記事へのリンクを貼り付けておきますね。 2006年11月15日の記事 冒頭の式の、()で囲まれた部分(基礎ダメージ)をもう一度解説します。 ([弾丸の属性ダメージ部分] - INT([弾丸の属性ダメージ部分] * [元素抵抗])) 例えば抵抗が25%のモンスターに属性ダメージ部分が+9の弾丸で攻撃する場合を考えましょう。 カラフルな図によると、25%のモンスターは3つ目のグループに分類されます。 (一つ目が0~11%、二つ目が12~22%、三つ目が23~33%…) つまり基礎ダメージは7として導かれるべきですね。 これをどうやって数式で表すのかといいますと 9 - (3 - 1) = 7 という考え方であらわせます。 つまり、[属性ダメージ部分]-[グループの順番]+1という感じです。 [グループの順番]を[弾丸の属性ダメージ部分]と[元素抵抗]で表せれば良いことになります。 100を9で割ると、100/9=11.11になります。 つまり、全てのグループは11.11の「幅」を持っていることになります。 こう考えると、25は 25=11.11*2 + 2.78 となり、三つ目のグループに位置していることが分かります。 式で表すと INT(25/11.11)+1 = 3 11.11はもともと 100/[弾丸の属性ダメージ部分]でした。 よって[グループの順番]は INT([元素抵抗]/(100/[弾丸の属性ダメージ部分]))+1 = INT([元素抵抗]*[弾丸の属性ダメージ部分]/100)+1 となります。 「+1」の部分は基礎ダメージを求めるときの+1で打ち消せますし、「/100」の部分は元素抵抗の部分を百分率にすることで、既述の式が導けます。 こんな感じでしょうか… お気に入りの記事を「いいね!」で応援しよう
[Red Stone] カテゴリの最新記事
参考にはなるんでしょうけど…
頭の悪い僕にはわかりましぇん(^ω^) (2007年04月15日 21時52分31秒)
>338のダメージは、(1-338/380)*100=11.05 となり、11.05%の抵抗を持った対象に与えていると計算できます。
この一行ですごく理解できました。 基礎ダメージ段階補正の考え方でいいわけですね。 基礎ダメージ段階補正と花投げですべての敵の抵抗を調べられそうですね(・∀・) データベースとは結構ちがっている感じがします。 ありがとうございました(*´∀`*) (2007年04月16日 02時04分51秒)
>ビクシーさん
前向きに考えることが大事ですね。 自分の頭が云々とはじめから決め付けていては、分かるものも分かるようになりません。 使っている計算は単純な四則演算です。 >ピヨ☆さん とりあえず理解していただけたようで何よりです。 データベースは、少なくとも防御力や元素抵抗力が実際とは異なっていることを確認しました。 (2007年04月17日 20時09分34秒) |
|