読者です 読者をやめる 読者になる 読者になる

chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

NumHelperトリガーとHelperリダイレクトを同じ行に書く

M.U.G.E.Nは基本、短絡評価はしないので

[State -2]
type     = Null
trigger1 = NumHelper(9999) && Helper(9999),var(58) != 0

みたいに書くと警告がずらーっと出まくる。&&ならまぁ二行にすることでどうにかなるけど、||の場合は最悪ステコンが2つになる。これをなんとか1行で書けないかなー、と考えた結果、「新MUGENならできんじゃね?」と思い当たったので実験。
当然WinMugenだと起動不可能ですが。

なんのことはなく、短絡評価をするcondトリガーを使うだけです。以下のようなウチのキャラのAIフラグ設定ステートを、

[State -3:          Get AI Variable]
type           = VarSet
triggerall     = var(58) = 0
trigger1       = NumHelper(9999)
trigger1       = Helper(9999),var(58) != 0
v              = 58
value          = Helper(9999),var(58)
ignorehitpause = 1

condトリガーを使って書き換えるとNumHelperとHelperリダイレクトを一行に出来ます*1

[State -3:          Get AI Variable]
type           = VarSet
triggerall     = var(58) = 0
trigger1       = cond(NumHelper(9999), Helper(9999),var(58) != 0, 0)
v              = 58
value          = Helper(9999),var(58)
ignorehitpause = 1

条件が成立しなかった場合に"0"を返すようにすれば&&と同じことが出来ます。逆に条件成立時に"1"を返し、成立してないほうでトリガーを記述することで||を表現できます。

*1:ifelseだと当然のごとく警告の嵐