Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!
  • 🔧 Login & Sign-Up Fixed!
    The recent login and sign-up issues have been successfully resolved by @DoomJoshuaBoy. Fresh logins are now working normally, so feel free to log in without any trouble! if you do run into trouble please let us know!

DJB MUGEN & IKEMEN Community

Command List — Waluigi_AIRemake.zip ← Back to Overview

; The CMD file. ; ; Two parts: 1. Command definition and 2. State entry ; (state entry is after the commands def section) ; ; 1. Command definition ; --------------------- ; Note: The commands are CASE-SENSITIVE, and so are the command names. ; The eight directions are: ; B, DB, D, DF, F, UF, U, UB (all CAPS) ; corresponding to back, down-back, down, downforward, etc. ; The six buttons are: ; a, b, c, x, y, z (all lower case) ; In default key config, abc are are the bottom, and xyz are on the ; top row. For 2 button characters, we recommend you use a and b. ; For 6 button characters, use abc for kicks and xyz for punches. ; ; Each [Command] section defines a command that you can use for ; state entry, as well as in the CNS file. ; The command section should look like: ; ; [Command] ; name = some_name ; command = the_command ; time = time (optional -- defaults to 15 if omitted) ; ; - some_name ; A name to give that command. You'll use this name to refer to ; that command in the state entry, as well as the CNS. It is case- ; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). ; ; - command ; list of buttons or directions, separated by commas. ; Directions and buttons can be preceded by special characters: ; slash (/) - means the key must be held down ; egs. command = /D ;hold the down direction ; command = /DB, a ;hold down-back while you press a ; tilde (~) - to detect key releases ; egs. command = ~a ;release the a button ; command = ~D, F, a ;release down, press fwd, then a ; If you want to detect "charge moves", you can specify ; the time the key must be held down for (in game-ticks) ; egs. command = ~30a ;hold a for at least 30 ticks, then release ; dollar ($) - Direction-only: detect as 4-way ; egs. command = $D ;will detect if D, DB or DF is held ; command = $B ;will detect if B, DB or UB is held ; plus (+) - Buttons only: simultaneous press ; egs. command = a+b ;press a and b at the same time ; command = x+y+z ;press x, y and z at the same time ; You can combine them: ; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, ; ;then press a and b together ; It's recommended that for most "motion" commads, eg. quarter-circle-fwd, ; you start off with a "release direction". This matches the way most ; popular fighting games implement their command detection. ; ; - time (optional) ; Time allowed to do the command, given in game-ticks. Defaults to 15 ; if omitted ; ; If you have two or more commands with the same name, all of them will ; work. You can use it to allow multiple motions for the same move. ; ; Some common commands examples are given below. ; ; [Command] ;Quarter circle forward + x ; name = "QCF_x" ; command = ~D, DF, F, x ; ; [Command] ;Half circle back + a ; name = "HCB_a" ; command = ~F, DF, D, DB, B, a ; ; [Command] ;Two quarter circles forward + y ; name = "2QCF_y" ; command = ~D, DF, F, D, DF, F, y ; ; [Command] ;Tap b rapidly ; name = "5b" ; command = b, b, b, b, b ; time = 30 ; ; [Command] ;Charge back, then forward + z ; name = "charge_B_F_z" ; command = ~60$B, F, z ; time = 10 ; ; [Command] ;Charge down, then up + c ; name = "charge_D_U_c" ; command = ~60$D, U, c ; time = 10 ; ;-| Button Remapping |----------------------------------------------------- ; This section lets you remap the player's buttons (to easily change the ; button configuration). The format is: ; old_button = new_button ; If new_button is left blank, the button cannot be pressed. [Remap] x = x y = y z = z a = a b = b c = c s = s ;-------------------------------------------------------------------------- ;AI ; AI Activation [Command] name = "cpu1" command = U, U, U, U, F, B, B, F time = 0 [Command] name = "cpu2" command = U, U, U, D, F, B, B, F time = 0 [Command] name = "cpu3" command = U, U, D, D, F, B, B, F time = 0 [Command] name = "cpu4" command = U, D, D, D, F, B, B, F time = 0 [Command] name = "cpu5" command = D, D, D, D, F, B, B, F time = 0 [Command] name = "cpu6" command = D, D, D, U, F, B, B, F time = 0 [Command] name = "cpu7" command = D, D, U, U, F, B, B, F time = 0 [Command] name = "cpu8" command = D, U, U, U, F, B, B, F time = 0 [Command] name = "cpu9" command = U, D, U, U, F, B, B, F time = 0 [Command] name = "cpu10" command = U, U, D, U, F, B, B, F time = 0 [Command] name = "cpu11" command = D, U, U, D, F, B, B, F time = 0 ;-| Default Values |------------------------------------------------------- [Defaults] ; Default value for the "time" parameter of a Command. Minimum 1. command.time = 30 ; Default value for the "buffer.time" parameter of a Command. Minimum 1, ; maximum 30. command.buffer.time = 1 ;-| Single Button |--------------------------------------------------------- [Command] name = "a" command = a time = 1 [Command] name = "b" command = b time = 1 [Command] name = "c" command = c time = 1 [Command] name = "x" command = x time = 1 [Command] name = "y" command = y time = 1 [Command] name = "z" command = z time = 1 [Command] name = "start" command = s time = 1 ;-| Hold Dir |-------------------------------------------------------------- [Command] name = "holdfwd";Required (do not remove) command = /$F time = 1 [Command] name = "holdback";Required (do not remove) command = /$B time = 1 [Command] name = "holdup" ;Required (do not remove) command = /$U time = 1 [Command] name = "holddown";Required (do not remove) command = /$D time = 1 [Command] name = "up" ;Required (do not remove) command = $U time = 1 ;-| Hold Button |---------------------------------------------------------- ; Please define Anim 74140108 in your AIR file if AND ONLY IF you place these ; 7 Hold Button commands immediately after the 11 Single Button and Hold Dir ; commands at the very top of your CMD list, as demonstrated here. ; In this version of the AI code, these commands are only used by the XOR ; method, and thus are optional. But there remains a possibility that a ; future version of the helper method might be helped by having these ; commands placed here, and Anim 74140108 would then be used to indicate ; that a partner character has a compatible CMD. [Command] name = "holda" command = /a time = 1 [Command] name = "holdb" command = /b time = 1 [Command] name = "holdc" command = /c time = 1 [Command] name = "holdx" command = /x time = 1 [Command] name = "holdy" command = /y time = 1 [Command] name = "holdz" command = /z time = 1 [Command] name = "holdstart" command = /s time = 1 ;-| CPU |-------------------------------------------------------------- ; Note that if you make any changes to the basic one-button or recovery ; commands, you'll need to make the same changes to their matching commands here ; and/or in the XOR VarSet controller. That includes things like, for example: ; * changing the recovery command to use a different combination of buttons. ; * renaming the b button command as "d", or the start button command as "s". ; * switching the button names around, e.g. so button y triggers "a" and button a triggers "y". ; * having more than one way to trigger the same command name. ; If you understand how the XOR method works, the proper changes should be obvious. ; If you don't understand it, then simply disable the lines in the XOR VarSet ; controller that correspond to the commands you've altered. [Command] name = "a2" command = a time = 1 [Command] name = "b2" command = b time = 1 [Command] name = "c2" command = c time = 1 [Command] name = "x2" command = x time = 1 [Command] name = "y2" command = y time = 1 [Command] name = "z2" command = z time = 1 [Command] name = "start2" command = s time = 1 [Command] name = "holdfwd2" command = /$F time = 1 [Command] name = "holdback2" command = /$B time = 1 [Command] name = "holdup2" command = /$U time = 1 [Command] name = "holddown2" command = /$D time = 1 [Command] name = "holda2" command = /a time = 1 [Command] name = "holdb2" command = /b time = 1 [Command] name = "holdc2" command = /c time = 1 [Command] name = "holdx2" command = /x time = 1 [Command] name = "holdy2" command = /y time = 1 [Command] name = "holdz2" command = /z time = 1 [Command] name = "holdstart2" command = /s time = 1 [Command] name = "recovery2" command = x+y time = 1 ; Here add matching commands for any moves that must never be used randomly ; by the computer, such as suicide moves and super moves, and add the pairs ; to the XOR VarSet controller in State -3. ; If you're desperate to make sure that the AI always gets turned on as soon ; as possible, you can add more equivalents for your own commands here too, ; and add to the XOR VarSet controller's triggers accordingly. You should ; use button-only commands before using any commands with directional ; components, as the latter apparently doesn't work in Linux Mugen 2002.04.14. ; And of course, if you've run out of unique command labels (Mugen allows ; 128), you can remove as many of these as you want. You'll of course need ; to modify the XOR VarSet controller's triggers accordingly, but Mugen ; will let you know if you forget to do so. :) ;-| Super Motions |-------------------------------------------------------- [command] name = "SUPER3" command = D,DB,B,x+y time = 35 [command] name = "Whirluigi" command = ~D,DF,F,a+b time = 35 [command] name = "Super1" command = ~D,DF,F,x+y time = 35 ;-| Special Motions |------------------------------------------------------ [command] name = "Bob-omb" command = D,DB,B,z time = 15 [command] name = "Bob-omb" command = D,DB,B,y time = 15 [command] name = "Bob-omb" command = D,DB,B,x time = 15 [command] name = "Hammer3" command = D,DF,F,z time = 15 [command] name = "Hammer2" command = D,DF,F,y time = 15 [command] name = "Hammer1" command = D,DF,F,x time = 15 ;-|Super Jumps |----------------------------------------------------------- [Command] name = "superjump" ;Required (do not remove) command = ~D, U time = 10 [Command] name = "superjumpforward" ;Required (do not remove) command = ~D, UF time = 10 [Command] name = "superjumpbackward" ;Required (do not remove) command = ~D, UB time = 10 ;-| Double Tap |----------------------------------------------------------- [Command] name = "FF" ;Required (do not remove) command = F, F time = 10 [Command] name = "BB" ;Required (do not remove) command = B, B time = 10 ;-| 2/3 Button Combination |----------------------------------------------- [Command] name = "recovery" ;Required (do not remove) command = x+y time = 1 [Command] name = "recovery" command = y+z time = 1 [Command] name = "recovery" command = x+z time = 1 [Command] name = "recovery" command = a+b time = 1 [Command] name = "recovery" command = b+c time = 1 [Command] name = "recovery" command = a+c time = 1 ;-| Dir + Button |--------------------------------------------------------- [Command] name = "back_x" command = /$B,x time = 1 [Command] name = "back_y" command = /$B,y time = 1 [Command] name = "back_z" command = /$B,z time = 1 [Command] name = "down_x" command = /$D,x time = 1 [Command] name = "down_y" command = /$D,y time = 1 [Command] name = "down_z" command = /$D,z time = 1 [Command] name = "fwd_x" command = /$F,x time = 1 [Command] name = "fwd_y" command = /$F,y time = 1 [Command] name = "fwd_z" command = /$F,z time = 1 [Command] name = "up_x" command = /$U,x time = 1 [Command] name = "up_y" command = /$U,y time = 1 [Command] name = "up_z" command = /$U,z time = 1 [Command] name = "back_a" command = /$B,a time = 1 [Command] name = "back_b" command = /$B,b time = 1 [Command] name = "back_c" command = /$B,c time = 1 [Command] name = "down_a" command = /$D,a time = 1 [Command] name = "down_b" command = /$D,b time = 1 [Command] name = "down_c" command = /$D,c time = 1 [Command] name = "fwd_a" command = /$F,a time = 1 [Command] name = "fwd_b" command = /$F,b time = 1 [Command] name = "fwd_c" command = /$F,c time = 1 [Command] name = "up_a" command = /$U,a time = 1 [Command] name = "up_b" command = /$U,b time = 1 [Command] name = "up_c" command = /$U,c time = 1 ;--------------------------------------------------------------------------- ; 2. State entry ; -------------- ; This is where you define what commands bring you to what states. ; ; Each state entry block looks like: ; [State -1, Label] ;Change Label to any name you want to use to ; ;identify the state with. ; type = ChangeState ;Don't change this ; value = new_state_number ; trigger1 = command = command_name ; . . . (any additional triggers) ; ; - new_state_number is the number of the state to change to ; - command_name is the name of the command (from the section above) ; - Useful triggers to know: ; - statetype ; S, C or A : current state-type of player (stand, crouch, air) ; - ctrl ; 0 or 1 : 1 if player has control. Unless "interrupting" another ; move, you'll want ctrl = 1 ; - stateno ; number of state player is in - useful for "move interrupts" ; - movecontact ; 0 or 1 : 1 if player's last attack touched the opponent ; useful for "move interrupts" ; ; Note: The order of state entry is important. ; State entry with a certain command must come before another state ; entry with a command that is the subset of the first. ; For example, command "fwd_a" must be listed before "a", and ; "fwd_ab" should come before both of the others. ; ; For reference on triggers, see CNS documentation. ; ; Just for your information (skip if you're not interested): ; This part is an extension of the CNS. "State -1" is a special state ; that is executed once every game-tick, regardless of what other state ; you are in. ; Don't remove the following line. It's required by the CMD standard. [Statedef -1] ;=========================================================================== ; AI ;=========================================================================== ; Diffculty Behavior [State 0, AI Diffculty System] type = Null triggerall = AILevel > 0 trigger1 = e || fvar(12):= cond(AILevel >= 8, 1.00, (1.00 * (AILevel ** 2 / 64.0))) ; General Difficulty ;trigger1 = e || fvar(12):= 1.00 ; 0.00-1.00 trigger1 = e || fvar(13):= cond(AILevel >= 8, 1.00, (1.00 * (AILevel ** 2 / 64.0))) ; Blocking Scale ;trigger2 = e || fvar(13):= 1.00 ; 0.00-1.00 trigger1 = e || var(10):= 4+AILevel ; Infinite Loops ;=========================================================================== ; AI Setup ;=========================================================================== [state -1, AI Detect Projectile System] type = helper trigger1 = ailevel ;M.U.G.E.N 1.0+ trigger1 = !numhelper(33333333) name = "AI Detect Projectile System" ID = 33333333 stateno = 33333333 postype = p1 ownpal = 1 keyctrl = 0 size.xscale = 1.0 size.yscale = 1.0 supermovetime = 2147483647 pausemovetime = 2147483647 ignorehitpause = 1 [state -1, AI Blocking Helper] type = helper triggerall = ailevel triggerall = roundstate = 2 trigger1 = !numhelper(15900) name = "AI Blocking Helper" ID = 15900 stateno = 15900 postype = p1 ownpal = 1 keyctrl = 0 supermovetime = 2147483647 pausemovetime = 2147483647 ignorehitpause = 1 [state -1, AI Memory Helper] type = helper triggerall = ailevel triggerall = roundstate = 2 trigger1 = !numhelper(18000) name = "AI Memory Helper" ID = 18000 stateno = 18000 postype = p1 ownpal = 1 keyctrl = 0 supermovetime = 2147483647 pausemovetime = 2147483647 ignorehitpause = 1 [state -1, AI Memory Helper] type = helper triggerall = ailevel trigger1 = !numhelper(18100) name = "AI Right Bound" ID = 18100 stateno = 18100 pos = 0,0 ownpal = 1 keyctrl = 0 supermovetime = 2147483647 pausemovetime = 2147483647 ignorehitpause = 1 [state -1, AI Memory Helper] type = helper triggerall = ailevel trigger1 = !numhelper(18200) name = "AI Left Bound" ID = 18200 stateno = 18100 pos = 0,0 ownpal = 1 keyctrl = 0 supermovetime = 2147483647 pausemovetime = 2147483647 ignorehitpause = 1 [State -3, Simul/Tag] Type = varset triggerall = !ishelper trigger1 = numenemy = 1 var(55) = 0 ignorehitpause = 1 [State -3, Simul/Tag] Type = varset triggerall = !ishelper trigger1 = numenemy = 2 trigger1 = enemynear(0),alive trigger1 = enemynear(1),alive var(55) = IfElse(((Abs(Pos X - EnemyNear(0),Pos X)) < (Abs(Pos X - EnemyNear(1),Pos X))),0,1) ignorehitpause = 1 [State -3, Simul/Tag] Type = varset triggerall = !ishelper trigger1 = numenemy = 2 trigger1 = !enemynear(0),Alive || !enemynear(1),Alive var(55) = IfElse(EnemyNear(0),Alive,0,1) ignorehitpause = 1 [state -1, yaccel] type = varset trigger1 = fvar(18) != enemynear(var(55)),const(movement.yaccel) trigger1 = enemynear(var(55)),stateno != [5000,5210] trigger1 = enemynear(var(55)),vel y != 0 fv = 18 value = enemynear(var(55)),const(movement.yaccel) ignorehitpause = 1 [state -1, yaccel] type = varset trigger1 = fvar(18) != enemynear(var(55)),gethitvar(yaccel) trigger1 = enemynear(var(55)),stateno = [5000,5210] fv = 18 value = enemynear(var(55)),gethitvar(yaccel) ignorehitpause = 1 [state -1, yaccel] type = varset trigger1 = fvar(18) != 0 trigger1 = enemynear(var(55)),vel y = 0 fv = 18 value = 0 ignorehitpause = 1 [state -1, Enemy X-Velocity] type = varset triggerall = !ishelper triggerall = facing != enemynear(var(55)),facing trigger1 = fvar(35) != enemynear(var(55)),vel x fvar(35) = enemynear(var(55)),vel x ignorehitpause = 1 [state -1, Enemy X-Velocity] type = varset triggerall = !ishelper triggerall = facing = enemynear(var(55)),facing trigger1 = fvar(35) != enemynear(var(55)),vel x fvar(35) = -enemynear(var(55)),vel x ignorehitpause = 1 [State ] type = varset triggerall = !ishelper triggerall = fvar(35) != 0 trigger1 = enemynear(var(55)),vel x = 0 fvar(35) = 0 ignorehitpause = 1 [state -1, Enemy X-Velocity] type = varset triggerall = !ishelper triggerall = facing != enemynear(var(55)),facing trigger1 = fvar(36) != enemynear(var(55)),gethitvar(xvel) fvar(36)=((enemynear(var(55)),gethitvar(xvel))*(enemynear(var(55)),facing))-((enemynear(var(55)),gethitvar(xvel))*(enemynear(var(55)),facing)*cond(enemynear(var(55)),statetype = C,enemynear(var(55)),const(movement.crouch.friction),cond(enemynear(var(55)),statetype = A, 1, enemynear(var(55)),const(movement.stand.friction)))) ignorehitpause = 1 [state -1, Enemy X-Velocity] type = varset triggerall = !ishelper triggerall = facing = enemynear(var(55)),facing trigger1 = fvar(36) != enemynear(var(55)),gethitvar(xvel) fvar(36)=-((enemynear(var(55)),gethitvar(xvel))*(enemynear(var(55)),facing))-((enemynear(var(55)),gethitvar(xvel))*(enemynear(var(55)),facing)*cond(enemynear(var(55)),statetype = C,enemynear(var(55)),const(movement.crouch.friction),cond(enemynear(var(55)),statetype = A, 1, enemynear(var(55)),const(movement.stand.friction)))) ignorehitpause = 1 [State ] type = varset triggerall = !ishelper triggerall = fvar(36) != 0 trigger1 = enemynear(var(55)),gethitvar(xvel) = 0 fvar(36) = 0 ignorehitpause = 1 [State 0, P2Bodydist X] type = Null triggerall = !ishelper triggerall = 1||fvar(7):=facing*(enemynear(var(55)),pos x-(pos x+facing*(cond(statetype = A, const(size.air.front),const(size.ground.front))))) trigger1 = enemynear(var(55)),facing != facing && fvar(7)>=0 || enemynear(var(55)),facing = facing && fvar(7)<0 trigger1 = 1||fvar(7):=(fvar(7)-cond(enemynear(var(55)),statetype = A, enemynear(var(55)),const(size.air.front), enemynear(var(55)),const(size.ground.front))) trigger2 = 1||fvar(7):=(fvar(7)-cond(enemynear(var(55)),statetype = A, enemynear(var(55)),const(size.air.back), enemynear(var(55)),const(size.ground.back))) ignorehitpause = 1 [State 0, P2Bodydist Y] type = Null triggerall = !ishelper trigger1 = 1||fvar(8):=enemynear(var(55)),pos y-pos y ignorehitpause = 1 [State -3, Blocking Methods] type = VarSet triggerall = AILevel trigger1 = 1 var(43) = 1 ignorehitpause = 1 [State -3, Blocking Methods] type = VarSet triggerall = AILevel triggerall = numhelper(15900) triggerall = helper(15900),var(40) != 1 trigger1 = enemynear(var(55)),movetype = A trigger1 = enemynear(var(55)),hitdefattr = A,AA,AP,AT || enemynear(var(55)),statetype = A trigger2 = PlayerIdExist(helper(33333333),var(4)) trigger2 = PlayerID(helper(33333333),var(4)), statetype = A trigger3 = PlayerIdExist(helper(33333333),var(4)) trigger3 = PlayerID(helper(33333333),var(4)), hitdefattr = A,AA,AP trigger4 = helper(15900),var(40) = 2 var(43) = 0 ignorehitpause = 1 [State -3, Blocking Methods] type = VarSet triggerall = AILevel triggerall = numhelper(15900) triggerall = helper(15900),var(40) != 2 trigger1 = enemynear(var(55)),movetype = A trigger1 = enemynear(var(55)),hitdefattr = C,AA,AP,AT || enemynear(var(55)),statetype = C trigger2 = PlayerIdExist(helper(33333333),var(4)) trigger2 = PlayerID(helper(33333333),var(4)), statetype = C trigger3 = PlayerIdExist(helper(33333333),var(4)) trigger3 = PlayerID(helper(33333333),var(4)), hitdefattr = C,AA,AP trigger4 = helper(15900),var(40) = 1 var(43) = 1 ignorehitpause = 1 [State -1, Default Guarding Disabled] type = AssertSpecial trigger1 = AILevel flag = nostandguard flag2 = nocrouchguard flag3 = noairguard ignorehitpause = 1 [State -1, Default Walking Disabled] type = AssertSpecial trigger1 = AILevel flag = nowalk ignorehitpause = 1 ;=========================================================================== ; AI Recovery/Wake-Up ;=========================================================================== [State 5050, AI Fall Recovery] type = ChangeState triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = StateNo = 5050 triggerall = AILevel triggerall = alive triggerall = Vel Y > Const(movement.air.gethit.airrecover.threshold) triggerall = random <= 500 triggerall = enemynear(var(55)),movetype != A || enemynear(var(55)),stateno < 1000 triggerall = CanRecover trigger1 = fvar(7) >= 100 || (fvar(8) <= -100 && enemynear(var(55)),vel y < 0) || fvar(8) <= -200 trigger2 = fvar(7) >= 50 || (fvar(8) <= -50 && enemynear(var(55)),vel y < 0) || fvar(8) <= -140 trigger2 = enemynear(var(55)),ctrl = 0 value = 5210 [State 5050, AI Fall Recovery] type = ChangeState triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = StateNo = 5050 triggerall = Vel Y > 0 triggerall = Pos Y >= Const(movement.air.gethit.groundrecover.ground.threshold) triggerall = alive triggerall = AILevel triggerall = random <= 500 triggerall = fvar(7) >= 0 triggerall = CanRecover trigger1 = fvar(7) >= 100 || (fvar(8) <= -100 && enemynear(var(55)),vel y < 0) || fvar(8) <= -200 trigger2 = fvar(7) >= 50 || (fvar(8) <= -50 && enemynear(var(55)),vel y < 0) || fvar(8) <= -140 trigger2 = enemynear(var(55)),ctrl = 0 value = 5200 ;HITFALL_RECOVER [State 5050, AI Get Up From Knockdown] type = SelfState value = 5120 triggerall = AILevel && RoundState = 2 && alive > 0 trigger1 = stateno = 5110 && time >= 0 ;=========================================================================== ; AI Combos ;=========================================================================== [State Super Jump Variable] type = VarSet triggerall = AILevel trigger1 = 1 var(12) = (stateno = 56 || stateno = 57) ignorehitpause = 1 ;-------------------------------------- ; Chains ;-------------------------------------- ; Standing [State -1, s.LP combos] type = ChangeState value = var(52) triggerall = AILevel && RoundState = 2 triggerall = (stateno = 200 || stateno = 230) && movecontact ; s.LP to s.LK trigger1 = stateno != 230 trigger1 = fvar(7) = [-10,25+floor(7*(fvar(36)))] trigger1 = var(52):= 230 || 1 ; s.LP to s.MP trigger2 = fvar(7) = [-10,35+floor(7*(fvar(36)))] trigger2 = var(52):= 210 || 1 ; s.LP to s.MK trigger3 = var(52):= 240 || 1 [State -1, Stand Medium combos] type = ChangeState value = var(52) triggerall = AILevel && RoundState = 2 triggerall = (stateno = 210 || stateno = 240) && movecontact ; s.LP to s.LK trigger1 = statetype != A trigger1 = cond(stateno = 210, (fvar(7) = [-10,55+floor(10*(fvar(36)))]),(fvar(7) = [-10,35+floor(7*(fvar(36)))])) trigger1 = var(52):= cond(stateno = 240, 210, 240) || 1 ; Level 2 trigger2 = power >= 2000 trigger2 = var(52):= cond(moveguarded, 3000, 3099) || 1 ; Level 1 trigger3 = power >= 1000 trigger3 = enemynear(var(55)),stateno = [120,159] trigger3 = var(52):= 3000 || 1 ; Launcher trigger4 = fvar(7) = [-10,50+floor(9*(fvar(36)))] trigger4 = var(52):= 420 || 1 ; Hammer trigger5 = var(52):= 520 || 1 ; Crouching [State -1, c.LK to c.MK] type = ChangeState value = 440 triggerall = AILevel && RoundState = 2 triggerall = stateno = 430 && movecontact trigger1 = (!var(11) || var(11) >= var(10)) || enemynear(var(55)),statetype = A [State -1, c.MK to Launcher] type = ChangeState value = 420 triggerall = AILevel && RoundState = 2 triggerall = stateno = 440 && movecontact trigger1 = (!var(11) || var(11) >= var(10)) || enemynear(var(55)),statetype = A [State -1, Super Jump] type = ChangeState value = var(52) triggerall = AILevel && RoundState = 2 triggerall = stateno = 420 && movecontact trigger1 = !moveguarded trigger1 = enemynear(var(55)),movetype = H trigger1 = enemynear(var(55)),stateno != [120,159] trigger1 = var(52):= 56 || 1 ; Combo Jump trigger2 = moveguarded || enemynear(var(55)),movetype != H trigger2 = var(52):= cond(backedgebodydist >= 60, 57, 56) || 1 ; Air Combos [State -1, Jump Light Kick] type = ChangeState value = 630 triggerall = AILevel && RoundState = 2 triggerall = statetype = A triggerall = enemynear(var(55)),statetype = A triggerall = enemynear(var(55)),movetype = H triggerall = time >= 6 triggerall = var(12) > 0 trigger1 = fvar(7) = [-20,20+floor(2*(fvar(35))+floor(2*(vel x)))] trigger1 = fvar(8) = [-20-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47),20-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47)] trigger1 = pos Y + 2 * vel y + const(movement.yaccel)*2*8/2 < 0 [State Air Combos] type = ChangeState value = var(52) triggerall = AILevel && RoundState = 2 triggerall = statetype = A triggerall = movecontact ; 630 to 600 trigger1 = stateno = 630 trigger1 = var(52):= 600 || 1 ; 600 to 610 trigger2 = stateno = 600 trigger2 = var(52):= 610 || 1 ; 610 to 640 trigger3 = stateno = 610 trigger3 = var(52):= 640 || 1 ; Strong Zigzags trigger4 = stateno = 640 || stateno = 620 || stateno = 650 trigger4 = var(52):= cond(stateno = 620, 650, 620) || 1 ;-------------------------------------- ; c.LK infinite ;-------------------------------------- [State 430, VarSet] type = VarSet triggerall = AILevel triggerall = var(11) > 0 trigger1 = enemynear(var(55)),statetype = A || enemynear(var(55)),movetype != H trigger3 = enemynear(var(55)),stateno = [120,159] var(11) = 0 [State 430, VarSet] type = VarAdd triggerall = AILevel triggerall = (stateno = 430 || stateno = 440) && movehit triggerall = enemynear(var(55)),stateno != [120,159] triggerall = enemynear(var(55)),statetype != A triggerall = enemynear(var(55)),movetype = H trigger1 = hitpausetime = 8 var(11) = 1 ignorehitpause = 1 [State -1, Crouching Light Kick] type = ChangeState value = 430 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || (stateno = [21,22]) || stateno = 101 triggerall = var(11) > 0 && (var(11) < var(10)) trigger1 = fvar(7) = [-10,25+floor(2*(fvar(35)))] trigger1 = fvar(8) >= -20-(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)) [State -1, AI Walking] type = ChangeState value = 22 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = var(11) > 0 trigger1 = ctrl || stateno = 21 || stateno = 101 ;=========================================================================== ; AI Supers ;=========================================================================== [State -1, Waluigi Assault] type = ChangeState value = 3099 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = power >= 2000 triggerall = enemynear(var(55)),stateno != [120,159] triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -2-1) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+7 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 3 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*3*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 3 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*3*8/2 >= 0) || (enemynear(var(55)),animtime >= -2-1 && enemynear(var(55)),statetype != A) triggerall = fvar(7) = [-10,110+floor(7*(fvar(35)))] triggerall = fvar(8) >= -50-(7*(enemynear(var(55)),vel y)+(7*(7+1)/2)*fvar(18)) triggerall = random >= 500 trigger1 = enemynear(var(55)),ctrl = 0 trigger1 = enemynear(var(55)),animtime <= -2-1 trigger1 = enemynear(var(55)),movetype = I trigger1 = enemynear(var(55)),stateno != helper(18100),stateno trigger2 = enemynear(var(55)),stateno != 0 trigger2 = enemynear(var(55)),hitdefattr != SCA,HA,HP,HT trigger2 = enemynear(var(55)),stateno = helper(18000),var(58) trigger2 = enemynear(var(55)),time+7 <= helper(18000),var(59) trigger3 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 trigger4 = enemynear(var(55)),stateno = [200,699] trigger4 = enemynear(var(55)),moveguarded > 0 [State -1, Waluigi Assault] type = ChangeState value = 3000 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = power >= 1000 triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -2-1) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+3 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 3 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*3*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 3 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*3*8/2 >= 0) || (enemynear(var(55)),animtime >= -2-1 && enemynear(var(55)),statetype != A) triggerall = fvar(7) = [-10,50+floor(3*(fvar(35)))] triggerall = fvar(8) >= -50-(3*(enemynear(var(55)),vel y)+(3*(3+1)/2)*fvar(18)) triggerall = random <= 500 || (enemynear(var(55)),stateno != [120,159]) trigger1 = enemynear(var(55)),stateno = [120,159] trigger2 = enemynear(var(55)),ctrl = 0 trigger2 = enemynear(var(55)),animtime <= -2-1 trigger2 = enemynear(var(55)),movetype = I trigger2 = enemynear(var(55)),stateno != helper(18100),stateno trigger3 = enemynear(var(55)),stateno != 0 trigger3 = enemynear(var(55)),hitdefattr != SCA,HA,HP,HT trigger3 = enemynear(var(55)),stateno = helper(18000),var(58) trigger3 = enemynear(var(55)),time+3 <= helper(18000),var(59) trigger4 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 trigger5 = enemynear(var(55)),stateno = [200,699] trigger5 = enemynear(var(55)),moveguarded > 0 ;=========================================================================== ; AI Anti-Projectile ;=========================================================================== [State -1, AI Jump over Projectile] type = ChangeState value = 43 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = helper(18000),fvar(15) >= 1 || random <= abs(1000*(helper(18000),fvar(15))) triggerall = statetype != A triggerall = ctrl || (stateno = [21,22]) || (stateno = [120,149]) triggerall = enemynear(var(55)),ctrl = 0 || enemynear(var(55)),vel x < 0 || fvar(7) >= 60 triggerall = PlayerIdExist(helper(33333333),var(4)) ;enemy projectile exists triggerall = PlayerID(helper(33333333),var(4)), vel x != 0 ; Avoid "Division by Zero" debug overflow triggerall = PlayerID(helper(33333333),var(4)), pos y >= -100 ; Avoid jumping over projectiles that are to high. 100 = char height triggerall = PlayerID(helper(33333333),var(4)), movetype = A triggerall = cond(numhelper(33333333),helper(33333333), cond(1, var(20) := 1, 0), 0) ; the 15 in "var(20) := 15" represents the 15th time this trigger was used. the number should be different everytime this is added/used. triggerall = cond(helper(33333333),numexplod((helper(33333333),var(20)*100000000)+PlayerID(helper(33333333),var(4)),stateno) = 0, 1, helper(33333333),numexplod((helper(33333333),var(20)*100000000)+abs(floor(PlayerID(helper(33333333),var(4)),vel x))) = 0) trigger1 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/2) / const(movement.yaccel))) trigger2 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.9) / const(movement.yaccel))) trigger3 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.8) / const(movement.yaccel))) trigger4 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.7) / const(movement.yaccel))) trigger5 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.6) / const(movement.yaccel))) trigger6 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.5) / const(movement.yaccel))) trigger7 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.4) / const(movement.yaccel))) trigger8 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.3) / const(movement.yaccel))) trigger9 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.2) / const(movement.yaccel))) trigger10 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)/1.1) / const(movement.yaccel))) trigger11 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) * abs(const(velocity.jump.fwd.x)) / const(movement.yaccel))) trigger12 = ceil(((PlayerID(helper(33333333),var(4)), pos x - pos x )* facing) / PlayerID(helper(33333333),var(4)), vel x) = floor(abs((const(velocity.jump.y)) / const(movement.yaccel))) ;=========================================================================== ; AI Counters/Reversals ;=========================================================================== ; Air Normals [State -1, j.HK] type = ChangeState value = 650 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl triggerall = enemynear(var(55)),stateno != 0 triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) || (enemynear(var(55)),animtime >= -1-1 && enemynear(var(55)),statetype != A) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -1-1) triggerall = vel x < 0 || vel y >= 0 || enemynear(var(55)),statetype = A triggerall = !var(12) || enemynear(var(55)),movetype != H || vel y > 0 triggerall = fvar(7) = [-20,20+floor(2*(fvar(35))+floor(2*(vel x)))] triggerall = fvar(8) = [-20-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y))-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47)] triggerall = pos Y + 2 * vel y + const(movement.yaccel)*2*8/2 < 0 trigger1 = enemynear(var(55)),hitdefattr != SCA,HA,HP,HT trigger1 = enemynear(var(55)),stateno = helper(18000),var(58) trigger1 = enemynear(var(55)),time <= helper(18000),var(59) trigger2 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 trigger3 = enemynear(var(55)),stateno = [200,699] trigger3 = enemynear(var(55)),moveguarded > 0 [State -1, j.LK] type = ChangeState value = 630 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl triggerall = enemynear(var(55)),stateno != 0 triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) || (enemynear(var(55)),animtime >= -1-1 && enemynear(var(55)),statetype != A) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -1-1) triggerall = !var(12) || enemynear(var(55)),movetype != H || vel y > 0 triggerall = fvar(7) = [-20,20+floor(2*(fvar(35))+floor(2*(vel x)))] triggerall = fvar(8) = [-20-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y))-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47)] triggerall = pos Y + 2 * vel y + const(movement.yaccel)*2*8/2 < 0 trigger1 = enemynear(var(55)),hitdefattr != SCA,HA,HP,HT trigger1 = enemynear(var(55)),stateno = helper(18000),var(58) trigger1 = enemynear(var(55)),time <= helper(18000),var(59) trigger2 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 trigger3 = enemynear(var(55)),stateno = [200,699] trigger3 = enemynear(var(55)),moveguarded > 0 [State -1, j.HP] type = ChangeState value = 620 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl triggerall = enemynear(var(55)),stateno != 0 triggerall = (enemynear(var(55)),hitdefattr != SCA,HA,HP,HT&&enemynear(var(55)),stateno = helper(18000),var(58)&&enemynear(var(55)),time+7 <= helper(18000),var(59)) || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+7 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 7 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*7*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 7 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*7*8/2 >= 0) || (enemynear(var(55)),animtime >= -6-1 && enemynear(var(55)),statetype != A) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -6-1) triggerall = !var(12) || enemynear(var(55)),movetype != H || vel y > 0 trigger1 = fvar(7) = [-20,50+floor(7*(fvar(35))+floor(7*(vel x)))] trigger1 = fvar(8) = [-50-floor(7*(enemynear(var(55)),vel y)+(7*(7+1)/2)*fvar(18)-floor(7*vel y)-(7*(7+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y)-50)-floor(7*(enemynear(var(55)),vel y)+(7*(7+1)/2)*fvar(18)-floor(7*vel y)-(7*(7+1)/2)*0.47)] trigger1 = pos Y + 7 * vel y + const(movement.yaccel)*7*8/2 < 0 trigger2 = fvar(7) = [-20,50+floor(8*(fvar(35))+floor(8*(vel x)))] trigger2 = fvar(8) = [-50-floor(8*(enemynear(var(55)),vel y)+(8*(8+1)/2)*fvar(18)-floor(8*vel y)-(8*(8+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y)-50)-floor(8*(enemynear(var(55)),vel y)+(8*(8+1)/2)*fvar(18)-floor(8*vel y)-(8*(8+1)/2)*0.47)] trigger2 = pos Y + 8 * vel y + const(movement.yaccel)*8*8/2 < 0 trigger3 = fvar(7) = [-20,50+floor(9*(fvar(35))+floor(9*(vel x)))] trigger3 = fvar(8) = [-50-floor(9*(enemynear(var(55)),vel y)+(9*(9+1)/2)*fvar(18)-floor(9*vel y)-(9*(9+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y)-50)-floor(9*(enemynear(var(55)),vel y)+(9*(9+1)/2)*fvar(18)-floor(9*vel y)-(9*(9+1)/2)*0.47)] trigger3 = pos Y + 9 * vel y + const(movement.yaccel)*9*8/2 < 0 ; Grounded Normals [State -1, Crouching Light Kick] type = ChangeState value = 430+10*(fvar(7)>25) triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = enemynear(var(55)),stateno != 0 triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -1-1) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+5 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) || (enemynear(var(55)),animtime >= -1-1 && enemynear(var(55)),statetype != A) triggerall = fvar(7) = [-10,35+floor(2*(fvar(35)))] triggerall = fvar(8) >= -20-(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)) trigger1 = enemynear(var(55)),hitdefattr != SCA,HA,HP,HT trigger1 = enemynear(var(55)),stateno = helper(18000),var(58) trigger1 = enemynear(var(55)),time <= helper(18000),var(59) trigger2 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 trigger3 = enemynear(var(55)),stateno = [200,699] trigger3 = enemynear(var(55)),moveguarded > 0 [State -1, Standing Light Punch] type = ChangeState value = 200 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = enemynear(var(55)),stateno != 0 triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -4-1) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+5 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 5 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*5*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 5 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*5*8/2 >= 0) || (enemynear(var(55)),animtime >= -4-1 && enemynear(var(55)),statetype != A) triggerall = fvar(7) = [-10,50+floor(5*(fvar(35)))] triggerall = fvar(8) >= -50-(5*(enemynear(var(55)),vel y)+(5*(5+1)/2)*fvar(18)) trigger1 = enemynear(var(55)),hitdefattr != SCA,HA,HP,HT trigger1 = enemynear(var(55)),stateno = helper(18000),var(58) trigger1 = enemynear(var(55)),time+5 <= helper(18000),var(59) trigger2 = helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 trigger3 = enemynear(var(55)),stateno = [200,699] trigger3 = enemynear(var(55)),moveguarded > 0 ;=========================================================================== ; AI General ;=========================================================================== ; Air Normals [State -1, j.HK] type = ChangeState value = 650 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl triggerall = enemynear(var(55)),hitdefattr = SCA,AT || enemynear(var(55)),hitdefattr != SCA,AA || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || enemynear(var(55)),hitdefattr != SCA,AA || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) || (enemynear(var(55)),animtime >= -1-1 && enemynear(var(55)),statetype != A) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -1-1) triggerall = vel x < 0 || vel y >= 0 || enemynear(var(55)),statetype = A triggerall = !var(12) || enemynear(var(55)),movetype != H || vel y > 0 trigger1 = fvar(7) = [-20,20+floor(2*(fvar(35))+floor(2*(vel x)))] trigger1 = fvar(8) = [-20-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y))-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47)] trigger1 = pos Y + 2 * vel y + const(movement.yaccel)*2*8/2 < 0 [State -1, j.LK] type = ChangeState value = 630 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl triggerall = enemynear(var(55)),hitdefattr = SCA,AT || enemynear(var(55)),hitdefattr != SCA,AA || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || enemynear(var(55)),hitdefattr != SCA,AA || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) || (enemynear(var(55)),animtime >= -1-1 && enemynear(var(55)),statetype != A) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -1-1) triggerall = !var(12) || enemynear(var(55)),movetype != H || vel y > 0 trigger1 = fvar(7) = [-20,20+floor(2*(fvar(35))+floor(2*(vel x)))] trigger1 = fvar(8) = [-20-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y))-floor(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)-floor(2*vel y)-(2*(2+1)/2)*0.47)] trigger1 = pos Y + 2 * vel y + const(movement.yaccel)*2*8/2 < 0 [State -1, j.HP] type = ChangeState value = 620 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl triggerall = enemynear(var(55)),hitdefattr = SCA,AT || enemynear(var(55)),hitdefattr != SCA,AA || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || enemynear(var(55)),hitdefattr != SCA,AA || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+7 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 7 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*7*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 7 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*7*8/2 >= 0) || (enemynear(var(55)),animtime >= -6-1 && enemynear(var(55)),statetype != A) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -6-1) triggerall = !var(12) || enemynear(var(55)),movetype != H || vel y > 0 trigger1 = fvar(7) = [-20,50+floor(7*(fvar(35))+floor(7*(vel x)))] trigger1 = fvar(8) = [-50-floor(7*(enemynear(var(55)),vel y)+(7*(7+1)/2)*fvar(18)-floor(7*vel y)-(7*(7+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y)-50)-floor(7*(enemynear(var(55)),vel y)+(7*(7+1)/2)*fvar(18)-floor(7*vel y)-(7*(7+1)/2)*0.47)] trigger1 = pos Y + 7 * vel y + const(movement.yaccel)*7*8/2 < 0 trigger2 = fvar(7) = [-20,50+floor(8*(fvar(35))+floor(8*(vel x)))] trigger2 = fvar(8) = [-50-floor(8*(enemynear(var(55)),vel y)+(8*(8+1)/2)*fvar(18)-floor(8*vel y)-(8*(8+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y)-50)-floor(8*(enemynear(var(55)),vel y)+(8*(8+1)/2)*fvar(18)-floor(8*vel y)-(8*(8+1)/2)*0.47)] trigger2 = pos Y + 8 * vel y + const(movement.yaccel)*8*8/2 < 0 trigger3 = fvar(7) = [-20,50+floor(9*(fvar(35))+floor(9*(vel x)))] trigger3 = fvar(8) = [-50-floor(9*(enemynear(var(55)),vel y)+(9*(9+1)/2)*fvar(18)-floor(9*vel y)-(9*(9+1)/2)*0.47),-(enemynear(var(55)),const(size.head.pos.y)-50)-floor(9*(enemynear(var(55)),vel y)+(9*(9+1)/2)*fvar(18)-floor(9*vel y)-(9*(9+1)/2)*0.47)] trigger3 = pos Y + 9 * vel y + const(movement.yaccel)*9*8/2 < 0 ; Grounded Normals [State -1, Throw] type = ChangeState value = 800 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A && ctrl || stateno = 21 triggerall = enemynear(var(55)),gethitvar(hittime) < 0 triggerall = enemynear(var(55)),stateno != [5200,5210] triggerall = enemynear(var(55)),statetype = S || enemynear(var(55)),statetype = C triggerall = numhelper(18000) > 0 triggerall = helper(18000),fvar(9) <= 0 triggerall = var(0) = 0 triggerall = fvar(7) = [-10,10] trigger1 = random <= (250 + (250 * (!enemynear(var(55)),ctrl || enemynear(var(55)),vel x >= enemynear(var(55)),const(velocity.run.fwd.x)) * cond((backedgedist <= 35 || frontedgedist <= 35 || (enemynear(var(55)),prevstateno = [120,159]) || enemynear(var(55)),facing = facing), 2, 1))) || fvar(7) <= 0 trigger2 = prevstateno = [200,1999] trigger2 = prevstateno != 800 && prevstateno != 805 trigger2 = enemynear(var(55)),movetype = I trigger3 = enemynear(var(55)),stateno = [120,149] [State -1, Crouching Light Kick] type = ChangeState value = 430+10*(fvar(7)>25) triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -1-1) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+5 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 2 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*2*8/2 >= 0) || (enemynear(var(55)),animtime >= -1-1 && enemynear(var(55)),statetype != A) trigger1 = fvar(7) = [-10,35+floor(2*(fvar(35)))] trigger1 = fvar(8) >= -20-(2*(enemynear(var(55)),vel y)+(2*(2+1)/2)*fvar(18)) [State -1, Standing Light Punch] type = ChangeState value = 200 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && helper(18000),fvar(11) >= -4-1) triggerall = enemynear(var(55)),stateno != 5210 || enemynear(var(55)),time+5 >= 15 || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 5 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*5*8/2 >= 0) triggerall = (enemynear(var(55)),stateno != [5200,5209]) || (enemynear(var(55)),statetype = A && enemynear(var(55)),pos Y + 5 * enemynear(var(55)),vel y + enemynear(var(55)),const(movement.yaccel)*5*8/2 >= 0) || (enemynear(var(55)),animtime >= -4-1 && enemynear(var(55)),statetype != A) triggerall = fvar(7) = [-10,50+floor(5*(fvar(35)))] triggerall = fvar(8) >= -50-(5*(enemynear(var(55)),vel y)+(5*(5+1)/2)*fvar(18)) trigger1 = random <= 500 ; Hammer Throw [State AI Hammer Throw] type = ChangeState value = var(53) triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 || ((stateno = [200,410])&&movecontact) triggerall = numhelper(571)+numhelper(561)+numhelper(551)+numhelper(521)+numhelper(531)+numhelper(541)=0 || ((stateno = [200,410])&&movecontact) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) || (enemynear(var(55)),hitdefattr != SCA,HA,HP,HT&&enemynear(var(55)),stateno = helper(18000),var(58)&&enemynear(var(55)),time+10 <= helper(18000),var(59)) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),movetype != H || enemynear(var(55)),statetype = L || (enemynear(var(55)),stateno = [120,159]) || !numtarget triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && enemynear(var(55)),animtime <= -(16+((fvar(7))/14))) || (enemynear(var(55)),stateno != 5120 && (enemynear(var(55)),time >= const(data.liedown.time)-10||random <= ceil(enemynear(var(55)),time*2))) triggerall = fvar(7) >= 0+floor(10*(fvar(35))) triggerall = random <= ceil((fvar(7))+(50*(enemynear(var(55)),statetype = L))+(50*(enemynear(var(55)),vel x <= enemynear(var(55)),const(velocity.run.back.x)))) trigger1 = fvar(8) >= -40-(10*(enemynear(var(55)),vel y)+(10*(10+1)/2)*fvar(18)) trigger1 = var(53):= 520 || 1 ; Straight trigger2 = fvar(8) >= -(40+(fvar(7)*0.5))-(10*(enemynear(var(55)),vel y)+(10*(10+1)/2)*fvar(18)) trigger2 = var(53):= 530 || 1 ; Up Right trigger3 = fvar(8) >= -(40+(fvar(7)))-(10*(enemynear(var(55)),vel y)+(10*(10+1)/2)*fvar(18)) trigger3 = var(53):= 540 || 1 ; Up [State AI Air Hammer Throw] type = ChangeState value = var(53) triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype = A && ctrl || (((stateno = [600,640])&&stateno!=620)&&movecontact) triggerall = numhelper(571)+numhelper(561)+numhelper(551)+numhelper(521)+numhelper(531)+numhelper(541)=0 || (((stateno = [600,640])&&stateno!=620)&&movecontact) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) || (enemynear(var(55)),hitdefattr != SCA,HA,HP,HT&&enemynear(var(55)),stateno = helper(18000),var(58)&&enemynear(var(55)),time+10 <= helper(18000),var(59)) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),movetype != H || enemynear(var(55)),statetype = L || (enemynear(var(55)),stateno = [120,159]) || !numtarget triggerall = enemynear(var(55)),statetype != L || (enemynear(var(55)),stateno = 5120 && enemynear(var(55)),animtime <= -(16+((fvar(7))/14))) || (enemynear(var(55)),stateno != 5120 && (enemynear(var(55)),time >= const(data.liedown.time)-10||random <= ceil(enemynear(var(55)),time*2))) triggerall = random <= ceil(fvar(7)+fvar(8)) trigger1 = fvar(7) < fvar(8)+30 trigger1 = var(53):= 570 || 1 ; Down trigger2 = fvar(7) < fvar(8)+70 trigger2 = var(53):= 560 || 1 ; Down Right trigger3 = fvar(7) >= 0 trigger3 = fvar(8) = [-50,50] trigger3 = var(53):= 550 || 1 ; Straight ;=========================================================================== ; AI Misc. ;=========================================================================== ; Bomb-omb [State -1, Bob-omb] type = ChangeState value = 500 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 || ((stateno = [200,410])&&movecontact) triggerall = numhelper(510) = 0 || ((stateno = [200,410])&&movecontact) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = fvar(7) >= 0 triggerall = random <= (500 + (500 * (enemynear(var(55)),ctrl = 0))) trigger1 = enemynear(var(55)),ctrl = 0 trigger2 = enemynear(var(55)),movetype = H trigger2 = enemynear(var(55)),vel x < 0 || enemynear(var(55)),hitfall = 1 trigger2 = enemynear(var(55)),hitfall = 1 || (enemynear(var(55)),stateno = [120,159]) trigger3 = fvar(7) >= 140 || (fvar(7) >= 70 && enemynear(var(55)),ctrl = 0 && (enemynear(var(55)),stateno != [0,100])) || (fvar(8) != [-150,150]) ; Power Charge [State -1, Power Charge] type = ChangeState value = 730 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || (stateno = [20,29]) || (stateno = [100,101]) triggerall = power < powermax && !var(20) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) triggerall = enemynear(var(55)),vel x <= 0 || enemynear(var(55)),statetype = L || fvar(0) >= 140 triggerall = fvar(7) >= 60 || (fvar(7) >= 0 && (((enemynear(var(55)),movetype = H && enemynear(var(55)),vel x < 0) || enemynear(var(55)),statetype = L || enemynear(var(55)),anim = 5300))) triggerall = random <= floor(500-(power/6)) trigger1 = enemynear(var(55)),statetype = L || enemynear(var(55)),hitfall = 1 trigger2 = enemynear(var(55)),movetype = H || (enemynear(var(55)),stateno = [120,159]) trigger2 = enemynear(var(55)),vel x < 0 trigger3 = enemynear(var(55)),power > power trigger3 = enemynear(var(55)),stateno = helper(18100),var(0) ; Movement [State -1, AI Running] type = ChangeState value = 101 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 100 triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = !((playeridexist(helper(33333333),var(4)))&&enemy,numproj<=0) || helper(18000),fvar(8) > 0 triggerall = cond((enemynear(var(55)),movetype = H||enemynear(var(55)),vel x < 0), fvar(7) >= 0, fvar(7) >= 20) trigger1 = random <= ceil((fvar(7)*2)*cond((enemynear(var(55)),movetype = H||enemynear(var(55)),vel x < 0), 2, 1)) trigger2 = enemynear(var(55)),vel x < 0 trigger2 = enemynear(var(55)),movetype = H trigger3 = enemynear(var(55)),statetype = L trigger3 = enemynear(var(55)),stateno != 5120 [State -1, AI Backdash] type = ChangeState value = 105 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || stateno = 101 triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) || (helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0) triggerall = backedgebodydist >= 60 triggerall = enemynear(var(55)),vel x >= 0 || (prevstateno = [120,159]) || (prevstateno = [5000,5270]) || random <= 500 triggerall = enemynear(var(55)),movetype != H || enemynear(var(55)),statetype = L || enemynear(var(55)),ctrl > 0 || ((enemynear(var(55)),stateno = [120,159])&&random<=500) || !numtarget triggerall = helper(18000),fvar(22) <= 1.50 || ((inguarddist||helper(15900),inguarddist||helper(15900),var(50)>0||helper(15900),var(52)>0)&&enemynear(var(55)),hitdefattr!=SCA,AT) || frontedgebodydist <= 10 || (enemynear(var(55)),statetype = A && (random < 333 || enemynear(var(55)),vel x > 0)) || random < floor(333/helper(18000),fvar(22)) triggerall = helper(18000),fvar(22) <= 1.00 || random <= ceil(1000/(helper(18000),fvar(22)*2)) triggerall = helper(18000),fvar(8) = 0 || !(playeridexist(helper(33333333),var(4))) triggerall = !(helper(18000),var(0)>=0||(helper(18000),var(5)>0&&random<333)) triggerall = enemynear(var(55)),ctrl > 0 || enemynear(var(55)),movetype != I triggerall = fvar(7) <= 120 || (random <= abs(1000/(fvar(7)*0.1))) triggerall = fvar(7) >= -40 trigger1 = enemynear(var(55)),facing != facing trigger1 = enemynear(var(55)),statetype != L trigger1 = enemynear(var(55)),vel x > 0 || enemynear(var(55)),statetype = A trigger1 = random <= (10+(100*(enemynear(var(55)),statetype=A||(fvar(8)<-const(size.height)&&enemynear(var(55)),vel x>0)||fvar(7)<0))) trigger2 = (prevstateno = [120,159]) || (prevstateno = [5000,5270]) trigger2 = enemynear(var(55)),statetype != L trigger2 = random <= (100+(100*(enemynear(var(55)),vel x > 0))) trigger3 = enemynear(var(55)),stateno = 5120 trigger3 = enemynear(var(55)),vel x > 0 || ((prevstateno = [200,699]) && random <= 500) trigger3 = random <= (500-(250*(enemynear(var(55)),time >= 4))) [State -1, Jump] type = ChangeState value = 41 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = helper(18000),fvar(15) >= 1 || random <= ceil(1000*helper(18000),fvar(15)) triggerall = statetype != A triggerall = ctrl || stateno = 21 || (stateno = [100,101]) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) || helper(18000),var(0) >= 0 || helper(18000),fvar(8) > 0 || helper(18000),var(5) > 0 triggerall = enemynear(var(55)),movetype != H || (enemynear(var(55)),stateno = [120,159]) || (enemynear(var(55)),statetype != A && fvar(7) >= 70) triggerall = enemynear(var(55)),statetype != L || enemynear(var(55)),stateno = 5120 triggerall = enemynear(var(55)),hitfall = 0 triggerall = life-333 > enemynear(var(55)),life || helper(18000),fvar(15) >= 0.5 triggerall = helper(18000),fvar(15) > 0.1 || enemynear(var(55)),statetype = A triggerall = fvar(7) >= -20 triggerall = fvar(8) >= -160 trigger1 = enemynear(var(55)),hitdefattr = SC,AT trigger1 = random <= 500 trigger2 = enemynear(var(55)),statetype = A trigger2 = enemynear(var(55)),vel y < 0 || fvar(8) < const(size.mid.pos.y) trigger2 = random <= ceil((25+(-fvar(8)))*helper(18000),fvar(24)) [State -1, AI Walking] type = ChangeState value = 21 triggerall = AILevel && RoundState = 2 triggerall = fvar(12) >= 1 || random <= ceil(999*fvar(12)) triggerall = statetype != A triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!inguarddist && !helper(15900),inguarddist) triggerall = enemynear(var(55)),hitdefattr = SCA,AT || (!helper(15900),var(50) > 0 && !helper(15900),var(52) > 0) trigger1 = ctrl ; Blocking [State -3, AI Guard] type = ChangeState triggerall = AILevel && RoundState = 2 triggerall = ctrl || stateno = 21 triggerall = numhelper(15900) triggerall = fvar(13) >= 1 || random <= ceil(999*fvar(13)) trigger1 = inguarddist || helper(15900),inguarddist trigger2 = helper(15900),var(50) > 0 || helper(15900),var(52) > 0 value = 120 [State -3, AI Do Nothing] type = ChangeState value = 0 triggerall = AILevel && RoundState = 2 triggerall = ctrl trigger1 = statetype != A [State -3, Taunt] type = ChangeState value = 195 triggerall = AILevel triggerall = statetype != A triggerall = roundstate = [2,3] triggerall = win || winko triggerall = time = [0,120] triggerall = stateno != [195,196] triggerall = prevstateno != [195,196] trigger1 = ctrl ;=========================================================================== ;--------------------------------------------------------------------------- ;Ultra Hammer [State -1, Ultra Hammer] type = ChangeState value = 3200 triggerall = !AILevel triggerall = command = "SUPER3" triggerall = power >= 3000 triggerall = statetype != A trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;Whirluigi [State -1, Whirluigi] type = ChangeState value = 3099 triggerall = !AILevel triggerall = command = "Whirluigi" triggerall = power >= 2000 trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;Waluigi Assault [State -1, Waluigi Assault] type = ChangeState value = 3000 triggerall = !AILevel triggerall = command = "Super1" triggerall = power >= 1000 trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;Hammer Throw 3 (Air) [State -1, Hammer Throw 3 (AIR)] type = ChangeState value = 570 triggerall = !AILevel triggerall = command = "Hammer3" Trigger1 = Numhelper(571) = 0 Trigger1 = Numhelper(561) = 0 Trigger1 = Numhelper(551) = 0 Trigger1 = Numhelper(521) = 0 Trigger1 = Numhelper(531) = 0 Trigger1 = Numhelper(541) = 0 trigger1 = (statetype = a) && ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=610&&movecontact trigger4 = stateno=630&&movecontact trigger5 = stateno=640&&movecontact ;Hammer Throw 2 (AIR) [State -1, Hammer Throw 2 (AIR)] type = ChangeState value = 560 triggerall = !AILevel triggerall = command = "Hammer2" Trigger1 = Numhelper(571) = 0 Trigger1 = Numhelper(561) = 0 Trigger1 = Numhelper(551) = 0 Trigger1 = Numhelper(521) = 0 Trigger1 = Numhelper(531) = 0 Trigger1 = Numhelper(541) = 0 trigger1 = (statetype = a) && ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=610&&movecontact trigger4 = stateno=630&&movecontact trigger5 = stateno=640&&movecontact ;Hammer Throw 1 (AIR) [State -1, Hammer Throw 1 (AIR)] type = ChangeState value = 550 triggerall = !AILevel triggerall = command = "Hammer1" Trigger1 = Numhelper(571) = 0 Trigger1 = Numhelper(561) = 0 Trigger1 = Numhelper(551) = 0 Trigger1 = Numhelper(521) = 0 Trigger1 = Numhelper(531) = 0 Trigger1 = Numhelper(541) = 0 trigger1 = (statetype = a) && ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=610&&movecontact trigger4 = stateno=630&&movecontact trigger5 = stateno=640&&movecontact ;Hammer Throw 3 [State -1, Hammer Throw 3] type = ChangeState value = 540 triggerall = !AILevel triggerall = command = "Hammer3" Trigger1 = Numhelper(571) = 0 Trigger1 = Numhelper(561) = 0 Trigger1 = Numhelper(551) = 0 Trigger1 = Numhelper(521) = 0 Trigger1 = Numhelper(531) = 0 Trigger1 = Numhelper(541) = 0 trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;Hammer Throw 2 [State -1, Hammer Throw 2] type = ChangeState value = 530 triggerall = !AILevel triggerall = command = "Hammer2" Trigger1 = Numhelper(571) = 0 Trigger1 = Numhelper(561) = 0 Trigger1 = Numhelper(551) = 0 Trigger1 = Numhelper(521) = 0 Trigger1 = Numhelper(531) = 0 Trigger1 = Numhelper(541) = 0 trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;Hammer Throw 1 [State -1, Hammer Throw 1] type = ChangeState value = 520 triggerall = !AILevel triggerall = command = "Hammer1" Trigger1 = Numhelper(571) = 0 Trigger1 = Numhelper(561) = 0 Trigger1 = Numhelper(551) = 0 Trigger1 = Numhelper(521) = 0 Trigger1 = Numhelper(531) = 0 Trigger1 = Numhelper(541) = 0 trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;Bob-omb [State -1, Bob-omb] type = ChangeState value = 500 triggerall = !AILevel triggerall = command = "Bob-omb" Trigger1 = Numhelper(510) = 0 trigger1 = (statetype = s) && ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact ;=========================================================================== ; Power Charge [State -1, Power Charge] type = ChangeState value = 730 triggerall = !AILevel triggerall = power < powermax triggerall = command = "holdy" triggerall = command = "holdb" trigger1 = ctrl && statetype != A ; Superjump [State -1, Superjump] type = ChangeState value = 55 triggerall = !AILevel trigger1 = command = "superjump" trigger1 = statetype = S trigger1 = ctrl ;--------------------------------------------------------------------------- ; Run Fwd [State -1, Run Fwd] type = ChangeState value = 100 triggerall = !AILevel trigger1 = command = "FF" trigger1 = statetype = S trigger1 = ctrl ;--------------------------------------------------------------------------- ; Run Back [State -1, Run Back] type = ChangeState value = 105 triggerall = !AILevel trigger1 = command = "BB" trigger1 = statetype = S trigger1 = ctrl ;--------------------------------------------------------------------------- ; Throw [State -1, Throw] type = ChangeState value = 800 triggerall = !AILevel triggerall = command = "y" || command = "z" triggerall = statetype = S triggerall = ctrl triggerall = stateno != 100 trigger1 = command = "holdfwd" trigger1 = p2bodydist X < 10 trigger1 = (p2statetype = S) || (p2statetype = C) trigger1 = p2movetype != H trigger2 = command = "holdback" trigger2 = p2bodydist X < 10 trigger2 = (p2statetype = S) || (p2statetype = C) trigger2 = p2movetype != H ;=========================================================================== ;--------------------------------------------------------------------------- ; Taunt [State -1, Taunt] type = ChangeState value = 195 triggerall = !AILevel triggerall = command = "start" trigger1 = statetype != A trigger1 = ctrl ;--------------------------------------------------------------------------- ; Stand Light Punch [State -1, Stand Light Punch] type = ChangeState value = 200 triggerall = !AILevel triggerall = command = "x" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = stateno=400&&movecontact ;--------------------------------------------------------------------------- ; Stand Medium Punch [State -1, Stand Medium Punch] type = ChangeState value = 210 triggerall = !AILevel triggerall = command = "y" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=230&&movecontact trigger4 = stateno=240&&movecontact trigger5 = stateno=400&&movecontact ;--------------------------------------------------------------------------- ; Stand Strong Punch [State -1, Stand Strong Punch] type = ChangeState value = 220 triggerall = !AILevel triggerall = command = "z" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=230&&movecontact trigger5 = stateno=240&&movecontact trigger6 = stateno=400&&movecontact trigger7 = stateno=410&&movecontact ;Stand Strong Punch 2 [State -1, Stand Strong Punch 2] type = ChangeState value = 221 triggerall = !AILevel triggerall=(stateno=220&&movehit)&&command = "z" triggerall = command != "holddown" trigger1 = statetype!= A||statetype!=C trigger1 = statetype = S trigger1 = ctrl [State -1, Jump] type = ChangeState value = 55 triggerall = !AILevel trigger1 = command = "up" trigger1 = stateno = 221 trigger1 = movecontact ;--------------------------------------------------------------------------- ; Stand Light Kick [State -1, Stand Light Kick] type = ChangeState value = 230 triggerall = !AILevel triggerall = command = "a" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=400&&movecontact trigger4 = stateno=410&&movecontact ;--------------------------------------------------------------------------- ; Standing Medium Kick [State -1, Standing Medium Kick] type = ChangeState value = 240 triggerall = !AILevel triggerall = command = "b" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=230&&movecontact trigger5 = stateno=400&&movecontact trigger6 = stateno=410&&movecontact ;--------------------------------------------------------------------------- ; Standing Strong Kick [State -1, Standing Strong Kick] type = ChangeState value = 250 triggerall = !AILevel triggerall = command = "c" triggerall = command != "holddown" trigger1 = statetype = S trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=400&&movecontact trigger8 = stateno=410&&movecontact ;--------------------------------------------------------------------------- ; Crouching Light Punch [State -1, Crouching Light Punch] type = ChangeState value = 400 triggerall = !AILevel triggerall = command = "x" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl ;--------------------------------------------------------------------------- ; Crouching Medium Punch [State -1, Crouching Medium Punch] type = ChangeState value = 410 triggerall = !AILevel triggerall = command = "y" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=400&&movecontact ;--------------------------------------------------------------------------- ; Crouching Strong Punch [State -1, Crouching Strong Punch] type = ChangeState value = 420 triggerall = !AILevel triggerall = command = "z" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=220&&movecontact trigger5 = stateno=230&&movecontact trigger6 = stateno=240&&movecontact trigger7 = stateno=250&&movecontact trigger8 = stateno=400&&movecontact trigger9 = stateno=410&&movecontact trigger10 = stateno=430&&movecontact trigger11 = stateno=440&&movecontact [State -1, Jump] type = ChangeState value = 55 triggerall = !AILevel trigger1 = command = "up" trigger1 = stateno = 420 trigger1 = movecontact ;--------------------------------------------------------------------------- ; Crouching Light Kick [State -1, Crouching Light Kick] type = ChangeState value = 430 triggerall = !AILevel triggerall = command = "a" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=230&&movecontact trigger4 = stateno=400&&movecontact ;--------------------------------------------------------------------------- ; Crouching Medium Kick [State -1, Crouching Medium Kick] type = ChangeState value = 440 triggerall = !AILevel triggerall = command = "b" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=230&&movecontact trigger5 = stateno=240&&movecontact trigger6 = stateno=400&&movecontact trigger7 = stateno=410&&movecontact trigger8 = stateno=430&&movecontact ;--------------------------------------------------------------------------- ; Crouching Strong Kick [State -1, Crouching Strong Kick] type = ChangeState value = 450 triggerall = !AILevel triggerall = command = "c" triggerall = command = "holddown" trigger1 = statetype = C trigger1 = ctrl trigger2 = stateno=200&&movecontact trigger3 = stateno=210&&movecontact trigger4 = stateno=230&&movecontact trigger5 = stateno=240&&movecontact trigger6 = stateno=400&&movecontact trigger7 = stateno=410&&movecontact trigger8 = stateno=430&&movecontact trigger9 = stateno=440&&movecontact ;--------------------------------------------------------------------------- ; Jump Light Punch [State -1, Jump Light Punch] type = ChangeState value = 600 triggerall = !AILevel triggerall = command = "x" trigger1 = statetype = A trigger1 = ctrl trigger2 = stateno=610&&movecontact trigger3 = stateno=630&&movecontact ;--------------------------------------------------------------------------- ; Jump Medium Punch [State -1, Jump Medium Punch] type = ChangeState value = 610 triggerall = !AILevel triggerall = command = "y" trigger1 = statetype = A trigger1 = ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=630&&movecontact ;--------------------------------------------------------------------------- ; Jump Strong Punch [State -1, Jump Strong Punch] type = ChangeState value = 620 triggerall = !AILevel triggerall = command = "z" trigger1 = statetype = A trigger1 = ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=610&&movecontact trigger4 = stateno=630&&movecontact trigger5 = stateno=640&&movecontact trigger6 = stateno=650&&movecontact ;--------------------------------------------------------------------------- ; Jump Light Kick [State -1, Jump Light Kick] type = ChangeState value = 630 triggerall = !AILevel triggerall = command = "a" trigger1 = statetype = A trigger1 = ctrl ;--------------------------------------------------------------------------- ; Jump Medium Kick [State -1, Jump Medium Kick] type = ChangeState value = 640 triggerall = !AILevel triggerall = command = "b" trigger1 = statetype = A trigger1 = ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=610&&movecontact trigger4 = stateno=630&&movecontact ;--------------------------------------------------------------------------- ; Jump Strong Kick [State -1, Jump Strong Kick] type = ChangeState value = 650 triggerall = !AILevel triggerall = command = "c" trigger1 = statetype = A trigger1 = ctrl trigger2 = stateno=600&&movecontact trigger3 = stateno=610&&movecontact trigger4 = stateno=620&&movecontact trigger5 = stateno=630&&movecontact trigger6 = stateno=640&&movecontact
Back
Top