小話「AIのフライング制御」
なんかフライングするキャラ多いなぁと思う今日このころ(記事ネタないから書くお
続きからどうぞ
AIの起動をするときの条件を「RoundState = 2(以下RS2)」だけにすると確実にフライングをしてしまいます。
これはライフバーが原因となっております。
RS2になってもキャラ自体にはctrlが入るとは限りません。大抵はすこし遅れてctrlが入ります。
完全な試合開始は
RoundState = 2 && Ctrl
になって初めてキャラが動くようにります。
RS2だけで起動すると相手によってはフライングペナルティが発動してしまいます。
フライングをしないようにAIを起動する方法を載せときます。
変数を2つ使います。
commandに頼らずAIのフラグを立てることができます。
var(50) = Ctrl代用変数
(sysvar(4)&1) = 試合開始フラグ ;bit演算を使っていますが普通に1などを入れてもおk
sysvar(4)を使っていますがこのフラグを通常変数でやる場合は次ラウンドに持ち越さずかならずフラグをoffにしてください。
[State 0, コントロール可否]
type = VarSet
trigger1 = RoundState != 2 && var(50)
var(50) = 0
ignorehitpause = 1
[State 0, コントロール可否]
type = VarSet
triggerall = !var(50)
trigger1 = Ctrl || RoundState = 2 && (sysvar(4)&1)
var(50) = 1
ignorehitpause = 1
[State 0, Ctrl]
type = CtrlSet
trigger1 = var(50)
trigger1 = RoundState > 2
trigger2 = var(50)
trigger2 = RoundState = 2
trigger2 = AnimTime = 0
trigger3 = !ctrl
trigger3 = RoundState = 2
trigger3 = (sysvar(4)&1)
value = 1
ignorehitpause = 1
[State 0, 試合開始!]
type = VarSet
triggerall = RoundState = 2 && var(50)
trigger1 = !(sysvar(4)&1)
sysvar(4) = (sysvar(4)|1)
ignorehitpause = 1
これを0ステに置いた上
AIの起動フラグの条件を
triggerall = RoundState = 2 && (sysvar(4)&1)
trigger1 = var(50)
にしてフラグを立てればいけると思います。
これで必ずAIを起動することが可能です。
あと試合外無敵は入れたほうがいいぞ。
[State -2, 試合外無敵]
type = NotHitBy
triggerall = !ishelper
trigger1 = RoundState < 3
trigger1 = !(sysvar(4)&1)
trigger2 = RoundState > 2
value = SCA
ignorehitpause = 1
小話は以上です。
続きからどうぞ
AIの起動をするときの条件を「RoundState = 2(以下RS2)」だけにすると確実にフライングをしてしまいます。
これはライフバーが原因となっております。
RS2になってもキャラ自体にはctrlが入るとは限りません。大抵はすこし遅れてctrlが入ります。
完全な試合開始は
RoundState = 2 && Ctrl
になって初めてキャラが動くようにります。
RS2だけで起動すると相手によってはフライングペナルティが発動してしまいます。
フライングをしないようにAIを起動する方法を載せときます。
変数を2つ使います。
commandに頼らずAIのフラグを立てることができます。
var(50) = Ctrl代用変数
(sysvar(4)&1) = 試合開始フラグ ;bit演算を使っていますが普通に1などを入れてもおk
sysvar(4)を使っていますがこのフラグを通常変数でやる場合は次ラウンドに持ち越さずかならずフラグをoffにしてください。
[State 0, コントロール可否]
type = VarSet
trigger1 = RoundState != 2 && var(50)
var(50) = 0
ignorehitpause = 1
[State 0, コントロール可否]
type = VarSet
triggerall = !var(50)
trigger1 = Ctrl || RoundState = 2 && (sysvar(4)&1)
var(50) = 1
ignorehitpause = 1
[State 0, Ctrl]
type = CtrlSet
trigger1 = var(50)
trigger1 = RoundState > 2
trigger2 = var(50)
trigger2 = RoundState = 2
trigger2 = AnimTime = 0
trigger3 = !ctrl
trigger3 = RoundState = 2
trigger3 = (sysvar(4)&1)
value = 1
ignorehitpause = 1
[State 0, 試合開始!]
type = VarSet
triggerall = RoundState = 2 && var(50)
trigger1 = !(sysvar(4)&1)
sysvar(4) = (sysvar(4)|1)
ignorehitpause = 1
これを0ステに置いた上
AIの起動フラグの条件を
triggerall = RoundState = 2 && (sysvar(4)&1)
trigger1 = var(50)
にしてフラグを立てればいけると思います。
これで必ずAIを起動することが可能です。
あと試合外無敵は入れたほうがいいぞ。
[State -2, 試合外無敵]
type = NotHitBy
triggerall = !ishelper
trigger1 = RoundState < 3
trigger1 = !(sysvar(4)&1)
trigger2 = RoundState > 2
value = SCA
ignorehitpause = 1
小話は以上です。
スポンサーサイト