http://network.mugenguild.com/justnopoint/stuff/kfm.rar
New Update
First of all:
He can't attack at all while running. The triggers in his cmd for his non-aerial attacks should be ctrl || stateno = 100.
Added as a new trigger line for all standing and crouching basics.
trigger3 = stateno = 100 ; can be done while dashing
The code below fullfills the need of having control when landing from a gethit state, And it does much more. It also reproduces the concept of Trip Guard successfully.
[state 52, Control]
type = ctrlset
trigger1 = !time
trigger1 = !(prevstateno = [600, 699])
trigger2 = time = 2 ; 2 for SNK-style, 1 for Capcom-style. Both are good options.
value = 1
[State 52, Guard]
type = changestate
trigger1 = ctrl && command = "holdback"
trigger1 = inguarddist && (prevstateno != [600, 699])
value = 120
Added. Should I put a note to remove the Guard changestate if making a KOF character?
In addition, in my opinion, stateno 40 should be invulnerable to throws. This is how commercial games tend to do.
[state 40, Vulnerability]
type = hitby
trigger1 = 1
value = SCA, NA, SA, HA, NP, SP, HP
Added
In addition again, make sure to fix a few syntax issues found in his code.
Fixed all but the .act one. I added 6 pals from KFM but it didn't fix the issue. Do they need to be a certain name too?
Question 2
;volumescale offset (negative for softer)
volume = 0
was changed to
;volumescale offset (negative for softer)
volumescale = 0
This works well here to replace volume correct? As a constant I mean. I figure yes but wanted to be sure since volume is deprecated and hey, it even says volumescale in the note!
I have serious objection about how his chain combos are handled. You know, the impossibility of cancelling crouching basics into standing basics and vice-versa, like every other fighting game with chain combos (via replacing the triggers statetype = S and statetype = C in his cmd with statetype != A. All advanced coders will agree with me.).
Fixed in all standing and crouching basics.
Mugen has a hard coded bit of behaviour if liedown time remaining is less than 10, you become completely invulnerable. I would leave it at 60, cos that doesnt' really matter, and override that state to make you get up quicker. Otherwise you make your character unhittable while down which is very very rarely intended behaviour.
You can't bypass that short of making your own lie down state, and since there is one there already, overriding it to behave differently is a better idea.
So about this quote. I noticed I didn't actually see the lie down animation in the common1 and Cyanide says it's hard coded.
So to clarify this means I need to build a totally new lie down state, yes?
Also should anything be reworded or clarified for the notes at the top of the CMD file?
Spoiler, click to toggle visibilty
; 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