; The CMD file. ; ; Two parts: 1. Command definition and 2. State entry ; (state entry is after the commands def section) ; ; 1. Command definition ; --------------------- ; Note: The commands are CASE-SENSITIVE, and so are the command names. ; The eight directions are: ; B, DB, D, DF, F, UF, U, UB (all CAPS) ; corresponding to back, down-back, down, downforward, etc. ; The six buttons are: ; a, b, c, x, y, z (all lower case) ; In default key config, abc are are the bottom, and xyz are on the ; top row. For 2 button characters, we recommend you use a and b. ; For 6 button characters, use abc for kicks and xyz for punches. ; ; Each [Command] section defines a command that you can use for ; state entry, as well as in the CNS file. ; The command section should look like: ; ; [Command] ; name = some_name ; command = the_command ; time = time (optional -- defaults to 15 if omitted) ; ; - some_name ; A name to give that command. You'll use this name to refer to ; that command in the state entry, as well as the CNS. It is case- ; sensitive (QCB_a is NOT the same as Qcb_a or QCB_A). ; ; - command ; list of buttons or directions, separated by commas. ; Directions and buttons can be preceded by special characters: ; slash (/) - means the key must be held down ; egs. command = /D ;hold the down direction ; command = /F, a ;hold fwd 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 ; command = ~30 ; dollar ($) - Direction-only: detect as 4-way ; egs. command = $D ;will detect if D, DB or DF is held ; command = $B ;will detect if B, DB or UB is held ; plus (+) - Buttons only: simultaneous press ; egs. command = a+b ;press a and b at the same time ; command = x+y+z ;press x, y and z at the same time ; You can combine them: ; eg. command = ~30$D, a+b ;hold D, DB or DF for 30 ticks, release, ; ;then press a and b together ; It's recommended that for most "motion" commads, eg. quarter-circle-fwd, ; you start off with a "release direction". This matches the way most ; popular fighting games implement their engine. ; ; - time (optional) ; Time allowed to do the command, given in game-ticks. Defaults to 15 ; if omitted ;-| 2/3 Button Combination |----------------------------------------------- [Command] name = "recovery" ;Required (do not remove) command = a+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 ;-| Hold Dir |-------------------------------------------------------------- [Command] name = "holdfwd" ;Required (do not remove) command = /$F time = 1 [Command] name = "holdback" ;Required (do not remove) command = /$B time = 1 [Command] name = "holdup" ;Required (do not remove) command = /$U time = 1 [Command] name = "holddown" ;Required (do not remove) command = /$D time = 1 [Command] name = "holda" command = /a time = 1 [Command] name = "holdb" command = /b time = 1 [Command] name = "releasec" command = ~c time = 1 ;-| Special |-------------------------------------------------------------- [Command] name = "back" command = B 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] ;Don't change this ; 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" ; ; 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] ;=========================================================================== ;--------------------------------------------------------------------------- ;B Button - Shoot [State -1] type = ChangeState value = 200 triggerall = command = "a" triggerall = numhelper + numproj < 3 trigger1 = stateno = 0 trigger1 = ctrl = 1 trigger2 = stateno = 200 trigger2 = time >= 3 ;--------------------------------------------------------------------------- ;C Button - Recover [State -1] type = ChangeState value = 500 triggerall = command = "c" trigger1 = stateno = 0 trigger1 = ctrl = 1 ;--------------------------------------------------------------------------- ;Stop Recover [State -1] type = ChangeState value = 501 triggerall = command = "releasec" trigger1 = stateno = 500 trigger1 = ctrl = 0 ;--------------------------------------------------------------------------- ;Teleport [State -1] type = ChangeState value = 600 triggerall = movecontact trigger1 = ctrl = 1 trigger2 = Pos x < 100 trigger3 = Pos x >= 100 ;--------------------------------------------------------------------------- ;A Button - Jump [State -1] type = ChangeState value = 210 triggerall = command = "b" trigger1 = stateno = 0 trigger1 = ctrl = 1 trigger2 = stateno = 20 trigger3 = stateno = 200 ;--------------------------------------------------------------------------- ;B Button - Shoot while walking [State -1] type = ChangeState value = 220 triggerall = numhelper + numproj < 3 triggerall = command = "a" trigger1 = stateno = 20 trigger1 = anim != 21 trigger2 = stateno = 200 trigger2 = time >= 3 trigger3 = stateno = 220 trigger3 = time >= 3 ;--------------------------------------------------------------------------- ;B Button - Shoot while jumping [State -1] type = ChangeState value = 212 triggerall = numhelper + numproj < 3 triggerall = command = "a" trigger1 = anim = 41 trigger2 = anim = 241