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 — shaq.zip ← Back to Overview

;This file has the important information for controlling the character. A lot of comments here are copied from Kung Fu Man. ;The AI parts are voodoo, don't touch. ;-| 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 ;-| 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 |-------------------------------------------------------- ; Commands with Half-Circle motions have multiple versions to help Keyboard users perform them [Command] name = "kienzan" command = ~D,B,D,F,x time = 20 [Command] name = "kienzan" command = ~D,B,D,F,y time = 20 [Command] name = "kienzan" command = ~D,DB,B,DB,D,DF,F,x time = 20 [Command] name = "kienzan" command = ~D,DB,B,DB,D,DF,F,y time = 20 [Command] name = "r_kienzan" command = ~D,F,D,B,x time = 20 [Command] name = "r_kienzan" command = ~D,F,D,B,y time = 20 [Command] name = "r_kienzan" command = ~D,DF,F,DF,D,DB,B,x time = 20 [Command] name = "r_kienzan" command = ~D,DF,F,DF,D,DB,B,y time = 20 [Command] name = "kazaam" command = ~D,D,D,a time = 20 [Command] name = "kazaam" command = ~D,D,D,b time = 20 [Command] name = "shaqattack" command = ~D,F,D,F,a time = 20 [Command] name = "shaqattack" command = ~D,F,D,F,b time = 20 [Command] name = "r_shaqattack" command = ~D,B,D,B,a time = 20 [Command] name = "r_shaqattack" command = ~D,B,D,B,b time = 20 [Command] name = "stillinsane" command = ~D,F,D,B,a time = 25 [Command] name = "stillinsane" command = ~D,F,D,B,b time = 25 [Command] name = "steel" command = ~B,F,B,F,x time = 25 [Command] name = "steel" command = ~B,F,B,F,y time = 25 [Command] name = "shaqattack" command = ~D,DF,F,D,DF,F,a time = 20 [Command] name = "shaqattack" command = ~D,DF,F,D,DF,F,b time = 20 [Command] name = "r_shaqattack" command = ~D,DB,B,D,DB,B,a time = 20 [Command] name = "r_shaqattack" command = ~D,DB,B,D,DB,B,b time = 20 [Command] name = "stillinsane" command = ~D,DF,F,D,DB,B,a time = 25 [Command] name = "stillinsane" command = ~D,DF,F,D,DB,B,b time = 25 [Command] name = "360_z" command = ~F, D, B, U, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~D, B, U, F, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~B, U, F, D, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~U, F, D, B, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~B, D, F, U, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~D, F, U, B, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~F, U, B, D, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~U, B, D, F, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~F, DF, D, DB, B, UB, U, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~D, DB, B, UB, U, UF, F, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~B, UB, U, UF, F, DF, D, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~U, UF, F, DF, D, DB, B, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~F, UF, U, UB, B, DB, D, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~U, UB, B, DB, D, DF, F, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~B, DB, D, DF, F, UF, U, z time = 15 buffer.time = 3 [Command] name = "360_z" command = ~D, DF, F, UF, U, UB, B, z time = 15 buffer.time = 3 ;-| Special Motions |------------------------------------------------------ [Command] name = "ballkick" command = D,b time = 5 [Command] name = "ballpunch" command = D,y time = 5 [Command] name = "discball" command = ~F,B,F,y [Command] name = "discball" command = ~F,B,F,x [Command] name = "infernokick" command = ~D,DF,F,b [Command] name = "infernokick" command = ~D,DF,F,a [Command] name = "infernokick" command = ~D,F,b [Command] name = "infernokick" command = ~D,F,a [Command] name = "r_infernokick" command = ~D,DB,B,b [Command] name = "r_infernokick" command = ~D,DB,B,a [Command] name = "r_infernokick" command = ~D,B,b [Command] name = "r_infernokick" command = ~D,B,a [Command] name = "shadowkick" command = ~30$B, F, a time = 15 [Command] name = "shadowkick2" command = ~30$B, F, b time = 15 [Command] name = "kangarookick" command = ~F,D,DF,a [Command] name = "kangarookick" command = ~F,D,F,a [Command] name = "kangarookick2" command = ~F,D,DF,b [Command] name = "kangarookick2" command = ~F,D,F,b [Command] name = "r_kangarookick" command = ~F,D,DF,a [Command] name = "r_kangarookick" command = ~F,D,F,a [Command] name = "r_kangarookick2" command = ~F,D,DF,b [Command] name = "r_kangarookick2" command = ~F,D,F,b [Command] name = "overhead" command = ~B,D,F,x [Command] name = "overhead" command = ~B,DB,D,DF,F,x [Command] name = "overhead" command = ~B,D,F,y [Command] name = "overhead" command = ~B,DB,D,DF,F,y [Command] name = "r_overhead" command = ~F,D,B,x [Command] name = "r_overhead" command = ~F,DF,D,DB,B,x [Command] name = "r_overhead" command = ~F,D,B,y [Command] name = "r_overhead" command = ~F,DF,D,DB,B,y [Command] name = "freethrow1" command = ~F,D,B,x [Command] name = "freethrow1" command = ~F,DF,D,DB,B,x [Command] name = "freethrow2" command = ~F,D,B,a [Command] name = "freethrow2" command = ~F,DF,D,DB,B,a [Command] name = "freethrow3" command = ~F,D,B,y [Command] name = "freethrow3" command = ~F,DF,D,DB,B,y [Command] name = "freethrow4" command = ~F,D,B,b [Command] name = "freethrow4" command = ~F,DF,D,DB,B,b [Command] name = "r_freethrow1" command = ~B,D,F,x [Command] name = "r_freethrow1" command = ~B,DB,D,DF,F,x [Command] name = "r_freethrow2" command = ~B,D,F,a [Command] name = "r_freethrow2" command = ~B,DB,D,DF,F,a [Command] name = "r_freethrow3" command = ~B,D,F,y [Command] name = "r_freethrow3" command = ~B,DB,D,DF,F,y [Command] name = "r_freethrow4" command = ~B,D,F,b [Command] name = "r_freethrow4" command = ~B,DB,D,DF,F,b [Command] name = "teleport" command = ~B,F,c ;-| 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 ; Used by the KOF-esque superjump system [Command] name = "SupahJump" ;command = ~$D, $U command = ~$D, $U time = 5 buffer.time = 2 ; Used to detect if the player charges down for more than neccersary, negating the superjump in this case [Command] name = "ChargedSupahJump" ;command = ~$D, $U command = ~12$D, $U time = 5 buffer.time = 2 ; Used by the jump system to not buffer aerial basics at the begining of the jump so you would more certainly cancel into charge downup moves (not like Shaq as such moves, but yeah) [Command] name = "upper_what" command = ~15$D, $U, x time = 10 [Command] name = "upper_what" command = ~15$D, $U, y time = 10 [Command] name = "upper_what" command = ~15$D, $U, z time = 10 [Command] name = "upper_what" command = ~15$D, $U, a time = 10 [Command] name = "upper_what" command = ~15$D, $U, b time = 10 [Command] name = "upper_what" command = ~15$D, $U, c time = 10 ;-| 2/3 Button Combination |----------------------------------------------- [Command] name = "recovery" ;Required (do not remove) command = x+y time = 1 [Command] name = "CD" command = y+b 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 ; Don't remove the following line. It's required by the CMD standard. [Statedef -1] [State -1, AI Helper Check] type = ChangeState trigger1 = IsHelper(9741) value = 9741 [State -1, AI Helper Check 2] type = ChangeState trigger1 = IsHelper(9742) value = 9742 ;=========================================================================== ;This is not a move, but it sets up var(1) to be 1 if conditions are right ;for a combo into a special move (used below). ;Since a lot of special moves rely on the same conditions, this reduces ;redundant logic. [State -1, Combo condition Reset] type = VarSet trigger1 = 1 var(1) = 0 [State -1, Combo condition Check] type = VarSet triggerall = statetype != A || (stateno = 40) ; rejected while in-air, altho accept the jump init state (which has a statetype of A before actually leaving pos y = 0), potentially important especially for charge downup moves trigger1 = ctrl trigger2 = (stateno = [200,299]) || (stateno = [400,499]) trigger2 = stateno != 440 ;Except for sweep kick trigger2 = movecontact trigger3 = stateno = 100 ; as the run state has ctrl of 0 in order to prevent "crouching while running" (altho Shaq can roll from his run so whatever), this has to be included as "special cancelable" trigger4 = stateno = 40 && pos y = 0 ; ccept the jump init state (which has a statetype of A before actually leaving pos y = 0), potentially important especially for charge downup moves var(1) = 1 [State -1, Considerator Reset] type = VarSet trigger1 = 1 var(52) = 0 ;=========================================================================== ; AI DIRECTIVES ;=========================================================================== ;This code may look daunting but think of it as a big flowchart. ;The triggers limit when the AI is allowed to do certain things. ;If the conditions are met, a variable 52 is set to a number [State AI, Consider backing off] type = VarSet triggerall = var(55) triggerall = var(52) = 0 || random < 80+var(55) triggerall = random < 200 + (123*(prevstateno = 440 && (p2stateno=[5070,5100]) ) ) triggerall = numenemy triggerall = (p2stateno = [5110,5130]) || ((enemynear,time <= 10) && (enemynear,prevstateno = 5120)) triggerall = p2bodydist x <= 40 trigger1 = stateno != 40 trigger1 = ctrl || stateno = 100 trigger2 = random < 50 trigger2 = stateno = [200,499] trigger2 = moveguarded var(52) = ifelse(random<500||backedgebodydist <=75*const(size.xscale),104,ifelse(random<500,42,105)) [State AI, Consider a Standing Short] type = VarSet triggerall = numenemy ; so debug wouldn't complain about using enemy(near) redirectors when no enemy is around, like in continue/winner states triggerall = var(52) = 0 || random < 80+(var(55)*2) ; if an AI picker is already chosen, either ignore this consideration or pick it at random chance if desirable (the chance increases per AILevel, so larger AILevels hopefully mean more unpredictability) triggerall = var(55) ; checks if the AI is ever at least on at all triggerall = random < (9*(var(55)*var(55))) * ifelse(movehit,2,1) ; a check that has more chance the larger the AILevel (variable 55) is. The chance is further doubled if Shaq's current attack has succedfully hitted the opponent ; This trigger below makes would make sure Shaq wouldn't (mostly, hence the random < 150) use this move if the opponent is attacking, unless the opponent in question is facing away, the opponent's current move is blocked, Shaq guards for too long, or just not in attack range. It also encourages him to use this move when the opponent is busy doing something and it's not attacking triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] ; do not use this move if your opponent is in Mugen common1.cns's liedown states (nor getting up) triggerall = p2statetype != L ; do not use this move if your opponent is in other state that is declared as "lying down" triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(22-(10*movecontact))*const(size.xscale)] ; the largest distance is decreased a bit when Shaq's current attack is conected (as it usually means the opponent is being pushed away). It's also scaled by a setting that scales Shaq to a more regular size triggerall = p2dist y >= -22*const(size.yscale) - (enemynear,vel y*6) ; in addition to the distance scaling by Shaq's size, the opponent's velocity is also taken into account - multiplied by a number of the move's tics until it would actually hit - so when the opponent would like come down just in time to get in range, Shaq will use it triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -40*const(size.yscale) ; shaq would only use this move if his opponent - taking one's actual vertical position as well as crouching into account - is tall enough to get hit by this move triggerall = statetype != A ; don't think of using that move mid-air triggerall = time >= 7-var(55) || random < 10 ; here i tried to make the reaction time slower on lower AILevels trigger1 = stateno != 40 ; decided to jump? just keep on jumping? trigger1 = stateno != 20 || random < 500 || p2movetype = H ; if decided by Mugen AI to walk, keep on walking a bit unless your opponent is hurt by sure trigger1 = ctrl || stateno = 100 var(52) = 230 ignorehitpause = 1 [State AI, Consider a Standing Jab] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (10*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(18-(12*movecontact))*const(size.xscale)] triggerall = p2dist y >= -42*const(size.yscale) - (enemynear,vel y*5) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -50*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 230 || stateno = 200 ; taken straight from the state that calls the punch move by either player or AI variable trigger2 = animtime >= -5 || movecontact var(52) = 200 ignorehitpause = 1 [State AI, Consider a Standing Fierce] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (8*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(20-(13*movecontact))*const(size.xscale)] triggerall = p2dist y >= -46*const(size.yscale) - (enemynear,vel y*7) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -52*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 205 || stateno = 206 || stateno = 235 || stateno = 415 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 210 ignorehitpause = 1 [State AI, Consider a Standing Roundhouse] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (7*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(24-(16*movecontact))*const(size.xscale)] triggerall = p2dist y >= -51*const(size.yscale) - (enemynear,vel y*9) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -40*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 400 || stateno = 410 || stateno = 205 || stateno = 235 || stateno = 206 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 240 ignorehitpause = 1 [State AI, Consider a Crouching Jab] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (9*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(25-(10*movecontact))*const(size.xscale)] triggerall = p2dist y >= -15*const(size.yscale) - (enemynear,vel y*3) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 430 || stateno = 445 trigger2 = animtime >= -5 || movecontact var(52) = 400 ignorehitpause = 1 [State AI, Consider a Crouching Fierce] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (9*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(30-(10*movecontact))*const(size.xscale)] triggerall = p2dist y >= -15*const(size.yscale) - (enemynear,vel y*4) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 430 || stateno = 445 || stateno = 235 trigger2 = animtime >= -5 || movecontact var(52) = 410 ignorehitpause = 1 [State AI, Consider a Crouching Short] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (9*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(29-(10*movecontact))*const(size.xscale)] triggerall = p2dist y >= -18*const(size.yscale) - (enemynear,vel y*3) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 445 trigger2 = animtime >= -5 || movecontact var(52) = 430 ignorehitpause = 1 [State AI, Consider a Crouching Roundhouse] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (6*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(43-(14*movecontact))*const(size.xscale)] triggerall = p2dist y >= -5*const(size.yscale) - (enemynear,vel y*11) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -10*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 430 || stateno = 445 || stateno = 410 trigger2 = animtime >= -5 || movecontact var(52) = 440 ignorehitpause = 1 [State AI, Consider an elbow to punch] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (6*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(23-(13*movecontact))*const(size.xscale)] triggerall = p2dist y >= -30*const(size.yscale) - (enemynear,vel y*10) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -30*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 206 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 205 ignorehitpause = 1 [State AI, Consider an upper punch that has parry capabilities for some reason] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (9*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = (p2bodydist x = [ifelse(p2statetype!=A,-5,-5),(21-(10*movecontact))*const(size.xscale)]) || (p2movetype = A && enemynear,facing != facing && inguarddist && p2statetype != C) triggerall = (p2dist y >= -52*const(size.yscale) - (enemynear,vel y*3)) || (p2movetype = A && enemynear,facing != facing && inguarddist && p2statetype != C) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -30*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger1 = stateno != [206,207] trigger1 = prevstateno != [206,207] trigger2 = stateno = 230 || stateno = 400 trigger2 = animtime >= -5 || movecontact var(52) = 206 ignorehitpause = 1 [State AI, Consider a forward kick] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (5*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(59-(12*movecontact))*const(size.xscale)] triggerall = p2dist y >= -20*const(size.yscale) - (enemynear,vel y*16) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -40*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = (enemynear,GetHitVar(hittime) >= 14) || (p2movetype != H) || (p2statetype = A) || (p2stateno != [5000,5025]) || (moveguarded) trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 205 || stateno = 206 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 235 ignorehitpause = 1 [State AI, Consider an hoping roundhouse] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (5*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(21-(13*movecontact))*const(size.xscale)] triggerall = p2dist y >= -55*const(size.yscale) - (enemynear,vel y*8) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -30*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 400 || stateno = 410 || stateno = 205 || stateno = 206 || stateno = 235 || stateno = 445 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 245 ignorehitpause = 1 [State AI, Consider a down punch] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (5*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5110,5130] triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(20-(12*movecontact))*const(size.xscale)] triggerall = p2dist y >= -24*const(size.yscale) - (enemynear,vel y*6) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 206 || stateno = 205 || stateno = 235 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 415 ignorehitpause = 1 [State AI, Consider a crouching high kick] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 80+(var(55)*2) triggerall = var(55) triggerall = random < (6*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(17-(10*movecontact))*const(size.xscale)] triggerall = p2dist y >= -20*const(size.yscale) - (enemynear,vel y*5) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 206 || stateno = 205 trigger2 = animtime >= -5 || movecontact trigger2 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 445 ignorehitpause = 1 [State AI, Consider a random basic air attack] type = Varset triggerall = numenemy triggerall = var(52) = 0 || random < 123 triggerall = var(55) triggerall = p2bodydist x = [-38+(vel x*4)+(enemynear,vel x*4),67+(vel x*4)+(enemynear,vel x*4)] ; Shaq's own velocities as well as the opponent's are both taken into acount so Shaq would hopefully throw a punch/kick shall his opponent get in range triggerall = P2dist y = [-57+(vel y*4)+(enemynear,vel y*4),ifelse(p2movetype=A&&vel y>=0,90,70)+(vel y*4)+(enemynear,vel y*4)] triggerall = Statetype = A triggerall = p2stateno != [5100,5120] triggerall = p2Statetype = A || p2movetype = A || vel y >= 0 triggerall = (stateno != [120,169]) triggerall = random < (10*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = time >= 7-var(55) || random < 10 trigger1 = ctrl var(52) = ifelse(random<500||p2bodydist x>=15*const(size.xscale),630,600) [State AI, Consider Inferno Kicking] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) ; if the AI considered doing a basic move, it would not think about doing this special move triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 90) triggerall = p2stateno != [5080,5130] triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,8*const(size.xscale)),(30-(12*movecontact))*const(size.xscale)] triggerall = p2dist y >= -16*const(size.yscale) - (enemynear,vel y*20) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -16*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = (enemynear,GetHitVar(hittime) >= 20) || (p2movetype != H) || (p2statetype = A) || (p2stateno != [5000,5025]) || (moveguarded) ; if the opponent is hurt but not mid-air, Shaq would only do this move if he's sure he'd combo into this special move trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 50 trigger1 = var(1) ;trigger1 = !moveguarded trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) ; if Shaq is doing an elbow-to-punch command move, he'd only do this move after the second punch var(52) = 1000 ignorehitpause = 1 [State AI, Consider Kangaroo Kicking] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (3*(var(55)*var(55))) * ifelse(movehit,2,1) * ifelse(stateno = 52,2.5,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 450) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,8*const(size.xscale)),(51-(23*movecontact))*const(size.xscale)] triggerall = p2dist y >= -80 - (enemynear,vel y*9) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 50 trigger1 = var(1) trigger1 = !moveguarded trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 1300 ignorehitpause = 1 [State AI, Consider Kangaroo Kicking even higher] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (2*(var(55)*var(55))) * ifelse(movehit,2,1) * ifelse(stateno = 52,2.5,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 250) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,8*const(size.xscale)),(51-(23*movecontact))*const(size.xscale)] triggerall = p2dist y >= -86 - (enemynear,vel y*17) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 50 trigger1 = var(1) trigger1 = !moveguarded trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 1301 ignorehitpause = 1 [State AI, Consider Shadow Kicking] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (2*(var(55)*var(55))) * ifelse(movehit,2,1) * ifelse(prevstateno=2100,2,1) ; Shaq would do this move more likely after he just come out raining junk food on his opponent triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 80) triggerall = p2stateno != [5080,5130] triggerall = p2statetype != L triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,50),220-(25*(movecontact>=1))] triggerall = p2dist y >= -24*const(size.yscale) - (enemynear,vel y*15) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -40*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 50 trigger1 = var(1) trigger1 = !moveguarded trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = ifelse(p2bodydist x>=192-(25*(movecontact>=1))||random<500,1101,1100) ; denepding on the range, Shaq would randomly do a light/strong version of the move ignorehitpause = 1 [State AI, Consider Throwing a Kienzan] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 50) triggerall = (p2stateno != [5080,5130]) || (random < 123) triggerall = p2bodydist x >= 60*const(size.xscale) || movehit triggerall = p2dist y >= -20*const(size.yscale) - (enemynear,vel y*9) triggerall = ( p2dist y + (enemynear,const(size.head.pos.y) / ifelse(p2statetype=C,2,1) ) ) <= -20*const(size.yscale) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = prevstateno != [1200,1210] triggerall = !numhelper(1200) trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 60 trigger1 = var(1) trigger1 = !movehit trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) var(52) = 1200 [State AI, Consider A Free Throw in front of you] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(p2statetype!=S,2,1) * ifelse(moveguarded,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) triggerall = p2dist x - (enemynear,vel x*13) = [45,95] triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = numhelper(1500) < 2 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 60 trigger1 = var(1) trigger1 = !movehit var(52) = 1500 ignorehitpause = 1 [State AI, Consider A Free Throw a bit further] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(p2statetype!=S,2,1) * ifelse(moveguarded,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) triggerall = p2dist x - (enemynear,vel x*13) = [109,150] triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = numhelper(1500) < 2 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 60 trigger1 = var(1) trigger1 = !movehit var(52) = 1501 ignorehitpause = 1 [State AI, Consider A Free Throw at some distance] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(p2statetype!=S,2,1) * ifelse(moveguarded,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) triggerall = p2dist x - (enemynear,vel x*13) = [170,190] triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = numhelper(1500) < 2 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 60 trigger1 = var(1) trigger1 = !movehit var(52) = 1502 ignorehitpause = 1 [State AI, Consider A Free Throw pretty far away] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(p2statetype!=S,2,1) * ifelse(moveguarded,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) triggerall = p2dist x - (enemynear,vel x*13) = [230,250] triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = numhelper(1500) < 2 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 60 trigger1 = var(1) trigger1 = !movehit var(52) = 1503 ignorehitpause = 1 [State AI, Consider A Random Free Throw For Defense] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,250]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (1.5*(var(55)*var(55))) * ifelse(p2statetype!=S,2,1) * ifelse(moveguarded,2,1) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = numhelper(1500) = 1 ; only do this move if one of your balls is already onscreen triggerall = p2movetype != H || p2statetype = L trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 100 || random < 60 trigger1 = var(1) trigger1 = !movehit var(52) = 1500+random%4 ignorehitpause = 1 [State AI, Consider The Kazaam] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,255]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (3*(var(55)*var(55))) * ifelse(movehit,3,1) triggerall = random < 300 + ((lifemax - life)/16) ; do the super more likely the more you are hurt triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 250) triggerall = p2stateno != [5110,5140] triggerall = (p2bodydist x = [ifelse(p2statetype!=A,-5,0),17]) || (p2movetype = H) ; as the Kazaam homes into the opponent if one's hurt, Shaq checks whenever the opponent is in initial range or if one's hurt triggerall = power >= 1000 triggerall = (p2movetype = H) || (enemynear, ctrl = 0) || (enemynear, statetype = A) triggerall = (p2stateno != [120,165]) || (p2statetype = C) ; don't bother wasting this super on an opponent happens to be blocking. Unless in this case the opponent is crouching as this move is an overhead triggerall = (prevstateno != [2000,3902]) || (stateno = [2000,3902]) ; don't throw a super after super unless you're going for supercancels or stuff triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = anim != 20 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 410 trigger1 = var(1) trigger1 = !moveguarded || random < 80 trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) trigger2 = (stateno = [1000,1400]) && (movehit) var(52) = 2100 ignorehitpause = 1 [State AI, Consider The Beatdown] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,255]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (3*(var(55)*var(55))) * ifelse(movehit,3,1) triggerall = random < 300 + ((lifemax - life)/16) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5140] triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),67-(11*(movecontact>=1))] triggerall = p2dist y >= -40*const(size.yscale) - (enemynear,vel y*6) triggerall = ( enemynear, vel y <= 0 ) || ( (enemynear, vel y*6) + (enemynear, pos y) <= -6 ) || (p2stateno != [5030,5120]) triggerall = power >= 1000 triggerall = (p2movetype = H) || (enemynear, ctrl = 0) || (enemynear, statetype = A) triggerall = p2stateno != [120,165] triggerall = (prevstateno != [2000,3902]) || (stateno = [2000,3902]) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = (enemynear,GetHitVar(hittime) >= 8 ) || (p2movetype != H) || (p2statetype = A) || (p2stateno != [5000,5025]) trigger1 = anim != 20 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 410 trigger1 = var(1) trigger1 = !moveguarded || random < 80 trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) trigger2 = (stateno = [1000,1400]) && (movehit) var(52) = 2200 ignorehitpause = 1 [State AI, Consider Just Wasting The Power Stock] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && (var(52)!=[200,255]) && (var(52)!=[400,450]) ) triggerall = var(55) triggerall = random < (3*(var(55)*var(55))) * ifelse(movehit,3,1) triggerall = random < 300 + ((lifemax - life)/16) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 150) triggerall = p2stateno != [5080,5140] triggerall = p2bodydist x >= 42*const(size.xscale) triggerall = p2dist y >= -40*const(size.yscale) - (enemynear,vel y*6) triggerall = ( enemynear, vel y <= 0 ) || ( (enemynear, vel y*6) + (enemynear, pos y) <= -6 ) || (p2stateno != [5030,5120]) triggerall = power >= 1000 triggerall = (p2movetype = H) || (enemynear, ctrl = 0) || (enemynear, statetype = A) triggerall = p2stateno != [120,165] triggerall = (prevstateno != [2000,3902]) || (stateno = [2000,3902]) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = (enemynear,GetHitVar(hittime) >= 8 ) || (p2movetype != H) || (p2statetype = A) || (p2stateno != [5000,5025]) triggerall = !numhelper(1200) && !numhelper(2000) trigger1 = anim != 20 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = stateno != 410 trigger1 = var(1) trigger1 = !moveguarded || random < 80 trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) trigger2 = (stateno = [1000,1400]) && (movehit) var(52) = 2000 ignorehitpause = 1 [State AI, Consider The Chaos Dunk] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || ( (random < 80+var(55)) && ((var(52)!=[200,255]) && (var(52)!=[400,450]) ) || random < 123) triggerall = var(55) triggerall = random < (4*(var(55)*var(55))) triggerall = random < 444 + ((lifemax - life)/16) triggerall = ((p2movetype != A && enemynear, numproj = 0) || (EnemyNear, Facing = Facing) || (EnemyNear, moveguarded >= 8) || (var(51)) || (!InGuardDist) ) || (p2movetype!= A && enemynear, ctrl = 0) || (random < 200) triggerall = p2stateno != [5080,5140] triggerall = enemynear,prevstateno != 5120 triggerall = p2bodydist x = [ifelse(p2statetype!=A,-5,0),(25-(13*movecontact))*const(size.xscale)] triggerall = p2statetype != A triggerall = power >= 3000 triggerall = (p2movetype = H) || (enemynear, ctrl = 0) || (random < 333) triggerall = p2stateno != [120,165] triggerall = (prevstateno != [2000,3902]) || (stateno = [2000,3902]) triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 triggerall = (enemynear,GetHitVar(hittime) >= 4 ) || (p2movetype != H) || (p2stateno != [5000,5025]) trigger1 = anim != 20 trigger1 = stateno != 40 trigger1 = stateno != 20 || random < 500 || p2movetype = H trigger1 = var(1) ;trigger1 = !moveguarded || random < 80 trigger1 = stateno != 205 || (stateno = 205 && animelemtime(10) >= 0) trigger2 = (stateno = [1000,1400]) && (movehit) var(52) = 3000 ignorehitpause = 1 [State AI, Consider Throwing] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 900 triggerall = var(55) triggerall = random < (15*(var(55)*var(55))) triggerall = p2stateno != [5080,5130] triggerall = abs(p2bodydist x) < 6 triggerall = statetype != A triggerall = p2movetype != H triggerall = p2statetype != A triggerall = prevstateno != [800,830] ; don't attempt the throw again if you miss it the first time triggerall = var(8) = 0 trigger1 = stateno != 40 trigger1 = ctrl var(52) = 800 ignorehitpause = 1 [State -1, Consider an Air Throw] type = Varset triggerall = var(55) triggerall = random < (15*(var(55)*var(55))) triggerall = statetype = A triggerall = ctrl || ((stateno = [600,630]) && movehit) triggerall = p2bodydist X < 10 triggerall = abs(p2bodydist y) < 19*const(size.xscale) triggerall = (p2statetype = A) trigger1 = p2movetype != H || (random < 500) || p2movetype = A var(52) = 830 [State AI, Consider Advancing] type = VarSet triggerall = var(55) triggerall = var(52) = 0 || random < 80+var(55) triggerall = random < (4*(var(55)*var(55))) triggerall = ((enemynear, ctrl = 0) && p2movetype != A) || (p2movetype = A && (enemynear, facing = facing)) triggerall = (p2stateno != [5080,5130]) || (p2bodydist x = [45,100]) triggerall = p2bodydist x >= 45 triggerall = statetype != A triggerall = time >= 7-var(55) || random < 10 trigger1 = stateno != 40 trigger1 = stateno != 100 trigger1 = ctrl trigger1 = !moveguarded var(52) = ifelse(random<100&&power>=500,110,ifelse(random<500,100,47)) [State AI, Consider Countering/Guard Canceling] type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 55 triggerall = var(55) triggerall = random < 10 + ifelse(p2life - life<0,0,(p2life - life)/4) triggerall = random < (10*(var(55)*var(55))) * ifelse(movehit,2,1) triggerall = statetype != A triggerall = power >= 500 triggerall = power < 2500 || random < 150 || power >= 3500 trigger1 = stateno = 150 || stateno = 152 var(52) = ifelse(random<500&&(p2bodydist x = [-5,24*const(size.xscale)])&&(p2dist y >= -51*const(size.yscale)),700,104) ignorehitpause = 1 [State AI, TUNE IT UP] ; Something to encourage Shaq to extend the Shaq Attack if possible (and neccersary) type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 55 triggerall = var(55) triggerall = random < (12*(var(55)*var(55))) triggerall = power >= 1000 triggerall = p2life >= 5 trigger1 = stateno = 2201 || stateno = 2203 trigger1 = anim = 1000 var(52) = 2202 ignorehitpause = 1 [State AI, HOOOOOOOOLD] ; detected within the coding of Shaq-urikin/Kienzan, this will encourage to hold on under circumstances before throwing the disc type = VarSet triggerall = numenemy triggerall = var(52) = 0 || random < 55 triggerall = var(55) triggerall = random < (12*(var(55)*var(55))) triggerall = stateno = 1200 || stateno = 2000 trigger1 = enemynear,ctrl trigger1 = random < 900 trigger2 = p2stateno = [5100,5120] trigger3 = p2dist y < -40*const(size.yscale) - (enemynear,vel y*6) trigger4 = (p2stateno = [120,169]) || p2statetype = A var(52) = 1234 ignorehitpause = 1 [State AI, Guard S] type = ChangeState triggerall = stateno != 40 triggerall = random < 125*var(55) triggerall = (var(55)) && (StateType != A) && (Ctrl) && (EnemyNear, Facing != Facing) && (var(50)<40) trigger1 = (P2StateType != C) && (((P2MoveType = A) && (inguarddist)) || (EnemyNear, NumProj > 0)) value = ifelse(random<50&&p2bodydist x<=100&&(stateno!=[120,159]),104,130) [State AI, Guard L] type = ChangeState triggerall = stateno != 40 triggerall = random < 125*var(55) triggerall = (var(55)) && (StateType != A) && (Ctrl) && (EnemyNear, Facing != Facing) && (var(50)<40) trigger1 = (P2StateType = C) && (((P2MoveType = A) && (inguarddist)) || (EnemyNear, NumProj > 0)) value = ifelse(random<50&&p2bodydist x<=100&&(stateno!=[120,159]),104,131) ; AI ENDS ;=========================================================================== [State -1, Chaos Dunk] type = ChangeState value = 3000 triggerall = (var(55)<5 && (command = "360_z")) || var(52) = 3000 ; The move will be done if desired by either player's input (and on lower difficulties, Mugen's default AI so it would randomly throw out the move in the open) or if chosen by an AI variable triggerall = statetype != A ; a strictly ground move triggerall = power >= 3000 trigger1 = var(1) ; this lets you cancel from runing as well as most of ground basic moves on contact (see "Combo condition Check" above) trigger2 = stateno = 1000 || stateno = 1100 || stateno = 1101 || stateno = 1400 ; hey baby, wanna have a super move cancelable from a number of special moves? (The inferno kick and shadow kicks in Shaq's case) trigger2 = movecontact [State -1, Super Shaq-urikin] type = ChangeState value = 2000 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "kienzan",command = "r_kienzan")) || var(52) = 2000 ; this ifelse solution is proposed by Vans so you can do the command as normal shall Shaq suddenly turn around while you would be doing that command triggerall = statetype != A triggerall = numhelper(1200) = 0 && numhelper(2000) = 0 ; if a Disc, either regular or superpowered, is already on the screen, DON'T DO IT triggerall = power >= 1000 trigger1 = var(1) trigger2 = stateno = 1000 || stateno = 1100 || stateno = 1101 || stateno = 1400 trigger2 = movecontact [State -1, Kazaam reference] type = ChangeState value = 2100 triggerall = (var(55)<5 && (command = "kazaam")) || var(52) = 2100 ; of course if the command has no horizontal inputs you can make it like that triggerall = statetype != A triggerall = power >= 1000 trigger1 = var(1) trigger2 = stateno = 1000 || stateno = 1100 || stateno = 1101 || stateno = 1400 trigger2 = movecontact [State -1, An autocombo] type = ChangeState value = 2200 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "shaqattack",command = "r_shaqattack")) || var(52) = 2200 triggerall = statetype != A triggerall = power >= 1000 trigger1 = var(1) trigger2 = stateno = 1000 || stateno = 1100 || stateno = 1101 || stateno = 1400 trigger2 = movecontact [State -1, AUTOCOMBO EXTEND] type = ChangeState value = 2202 triggerall = (var(55)<5 && (command = "stillinsane")) || var(52) = 2202 triggerall = power >= 1000 trigger1 = stateno = 2201 [State -1, AUTOCOMBO CLIMAX] type = ChangeState value = 2204 triggerall = (var(55)<5 && (command = "steel")) || var(52) = 2202 triggerall = power >= 1000 trigger1 = stateno = 2203 ;=========================================================================== [State -1, free throws yaay point blank] type = ChangeState value = 1500 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "freethrow1",command = "r_freethrow1")) || var(52) = 1500 triggerall = statetype != A triggerall = numhelper(1500) < 2 trigger1 = var(1) [State -1, free throws yaay near] type = ChangeState value = 1501 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "freethrow2",command = "r_freethrow2")) || var(52) = 1501 triggerall = statetype != A triggerall = numhelper(1500) < 2 trigger1 = var(1) [State -1, free throws yaay mid] type = ChangeState value = 1502 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "freethrow3",command = "r_freethrow3")) || var(52) = 1502 triggerall = statetype != A triggerall = numhelper(1500) < 2 trigger1 = var(1) [State -1, free throws yaay far] type = ChangeState value = 1503 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "freethrow4",command = "r_freethrow4")) || var(52) = 1503 triggerall = statetype != A triggerall = numhelper(1500) < 2 trigger1 = var(1) [State -1, Light Kangaroo Kick] type = ChangeState value = 1300 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "kangarookick",command = "r_kangarookick")) || var(52) = 1300 triggerall = statetype != A trigger1 = var(1) [State -1, Strong Kangaroo Kick] type = ChangeState value = 1301 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "kangarookick2",command = "r_kangarookick2")) || var(52) = 1301 triggerall = statetype != A trigger1 = var(1) [State -1, Inferno Kick] type = ChangeState value = 1000 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "infernokick",command = "r_infernokick")) || var(52) = 1000 triggerall = statetype != A trigger1 = var(1) [State -1, Weak Shadow Kick] type = ChangeState value = 1100 triggerall = (var(55)<5 && (command = "shadowkick")) || var(52) = 1100 triggerall = statetype != A trigger1 = var(1) [State -1, Strong Shadow Kick] type = ChangeState value = 1101 triggerall = (var(55)<5 && (command = "shadowkick2")) || var(52) = 1101 triggerall = statetype != A trigger1 = var(1) [State -1, Overhead hop] type = ChangeState value = 1400 triggerall = (var(55)<5 && ifelse((anim!=[5,6]),command = "overhead",command = "r_overhead")) || var(52) = 1400 triggerall = statetype != A trigger1 = var(1) [State -1, Shaq-urikin] type = ChangeState value = 1200 triggerall = (var(55)<5 && (command = "discball")) || var(52) = 1200 triggerall = statetype != A triggerall = numhelper(1200) = 0 && numhelper(2000) = 0 trigger1 = var(1) ;--------------------------------------------------------------------------- ;Kung Fu Throw ;投げ [State -1, Ground Throw] type = ChangeState value = 800 triggerall = (var(55)<5 && (command = "z")) || var(52) = 800 triggerall = statetype != A trigger1 = ctrl trigger1 = stateno != 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 415 || stateno = 205 || stateno = 206 || stateno = 210 trigger2 = animtime >= -5 || movecontact || time < 6 [State -1, Air Throw] type = ChangeState value = 830 triggerall = (var(55)<5 && (command = "z")) || var(52) = 830 triggerall = statetype = A trigger1 = ctrl trigger2 = stateno = 600 || (stateno = 630 && animelemtime(4) >= 0) ; yes, you can combo aerial basics into an air throw. Obviously it would be only useful against aerial opponents trigger2 = animtime >= -5 || movecontact || time < 6 ;--------------------------------------------------------------------------- ;Teleport ;後退ダッシュ [State -1, Teleport] type = ChangeState value = 110 triggerall = (var(55)<5 && (command = "teleport")) || (var(52) = 110) triggerall = statetype != A triggerall = power >= 500 trigger1 = ctrl || stateno = 100 ;--------------------------------------------------------------------------- ;Dodge! ;ダッシュ [State -1, Dodge!] type = ChangeState value = 104 triggerall = (var(55)<5 && (command = "holddown" && stateno = 100) || (command = "holdc" && command = "holddown") || (command = "holdc" && command = "holdfwd" && (stateno = [150,154]))) || (var(52) = 104) triggerall = statetype != A triggerall = anim != 101 trigger1 = ctrl || stateno = 100 trigger2 = power >= 500 trigger2 = (stateno = [150,153]) [State -1, AKUMA] ; Guard cancel counter attack type = ChangeState value = 700 triggerall = (!var(55) && command = "CD") || var(52) = 700 triggerall = power >= 500 triggerall = statetype != A trigger1 = stateno = [150,154] ;--------------------------------------------------------------------------- ;Run Fwd ;ダッシュ [State -1, Run Fwd] type = ChangeState value = 100 triggerall = (var(55)<5 && (command = "FF") || (command = "holdc" && command = "holdfwd" && command != "teleport")) || (var(52) = 100) triggerall = stateno != 100 triggerall = stateno != 40 triggerall = anim != 101 trigger1 = !statetype = A trigger1 = ctrl ;--------------------------------------------------------------------------- ;Run Back ;後退ダッシュ [State -1, Run Back] type = ChangeState value = 105 triggerall = (var(55)<5 && (command = "BB") || (command = "holdc" && command = "holdback" && command != "teleport")) || (var(52) = 105) trigger1 = !statetype = A trigger1 = ctrl || stateno = 100 trigger2 = power >= 500 trigger2 = (stateno = [150,153]) [State -1, Crouch High Kick] type = ChangeState value = 445 triggerall = (var(55)<5 && (command = "a" && (command = "holdback" || command = "holdfwd") && command = "holddown")) || var(52) = 445 trigger1 = statetype != A trigger1 = ctrl || stateno = 40 || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 206 || stateno = 205 trigger2 = animtime >= -5 || movecontact [State -1, Down Punch] type = ChangeState value = 415 triggerall = (var(55)<5 && (command = "y" && command = "holdfwd" && command = "holddown")) || var(52) = 415 trigger1 = statetype != A trigger1 = ctrl || stateno = 40 || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 206 || stateno = 205 || stateno = 235 trigger2 = animtime >= -5 || movecontact [State -1, Parry Jab] type = ChangeState value = 206 triggerall = (var(55)<5 && (command = "x" && command = "holdup")) || var(52) = 206 trigger1 = statetype != A trigger1 = ctrl || stateno = 40 || stateno = 100 trigger2 = stateno = 230 || stateno = 400 trigger2 = animtime >= -5 || movecontact [State -1, Elbow to Punch] type = ChangeState value = 205 triggerall = (var(55)<5 && (command = "x" && command = "holdback" && command != "holddown")) || var(52) = 205 trigger1 = statetype != A trigger1 = ctrl || stateno = 4 || stateno = 1000 trigger2 = stateno = 200 || stateno = 230 || stateno = 206 trigger2 = animtime >= -5 || movecontact [State -1, Rising Roundhouse] type = ChangeState value = 245 triggerall = (var(55)<5 && (command = "b" && command = "holdup")) || var(52) = 245 trigger1 = statetype != A trigger1 = ctrl || stateno = 40 || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 400 || stateno = 410 || stateno = 205 || stateno = 206 || stateno = 235 || stateno = 445 trigger2 = animtime >= -5 || movecontact [State -1, Forward Kick] type = ChangeState value = 235 triggerall = (var(55)<5 && ((command = "a" || command = "b") && command = "holdfwd" && command != "holddown")) || var(52) = 235 ; both Forward+LK and Forward+HK will have you do this move because that's how it was in Shaq Fu itself too lol trigger1 = statetype != A trigger1 = ctrl || stateno = 40 || stateno = 100 trigger2 = stateno = 200 || stateno = 205 || stateno = 206 trigger2 = animtime >= -5 || movecontact ;=========================================================================== ;--------------------------------------------------------------------------- ;Stand Light Punch ;立ち弱パンチ [State -1, Stand Light Punch] type = ChangeState value = 200 triggerall = (var(55)<5 && (command = "x" && command != "holddown")) || var(52) = 200 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 230 || stateno = 200 trigger2 = animtime >= -5 || movecontact [State -1, Stand Back Punch] type = ChangeState value = 210 triggerall = (var(55)<5 && (command = "y" && command != "holddown")) || var(52) = 210 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 205 || stateno = 206 || stateno = 235 || stateno = 415 trigger2 = animtime >= -5 || movecontact [State -1, Stand Light Kick] type = ChangeState value = 230 triggerall = (var(55)<5 && (command = "a" && command != "holddown")) || var(52) = 230 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 ;trigger2 = stateno = 200 || stateno = 400 ;trigger2 = animtime >= -5 || movecontact [State -1, Stand Roundhouse Kick] type = ChangeState value = 240 triggerall = (var(55)<5 && (command = "b" && command != "holddown")) || var(52) = 240 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 200 || stateno = 230 || stateno = 400 || stateno = 410 || stateno = 205 || stateno = 235 || stateno = 206 trigger2 = animtime >= -5 || movecontact ;--------------------------------------------------------------------------- ;Taunt [State -1, POWER UP] type = ChangeState value = 199 triggerall = (var(55)<5 && (command = "start" && command = "holddown")) || var(52) = 199 triggerall = var(10) = 0 triggerall = power >= 1000 trigger1 = statetype != A trigger1 = ctrl ;--------------------------------------------------------------------------- ;Taunt ;挑発 [State -1, Taunt] type = ChangeState value = 195 triggerall = (command = "start") || var(52) = 195 || (var(58) = -2 && winko && !var(48)) triggerall = stateno != 195 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 [State -1, Crouch Light Punch] type = ChangeState value = 400 triggerall = (var(55)<5 && (command = "x" && command = "holddown")) || var(52) = 400 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 430 || stateno = 445 trigger2 = animtime >= -5 || movecontact [State -1, Crouch Fire Punch] type = ChangeState value = 410 triggerall = (var(55)<5 && (command = "y" && command = "holddown")) || var(52) = 410 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 430 || stateno = 445 || stateno = 235 trigger2 = animtime >= -5 || movecontact [State -1, Crouch Light Kick] type = ChangeState value = 430 triggerall = (var(55)<5 && (command = "a" && command = "holddown")) || var(52) = 430 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 445 trigger2 = animtime >= -5 || movecontact [State -1, Crouch Sweep] type = ChangeState value = 440 triggerall = (var(55)<5 && (command = "b" && command = "holddown")) || var(52) = 440 trigger1 = statetype != A trigger1 = ctrl || stateno = 100 trigger2 = stateno = 400 || stateno = 430 || stateno = 445 || stateno = 410 trigger2 = animtime >= -5 || movecontact ;--------------------------------------------------------------------------- ;Jump Light Punch ;空中弱パンチ [State -1, Jump Punch] type = ChangeState value = 600 triggerall = (var(55)<5 && (command = "x" || command = "y")) || var(52) = 600 trigger1 = statetype = A trigger1 = ctrl [State -1, Jump Kick] type = ChangeState value = 630 triggerall = (var(55)<5 && (command = "a" || command = "b")) || var(52) = 630 trigger1 = statetype = A trigger1 = ctrl [State -1, Air combo lol] type = ChangeState value = 40 triggerall = (command = "holdup") || var(52) = [40,45] trigger1 = var(55) ; trigger1 series is strictly for AI to have it decided when it shall jump when desired, the other triggers also include the player-controlled Shaq trigger1 = statetype != A trigger1 = ctrl trigger2 = stateno = 100 ; let Shaq jump from the run as the run has ctrl = 0 to prevent this "crouch while running thing" ; this below will let Shaq jump cancel the parry punch and rising roundhouse on hit as long as his target happen to be midair trigger3 = numtarget trigger3 = statetype != A trigger3 = target,statetype=A trigger3 = stateno = 206 || stateno = 245 trigger3 = movehit
Back
Top