;---------------------------------------------------------------------------
;常時監視ステート
;---------------------------------------------------------------------------
[Statedef -2]
;---------------------------------------------------------------------------
[State ^o^]
type=Null
ignorehitpause=1
triggerall=!ishelper&&!(var(23))&&!(var(24))
;---------------------------------------------------------------------------
;コンフィグ
;---------------------------------------------------------------------------
trigger1=               (   0   );【IKEMENで使用】
                                 ;0-OFF 1-ON
                                 ;Player型HelperをNormal型Helperに変更します
                                 ;EIKO GO...ではなくIKEMEN GOでは自動でONになるので省略して結構です(0.99にて動作確認)
;---------------------------------------------------------------------------
trigger2=0&&var(40):=   (   0   );【ゲジマシ】
                                 ;1~
                                 ;デフォルトは0
                                 ;"PowerMax"と入力するとゲジマユになります
;---------------------------------------------------------------------------
trigger3=               (   0   );【AI常時起動フラグ】
                                 ;0-OFF 1-ON
                                 ;デフォルトは0
                                 ;新MUGENorIKEMENで使用する場合は"ifelse((ailevel)>=1,1,0)"
;---------------------------------------------------------------------------
trigger4=0&&var(56):=  (   10   );【AIレベル】
                                 ;1～10 ON
                                 ;デフォルトは10
                                 ;新MUGENorIKEMENで使用する場合は"AIlevel+2"
;---------------------------------------------------------------------------
trigger5=0&&var(23):=   (  320  );【解像度横サイズ】※新MUGENorIKEMEN専用
                                 ;デフォルトは320
                                 ;数字を"ceil(gamewidth)"に置き換えれば自動対応
                                 ;WINMUGEN環境でこの数値を変更すると不具合が生じる可能性があります
;---------------------------------------------------------------------------
trigger6=0&&var(24):=   (  240  );【解像度縦サイズ】※新MUGENorIKEMEN専用
                                 ;デフォルトは240
                                 ;数字を"ceil(gameheight)"に置き換えれば自動対応
                                 ;WINMUGEN環境でこの数値を変更すると不具合が生じる可能性があります
;---------------------------------------------------------------------------
;※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
;いじっちゃだめ
;※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
;---------------------------------------------------------------------------
trigger1=0&&var(5):=(var(5)|256);IKEMENフラグON
trigger3=0&&var(5):=(var(5)|2048);AI常時起動ON
;---------------------------------------------------------------------------
[State バグ修正]
type=Null
ignorehitpause=1
triggerall=!ishelper
trigger1=(var(5)&1);WINMUGEN
trigger1=var(23)!=320
trigger1=1||var(23):=320
trigger2=(var(5)&1);WINMUGEN
trigger2=var(24)!=240
trigger2=1||var(24):=240
trigger1=!(var(5)&1);MUGEN 1.0+
trigger1=var(23)<=0
trigger1=1||var(23):=320
trigger2=!(var(5)&1);MUGEN 1.0+
trigger2=var(24)<=0
trigger2=1||var(24):=240
trigger3=!(var(56)=[-1,10])
trigger3=1||var(56):=10
;---------------------------------------------------------------------------
;制御
;---------------------------------------------------------------------------
[State Pヘルパー消去]
type=DestroySelf
triggerall=IsHelper
trigger1=(root,var(5)&256)
ignorehitpause=1
persistent=256
[State ステートを奪われ感知]
type=VarSet
triggerall=!ishelper
trigger1=sysfvar(4)!=gametime
sysfvar(4)=-1
ignorehitpause=1
[State ゲジマシ]
type=PowerAdd
triggerall=!IsHelper&&var(40)&&(var(5)&2)
trigger1=GameTime%2=1
value=var(40)
ignorehitpause=1
[State -2,試合中判定]
Type=Null
TriggerAll=!ishelper
Trigger1=RoundState!=2
Trigger1=0&&Var(5):=(Var(5)|2)-2
Trigger2=RoundState=2&&Ctrl
Trigger2=0&&Var(5):=(Var(5)|2)
IgnoreHitPause=1
[State ヒット感知]
type=varset
triggerall=!ishelper
trigger1=movecontact=1&&var(30)<0
var(30)=hitpausetime
ignorehitpause=1
;---------------------------------------------------------------------------
;Enemy取得
;---------------------------------------------------------------------------
[State EnemyNear]
Type=VarSet
Trigger1=!ishelper
var(55)=(NumEnemy>1&&EnemyNear,Alive=0)
;---------------------------------------------------------------------------
;PlayerID取得
;---------------------------------------------------------------------------
[State -2,VarSet]
Type=Null
triggerall=!ishelper
Trigger1=NumEnemy=1
Trigger1=var(58):=Enemy(0),ID
IgnoreHitPause=1
[State -2,VarSet]
Type=Null
triggerall=!ishelper
triggerall=NumEnemy>1
Trigger1=Enemy(0),ID=EnemyNear(0),ID
Trigger1=Enemy(0),Alive
Trigger1=0&&var(58):=Enemy(0),ID
Trigger2=NumEnemy=2
Trigger2=!Enemy(1),Alive
Trigger2=0&&var(58):=Enemy(0),ID
Trigger3=NumEnemy=3
Trigger3=!Enemy(1),Alive
Trigger3=!Enemy(2),Alive
Trigger3=0&&var(58):=Enemy(0),ID
Trigger4=NumEnemy=4
Trigger4=!Enemy(1),Alive
Trigger4=!Enemy(2),Alive
Trigger4=!Enemy(3),Alive
Trigger4=0&&var(58):=Enemy(0),ID
IgnoreHitPause=1
[State -2,VarSet]
Type=Null
triggerall=!ishelper
triggerall=NumEnemy>1
Trigger1=Enemy(1),ID=EnemyNear(0),ID
Trigger1=Enemy(1),Alive
Trigger1=0&&var(58):=Enemy(1),ID
Trigger2=NumEnemy=2
Trigger2=!Enemy(0),Alive
Trigger2=0&&var(58):=Enemy(1),ID
Trigger3=NumEnemy=3
Trigger3=!Enemy(0),Alive
Trigger3=!Enemy(2),Alive
Trigger3=0&&var(58):=Enemy(1),ID
Trigger4=NumEnemy=4
Trigger4=!Enemy(0),Alive
Trigger4=!Enemy(2),Alive
Trigger4=!Enemy(3),Alive
Trigger4=0&&var(58):=Enemy(1),ID
IgnoreHitPause=1
[State -2,VarSet]
Type=Null
triggerall=!ishelper
triggerall=NumEnemy>2
Trigger1=Enemy(2),ID=EnemyNear(0),ID
Trigger1=Enemy(2),Alive
Trigger1=0&&var(58):=Enemy(2),ID
Trigger2=NumEnemy=3
Trigger2=!Enemy(0),Alive
Trigger2=!Enemy(1),Alive
Trigger2=0&&var(58):=Enemy(2),ID
Trigger3=NumEnemy=4
Trigger3=!Enemy(0),Alive
Trigger3=!Enemy(1),Alive
Trigger3=!Enemy(3),Alive
Trigger3=0&&var(58):=Enemy(2),ID
IgnoreHitPause=1
[State -2,VarSet]
Type=Null
triggerall=!ishelper
triggerall=NumEnemy>3
Trigger1=Enemy(3),ID=EnemyNear(0),ID
Trigger1=Enemy(3),Alive
Trigger1=0&&var(58):=Enemy(3),ID
Trigger2=NumEnemy=4
Trigger2=!Enemy(0),Alive
Trigger2=!Enemy(1),Alive
Trigger2=!Enemy(2),Alive
Trigger2=0&&var(58):=Enemy(3),ID
IgnoreHitPause=1
[State P2BodyDist]
Type=Null
TriggerAll=!ishelper&&PlayerIDExist(Var(58))
;[X座標]
Trigger1=1||FVar(8):=IfElse(PlayerID(Var(58)),StateType!=A,IfElse(Pos X<=PlayerID(Var(58)),Pos X^^PlayerID(Var(58)),Facing=1,PlayerID(Var(58)),Const(Size.Ground.Front),PlayerID(Var(58)),Const(Size.Ground.back)),0);地上
Trigger1=1||FVar(8):=IfElse(PlayerID(Var(58)),StateType=A,IfElse(Pos X<=PlayerID(Var(58)),Pos X^^PlayerID(Var(58)),Facing=1,PlayerID(Var(58)),Const(Size.Air.Front),PlayerID(Var(58)),Const(Size.Air.back)),FVar(8));空中
Trigger1=1||FVar(7):=(Pos X-PlayerID(Var(58)),Pos X)*Facing*-1;相手までの距離
Trigger1=1||FVar(7):=FVar(7)-FVar(8)*IfElse(FVar(7)>0,1,-1);キャラ幅加算
Trigger1=1||FVar(7):=FVar(7)-IfElse(StateType!=A,Const(Size.Ground.Front),Const(Size.Air.Front));自分情報
;[Y座標]
Trigger1=1||FVar(8):=(PlayerID(Var(58)),Pos Y-Pos Y)
;[P2Dist X]
Trigger1=1||FVar(9):=Floor(PlayerID(Var(58)),Pos X-Pos X)*Facing
IgnoreHitPause=1
[state 摩擦計算]
type=Null
TriggerAll=!ishelper&&PlayerIDExist(Var(58))
trigger1=0&&fvar(37):=abs(PlayerID(Var(58)),GetHitVar(xvel))
IgnoreHitPause=1
[state 摩擦計算]
type=Null
TriggerAll=!ishelper&&PlayerIDExist(Var(58))
trigger1=0&&fvar(38):=0
trigger2=PlayerID(Var(58)),StateType=S
trigger2=1||fvar(38):=(PlayerID(Var(58)),Const(movement.stand.friction))
trigger3=PlayerID(Var(58)),StateType=C
trigger3=1||fvar(38):=(PlayerID(Var(58)),Const(movement.crouch.friction))
trigger4=PlayerID(Var(58)),StateType=A
trigger4=1||fvar(38):=(PlayerID(var(58)),GetHitVar(yaccel))
IgnoreHitPause=1
;---------------------------------------------------------------------------
;AI用重力加速度計測
;---------------------------------------------------------------------------
[State -2,yaccel]
type=VarSet
triggerall=!ishelper
TriggerAll=PlayerIDEXist(var(58))
trigger1=fvar(39)!=PlayerID(var(58)),const(movement.yaccel)
trigger1=PlayerID(var(58)),stateno!=[5000,5210]
trigger1=PlayerID(var(58)),Vel Y!=0
fvar(39)=PlayerID(var(58)),const(movement.yaccel)
ignorehitpause=1
[State -2,yaccel]
type=VarSet
triggerall=!ishelper
TriggerAll=PlayerIDEXist(var(58))
trigger1=fvar(39)!=PlayerID(var(58)),GetHitVar(yaccel)
trigger1=PlayerID(var(58)),stateno=[5000,5210]
trigger1=PlayerID(var(58)),Vel Y!=0
fvar(39)=PlayerID(var(58)),GetHitVar(yaccel);(打撃当てた時のyaccel値)
ignorehitpause=1
[State -2,敵が空中じゃない時]
type=VarSet
triggerall=!ishelper
TriggerAll=PlayerIDEXist(var(58))
trigger1=fvar(39)!=0
trigger1=PlayerID(var(58)),Vel Y=0
fvar(39)=0;(打撃当てた時のyaccel値)
ignorehitpause=1
;---------------------------------------------------------------------------
[State -2,AI用-振り向く]
type=Turn
trigger1=!ishelper
trigger1=StateType!=A&&ctrl&&var(59)>0&&PlayerIDExist(var(58))
trigger1=(PlayerID(var(58)),Pos X>Pos X)*2-1-facing
;---------------------------------------------------------------------------
;(N)ヘルパー呼び出し
;---------------------------------------------------------------------------
[State (N)AI起動用ヘルパー]
type=Helper
triggerall=!ishelper
triggerall=(var(5)&256);IKEMENフラグ
trigger1=!NumHelper(101010)
trigger1=!var(59)
helpertype=Normal
name="AI"
stateno=101010
ID=101010
pos=9999,9999
keyctrl=1
pausemovetime=2147483647
supermovetime=2147483647
[state (N)先行入力認識用ヘルパー]
type=helper
triggerall=!ishelper
triggerall=(var(5)&256);IKEMENフラグ
trigger1=!numhelper(50000)
helpertype=normal
name="commandhelper"
stateno=50000
ID=50000
postype=p1
pos=0,9999
keyctrl=1
pausemovetime=2147483647
supermovetime=2147483647
ignorehitpause=1
[State (N)画面端感知用]
Type=Helper
triggerall=!ishelper&&alive&&RoundState=2
triggerall=(var(5)&256);IKEMENフラグ
Trigger1=NumHelper(30000)=0
HelperType=Normal
Name="EDGE"
StateNo=30000
ID=30000
Pos=0,0
OwnPal=1
KeyCtrl=0
Size.XScale=0
Size.YScale=0
IgnoreHitPause=1
pausemovetime=2147483647
supermovetime=2147483647
[State (N)敵攻撃ヘルパー感知ヘルパー]
type=Helper
triggerall=!Ishelper
triggerall=(var(5)&256)
triggerall=var(59)>=1
triggerall=RoundState<=2
trigger1=!numhelper(66670)
id=66670
name="HelperKanchi"
pos=0,0
postype=P1
stateno=66670
helpertype=Normal
pausemovetime=2147483647
supermovetime=2147483647
keyctrl=0
ownpal=0
IgnoreHitPause=1
[State (N)敵攻撃ヘルパー感知補助ヘルパー]
type=Helper
triggerall=!Ishelper
triggerall=(var(5)&256)
triggerall=var(59)>=1
triggerall=RoundState<=2
trigger1=!numhelper(77760)
id=77760
name="HelperKanchi2"
pos=0,0
postype=p1
stateno=77760
helpertype=Normal
pausemovetime=2147483647
supermovetime=2147483647
keyctrl=0
ownpal=0
IgnoreHitPause=1
;---------------------------------------------------------------------------
;(P)ヘルパー呼び出し
;---------------------------------------------------------------------------
[State (P)AI起動用ヘルパー]
type=Helper
triggerall=!ishelper
triggerall=!(var(5)&256);IKEMENフラグ
trigger1=!NumHelper(101010)
trigger1=!var(59)
helpertype=Player
name="AI"
stateno=101010
ID=101010
pos=9999,9999
keyctrl=1
pausemovetime=2147483647
supermovetime=2147483647
[state (P)先行入力認識用ヘルパー]
type=helper
triggerall=!ishelper
triggerall=!(var(5)&256);IKEMENフラグ
trigger1=!numhelper(50000)
helpertype=player
name="commandhelper"
stateno=50000
ID=50000
postype=p1
pos=0,9999
keyctrl=1
pausemovetime=2147483647
supermovetime=2147483647
ignorehitpause=1
[State (P)画面端感知用]
Type=Helper
triggerall=!ishelper&&alive&&RoundState=2
triggerall=!(var(5)&256);IKEMENフラグ
Trigger1=NumHelper(30000)=0
HelperType=Player
Name="EDGE"
StateNo=30000
ID=30000
Pos=0,0
OwnPal=1
KeyCtrl=0
Size.XScale=0
Size.YScale=0
IgnoreHitPause=1
pausemovetime=2147483647
supermovetime=2147483647
[State (P)敵攻撃ヘルパー感知ヘルパー]
type=Helper
triggerall=!Ishelper
triggerall=!(var(5)&256)
triggerall=var(59)>=1
triggerall=RoundState<=2
trigger1=!numhelper(66670)
id=66670
name="HelperKanchi"
pos=0,0
postype=P1
stateno=66670
helpertype=Player
pausemovetime=2147483647
supermovetime=2147483647
keyctrl=0
ownpal=0
IgnoreHitPause=1
[State (P)敵攻撃ヘルパー感知補助ヘルパー]
type=Helper
triggerall=!Ishelper
triggerall=!(var(5)&256)
triggerall=var(59)>=1
triggerall=RoundState<=2
trigger1=!numhelper(77760)
id=77760
name="HelperKanchi2"
pos=0,0
postype=p1
stateno=77760
helpertype=Player
pausemovetime=2147483647
supermovetime=2147483647
keyctrl=0
ownpal=0
IgnoreHitPause=1
;---------------------------------------------------------------------------
;エフェクト
;---------------------------------------------------------------------------
[State SE-ヒット]
type=playsnd
triggerall=!ishelper
trigger1=movecontact=1&&var(30)=hitpausetime
trigger1=movehit=1
value=S5,var(32)
channel=2
ignorehitpause=1
[State SE-ガード]
type=playsnd
triggerall=!ishelper
trigger1=movecontact=1&&var(30)=hitpausetime
trigger1=moveguarded=1
value=S6,0
channel=2
ignorehitpause=1
[State EFF-ヒット]
type=explod
triggerall=!ishelper&&PlayerIDExist(var(58))
triggerall=var(31)>=0
triggerall=movecontact=1&&var(30)=hitpausetime
trigger1=movehit=1
ID=6000+var(31)
Anim=4000+var(31)
postype=p1
facing=ifelse(floor(playerid(var(58)),pos x-pos x)*facing<0,-1,1)
pos=ceil((PlayerID(var(58)),Pos X-Pos X)*Facing+var(33)*const(size.xscale)),ceil(var(34)*const(size.yscale))
ontop=1
ownpal=1
scale=0.89166666,1.07
pausemovetime=2147483647
supermovetime=2147483647
ignorehitpause=1
[State EFF-ガード]
type=explod
triggerall=!ishelper&&PlayerIDExist(var(58))
triggerall=var(31)>=0
triggerall=movecontact=1&&var(30)=hitpausetime
trigger1=moveguarded=1
ID=7600
Anim=7600
postype=p1
facing=ifelse(floor(playerid(var(58)),pos x-pos x)*facing<0,-1,1)
pos=ceil((PlayerID(var(58)),Pos X-Pos X)*Facing+var(33)*const(size.xscale)),ceil(var(34)*const(size.yscale))
ontop=1
ownpal=1
scale=0.89166666,1.07
pausemovetime=2147483647
supermovetime=2147483647
ignorehitpause=1
;---------------------------------------------------------------------------
;ゲームシステム
;---------------------------------------------------------------------------
[state juggle未使用]
type=assertspecial
trigger1=!ishelper&&(var(5)&2)
flag=nojugglecheck
ignorehitpause=1
[State リバーサル判定]
Type=Null
TriggerAll=!ishelper&&(var(5)&2)
Trigger1=0&&Var(5):=(Var(5)|4)-4
Trigger2=animtime=0
Trigger2=anim=200||anim=230||anim=400||anim=430
Trigger2=1||Var(5):=(Var(5)|4)
Trigger3=animtime=0
Trigger3=anim=1000||(anim=[1100,1105])||anim=3000
Trigger3=1||Var(5):=(Var(5)|4)
IgnoreHitPause=1
[State 昇竜ヒット]
Type=Null
TriggerAll=!ishelper&&(var(5)&2)
Trigger1=!(StateNo=1100)
Trigger1=1||Var(5):=(Var(5)|4096)-4096
Trigger2=(StateNo=1100)&&MoveHit
Trigger2=1||Var(5):=(Var(5)|4096)
Trigger3=(Anim=3100)&&(AnimElemTime(10)>=0)&&(AnimElemTime(12)<0)&&MoveHit
Trigger3=1||Var(5):=(Var(5)|4096)
IgnoreHitPause=1
[State ミニゲーム判定]
type=Varset
TriggerAll=!ishelper
trigger1=0&&var(5):=(var(5)|8192)-8192
trigger2=P2name="chamballoon"||P4name="chamballoon"||P2name="biohazard"||P4name="biohazard"||P2name="BONUS STAGE"||P4name="BONUS STAGE"||P2name="KUPPA GUNDAN"||P4name="KUPPA GUNDAN"||P4name="Street Fighter II Bricks Bonus Stage"||P2name="M-GB Game 1"
trigger3=P2name="madgear"||P4name="madgear"||P4name="M-GB Game 1"||P2name="bonusgame"||P4name="bonusgame"||P2name="M-NES Game 1"||P4name="M-NES Game 1"||P2name="M-NES Game 2"||P4name="M-NES Game 2"||P4name="Mercedes Benz"||P2name="ro monster hunting"
trigger4=P4name="ro monster hunting"||P2name="SDF"||P4name="SDF"||P2name="Target Test"||P4name="Target Test"||P2name="Trainingroom"||P4name="Trainingroom"||P2name="Mercedes Benz"||P2name="SF2 Oil Drums"||P2name="Street Fighter II Bricks Bonus Stage"
trigger5=P4name="SF2 Oil Drums"
var(5)=(var(5)|8192)
ignorehitpause=1
[state ]
type=AssertSpecial
TriggerAll=!ishelper
trigger1=(var(5)&8192)
flag=noautoturn
ignorehitpause=1
[state ]
type=turn
TriggerAll=!ishelper
trigger1=(var(5)&8192)&&command!="holdfwd"&&command="holdback"&&(stateno=0||stateno=20||stateno=100)&&time<=1
ignorehitpause=1
;---------------------------------------------------------------------------
;ゲームシステムその他
;---------------------------------------------------------------------------
[State ヒット感知-終了]
type=varset
triggerall=!ishelper
trigger1=1
var(30)=-1
[State ターゲットが受け身をとったら破棄]
type=targetdrop
triggerall=!ishelper
triggerall=numtarget=1
trigger1=(target,stateno=5040)
trigger2=(target,stateno=[5200,5210])
ignorehitpause=1
[State 暗転時間計測-減少]
type=VarAdd
triggerall=!ishelper
trigger1=var(20)>=1
var(20)=1
ignorehitpause=1
[State 暗転時間計測-初期化]
type=VarSet
triggerall=!ishelper
trigger1=var(20)>=18
var(20)=0
ignorehitpause=1
;---------------------------------------------------------------------------
;AI補助
;---------------------------------------------------------------------------
[State -2,画面端感知]
Type=Null
TriggerAll=!IsHelper&&NumHelper(30000)&&PlayerIDExist(Var(58))
;[自分前方]
Trigger1=1||FVar(10):=Floor(Helper(30000),Var(5+(Facing=-1))+(Helper(30000),RootDist X*Helper(30000),Facing)*(Facing*-1))-(Helper(30000),Var(14+(Facing=-1)))-(FrontEdgeDist-FrontEdgeBodyDist)
;[自分後方]
Trigger1=1||FVar(11):=Floor(Helper(30000),Var(5+(Facing=1))+(Helper(30000),RootDist X*Helper(30000),Facing)*(Facing))-(Helper(30000),Var(14+(Facing=1)))-(BackEdgeDist-BackEdgeBodyDist)
;[相手前方]
Trigger1=1||FVar(12):=Floor(Helper(30000),Var(5+(Facing=1))+(Helper(30000),P2Dist X*Helper(30000),Facing)*(Facing))-(Helper(30000),Var(14+(Facing=1)))-(PlayerID(Var(58)),BackEdgeDist-PlayerID(Var(58)),BackEdgeBodyDist)
;[相手後方]
Trigger1=1||FVar(13):=Floor(Helper(30000),Var(5+(Facing=-1))+(Helper(30000),P2Dist X*Helper(30000),Facing)*(Facing*-1))-(Helper(30000),Var(14+(Facing=-1)))-(PlayerID(Var(58)),FrontEdgeDist-PlayerID(Var(58)),FrontEdgeBodyDist)
IgnoreHitPause=1
[State -2,学習／当身感知]
Type=Null
TriggerAll=!IsHelper&&PlayerIDExist(Var(58))
Trigger1=MoveReversed&&StateNo!=FVar(23)
Trigger1=0&&Var(5):=(Var(5)|32)
Trigger2=(Var(5)&32)&&FVar(17)=0&&Var(12)>=195&&!(Var(12)=[5000,5499])
Trigger2=0&&FVar(17):=Var(12);当身されたStateNo1個目
Trigger3=(Var(5)&32)&&FVar(17)&&FVar(18)=0&&(FVar(18)!=FVar(17))&&Var(12)>=195&&!(Var(12)=[5000,5499])
Trigger3=0&&FVar(18):=Var(12);当身されたStateNo2個目
Trigger4=(Var(5)&32)&&FVar(17)&&FVar(18)&&FVar(19)=0&&(FVar(19)!=FVar(17))&&(FVar(19)!=FVar(18))&&Var(12)>=195&&!(Var(12)=[5000,5499])
Trigger4=0&&FVar(19):=Var(12);当身されたStateNo2個目
IgnoreHitPause=1
[State -2,相手受け身感知]
Type=VarSet
TriggerAll=!IsHelper&&PlayerIDExist(Var(58))
Trigger1=(PlayerID(Var(58)),StateNo=[5200,5299])
var(5)=(Var(5)|128)
IgnoreHitPause=1
[State -2,アーマー感知]
Type=VarSet
TriggerAll=!IsHelper&&RoundState=2&&PlayerIDExist(Var(58))
TriggerAll=PlayerID(Var(58)),MoveType!=H&&PlayerID(Var(58)),Alive
Trigger1=MoveHit&&Ctrl=0
var(5)=(Var(5)|64)
IgnoreHitPause=1
[State -2,アーマー感知OFF]
Type=VarSet
TriggerAll=!IsHelper&&RoundState=2&&PlayerIDExist(Var(58))
TriggerAll=(PlayerID(Var(58)),MoveType=H||(PlayerID(Var(58)),StateNo=[5200,5210]))&&PlayerID(Var(58)),Alive
Trigger1=MoveHit
var(5)=(Var(5)|64)-64
IgnoreHitPause=1
[State -2,ダウン追い打ち失敗感知]
Type=VarSet
TriggerAll=!IsHelper&&PlayerIDExist(Var(58))
Trigger1=(Var(5)&98304)&&PlayerID(Var(58)),MoveType=H&&(ProjContactTime(0)=[0,60])
Trigger1=0&&Var(5):=(Var(5)|98304)-98304
Trigger2=(Var(5)&98304)
Trigger2=PlayerID(Var(58)),StateType!=L&&PlayerID(Var(58)),MoveType!=H||(PlayerID(Var(58)),StateNo=[5120,5210])
var(5)=(Var(5)|98304)-32768
IgnoreHitPause=1
[State -2,学習／ガード不能StateNo記憶]
Type=Null
TriggerAll=!IsHelper&&Alive&&RoundState=2&&Life>0&&PlayerIDExist(Var(58))
TriggerAll=SysVar(3)=120||SysVar(3)=131||SysVar(3)=152||SysVar(3)=153||SysFVar(3)=120||SysFVar(3)=131||SysFVar(3)=152||SysFVar(3)=153
TriggerAll=PlayerID(Var(58)),MoveType=A&&!(PlayerID(Var(58)),HitDefAttr=SCA,AT)&&PlayerID(Var(58)),MoveHit=1&&(StateNo=[5000,5080])
Trigger1=FVar(14)=0
Trigger1=0&&FVar(14):=Var(12);しゃがみガード不能StateNo記憶1個目
Trigger2=FVar(14)&&FVar(15)=0&&!(FVar(14)=PlayerID(Var(58)),StateNo)
Trigger2=0&&FVar(15):=Var(12);しゃがみガード不能StateNo記憶2個目
Trigger3=FVar(14)&&FVar(15)&&FVar(16)=0&&!(FVar(14)=PlayerID(Var(58)),StateNo)&&!(FVar(15)=PlayerID(Var(58)),StateNo)
Trigger3=0&&FVar(16):=Var(12);しゃがみガード不能StateNo記憶3個目
IgnoreHitPause=1
[State -2,学習リセット]
Type=Null
TriggerAll=!IsHelper
Trigger1=(TeamMode=Turns)&&!(Var(5)&2)||FVar(14)<200||(FVar(14)=[5000,5499])
Trigger1=0&&FVar(14):=0;しゃがみガード不能StateNo1個目
Trigger2=(TeamMode=Turns)&&!(Var(5)&2)||FVar(15)<200||(FVar(15)=[5000,5499])||FVar(15)=FVar(14)
Trigger2=0&&FVar(15):=0;しゃがみガード不能StateNo2個目
Trigger3=(TeamMode=Turns)&&!(Var(5)&2)||FVar(16)<200||(FVar(16)=[5000,5499])||FVar(16)=FVar(14)||FVar(16)=FVar(15)
Trigger3=0&&FVar(16):=0;しゃがみガード不能StateNo3個目
Trigger4=(TeamMode=Turns)&&!(Var(5)&2)||FVar(17)<195||(FVar(17)=[5000,5499])
Trigger4=0&&FVar(17):=0;当身されたStateNo1個目
Trigger5=(TeamMode=Turns)&&!(Var(5)&2)||FVar(18)<195||(FVar(18)=[5000,5499])||FVar(18)=FVar(17)
Trigger5=0&&FVar(18):=0;当身されたStateNo2個目
Trigger6=(TeamMode=Turns)&&!(Var(5)&2)||FVar(19)<195||(FVar(19)=[5000,5499])||FVar(19)=FVar(17)||FVar(19)=FVar(18)
Trigger6=0&&FVar(19):=0;当身されたStateNo3個目
Trigger7=(TeamMode=Turns)&&!(Var(5)&2)
Trigger7=0&&Var(5):=(Var(5)|64)-64;アーマー感知
Trigger8=(TeamMode=Turns)&&!(Var(5)&2)
Trigger8=0&&Var(5):=(Var(5)|128)-128;相手受け身感知
Trigger9=(TeamMode=Turns)&&!(Var(5)&2)
Trigger9=0&&Var(5):=(Var(5)|98304)-98304;ダウン追い打ち失敗感知
IgnoreHitPause=1
;---------------------------------------------------------------------------
;クリップボード
;---------------------------------------------------------------------------
[State -2, クリップボード]
type=DisplayToClipboard
trigger1=!ishelper
text="AI = %d, TEMP = %d, BIT = %d, Veloity X=%f,Y=%f \n"
params=var(59),var(0),var(5),(Vel X),(Vel Y)
ignorehitpause=1
[State -2, クリップボード（追加専用）]
type=AppendToClipboard
trigger1=!ishelper
text="Body-Distance X=%d,Y=%d, STATENO=%d, PREV=%d, Time=%d"
params=floor(fvar(7)),floor(fvar(8)),(sysvar(3)),ceil(sysfvar(3)),sysvar(4)
ignorehitpause=1
;---------------------------------------------------------------------------
;ステート固定
;---------------------------------------------------------------------------
;[State -2,パワー制御／変数]
;Type=VarSet
;TriggerAll=!IsHelper
;TriggerAll=(PalNo=12)
;Trigger1=Power>SysFVar(1)
;sysfvar(1)=Power
;IgnoreHitPause=1
;[State -2,パワー制御／上限値]
;Type=VarSet
;TriggerAll=!IsHelper
;TriggerAll=(PalNo=12)
;Trigger1=SysFVar(1)>PowerMAX
;sysfvar(1)=PowerMAX
;IgnoreHitPause=1
;[State -2,パワー制御／下限値]
;Type=VarSet
;TriggerAll=!IsHelper
;TriggerAll=(PalNo=12)
;Trigger1=SysFVar(1)<0
;sysfvar(1)=0
;IgnoreHitPause=1
;[State -2,パワー制御／パワーセット]
;Type=PowerSet
;TriggerAll=!IsHelper
;TriggerAll=(PalNo=12)
;TriggerAll=Power<SysFVar(1)
;Trigger1=!NumPartner
;Trigger2=NumPartner
;Trigger2=!Partner,Alive
;Value=Floor(SysFVar(1))
;IgnoreHitPause=1
;[State -2,ライフ制御]
;Type=VarSet
;TriggerAll=!IsHelper
;Trigger1=SysFVar(0)>LifeMAX-Life
;sysfvar(0)=LifeMAX-Life
;IgnoreHitPause=1
;[State -2,ライフ管理無し／攻撃を受ける前の体力]
;Type=VarSet
;TriggerAll=!IsHelper
;TriggerAll=!GetHitVar(Damage)
;TriggerAll=!(var(5)&536870912);ステートを奪われてない
;TriggerAll=!(PalNo=12)
;Trigger1=MoveType!=H
;var(7)=Life
;IgnoreHitPause=1
;[State -2,ライフ管理／攻撃を受ける前の体力]
;Type=VarSet
;TriggerAll=!IsHelper
;TriggerAll=!GetHitVar(Damage)
;TriggerAll=!(var(5)&536870912);ステートを奪われてない
;TriggerAll=(PalNo=12);ライフ管理
;Trigger1=MoveType!=H
;var(7)=LifeMAX-Floor(SysFVar(0))
;IgnoreHitPause=1
;[State -2,現在体力を変数にセット]
;Type=VarSet
;TriggerAll=!IsHelper
;Trigger1=!(PalNo=12)
;var(9)=Life
;IgnoreHitPause=1
;[State -2,ライフ管理／現在体力を変数にセット]
;Type=VarSet
;TriggerAll=!IsHelper
;Trigger1=(PalNo=12);ライフ管理
;var(9)=LifeMAX-Floor(SysFVar(0))
;IgnoreHitPause=1
;[State -2,落下ダメージを受ける]
;Type=HitFallDamage
;IgnoreHitPause=1
;TriggerAll=!IsHelper
;Trigger1=(PalNo=12);ライフ管理
;[State -2,落下ダメージ無効]
;Type=LifeSet
;TriggerAll=!IsHelper&&Alive
;Trigger1=(PalNo=12);ライフ管理
;Value=Var(9)
;IgnoreHitPause=1
[State -2,GetHitVar(Damage)記憶]
Type=VarSet
TriggerAll=!IsHelper
Trigger1=0&&var(15):=0
Trigger2=(Var(5)&2);試合中
var(15)=GetHitVar(Damage)
IgnoreHitPause=1
;[State -2,ライフ管理用NoKo]
;Type=AssertSpecial
;TriggerAll=!IsHelper&&Alive&&PlayerIDExist(Var(58))
;TriggerAll=(PalNo=12);ライフ管理
;Trigger1=PlayerID(Var(58)),Life>0&&PlayerID(Var(58)),Alive&&PlayerID(Var(58)),MoveType!=H
;Trigger2=PlayerID(Var(58)),Life>0&&PlayerID(Var(58)),Alive&&PlayerID(Var(58)),MoveType!=H
;Trigger2=LifeMAX!=SysFVar(0)
;Flag=NoKo
;IgnoreHitPause=1
;[State -2,ライフ管理／ライフセット]
;Type=LifeSet
;TriggerAll=!IsHelper&&Alive
;TriggerAll=(PalNo=12);ライフ管理
;Trigger1=1
;Value=LifeMAX-Floor(SysFVar(0))
;IgnoreHitPause=1
;[State -2,ライフ管理／下限値]
;Type=VarSet
;TriggerAll=!IsHelper
;Trigger1=SysFVar(0)<0
;sysfvar(0)=0
;IgnoreHitPause=1
[State -2,ガード不能]
Type=AssertSpecial
TriggerAll=!IsHelper
Trigger1=Stateno=155||sysvar(3)=155;||Palno=12
Trigger2=(stateno=[120,132])||(sysvar(3)=[120,132]);Do or do not
Trigger3=var(59)>=1;AI
Flag=NoAirGuard
Flag2=NoStandGuard
Flag3=NoCrouchGuard
IgnoreHitPause=1
[state ai用制御]
type=assertspecial
triggerall=!ishelper
trigger1=var(59)>=1
flag=nowalk
flag2=noautoturn
ignorehitpause=1
[State -2,Timeリセット]
Type=VarSet
TriggerAll=!IsHelper
Trigger1=StateNo=150&&Time<=0&&SysVar(3)=StateNo
Trigger2=StateNo=152&&Time<=0&&SysVar(3)=StateNo
Trigger3=StateNo=154&&Time<=0&&SysVar(3)=StateNo
Trigger4=StateNo=5000&&Time<=0&&SysVar(3)=StateNo
Trigger5=StateNo=5010&&Time<=0&&SysVar(3)=StateNo
Trigger6=StateNo=5020&&Time<=0&&SysVar(3)=StateNo
Trigger7=StateNo=5070&&Time<=0&&SysVar(3)=StateNo
Trigger8=StateNo=5080&&Time<=0&&SysVar(3)=StateNo
Trigger9=sysfvar(4)=-1
sysvar(4)=0
IgnoreHitPause=1
;[State -2,イントロ用]
;Type=VarSet
;TriggerAll=!IsHelper&&Alive
;TriggerAll=RoundNo=1
;TriggerAll=RoundState=0
;Trigger1=SysVar(3)!=190
;Trigger1=SysVar(3)!=191
;Trigger1=SysVar(3)!=5900
;sysvar(3)=5900
;IgnoreHitPause=1
;[State -2,試合後の演出用ステート固定]
;Type=SelfState
;TriggerAll=!IsHelper&&Alive&&RoundState=4&&NumHelper(50000)
;TriggerAll=Helper(50000),Var(59)>45
;Trigger1=!(SysVar(3)=[170,189])
;Value=IfElse(Win,180,IfElse(Lose,170,175))
;Ctrl=0
;Persistent=256
;IgnoreHitPause=1
;[State -2,ステート固定]
;Type=SelfState
;TriggerAll=!IsHelper&&Alive
;triggerall=!(var(5)&8192)
;試合後
;Trigger1=RoundState>=3&&!(var(5)&536870912)
;特定条件で
;Trigger2=Palno=12
;Trigger2=MoveType=H||var(15)
;常時使用
;Trigger3=PalNo=12
;Value=SysVar(3)
;Ctrl=IfElse(((Var(5)&2)||RoundState=3)&&(SysVar(3)=0||(SysVar(3)=[10,12])||SysVar(3)=50||SysVar(3)=52&&SysVar(4)>=3||(SysVar(3)=[120,140])||(SysVar(3)=5900)),1,0)
;Persistent=256
;IgnoreHitPause=1
;---------------------------------------------------------------------------
;ヘルパー保護
;memo AI起動ヘルパーの保護は-1に置いてある
;---------------------------------------------------------------------------
[State ヘルパー保護用]
type=LifeSet
triggerall=ishelper
trigger1=1
value=(Root,LifeMax)
ignorehitpause=1
;---------------------------------------------------------------------------
[State 飛び道具]
type=SelfState
trigger1=ishelper(1050)
value=ifelse(sysvar(3),sysvar(3),1050)
ignorehitpause=1
;---------------------------------------------------------------------------
[State 飛び道具]
type=SelfState
trigger1=ishelper(3050)
value=ifelse(sysvar(3),sysvar(3),3050)
ignorehitpause=1
;---------------------------------------------------------------------------
[State 画面端感知]
type=SelfState
trigger1=ishelper(30000)
value=ifelse(sysvar(3),sysvar(3),30000)
ignorehitpause=1
;---------------------------------------------------------------------------
[State 先行入力]
type=SelfState
trigger1=ishelper(50000)
value=50000
ignorehitpause=1
;---------------------------------------------------------------------------
[State 時止め解除]
type=SelfState
trigger1=ishelper(50001)
value=50001
ignorehitpause=1
;---------------------------------------------------------------------------
[State 敵攻撃ヘルパー感知ヘルパー]
type=SelfState
trigger1=ishelper(66670)
value=66670
ignorehitpause=1
[State PlayerIDを取得する為のヘルパー]
type=SelfState
trigger1=ishelper(76700)
value=76700
ignorehitpause=1
[State 敵攻撃ヘルパー感知補助ヘルパー]
type=SelfState
trigger1=ishelper(77760)
value=77760
ignorehitpause=1
;---------------------------------------------------------------------------
;準常時監視ステート
;---------------------------------------------------------------------------
[Statedef -3]
;---------------------------------------------------------------------------
[State 試合前無敵]
Type=NotHitBy
TriggerAll=!IsHelper
Trigger1=RoundState!=2
Trigger1=0&&Var(5):=(Var(5)|2)-2
Trigger2=RoundState=2&&Ctrl
Trigger2=0&&Var(5):=(Var(5)|2)
Trigger3=!(Var(5)&2)
Value2=SCA
Time=2
IgnoreHitPause=1
[State ]
type=VarSet
trigger1=!ishelper
sysfvar(4)=gametime
ignorehitpause=1
;---------------------------------------------------------------------------
;ゲームシステム
;---------------------------------------------------------------------------
[State 画面端ノックバック]
type=varset
TriggerAll=!ishelper
trigger1=fvar(5)
trigger1=abs(fvar(5))<1.0
fvar(5)=0
[State 画面端ノックバック]
type=varset
TriggerAll=!ishelper
trigger1=fvar(5)
trigger1=numtarget
trigger1=target,hitover||(target,gethitvar(hitshaketime)>0&&target,time<=0)
fvar(5)=0
[State 画面端ノックバック]
type=varset
TriggerAll=!ishelper
Triggerall=!(var(20))
trigger1=movecontact=1&&numtarget
fvar(5)=target,gethitvar(xvel)
ignorehitpause=1
[State 画面端ノックバック]
type=posadd
TriggerAll=!ishelper
Triggerall=!(var(20))
triggerall=fvar(5)
triggerall=numtarget
triggerall=!hitpausetime&&target,gethitvar(hitshaketime)<=0
triggerall=(target,statetype=S||target,statetype=C)&&!(target,gethitvar(yvel))&&!(target,hitfall)
trigger1=target,frontedgebodydist<=abs(target,vel x)
trigger1=(target,gethitvar(xvel)*target,facing)>0
trigger2=target,backedgebodydist<=abs(target,vel x)
trigger2=(target,gethitvar(xvel)*target,facing)<0
x=ifelse(target,frontedgebodydist<=0,-1,1)*(target,facing)*fvar(5)
[State 画面端ノックバック]
type=varset
TriggerAll=!ishelper
Triggerall=!(var(20))
trigger1=numtarget
trigger1=target,gethitvar(hitshaketime)<=0
fvar(5)=fvar(5)*0.85
;---------------------------------------------------------------------------
[State 画面端めくり防止]
type=Width
triggerall=!ishelper
trigger1=Enemy,BackEdgeDist<10
trigger2=Enemy,FrontEdgeDist<10
edge=10,0
IgnoreHitPause=1
;---------------------------------------------------------------------------
;AI補助
;---------------------------------------------------------------------------
[State -3,学習／当身感知前提フラグ]
Type=Null
TriggerAll=!IsHelper&&Alive&&PlayerIDExist(Var(58))
Trigger1=0&&Var(5):=(Var(5)|32)-32
Trigger2=MoveReversed=0&&MoveType!=H
Trigger2=1||FVar(23):=StateNo
Trigger2=0&&Var(12):=IfElse((PlayerID(Var(58)),StateNo=[120,155]),PlayerID(Var(58)),PrevStateNo,PlayerID(Var(58)),StateNo)
IgnoreHitPause=1
;---------------------------------------------------------------------------
;試合後の処理
;---------------------------------------------------------------------------
[State 遅延行為はやめる／ステート変更]
Type=StateTypeSet
TriggerAll=!IsHelper&&Alive&&RoundState=3
Trigger1=SysVar(3)=0
Trigger2=(SysVar(3)=120||SysVar(3)=140)&&Pos Y=0
Trigger3=(SysVar(3)=[130,131])
Trigger4=(SysVar(3)=[150,153])
Trigger5=(SysVar(3)=5900)
StateType=S
MoveType=I
IgnoreHitPause=1
[State 遅延行為はやめる／操作可能]
Type=CtrlSet
TriggerAll=!IsHelper&&Alive&&RoundState=3
Trigger1=SysVar(3)=0
Trigger2=(SysVar(3)=120||SysVar(3)=140)&&Pos Y=0
Trigger3=(SysVar(3)=[130,131])
Trigger4=(SysVar(3)=[150,153])
Trigger5=(SysVar(3)=5900)
Value=1
IgnoreHitPause=1
[State 試合後対策]
Type=CtrlSet
TriggerAll=!IsHelper&&Alive&&RoundState=4
Trigger1=1
Value=0
IgnoreHitPause=1
[State 八百長対策／ラウンド移行しない]
Type=AssertSpecial
TriggerAll=!IsHelper&&Alive&&RoundState=3
Trigger1=MoveType=A
Flag=Intro
IgnoreHitPause=1
[State 八百長対策／ラウンド移行しない]
Type=AssertSpecial
TriggerAll=!IsHelper&&Alive&&RoundState>=3
Trigger1=!(SysVar(3)=[170,189])
Flag=RoundNotOver
IgnoreHitPause=1
;---------------------------------------------------------------------------
;StateNo=5900
;---------------------------------------------------------------------------
[State -3,5900]
Type=VarRangeSet
TriggerAll=!ishelper&&StateNo=5900
Trigger1=RoundsExisted=0
Trigger2=(TeamMode=Turns)
Value=0
IgnoreHitPause=1
[State -3,5900]
Type=VarRangeSet
TriggerAll=!ishelper&&StateNo=5900
Trigger1=RoundsExisted=0
Trigger2=(TeamMode=Turns)
FValue=0
IgnoreHitPause=1
[State -3,5900]
Type=ChangeState
TriggerAll=!ishelper&&StateNo=5900
Trigger1=RoundNo=1
Value=190
Persistent=256
IgnoreHitPause=1
