ブラッドソード(HP吸収) ADDRESS +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F 000F0380 90 00 91 00 03 00 0D 00 84 03 00 00 00 00 00 00 000F0390 FF 04 02 2D 20 08 00 4C 20 06 4C 4C 24 06 4C 4C 000F03A0 28 05 4C 4C 26 05 4C 4C 2A 0B 20 4A 03 0B 20 66 000F03B0 01 02 B8 00 0B 20 40 01 0B 20 67 10 02 C3 00 0B 000F03C0 20 40 10 0B 24 5A 20 0B 24 42 01 0B 26 5A 20 0B 000F03D0 26 42 01 06 17 2C 01 02 0A 01 03 00 03 40 03 96 000F03E0 40 10 05 4C 5A 20 0B 27 2C 80 02 F5 00 0B 2A 4C 000F03F0 20 05 4C 40 00 13 01 20 00 06 4C 59 20 06 48 4C 000F0400 22 06 4C 75 22 06 4C 58 22 FF 06 4C 5A 20 0B 25 000F0410 2C 80 02 1D 01 0B 28 4C 20 06 4C 40 00 13 01 20 000F0420 01 05 4C 59 20 05 48 4C 22 05 4C 75 22 05 4C 58 000F0430 22 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ブラッドダーク(HP吸収) 000F0380 90 00 91 00 03 00 DA 07 98 08 00 00 00 00 00 00 000F0390 FF 04 02 2D 20 08 00 4C 20 06 4C 4C 24 06 4C 4C 000F03A0 28 05 4C 4C 26 05 4C 4C 2A 0B 20 4A 03 0B 20 66 000F03B0 01 02 B8 00 0B 20 40 01 0B 20 67 10 02 C3 00 0B 000F03C0 20 40 10 0B 24 5A 20 0B 24 42 01 0B 26 5A 20 0B 000F03D0 26 42 01 06 17 2C 01 02 0A 01 03 00 03 40 03 96 000F03E0 40 10 05 4C 5A 20 0B 27 2C 80 02 F5 00 0B 2A 4C 000F03F0 20 05 4C 40 00 13 01 20 00 06 4C 59 20 06 48 4C 000F0400 22 06 4C 75 22 06 4C 58 22 FF 06 4C 5A 20 0B 25 000F0410 2C 80 02 1D 01 0B 28 4C 20 06 4C 40 00 13 01 20 000F0420 01 05 4C 59 20 05 48 4C 22 05 4C 75 22 05 4C 58 000F0430 22 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ライフイーター(HP吸収) 000F0380 90 00 91 00 03 00 7E 17 14 05 00 00 00 00 00 00 000F0390 FF 04 02 2D 20 08 00 4C 20 06 4C 4C 24 06 4C 4C 000F03A0 28 05 4C 4C 26 05 4C 4C 2A 0B 20 4A 03 0B 20 66 000F03B0 01 02 B8 00 0B 20 40 01 0B 20 67 10 02 C3 00 0B 000F03C0 20 40 10 0B 24 5A 20 0B 24 42 01 0B 26 5A 20 0B 000F03D0 26 42 01 06 17 2C 01 02 0A 01 03 00 03 40 03 96 000F03E0 40 10 05 4C 5A 20 0B 27 2C 80 02 F5 00 0B 2A 4C 000F03F0 20 05 4C 40 00 13 01 20 00 06 4C 59 20 06 48 4C 000F0400 22 06 4C 75 22 06 4C 58 22 FF 06 4C 5A 20 0B 25 000F0410 2C 80 02 1D 01 0B 28 4C 20 06 4C 40 00 13 01 20 000F0420 01 05 4C 59 20 05 48 4C 22 05 4C 75 22 05 4C 58 000F0430 22 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 デビルメイス(MP吸収) 000F0380 90 00 91 00 03 00 F3 03 10 0E 00 00 00 00 00 00 000F0390 FF 04 02 2D 20 08 00 4C 20 06 4E 4C 24 06 4E 4C 000F03A0 28 05 4E 4C 26 05 4E 4C 2A 0B 20 4A 03 0B 20 66 000F03B0 01 02 B8 00 0B 20 40 01 0B 20 67 08 02 C3 00 0B 000F03C0 20 40 08 0B 24 5A 20 0B 24 42 01 0B 26 5A 20 0B 000F03D0 26 42 01 06 17 2C 01 02 0A 01 03 00 03 40 03 96 000F03E0 40 10 05 4E 5A 20 0B 27 2C 80 02 F5 00 0B 2A 4C 000F03F0 20 05 4E 40 00 13 01 20 00 06 4E 59 20 06 4A 4C 000F0400 22 06 4E 75 22 06 4E 58 22 FF 06 4E 5A 20 0B 25 000F0410 2C 80 02 24 01 0B 28 4C 20 06 4E 40 00 06 40 2D 000F0420 80 02 24 01 13 01 20 01 05 4E 59 20 05 4A 4C 22 000F0430 05 4E 75 22 05 4E 58 22 FF 00 00 00 00 00 00 00 ソウルイーター(MP吸収) 000F0380 90 00 91 00 03 00 94 13 34 08 01 00 00 00 00 00 000F0390 FF 04 02 2D 20 08 00 4C 20 06 4E 4C 24 06 4E 4C 000F03A0 28 05 4E 4C 26 05 4E 4C 2A 0B 20 4A 03 0B 20 66 000F03B0 01 02 B8 00 0B 20 40 01 0B 20 67 08 02 C3 00 0B 000F03C0 20 40 08 0B 24 5A 20 0B 24 42 01 0B 26 5A 20 0B 000F03D0 26 42 01 06 17 2C 01 02 0A 01 03 00 03 40 03 96 000F03E0 40 10 05 4E 5A 20 0B 27 2C 80 02 F5 00 0B 2A 4C 000F03F0 20 05 4E 40 00 13 01 20 00 06 4E 59 20 06 4A 4C 000F0400 22 06 4E 75 22 06 4E 58 22 FF 06 4E 5A 20 0B 25 000F0410 2C 80 02 24 01 0B 28 4C 20 06 4E 40 00 06 40 2D 000F0420 80 02 24 01 13 01 20 01 05 4E 59 20 05 4A 4C 22 000F0430 05 4E 75 22 05 4E 58 22 FF 00 00 00 00 00 00 00 ドレインロッド(MP吸収)生命力を奪い取るとは書いてますけどねw 000F0380 90 00 91 00 03 00 64 1B 08 07 00 00 00 00 00 00 000F0390 FF 04 02 2D 20 08 00 4C 20 06 4E 4C 24 06 4E 4C 000F03A0 28 05 4E 4C 26 05 4E 4C 2A 0B 20 4A 03 0B 20 66 000F03B0 01 02 B8 00 0B 20 40 01 0B 20 67 08 02 C3 00 0B 000F03C0 20 40 08 0B 24 5A 20 0B 24 42 01 0B 26 5A 20 0B 000F03D0 26 42 01 06 17 2C 01 02 0A 01 03 00 03 40 03 96 000F03E0 40 10 05 4E 5A 20 0B 27 2C 80 02 F5 00 0B 2A 4C 000F03F0 20 05 4E 40 00 13 01 20 00 06 4E 59 20 06 4A 4C 000F0400 22 06 4E 75 22 06 4E 58 22 FF 06 4E 5A 20 0B 25 000F0410 2C 80 02 24 01 0B 28 4C 20 06 4E 40 00 06 40 2D 000F0420 80 02 24 01 0C 01 20 01 05 4E 59 20 05 4A 4C 22 000F0430 05 4E 75 22 05 4E 58 22 FF 00 00 00 00 00 00 00 ★ブラッドソード解析 対象がオブジェクトなら即時終了 04 02 2D 20 対象の最終ダメージ値をメモリ20に保存 08 00 4C 20 対象の現在HPをメモリ24に保存、対象の現在HPをメモリ28に保存 06 4C 4C 24 06 4C 4C 28 自分の現在HPをメモリ26に保存、自分の現在HPをメモリ2Aに保存 05 4C 4C 26 05 4C 4C 2A メモリ20の値を右シフト×3で1/8 0B 20 4A 03 メモリ20が1以下なら続行、1以下でないなら3B8番地(16判定)へ 0B 20 66 01 02 B8 00 メモリ20に1代入(吸収量0を回避) 0B 20 40 01 メモリ20が16以上なら続行、16以上でないなら3C3番地(減算シミュ)へ 0B 20 67 10 02 C3 00 メモリ20に16代入(吸収量16以上は16に制限) 0B 20 40 10 !パッと見良く分からないメモリ上での敵/自分HP減算シミュレート! メモリ24(敵現在HP)をメモリ20(吸収量)で減算 0B 24 5A 20 メモリ24(敵現在HP)から更に1減算(後でマイナス値か判定したい模様) 0B 24 42 01 メモリ26(自分現在HP)をメモリ20(吸収量)で減算 0B 26 5A 20 メモリ26(自分現在HP)から更に1減算(後でマイナス値か判定したい模様) 0B 26 42 01 !不死ビット判定によるルート分岐地点! 敵が不死種族なら続行、不死種族でないなら40A番地(吸収ルート)へ 06 17 2C 01 02 0A 01 !ここから逆吸収ルート! 自分に被ダメビットON(Faiは中距離で遅めのヒットだと直後被ダメモーション発生)、無敵時間0.5秒代入 03 00 03 40 03 96 40 10 自分の現在HPを吸収量で減算(プレイヤーが逆吸収されてダメージ) 05 4C 5A 20 メモリ27に80ビットがあれば(試算済み自分現在HPが負数なら)続行、なければ0F5番地(数値表示)へ 0B 27 2C 80 02 F5 00 メモリ2A(自分現在HPその2)をメモリ20に保存(上書きで残存HP分だけの吸収量に補正) 0B 2A 4C 20 自分の現在HPを0にする(=逆吸収ダメージで死亡) 05 4C 40 00 自分にメモリ20(吸収量)の値を白色で数値表示 13 01 20 00 敵現在HPにメモリ20(吸収量)を加算(=不死タイプが逆吸収HP回復) 06 4C 59 20 敵最大HPをメモリ22に保存、敵現在HPがメモリ22より高ければ続行、同値かそれ以下なら即時終了 06 48 4C 22 06 4C 75 22 敵現在HPにメモリ22代入(=逆吸収で超過した分の現在HPをカット) 06 4C 58 22 終了(逆吸収ルート終点) FF !ここから吸収ルート! 敵現在HPをメモリ20(吸収量)で減算(=実質追加ダメージ) 06 4C 5A 20 メモリ25にビット80があれば(試算済み敵現在HPが負数なら続行、正数なら41D番地(数値表示)へ 0B 25 2C 80 02 1D 01 メモリ28(敵現在HPその2)をメモリ20へ保存(上書きで残存HP分だけの吸収量に補正) 0B 28 4C 20 敵現在HPに0代入(敵死亡) 06 4C 40 00 自分にメモリ20(吸収量)の値を緑色で数値表示 13 01 20 01 自分現在HPにメモリ20(吸収量)を加算(HP回復) 05 4C 59 20 自分最大HPをメモリ22に保存、現在HPが最大HPを超過していたら修正して終了 05 48 4C 22 05 4C 75 22 05 4C 58 22 FF …打撃ヒットの実ダメージの1/8の値で敵HPにダメージを与え、同値で自分のHPを回復しているので実質追加ダメージが発生している。逆吸収時は敵側はHPが回復し、実際にこちらから吸い取っている。 これにより吸収や逆吸収による追加ダメージ処理で死亡するケースが発生する。メモリ24と26で減算後HPが負数になるかも試算しており、この追加ダメージでHPがマイナスになった場合はHP0に補正しつつ、更に対象の残存HPより吸収量が上回ってしまうので残存分だけ吸収するように吸収量を上書き補正している。 メモリマップ メモリ20…対象与ダメージ→1/8化→吸収量 メモリ22…最大HP(吸収後現在HP超過時補正用) メモリ24…敵現在HP(減算後マイナス値=死亡判定の試算用) メモリ26…自分現在HP(減算後マイナス値=死亡判定の試算用) メモリ28…敵現在HP(吸収量>残存値の場合の吸収量補正用) メモリ2A…自分現在HP(逆吸収量>残存値の場合の吸収量補正用) MP吸収系は41D番地に06 40 2D 80 02 24 01が追加されていて7b長く、 スタン中の相手からはMP吸収しない設計。 実際に敵からMPを減算するので敵もMP0の10秒スタンが発生し得る。 敵なら5秒で13%~15%MP自然回復(後の調査で6.25%と判明)するのでスタンハメを回避する設計と思われる(なおハリセンソードw) ↑ と、思いきやジャンプ先424番地は直後の数値表示なので、 敵が枯渇スタン中にMP吸収し、0表示が出る。 そのまま5秒程すると敵MPの自然回復分を即吸収するw 更に5秒して枯渇スタンから復帰する頃にはまたMP吸収してハマる。 正規のMP吸収上限8で5秒に5回は殴れるので、 MAXMP50、自然回復量8程の敵ではこのハメから抜けられない模様… 与ダメ1でも最低1MPは吸収するが、敵MP0だと緑字0表示になる 吸収ルート冒頭で既に敵HP/MPに対し減算処理しているので、 後のスタン判定とは関係無く追加のHP/MPダメージは入っている よくわからないのがこのスタン判定の書き方で、 06 40 2D 80 02 24 01 これだと折角スタンがONで無くない=ONである時でも ジャンプ先が直ぐ後でジャンプの意味が無いので 真でも偽でも数値表示+自分回復+超過分修正へストレートに続行する。 ★追加調査 HP吸収系は追加ダメージ部分で敵のHPが0に達した場合、 ザコの場合死亡エフェクト無しで死亡する。 発動条件03タイミングで勝手にHP減算して0にするのは、 正規のダメージ処理ではなくヘブンパニッシャーのように ヒット処理の伴わないダイレクトダメージになっている可能性がある。 HP吸収系で不死種族に対し逆吸収を受けながら倒した場合、 発動条件02と03の合間のダメージ減算処理完了タイミングで 敵HP0になり06 43の40(死亡ビット)ONで死亡確定しているのに、 発動条件03タイミングでHP吸収系武器が逆吸収でHPのみ回復させる。 このため03武器より後続処理となる03防具・盾・アクセがなどは、 HP0判定のみでは死亡判定が出来なくなってしまう。(ナンダコリャ) ちなみに本ダメージでHP0になり06 43の40死亡ビットが入っていても、 発動条件03タイミングで行動状態アド03 03の40の死亡ビットはまだ入っていないらしく、検出出来なかった。従ってHP吸収系武器を併用で他の発動条件03アイテムが全てのケースで死亡判定するには06 4C 64 00と06 43 2C 40の両方で組むことが必要不可欠になる。 後続の作品や追加アイテムの可能性を考慮するなら、 対不死逆吸収ルートのコードの敵側HP回復処理前に、 敵のHPが既に0だった場合や死亡ビットがあれば除外するコードを 入れておくべきだったように思われる。