HitByとNotHitByの違いって?
2chスレPart10 710氏のテキストより
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HitByとNotHitByの仕様
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
両者ともよく似た効果を持つコントローラですが、
実は細かなところでかなり異なっています。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■HitByの仕様
HitByのコントローラの効果は
「指定した攻撃だけを受ける」のではなく
「指定した攻撃以外を受け付けない」です。
勘違いしがちですが、HitByも無敵状態を設定するコントローラです。
例えば、『立ち・空中の投げ』と『しゃがみ攻撃・投げ』を受けたいとき
[State ,100]
type = HitBy
trigger1 = 1
value = SA,AT
[State ,100]
type = HitBy
trigger1 = 1
value2 = C,AA,AT
このようにステコンを記述したとします。
HitByを「指定した攻撃だけを受ける」と考えていると
「SA,ATが当たる」+「C,AA,ATが当たる」=「SA,ATとC,AA,ATが当たる」
という意味にとれ、うまくいきそうに見えますが、
実際のところは「指定した攻撃以外を受け付けない」であるため
「SA,AT以外を無効」+「C,AA,AT以外を無効」=「全無効」
となり、『SA,AT以外』には『C,AA,AT』も含まれるため『C,AA,AT』も無効化します。
同時に逆も適用されるため、結果全ての攻撃を無効化してしまいます。
なお、HitByでは状態と属性両方の指定が必須です。
どちらか一方しか記述がない場合、全ての攻撃を無効化します。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■NotHitByの仕様
よく耳にするバグとしてNotHitByの状態指定をSCA(立ち、しゃがみ、空中)
とすると、その後の属性を無視して完全無敵になるというものがあります。
実はこれ、正確にはバグではなくHitByとNotHitByの仕様の違いによって起こります。
ステートの記述として表すと、
[State 100];立ち・しゃがみ・空中の全投げを無効
type = NotHitBy
trigger1 = 1
value = SCA,AT
このように記述すると、投げ以外の攻撃、飛び道具も全て無効化されてしまいます。
HitByと同じように読むと value = SCA,AT という記述は
「立ち・しゃがみ・空中の全ての投げを無効」となるはずです。
ところが、実はNotHitByでは
「『立ち・しゃがみ・空中の全投げ』を無効」ではなく
「『立ち・しゃがみ・空中(の攻撃)』および『全投げ』を無効」
という意味に変わってしまうのです。
NotHitByのattr仕様は、HitByやその他のattr仕様とは異なり
value = (A)状態,(B)属性
(A)で状態(S,C,A:立ち、しゃがみ、空中)についての無敵を設定
(B)で属性(A,P,T:攻撃、飛び道具、投げ)についての無敵を設定
(A)と(B)はそれぞれ独立して適用される
となっています。
つまりNotHitByのコントローラは、attrの指定のみでは
「立ち状態での投げのみ無効」というような使い方ができないということです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■それぞれの対策例
A.『立ち状態での投げ』のみ無効にしたい場合
例1.
[State 100];相手が立ち状態のとき全投げを無効
type = NotHitBy
trigger1 = enemynear,statetype = S
value = ,AT
例2.
[State ,100];相手が立ち状態のとき立ち攻撃、立ち飛び道具以外を無効
type = HitBy
trigger1 = enemynear,statetype = S
value2 = S,AA,AP
B.『立ち・空中の投げ』と『しゃがみ攻撃・投げ』を受けたいとき
例1.
[State 100];相手がしゃがみ状態でないとき攻撃・飛び道具を無効
type = NotHitBy
trigger1 = enemynear,statetype != C
value = ,AA,AP
[State 100];相手がしゃがみ状態のとき飛び道具を無効
type = NotHitBy
trigger1 = enemynear,statetype = C
value2 = ,AP
例2.
[State ,100];相手がしゃがみ状態でないとき立ち投げ・空中投げ以外を無効
type = HitBy
trigger1 = enemynear,statetype != C
value = SA,AT
[State ,100];相手がしゃがみ状態のときしゃがみ攻撃・しゃがみ投げ以外を無効
type = HitBy
trigger1 = enemynear,statetype = C
value2 = C,AA,AT
このように相手の状態をトリガーとして起動させることで
当たる状態を限定させることができます。
ただし、相手のStatedefで設定した状態と攻撃のattrで設定した状態が違っている場合は
意図したとおりの無敵状態とならない可能性があります。
書いた人:Lycoris
参考 :M.U.G.E.Nキャラ作ろうぜ!五回目 >>950-960
最終更新:2008年11月29日 23:34