Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; 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)
- ; buffer.time = time (optional)
- ;
- ; - 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. Each of these
- ; buttons or directions is referred to as a "symbol".
- ; 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
- ; greater-than (>) - means there must be no other keys pressed or released
- ; between the previous and the current symbol.
- ; egs. command = a, >~a ;press a and release it without having hit
- ; ;or released any other keys in between
- ; You can combine the symbols:
- ; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release,
- ; ;then press a and b together
- ;
- ; Note: Successive direction symbols are always expanded in a manner similar
- ; to this example:
- ; command = F, F
- ; is expanded when MUGEN reads it, to become equivalent to:
- ; command = F, >~F, >F
- ;
- ; It is recommended that for most "motion" commads, eg. quarter-circle-fwd,
- ; you start off with a "release direction". This makes the command easier
- ; to do.
- ;
- ; - time (optional)
- ; Time allowed to do the command, given in game-ticks. The default
- ; value for this is set in the [Defaults] section below. A typical
- ; value is 15.
- ;
- ; - buffer.time (optional)
- ; Time that the command will be buffered for. If the command is done
- ; successfully, then it will be valid for this time. The simplest
- ; case is to set this to 1. That means that the command is valid
- ; only in the same tick it is performed. With a higher value, such
- ; as 3 or 4, you can get a "looser" feel to the command. The result
- ; is that combos can become easier to do because you can perform
- ; the command early. Attacks just as you regain control (eg. from
- ; getting up) also become easier to do. The side effect of this is
- ; that the command is continuously asserted, so it will seem as if
- ; you had performed the move rapidly in succession during the valid
- ; time. To understand this, try setting buffer.time to 30 and hit
- ; a fast attack, such as KFM's light punch.
- ; The default value for this is set in the [Defaults] section below.
- ; This parameter does not affect hold-only commands (eg. /F). It
- ; will be assumed to be 1 for those commands.
- ;
- ; 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
- ;-| Default Values |-------------------------------------------------------
- [Defaults]
- ; Default value for the "time" parameter of a Command. Minimum 1.
- command.time = 15
- ; Default value for the "buffer.time" parameter of a Command. Minimum 1,
- ; maximum 30.
- command.buffer.time = 1
- ;-| Super Motions |--------------------------------------------------------
- ;The following two have the same name, but different motion.
- ;Either one will be detected by a "command = TripleKFPalm" trigger.
- ;Time is set to 20 (instead of default of 15) to make the move
- ;easier to do.
- ;
- [Command]
- name = "SRS"
- command = ~D, DF, F, D, DF, F, y
- time = 30
- [Command]
- name = "SRS"
- command = ~D, DF, F, D, DF, F, x
- time = 30
- [Command]
- name = "SSRS"
- command = ~D, DF, F, D, DF, F, x+y
- time = 30
- [Command]
- name = "SDC"
- command = ~D, DB, B, D, DB, B, y
- time = 30
- [Command]
- name = "SDC"
- command = ~D, DB, B, D, DB, B, x
- time = 30
- [Command]
- name = "SSDC"
- command = ~D, DB, B, D, DB, B, x+y
- time = 30
- [Command]
- name = "DC"
- command = ~10$B, F, B, F, x+y
- time = 30
- ;-| Special Motions |------------------------------------------------------
- [Command]
- name = "upper_x"
- command = ~F, D, DF, x
- [Command]
- name = "upper_y"
- command = ~F, D, DF, y
- [Command]
- name = "upper_xy"
- command = ~F, D, DF, x+y
- [Command]
- name = "QCF_x"
- command = ~D, DF, F, x
- [Command]
- name = "QCF_y"
- command = ~D, DF, F, y
- [Command]
- name = "QCF_xy"
- command = ~D, DF, F, x+y
- [Command]
- name = "QCB_x"
- command = ~D, DB, B, x
- [Command]
- name = "QCB_y"
- command = ~D, DB, B, y
- [Command]
- name = "QCB_xy"
- command = ~D, DB, B, x+y
- [Command]
- name = "DU_x"
- command = ~10$D, U, x
- [Command]
- name = "FF_ab"
- command = F, F, a+b
- [Command]
- name = "FF_a"
- command = F, F, a
- [Command]
- name = "FF_b"
- command = F, F, b
- ;-| 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
- ;-| Dir + Button |---------------------------------------------------------
- [Command]
- name = "down_a"
- command = /$D,a
- time = 1
- [Command]
- name = "down_b"
- command = /$D,b
- 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
- ;---------------------------------------------------------------------------
- ; 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 Only
- [State -1, Taunt]
- type = ChangeState
- value = 195
- triggerall = AILevel
- triggerall = statetype != A
- triggerall = ctrl
- triggerall = enemynear, numproj = 0
- triggerall = enemynear, movetype != A
- triggerall = ((Life*100)/LifeMax) >= 40
- trigger1 = p2bodydist x >= 150
- trigger1 = life >= enemynear, life
- trigger1 = random <= 6 && AILevel >= 6 || random <= 20 && AIlevel >= 3 && AIlevel <= 5 || random <= 40 &&AIlevel >= 1 && AIlevel <= 2
- trigger1 = roundstate = 2
- trigger2 = roundstate = 3
- trigger2 = prevstateno != [195,199]
- trigger2 = win
- [State -1, AI Jump]
- type = null
- value = 40
- triggerall = var(59)
- triggerall = roundstate = 2
- triggerall = statetype != A
- triggerall = ctrl
- triggerall = stateno != 40
- trigger1 = enemynear, movetype = A && p2bodydist x < 160 && enemynear, hitdefattr = SC, AT
- trigger1 = AILevel >= 4
- trigger1 = random<var(50)*2.0
- trigger2 = numtarget(1000)
- trigger2 = random<var(50)*2.0
- trigger2 = enemynear,statetype = A
- trigger2 = enemynear,movetype = H
- trigger2 = AILevel > 3
- ;Dragon Crush
- [State -1, DC]
- type = ChangeState
- value = 3020
- triggerall = var(59)
- triggerall = power >= 3000
- triggerall = AILevel>2
- triggerall = statetype != A
- triggerall = p2bodydist x <= 195
- triggerall = p2bodydist y >= -50
- triggerall = p2statetype != A
- triggerall = p2statetype != L
- triggerall = p2movetype != H
- triggerall = enemynear,stateno != [1120,1122]
- triggerall = enemynear,stateno != 5120
- triggerall = enemynear,prevstateno != 5120
- trigger1 = AILevel >= 3 && AILevel <= 5 && random<var(50)*1.0 || AILevel >= 6 && random<var(50)*2.0
- trigger1 = ctrl
- ;SSRS
- [State -1, SRS]
- type = ChangeState
- value = 3010
- triggerall = var(59)
- triggerall = power >= 2000
- triggerall = AILevel>2
- triggerall = statetype != A
- triggerall = p2bodydist x <= 120
- triggerall = p2bodydist y >= -73
- triggerall = p2statetype != L
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.02
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = var(0) && var(3) && var(4)
- trigger2 = random<var(50)*0.5
- trigger3 = stateno = 210
- trigger3 = numtarget(210)
- trigger3 = random<var(50)*0.5
- trigger3 = var(0) && var(3) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*0.5
- trigger4 = var(0) && var(3) && var(4)
- trigger5 = ctrl || stateno = 100 || stateno = 101
- trigger5 = enemynear,movetype = A
- trigger5 = enemynear,time <= 6
- trigger5 = random<var(50)*0.2
- trigger5 = AILevel >= 6
- ;SSDC
- [State -1, SRS]
- type = ChangeState
- value = 3015
- triggerall = var(59)
- triggerall = power >= 2000
- triggerall = AILevel>2
- triggerall = statetype != A
- triggerall = p2bodydist x <= 100
- triggerall = p2bodydist y >= -70
- triggerall = p2statetype != L
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.02
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = var(0) && var(3) && var(4)
- trigger2 = random<var(50)*0.5
- trigger3 = stateno = 210
- trigger3 = numtarget(210)
- trigger3 = random<var(50)*0.5
- trigger3 = var(0) && var(3) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*0.5
- trigger4 = var(0) && var(3) && var(4)
- trigger5 = ctrl || stateno = 100 || stateno = 101
- trigger5 = enemynear,movetype = A
- trigger5 = enemynear,time <= 6
- trigger5 = random<var(50)*0.2
- trigger5 = AILevel >= 6
- ;SRS
- [State -1, SRS]
- type = ChangeState
- value = 3000
- triggerall = var(59)
- triggerall = power >= 1000
- triggerall = AILevel>2
- triggerall = statetype != A
- triggerall = p2bodydist x <= 138
- triggerall = p2bodydist y >= -83
- triggerall = p2statetype != L
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.02
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = var(0) && var(3) && var(4)
- trigger2 = random<var(50)*0.5
- trigger3 = stateno = 210
- trigger3 = numtarget(210)
- trigger3 = random<var(50)*0.5
- trigger3 = var(0) && var(3) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*0.5
- trigger4 = var(0) && var(3) && var(4)
- trigger5 = ctrl || stateno = 100 || stateno = 101
- trigger5 = enemynear,movetype = A
- trigger5 = enemynear,time <= 6
- trigger5 = random<var(50)*0.2
- trigger5 = AILevel >= 6
- ;SDC
- [State -1, SRS]
- type = ChangeState
- value = 3005
- triggerall = var(59)
- triggerall = power >= 1000
- triggerall = AILevel>2
- triggerall = statetype != A
- triggerall = p2bodydist x <= 117
- triggerall = p2bodydist y >= -83
- triggerall = p2statetype != L
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.02
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = var(0) && var(3) && var(4)
- trigger2 = random<var(50)*0.5
- trigger3 = stateno = 210
- trigger3 = numtarget(210)
- trigger3 = random<var(50)*0.5
- trigger3 = var(0) && var(3) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*0.5
- trigger4 = var(0) && var(3) && var(4)
- trigger5 = ctrl || stateno = 100 || stateno = 101
- trigger5 = enemynear,movetype = A
- trigger5 = enemynear,time <= 6
- trigger5 = random<var(50)*0.2
- trigger5 = AILevel >= 6
- ;AI Throw
- [State -1, AI throw them]
- type = ChangeState
- value = 800
- triggerall = var(59)
- triggerall = statetype != A
- triggerall = ctrl
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != [1120,1122]
- triggerall = enemynear,stateno != 5120
- triggerall = enemynear,prevstateno != 5120
- trigger1 = p2bodydist x <= 24
- trigger1 = p2movetype != H
- trigger1 = p2statetype != A
- trigger1 = random<var(50)*0.5
- trigger2 = enemynear, stateno >= 120 && enemynear, stateno <= 155 && p2bodydist x <= 24
- trigger2 = p2statetype != A
- trigger2 = p2movetype != H
- trigger2 = random<var(50)*1.0
- trigger2 = AILevel >= 6
- ;AI Run Fwd
- [State -1, AI stumble really fast to the enemy]
- type = ChangeState
- value = 100
- Triggerall=!Inguarddist
- triggerall = var(59)
- triggerall = AILevel >= 3
- triggerall = statetype != A
- triggerall = ctrl
- triggerall = stateno != [100,101]
- triggerall = p2movetype != A
- triggerall = enemynear, numproj = 0
- trigger1 = p2bodydist x >= 50
- trigger1 = random<var(50)*0.1
- trigger2 = p2statetype = L && p2bodydist x >= 50
- trigger2 = random<var(50)*1.0
- ;Stand Light Punch
- [State -1, AI Stand Light Punch]
- type = ChangeState
- value = 200
- triggerall = var(59)
- triggerall = statetype != A
- triggerall = ctrl || stateno = [100,101]
- triggerall = p2bodydist x <= 33
- triggerall = p2bodydist Y = [-44,88]
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = random<var(50)*1.1
- [State -1, AI Crouch kick]
- type = ChangeState
- value = 400
- triggerall = !inguarddist
- triggerall = var(59)
- triggerall = !var(0)
- triggerall = statetype != A
- triggerall = p2bodydist x <= 72
- triggerall = p2bodydist Y >= -32
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 101
- trigger1 = random<var(50)*0.2
- trigger1 = AILevel <= 5
- trigger2 = ctrl || stateno = 101
- trigger2 = random<var(50)*0.3
- trigger2 = enemynear,statetype != C
- trigger2 = AILevel > 5
- trigger3 = stateno = 220
- trigger3 = movehit && random<var(50)*2.0 || movecontact && random<var(50)*0.6 && AILevel <= 5 || movecontact && enemynear,statetype != C && random<var(50)*0.6 && AILevel > 5
- trigger4 = stateno = 210
- trigger4 = p2bodydist x > 47
- trigger4 = movehit && random<var(50)*2.0 || movecontact && random<var(50)*0.6 && AILevel <= 5 || movecontact && enemynear,statetype != C && random<var(50)*0.6 && AILevel > 5
- trigger5 = ctrl || stateno = 101
- trigger5 = enemynear,statetype = L
- trigger5 = random<var(50)*2.0
- [State -1, AI jump Light Punch]
- type = ChangeState
- value = 600
- triggerall = !inguarddist
- triggerall = var(59)
- triggerall = statetype = A
- triggerall = p2bodydist x <= 33 || vel x > 0 && p2bodydist x <= 60
- triggerall = p2bodydist Y = [-44,88]
- triggerall = p2statetype != L
- triggerall = random<var(50)*1.1
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl
- ;trigger2 = stateno = 400
- ;trigger2 = time >= 6
- ;AI Guarding
- [State -1]
- type = ChangeState
- triggerall = (roundstate = 2) && (var(59) != 0)
- triggerall = (Ctrl) && (p2movetype = A) && (statetype = S)
- trigger1 = (p2bodydist X <= 250) && (random <= 799)
- value = 130
- [State -1]
- type = ChangeState
- triggerall = (roundstate = 2) && (var(59) != 0)
- triggerall = (Ctrl) && (p2movetype = A) && (statetype = C)
- trigger1 = (p2bodydist X <= 250) && (random <= 799)
- value = 131
- [State -1]
- type = ChangeState
- triggerall = (roundstate = 2) && (var(59) != 0)
- triggerall = (Ctrl) && (p2movetype = A) && (statetype = A)
- trigger1 = (p2bodydist X <= 250) && (random <= 799)
- value = 132
- [State -1, ]
- type = ChangeState
- value = 1000
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype != A
- triggerall = p2bodydist x <= 30
- triggerall = p2bodydist Y >= -60
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- trigger3 = stateno = 210
- trigger3 = numtarget(210) || numtarget(600)
- trigger3 = random<var(50)*2.0
- trigger3 = !var(3) || var(1) && var(0) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*2.0
- trigger4 = !var(3) || var(1) && var(0) && var(4)
- [State -1, ]
- type = ChangeState
- value = 1011
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype = A
- triggerall = p2bodydist x <= 20
- triggerall = p2bodydist Y >= -40
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 600
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- [State -1, ]
- type = ChangeState
- value = 1020
- ;triggerall = power >= 500
- triggerall = fvar(3) = 1
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype != A
- triggerall = p2bodydist x <= 57
- triggerall = p2bodydist Y >= -68
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- trigger3 = stateno = 210
- trigger3 = numtarget(210) || numtarget(600)
- trigger3 = random<var(50)*2.0
- trigger3 = !var(3) || var(1) && var(0) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*2.0
- trigger4 = !var(3) || var(1) && var(0) && var(4)
- [State -1, ]
- type = ChangeState
- value = 1020
- ;triggerall = power >= 500
- triggerall = fvar(3) = 1
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype = A
- triggerall = p2bodydist x <= 57
- triggerall = p2bodydist Y >= -68
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 600
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- [State -1, Downward]
- type = ChangeState
- value = 1050
- ;triggerall = power >= 500
- triggerall = fvar(3) = 1
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype = A
- triggerall = p2bodydist x <= 30
- triggerall = p2bodydist Y >= -20
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 600
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- [State -1, Upward]
- type = ChangeState
- value = 1023
- ;triggerall = power >= 500
- triggerall = fvar(3) = 1
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype = A
- triggerall = p2bodydist x <= 50
- triggerall = p2bodydist Y >= -100
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 600
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- [State -1, ]
- type = ChangeState
- value = 1025
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype != A
- triggerall = p2bodydist x <= 70
- triggerall = p2bodydist Y >= -68
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 400
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- trigger3 = stateno = 210
- trigger3 = numtarget(210) || numtarget(600)
- trigger3 = random<var(50)*2.0
- trigger3 = !var(3) || var(1) && var(0) && var(4)
- trigger4 = stateno = 210
- trigger4 = movehit
- trigger4 = time >= 32 || p2bodydist x >= 40
- trigger4 = random<var(50)*2.0
- trigger4 = !var(3) || var(1) && var(0) && var(4)
- [State -1, ]
- type = ChangeState
- value = 1069
- triggerall = var(59)
- triggerall = AILevel>1
- triggerall = statetype = A
- triggerall = p2bodydist x <= 70
- triggerall = p2bodydist Y >= -68
- triggerall = p2statetype != L
- triggerall = enemynear,stateno != 5120
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = random<var(50)*0.2 || enemynear,statetype = A && random<var(50)*0.5
- trigger1 = !var(3) || var(1) && var(0) && var(4)
- trigger1 = p2bodydist x > 33
- trigger2 = stateno = 600
- trigger2 = movehit
- trigger2 = random<var(50)*2.0
- trigger2 = !var(3) || var(1) && var(0) && var(4)
- ;---------------------------------------------------------------------------
- [State -1, DC]
- type = ChangeState
- value = 3020
- triggerall = !var(59)
- triggerall = command = "DC"
- triggerall = power >= 3000
- trigger1 = statetype = S
- trigger1 = ctrl
- trigger2 = stateno = 200 || stateno = 210
- trigger2 = movecontact
- trigger3 = stateno = 400
- trigger3 = movecontact
- [State -1, SSRS]
- type = ChangeState
- value = 3010
- triggerall = !var(59)
- triggerall = command = "SSRS"
- triggerall = power >= 2000
- trigger1 = statetype = S
- trigger1 = ctrl
- trigger2 = stateno = 200 || stateno = 210
- trigger2 = movecontact
- trigger3 = stateno = 400
- trigger3 = movecontact
- [State -1, SSDC]
- type = ChangeState
- value = 3015
- triggerall = numhelper(3305)!=1
- triggerall = !var(59)
- triggerall = command = "SSDC"
- triggerall = power >= 2000
- trigger1 = statetype = S
- trigger1 = ctrl
- trigger2 = stateno = 200 || stateno = 210
- trigger2 = movecontact
- trigger3 = stateno = 400
- trigger3 = movecontact
- [State -1, SRS]
- type = ChangeState
- value = 3000
- triggerall = !var(59)
- triggerall = command = "SRS"
- triggerall = power >= 1000
- trigger1 = statetype = S
- trigger1 = ctrl
- trigger2 = stateno = 200 || stateno = 210
- trigger2 = movecontact
- trigger3 = stateno = 400
- trigger3 = movecontact
- [State -1, SDC]
- type = ChangeState
- value = 3005
- triggerall = !var(59)
- triggerall = command = "SDC"
- triggerall = power >= 1000
- trigger1 = statetype = S
- trigger1 = ctrl
- trigger2 = stateno = 200 || stateno = 210
- trigger2 = movecontact
- trigger3 = stateno = 400
- trigger3 = movecontact
- ;===========================================================================
- ;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
- trigger1 = statetype != A
- trigger1 = ctrl
- trigger2 = (stateno = [200,299]) || (stateno = [400,499])
- trigger2 = stateno != 440 ;Except for sweep kick
- trigger2 = movecontact
- var(1) = 1
- [State -1, Combo condition Reset]
- type = VarSet
- trigger1 = 1
- var(2) = 0
- [State -1, Combo condition Check]
- type = VarSet
- trigger1 = statetype = A
- trigger1 = ctrl
- trigger2 = (stateno = [600,699])
- trigger2 = movecontact
- var(2) = 2
- ;---------------------------------------------------------------------------
- [State -1, Dive kick from ground]
- type = NULL
- value = 1010
- triggerall = !var(59)
- triggerall = command = "DU_x"
- trigger1 = var(1)
- [State -1, Rising slash]
- type = changestate
- value = 1000
- triggerall = !var(59)
- triggerall = command = "upper_x"
- trigger1 = var(1)
- [State -1, Dive kick from air]
- type = changestate
- value = 1012
- triggerall = !var(59)
- triggerall = command = "holddown"
- triggerall = command = "x"
- trigger1 = var(2)
- [State -1, Dragon cycle]
- type = changestate
- value = 1025
- triggerall = !var(59)
- triggerall = command = "QCB_x"
- trigger1 = var(1)
- [State -1, Dragon cycle]
- type = changestate
- value = 1069
- triggerall = !var(59)
- triggerall = command = "QCB_x"
- trigger1 = var(2)
- [State -1, Dragoon boost from ground]
- type = changestate
- value = 1020
- triggerall = !var(59)
- triggerall = command = "y"
- ;triggerall = power >= 500
- trigger1 = fvar(3) = 1
- trigger1 = statetype != A
- trigger1 = ctrl
- [State -1, Dragoon boost from air upwards]
- type = changestate
- value = 1023
- triggerall = !var(59)
- triggerall = command = "y"
- triggerall = command = "holdup"
- triggerall = fvar(3) = 1
- ;triggerall = power >= 500
- trigger1 = var(2)
- [State -1, Dragoon boost from air downward]
- type = changestate
- value = 1050
- triggerall = !var(59)
- triggerall = command = "y"
- triggerall = command = "holddown"
- triggerall = fvar(3) = 1
- ;triggerall = power >= 500
- trigger1 = var(2)
- [State -1, Dragoon boost from air]
- type = changestate
- value = 1020
- triggerall = !var(59)
- triggerall = fvar(3) = 1
- ;triggerall = power >= 500
- ;triggerall = command = "holdup"
- triggerall = command = "y"
- trigger1 = var(2)
- ;===========================================================================
- ;---------------------------------------------------------------------------
- ;Run Fwd
- ;ƒ_ƒbƒVƒ…
- [State -1, Run Fwd]
- type = ChangeState
- triggerall = !var(59)
- value = 100
- trigger1 = command = "FF"
- trigger1 = statetype = S
- trigger1 = ctrl
- ;---------------------------------------------------------------------------
- ;Run Back
- ;Œã‘Þƒ_ƒbƒVƒ…
- [State -1, Run Back]
- type = changestate
- triggerall = !var(59)
- value = 105
- trigger1 = command = "BB"
- trigger1 = statetype = S
- trigger1 = ctrl
- ;---------------------------------------------------------------------------
- ;Kung Fu Throw
- ;“Š‚°
- [State -1, Kung Fu Throw]
- type = ChangeState
- value = 800
- triggerall = !var(59)
- triggerall = command = "z"
- triggerall = stateno != 100
- trigger1 = statetype = S
- trigger1 = ctrl
- ;===========================================================================
- ;---------------------------------------------------------------------------
- [State -1, Attack]
- type = ChangeState
- value = 200
- triggerall = !var(59)
- triggerall = command = "x"
- triggerall = command != "holddown"
- trigger1 = statetype = S
- trigger1 = ctrl || stateno = 100 || stateno = 101
- trigger1 = ctrl
- ;---------------------------------------------------------------------------
- ;---------------------------------------------------------------------------
- ;---------------------------------------------------------------------------
- ;---------------------------------------------------------------------------
- ;Taunt
- ;’§”
- [State -1, Taunt]
- type = ChangeState
- ;value = 903
- ;value = 181 +random%3
- value = 195
- triggerall = !var(59)
- triggerall = command = "start"
- trigger1 = statetype != A
- trigger1 = ctrl
- ;Taunt
- ;’§”
- ;[State -1, Taunt]
- ;type = ChangeState
- ;value = 906
- ;triggerall = !var(59)
- ;triggerall = command = "b"
- ;trigger1 = statetype != A
- ;trigger1 = ctrl
- ;Test Victory 2
- ;’§”
- ;[State -1, Taunt]
- ;type = ChangeState
- ;value = 188
- ;triggerall = !var(59)
- ;triggerall = command = "a"
- ;triggerall = command = "holddown"
- ;trigger1 = statetype = C
- ;trigger1 = ctrl
- ;Test Victory
- ;’§”
- ;[State -1, Taunt]
- ;type = ChangeState
- ;value = 182
- ;triggerall = !var(59)
- ;triggerall = command = "a"
- ;trigger1 = statetype != A
- ;trigger1 = ctrl
- ;---------------------------------------------------------------------------
- ;Crouching Light Punch
- ;‚µ‚Ⴊ‚ÝŽãƒpƒ“ƒ`
- [State -1, Crouching Light Punch]
- type = ChangeState
- value = 400
- triggerall = !var(59)
- triggerall = command = "x"
- triggerall = command = "holddown"
- trigger1 = statetype = C
- trigger1 = ctrl
- trigger2 = stateno = 200 || stateno = 210
- trigger2 = movecontact
- ;---------------------------------------------------------------------------
- ;---------------------------------------------------------------------------
- ;---------------------------------------------------------------------------
- ;Jump Light Punch
- ;‹ó’†Žãƒpƒ“ƒ`
- [State -1, Jump Light Punch]
- type = ChangeState
- value = 600
- triggerall = !var(59)
- triggerall = command = "x"
- trigger1 = statetype = A
- trigger1 = ctrl
- ;---------------------------------------------------------------------------
- ;---------------------------------------------------------------------------
- ;vore
- ;“Š‚°
- [State -1, vore]
- type = ChangeState
- value = 890
- triggerall = command = "c"
- triggerall = statetype = S
- trigger1 = statetype != A
- trigger1 = stateno = 0 || stateno = 20
- trigger2 = stateno = 210 && movecontact
- trigger3 = time > 5 ; Ensure enough time has passed before changing state
- ; Toggle Logic for Inescapable Hold Move
- [State -2, Init Toggle]
- type = VarSet
- trigger1 = roundno = 1 ; Reset at the start of each round
- var(10) = 1 ; 0 = escapable, 1 = inescapable
- [State 890, Hold Move]
- type = TargetState
- triggerall = var(10) = 1 ; Check if inescapable mode is ON
- trigger1 = numtarget ; Ensure a target is grabbed
- value = 890 ; Keep the opponent in the hold state
- [State 890, Escape Logic]
- type = TargetState
- triggerall = var(10) = 0 ; Check if escapable mode is ON
- trigger1 = numtarget
- trigger1 = target,command = "up" || target,command = "back" ; Escape input
- value = 0 ; Return opponent to neutral state
- ; Display Toggle State (optional)
- [State -2, Display Toggle State]
- type = Helper
- trigger1 = 1
- helpertype = normal
- state = 9999
- name = "ToggleDisplay"
- id = 9999
- pos = 0, -100 ; Position above Sash
- [State 9999, Display Message]
- type = Explod
- trigger1 = var(10) = 1
- anim = 1001 ; Animation for "INESCAPABLE" message
- pos = 0, -100
- bindtime = -1
- [State 890, Hold Move]
- type = TargetState
- triggerall = var(10) = 1 ; Check if inescapable mode is ON
- trigger1 = numtarget ; Ensure a target is grabbed
- value = 890 ; Keep the opponent in the hold state
- [State 890, Escape Logic]
- type = TargetState
- triggerall = var(10) = 0 ; Only allow escape if toggle is OFF
- trigger1 = numtarget ; Ensure a target is grabbed
- trigger1 = target,state = 40 || target,state = 50 ; Check if opponent is jumping or moving
- value = 0 ; Release the opponent ; Return opponent to neutral state
- [State 890, Hold Move]
- type = TargetState
- triggerall = var(10) = 1 ; Check if inescapable mode is ON
- trigger1 = numtarget ; Ensure a target is grabbed
- trigger2 = time < 60 ; Hold for 60 ticks (adjust as needed)
- value = 890 ; Keep the opponent in the hold state
- [Statedef 5000]
- type = S
- movetype = H
- physics = N
- anim = 5000 ; Use an animation that represents them being trapped
- ctrl = 0 ; Disable their control
- [State 890, Trap Opponent in Belly]
- type = TargetState
- trigger1 = numtarget ; Ensure a target is grabbed
- value = 5001 ; Send the opponent to the belly state
- [State 5000, Prevent Escape]
- type = HitOverride
- trigger1 = 1
- attr = SCA, NA, SA, HA ; Override all normal and special attacks
- stateno = 5000 ; Keep them in the trapped state
- time = -1 ; Make it last indefinitely
- [Statedef 5001]
- type = S
- movetype = H
- physics = N
- anim = 5001 ; Use an animation that represents them being trapped in the belly
- ctrl = 0 ; Disable their control
- [State 5001, Prevent Escape]
- type = HitOverride
- trigger1 = 1
- attr = SCA, NA, SA, HA ; Override all normal and special attacks
- stateno = 5001 ; Keep them in the belly state
- time = -1 ; Make it last indefinitely
- [State 5001, Belly Animation]
- type = Explod
- trigger1 = 1
- anim = 6001 ; Belly animation
- pos = 0, 0
- bindtime = -1
- [State -2, Start Digestion]
- type = VarSet
- trigger1 = command = "start_digestion" ; Input to start digestion
- var(11) = 1 ; 1 = digestion active
- [Statedef 5002]
- type = S
- movetype = H
- physics = N
- anim = 5002 ; Use an animation for digestion
- ctrl = 0 ; Disable their control
- [State 5002, Damage Over Time]
- type = LifeAdd
- trigger1 = time % 30 = 0 ; Apply damage every 30 ticks
- value = -10 ; Adjust damage as needed
- [State 5002, Release Opponent]
- type = SelfState
- trigger1 = life <= 0 ; Release when health is 0
- value = 0 ; Return to neutral state
- [Command]
- name = "start_digestion"
- command = x ; Replace with your desired input (e.g., A + B)
- time = 1
- [State -2, Start Digestion]
- type = VarSet
- trigger1 = command = "start_digestion" ; Matches the name in the .cmd file
- var(11) = 1 ; 1 = digestion active
Advertisement
Add Comment
Please, Sign In to add comment