ULTIMATE Crossover FIGHTING Game Club
Where All Fighting Game Ideas Come To Life
 


Main | FAQs | FREE Ultimate MUGEN Games Guide | Classic Battles
Ultimate Crossover Tournament
Site menu
Which Universe Will Win?
IF... all Dimensions / Universes Possess The Same Level Of Power (see story and trailer at home page) and that Power was distributed amongst its Fighters WHO WILL WIN? (i.e. in this scenario the power rating of the most powerful beings in every universe are about the same... Superman's overall powers will be comparable to Hulk, Shao Kahn, Shin Gouki, etc... get it?  It will all depend on skill, strategy, and the fighters' unique abilitites)
Select The Best Universe Below:
Total of answers: 1532
Statistics

Total online: 1
Guests: 1
Users: 0
Login form
-->


The Chars Folder - The CMD File 





Note: Open .cmd files with Notepad 

The .cmd file defines the commands (user and AI) that corresponds to the characters moves and states. If you can't figure out all the moves to your favorite character, just take a peek here.  Below we'll discuss different ways you can edit the cmd file to make your character easier to control, balance out the game, and make it more challenging.  In these examples, we will use the character Guile to show you how everything is done.


Example 1:  Editing how a move is executed: 
Just look for the part of the file that looks like the example below and edit it.

 
;-| Special Motions |------------------------------------------------------ 
; Sonic Boom 
[Command] 
name = "sboom_x" 
command = ~30$B, F, x 
time = 20 
[Command] 
name = "sboom_y" 
command = ~30$B, F, y 
[Command] 
name = "sboom_z" 
command = ~30$B, F, z 
[Command] 
name = "sboom_s" 
command = ~30$B, F, s
 

; Sonic Boom (EDITED: No-Charge Required!) 
[Command] 
name = "sboom_x" 
command = ~D, DF, F, x 
time = 20 
[Command] 
name = "sboom_y" 
command = ~D, DF, F, y 
[Command] 
name = "sboom_z" 
command = ~B, D, DF, F, z



Example 2:  Control how often a move can be executed
Another aspect of the cmd file you can edit is how often a move can be executed.  This can be done by defining the power level that needs to be met before a supermove can be done.  What you're looking for here is this command script:

triggerall = power >= 1000 

You will usually see this line with a supermove. This line basically says "allow this move if the power meter is at least 1000." A character usually have 3 power levels which is equivalent to power = 3000 (1 level = 1000). So if you see this line it means the power level of your character needs to be at least 1000 to be able to perform that particular supermove. You can edit this along with how much a supermove depletes the character's power meter as a way to balance your character with the rest of the cast. 

So if let's say a supermove does huge damage and has a high priority or in some cases has a long invincibility time frame, it's a good idea to put the power level to 3000 or above.



AI Stuff
To make the game more challenging and fun to watch, you can edit how aggressive or difficult a character is when being controlled by the computer.  For this, we will be looking at a few things:

- The variable that defines character is being controlled by AI
- How often an AI-controlled character does a particular move

The AI Variable
Depending on who the author is, the variable that declares if the character is being controlled by the AI can be determined by if there is a "random" function that's included within the "script sequence."  The fastest way to do this is do ctrl+f and search for the word random.  Check out the example below:


; Sonic Boom Typhoon
[State -1, Sonic Boom Typhoon]
type = ChangeState
value = 3200
triggerall = var(9)
triggerall = random <= 150
triggerall = power >= 1000
triggerall = P2bodydist x <= 130
;trigger1 = command = "sonic_typhoon"
trigger1 = StateType = S
trigger1 = ctrl


In this example we found a "random" function.  The next step is to look at the "var()" function.  This can be anything... var(59), var(20), etc.  In this case it's var(9).  So for this cmd file, any time you see a var(9), you know it's referring to the character being controlled by the AI.

Also notice this line:

;trigger1 = command = "sonic_typhoon"

See the ";" before the word trigger1.  Anytime you see a ";" that means anything that follows it is not included in the command.  The ";" is typically used if the author wanted to place comments on the script.  To further illustrate this point, we'll show you how to convert the command sequence when being controlled by a human player:


; Sonic Boom Typhoon
[State -1, Sonic Boom Typhoon]
type = ChangeState
value = 3200
triggerall = !var(9)
:triggerall = random <= 150
triggerall = power >= 1000
;triggerall = P2bodydist x <= 130
trigger1 = command = "sonic_typhoon"
trigger1 = StateType = S
trigger1 = ctrl

Notice how in this sequence, the var(9) has a "!" before it which in programming language means "not."  Sometimes you can also see this sequence as

triggerall = var(9)<1; meaning human controlled vs
triggerall = var(9)>=1; meaning CPU controlled

Another thing to notice in the sequence is that we removed the ";" before the "trigger1 = command = "sonic_typhoon" which means it's now an active line in the command sequence.


The Random Function
Now let's look at the "random" function.  In sample script above you'll see:

triggerall = random <= 150

What this means is that a character will do the move 150 out of 999 times.  Mugen has a random number generator so the script above is saying that the machine will pick out a random number from 1 to 999, if it's anywhere between 150 or below, it will execute the move.  Now if the script looked like this:

triggerall = random >= 150

This means that the move will be executed if the random number generator is anywhere between 150 to 999.  Obviously, the move will happen a lot more frequently with the second option.


The P2BodyDist x Function
This is basically a conditional statement that says if the opponent is within so many units from your character, your character will perform a certain move.  In the sample script above let's take a look at:

triggerall = P2bodydist x <= 130

So in this case, if the opponent is within 130 units of distance from your character it will perform the special/supermove that's defined.  From our experience these are the distances and what they mean:

P2BodyDist x <= 10 to 15    (regular throwing distance)
P2BodyDist x <= 20 to 40    (sweeping distance - really depends on character)
P2BodyDist x <= 50 to 80    (dash type attack distance)
P2BodyDist x >= 50 && P2BodyDist x<= 130     (projectile distance - you don't want to throw a projectile when you're opponent is really close or really far away)

Notice the "&&" part of the script.  This basically means both conditions have to be met before the move will be executed.


Experiment with the distances for your particular character.



The P2Name Function
This is another conditional statement that basically says if your opponent's name is this, then do this.  Let's insert this function in our sample script above and see what it can do.

; Sonic Boom Typhoon
[State -1, Sonic Boom Typhoon]
type = ChangeState
value = 3200
triggerall = var(9)
triggerall = random <= 450 && P2Name = "Jax"
triggerall = power >= 1000
triggerall = P2bodydist x <= 130
;trigger1 = command = "sonic_typhoon"
trigger1 = StateType = S
trigger1 = ctrl

See the highlighted line.  The condition is if the random generator is 450 or below AND the opponent's name is Jax, then Guile will do this move.  This is where you can make your character behave a little bit differently against certain characters.  So here, Guile is instructed to use the supermove more often against Jax than against any other fighter.



Helpful Hint
What if there are no comments which special move / super move / basic move is being defined from the script or worse the comments are in a foreign language.  How do I find out figure this out?

This is actually pretty simple to figure out.  In the .cmd file, do this:

Right Click
Edit (use notepad)
Go through the command file and look for how the commands need to be done so they can be executed:

Sample:

[Command]
name = "sonic_typhoon"
command = ~D,B,x+z
time = 35
[Command]
name = "sonic_typhoon"
command = ~D,B,y+z
time = 35
[Command]
name = "sonic_typhoon"
command = ~D,B,x+y
time = 35 


So for this example we want to edit Guile's supermove: "sonic typhoon"

Highlight and copy "sonic typhoon"
Do ctrl+f and paste
Enter
Continue entering until you see a set of scripts that look like this:


; Sonic Boom Typhoon
[State -1, Sonic Boom Typhoon]
type = ChangeState
value = 3200
triggerall = !var(9)
triggerall = power >= 1000
trigger1 = command = "sonic_typhoon"
trigger1 = StateType = S
trigger1 = ctrl

The highlighted line (value) is very important.  This basically is the programming name of the move you're interested in.  If you need to change the attributes of this move in the CNS file, go to the CNS file and search for "3200."  You will then find the scripts associated with the move your looking for.  By doing the search in the CMD file, you can also find all CMD scripts associated with this move and edit it.

What if instead of having comments like "Sonic Boom Typhoon" the author wrote something that is not readable/understandable?  How do I even figure out where to start?
All you have to do in this case is try executing the move itself and once you see what the character is doing, you can change the name so you know what it does.  Remember, anything that goes after the ";" is just a comment and won't do anything to "break" the file. 










Site friends
Download Free



 









Copyright MyCorp © 2024 Make a free website with uCoz