※解説修正情報※
2013-02-06:永続ターゲットについて少し追記
2013-01-25:HitDefのStateTyp属性の補完について。
2013-01-24:MoveTypeに依存しないことが判明


■ReversalDef【当て身投げ用攻撃判定定義】

▼概要
自分の攻撃判定枠相手のHitDefの指定された攻撃判定枠とが重なった時にヒットさせる攻撃判定定義。
相手側のSC-/HitDefで指定された攻撃属性が合致した場合のみヒットする。
(※SC-/HitDefの他、Attrの指定されたSC-/ReversalDefの相手にもヒットする。)
SC-/Projectileは対象外。仕様上HitDefとは併用できない。
ステートが移動するか、HitDefなどが実行されるまで定義は持続する。
オプションのP2StateNo(相手のステートを奪う)と合わせて当て身投げなどに用いられる。
SC-/HitDefと異なりMoveType=Iでも機能する。
また相手のMovetypeがIであってもHitDefが実行されていれば機能する。
なおReversalDefに対する無敵は基本的に存在しない。(無いわけではない)
攻撃定義
通常攻撃定義:SC-/HitDef
当て身投げ用定義:SC-/ReversalDef
飛び道具射出:SC-/Projectile

▼必須記述
Reversal.Attr = (Attr文字列型) ;攻撃属性を指定する
  • 指定方法はHitDefのAttrと同様
  • 自分と相手で指定した属性同士が重なっている場合のみヒットする。
    • 自分も相手も含め、攻撃属性にStateType属性の指定が無い場合ReversalDefはヒットしない
      • ただしHitdefのStateType属性は一定条件で補完されることがあり、その場合はヒットする。
    • 細かくは攻撃属性のページを参照。

▼オプション
PauseTime = (自分側/Int型),(相手側/Int型)
SparkNo = (ヒットエフェクト番号or-1 Int型)
SparkXY = (ヒットエフェクト位置X/Int型),(Y/Int型)
HitSound = (ヒット音声番号or-1 Int型)
P1StateNo = (ヒット時に自分が飛ぶステート Int型)
P2StateNo = (ヒット時に相手を引き込むステート Int型)
  • と、ステートコントローラー一覧のサイトには書かれている。
    • ただ実際はこの他にも細かい数値は指定可能。
    • 検証不足だが、以下のオプションも使用可能。
ID = (Int型);
Fall系(この他にも可能そう)
Fall = (bool型);
Fall.recovery = (bool型);
Fall.damage = (Int型);
  • なおDamageは使用不可。


■Lv1-記述例・補足・注意点

記述例
[State a, ReversalDef]
Type = ReversalDef
Trigger1 = !time ;ステートを読み込んだ時点のみ
Reversal.Attr = SCA,AA ;攻撃属性指定:全ての打撃
PauseTime = 30,30 ;一時停止(30/60)秒
SparkNo = -1 ;ヒットエフェクト無し
HitSound = -1 ;ヒット音声無し
P1StateNo = 801 ;自分は801番ステートへ飛ぶ
P2StateNo = 805 ;相手を805番ステートへ引き込む
  • 打撃に対する当て身投げ。自分を801番へ相手を805番へ移動させる。

補足
  • 攻撃属性の扱いについて、細かくは該当のページを参照。
  • 攻撃としての優先度はHitDefよりも高く、ヒットすれば相手の攻撃はヒットしない。
    • ReversalDefが出ていても自分の攻撃判定枠に相手のHitDefの攻撃枠が重ならないとヒットしない。
    • 仮にその状態で自分のくらい判定にのみ相手の攻撃判定が重なっていれば相手の攻撃のみヒットする。
    • Projectileにはヒットしないため攻撃属性が合っていても、Projectileが一方的にヒットする。
  • トリガーMoveReversedはReversalDefに取られた相手側の情報。
    • ReversalDefであたった場合はHitDef同様MoveHitが機能する。
  • 1キャラの中でHitDefとReversalDefはどちらかしか使えない。
    • HitDefが既に発生している状態でReversalDefを発生させるとHitDefは消える。
    • ReversalDefが発生している状態でHitDefを発生させるとReversalDefは消える。
      • なおProjectileは別管理のため両立可能。
    • またステートが変更された場合もReversalDefは消える。
  • Movetypeには依存しないため事前にMoveType=Aを設定する必要はない。
    • ただ慣例的にMovetype=Aであるほうが望ましい、かと。
  • 一度実行されるとステートが変更されるか、
    SC-/HitDefSC-/ReversalDefが新たに実行されるまで持続。
    • 一度の実行では一人の相手には一回しか命中しない
    • HitOnceが0の場合、別々の相手であれば同時でなくても複数回命中する
      • 例:一度ReversalDefがヒットした後ステートを変更せず持続させた場合、
        同じ相手にはReversalDefが機能せず、それ以外の相手にはヒットできる。

注意点
  • ReversalDefで取得できるのはあくまでHitDefに限り、Projectileにはヒットしない。
    • Hitdefがあり攻撃判定さえ重なればHitDef側がMovetype=Iであっても取れる
  • HitDefをもっているならHelperであってもステートを奪えてしまう。分身の危険があるため、基本的にAP(飛び道具)は指定する際はP2StateNoは使用しないほうが良い。
    • 尤も、Helperに使う攻撃属性のStatetype属性が空白であればReversalDefに当たらないが。
  • ReversalDefにヒットした相手側のNotHitBy,HitByの無敵を全て消失させる処理を行なっている。
  • P2StateNo系統についてはHitDefと同様の注意が必要
  • ヒットした後のNotHitByの系統はReversalDefを置いているステートでも行ったほうがいいとのこと。
  • Win版以前?ではP1StateNoによるステート移動時T-/PrevStateNoが更新されないバグがあるとのこと。
    • 1.0では修正されている、とのこと。

Attr設定
  • 実はAttr=攻撃属性を設定することが可能。
  • ただしAttrを指定したReversalDefは、属性が一致している相手のReversalDefがヒットする
  • SC-/HitOverrideによるP2StateNo指定攻撃の無効化がReversalDefでも働くようになる。



■Lv3-細かい応用

+ ■Lv3-飛び道具判定消し処理
+ ■Lv3-HitDefのキャンセル

■Lv-4-バグ応用

+ ■Lv4-永続ターゲット