0% found this document useful (0 votes)
12 views5 pages

About Screenpacks

The document provides detailed instructions on modifying screenpacks for a game, focusing on screen resolution, basic calculations, and preset screens like the continue screen and battle plan. It outlines how to adjust various parameters for character displays, damage counters, and system features such as the power bar and aggressor bar. Additionally, it includes specific coding examples for implementing changes in the game's common files and states.

Uploaded by

dylanyelgordo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views5 pages

About Screenpacks

The document provides detailed instructions on modifying screenpacks for a game, focusing on screen resolution, basic calculations, and preset screens like the continue screen and battle plan. It outlines how to adjust various parameters for character displays, damage counters, and system features such as the power bar and aggressor bar. Additionally, it includes specific coding examples for implementing changes in the game's common files and states.

Uploaded by

dylanyelgordo
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 5

1. Screenpack/game properties and common files.

To make the same screenpack working with any resolution, and to make it easier to
edit, a group of parameters is used. Just modifying them will solve most of the
game's problems while editing screenpacks.

1.1. Screen resolution.

The game resolution (currently 400x254) you have to write in each of your
characters and stages is actually featured on top of the common file. Var(22) and
Var(23) stand for game height and game width respectively, and MUST match your
current game resolution (not screen resolution though). They are used is such
system features as win screen (text position), battle plan (image scaling and
positions) and other screens.

1.2. Basic calculations.

Since the basic screenpack has the resolution of 400x254, most of the measurements
are presented like this:

XX*0.0025*var(22), where 0.0025 is 1/400 obviously.

which means XX pixels for any screenpack. This will give you the same value, not
depending on the screen resolution. For example, this can be used for numbers with
a solid frame step.
If you want to set your values relative to the screen, you only need relative
numbers with no extra values. For example, 0.5*var(22) (used in win screen and
other meassages a lot) means the center of the screen. whatever your screen width
is, this will always bring your image to the center. Same rules apply to Height,
just use var(23) for it.
So, that being said:

pos = var(22)/2, var(23)/2


postype = left

means the very center of the screen.


Same goes for scale parameter, which is usually presented as "scale =
0.0025*var(22),0.0025*var(22)". This means the image will stretch automatically to
fit your new screen width.

2. Preset screens.

2.1. Continue screen.

Continue screen is located in Data/MKP/Common1.cns file and goes by the statedef


number 5500. You can change the screen look there, only the messages (Font,
positions) must be changed in System.def under [Continue screen] label.

2.2. Battle plan, system messages.

The battle plan is located in Data/MKP/Fatality.st file as [Statedef 18000]


It consists of several parts, which are:
18000 - goes for any regular battle. Contains information on player's icon, its
moving speed, as well as previously beaten enemies (their icons too).
18001 - goes for first battle only, where a special backround (coloumn) should be
displayed. Also contains the ladder scrolling part.
18002 - used by enemies while player is in the 18000 state, contains the
information on their icon. Also contains informations about the next opponents (if
they are Shang Tsung, Shao Kahn or other bosses).
18003 - used by enemy in the first battle while player is in the 18001 state.
18004 - state used to reset/drop the battle plan and switch both players to battle
itself. All the previously mentioned states end up going into this state.

Important thing #1: To display you character's portrait while going through the
battle plan, he must have an animation 9100 (his face/icon) in his AIR file.
Otherwise a question mark will be displayed.
Important thing #2: Only the characters listed in Common1.cns file under the "for
battle plan" line can be displayed as previously beaten opponents. Even if they
have their own icon added to their files, they won't display unless you do the
following:
- add your character to the list, as follows under the latest character:

[state 0, a]
type = varset
triggerall = roundstate = 2 && roundno > 1
triggerall = fvar(7) = 0
trigger1 = p2name = "xxxx"
fvar(7) = YY

where xxxx is your character's name and YY is any chosen value (values above 200
are recommended to use for custom/extra characters).

Then add your character's icon to both Fightfx.sff (as sprite) and Fightfx.air (as
animation), so that the resulting animation number is 9200+YY. For example, if you
set the value to 201, the animation number for your character's icon must be 9401.

2.3. VS screen.

The important thing about the VS screen is that it's not adjusting to your screen
width automatically, aside from the backround part. So you will have to edit the
character VS pose offsets and speeds manually. Things to change are the "pos",
"vel" and "accel" parameters for ModifyExplod controllers labeled "align", "stop",
"shadow align", "shadow stop". You can also change the time if you want. See
example below:

[State 0, align]
type = modifyExplod
trigger1 = time = 0
ID = 900
pos = ifelse(teamside = 1,-X1-X0,var(22)+X1+X0-1),var(23)+(var(11)-
Y)*0.0025*var(22)
postype = left
vel = V1*ifelse(teamside = 1,1,-1),0
accel = A1*ifelse(teamside = 1,-1,1),0
bindtime = 1
scale = 0.002*(1-0.01*var(12))*var(22),0.002*(1-0.01*var(12))*var(22)

[State 0, stop]
type = modifyExplod
trigger1 = time = T
ID = 900
pos = ifelse(teamside = 1,-X0,var(22)+X0-1),var(23)+(var(11)-Y)*0.0025*var(22)
postype = left
vel = V0*ifelse(teamside = 1,1,-1),0
accel = A0*ifelse(teamside = 1,-1,1),0
bindtime = -1
scale = 0.002*(1-0.01*var(12))*var(22),0.002*(1-0.01*var(12))*var(22)
where X0 is the horisontal offset for your VS pic when it's out,
X1 is the distance it has to travel before appearing
Y is the vertical offset
V1 and A1 are moving speed and slowdown rate for its appearance.
V0 and A0 are the same that are applied to your VS pose after it's fully out
(emulates slight movement, can be 0 for both).
T is the time after which your VS must move out fully.

So basically, after choosing your ofsset, appearance time and moving speed (X0, T,
V1, A1), you can calculate X1.
X1 = T*V1-((A1*T)^2)/2.

Or just pick it randomly until it looks fine to you.

Other things about VS screen were described before and can be copied from the main
roster characters.

2.4. Move list.

The statedef for Move List is located in Data/MKP/Fatality.st under the number
19000.
To use move list in battle, your character must have the animation 9900 (and
further for more pages). So far it only supports up to 4 pages.

2.5. Custom screen blankers.

If you want to make the screen blank for your own purposes, please note the
following:

[State 0, temp]
type = assertspecial
trigger1 = time < TT
flag = nobardisplay

- use it if you want to disable the life/powerbars. However that alone won't be
enough.

[State 0, 1]
type = Explod
trigger1 = time = 0
ID = 11011
anim = 888
removetime = TT

- HAS to be used for BOTH characters to remove the system data such as difficulty
levels and breakers
TT there is the time to keep that information absent.

2.6. Damage percentage.

The states that stand for damage counters are 17000 and 17001, they can be found in
data/MKP/Fatality.st.
Once there, a list of used variables can be found. By changing their "value" you
can edit or alter your custom damage counter.
Although described in the state itself, here is a list of used variables:

10 - "appear time". Time after which the text line is fully visible (stops its
moving). Measured in ticks.
11 - "disappear time". Time period during which the counter messages are
disappearing from the screen.
12 - "time till percents". Time to start displaying the second text line (damage
percentage).
13 - "time till remove". Time to start removing all text from the screen (disappear
time activates from this point).
14 - "letter width". Your font symbol width in pixels, determines the gap between
displayed digits.
15 - "x scale". Scaling parameter (in percents), can be useful if you have HD font
for counters.
16 - "y scale". Same as above.
17 - "maximum damage". Determines the damage (in percents), exceeding which the
attacker is punished and his combo may be broken.
20 - "p1 x position for hits". Offset (from the left) for the left player's combo
hit counter.
21 - "p2 x position for hits". Same (still from the left) for the right player.
Determines the first digit's position.
22 - "p1 x position for percent". Same for left player's damage counter (usually
repeats).
23 - "p2 x position for percent". Same for right player's damage counter.
24 - "y position for hits". Offset from the top of the screen for the first text
line (hits).
25 - "y position for percent". Same for the second line (damage percents).

3. Modifying Powerbar, run bar, aggressor bar etc.

In the latest version of MKP the powerbar is used for aggressor, while the run bar
is made with explod. The breaker counter uses an explod too.

3.1. Resetting the system.

At the beginning of the Common1.cns file (right after screen width and height
variables) you may find the following:

[State 0, aggressor]
type = varset
trigger1 = 1
v = 24
value = 1

The "value" here simply states, if the aggressor is enabled or disabled in your
game. Set to 0 to disable.
You may still see the Aggressor logo in practice mode, but it won't work in any.
Use other values (2 and above) if you plan to use the meter for some other
purposes.

[State 0, BREAKERs]
type = varset
trigger1 = roundstate < 2 && roundsexisted = 0
fv = 10
value = 3+(numpartner > 0); set to 0 to disable breakers

Same for Breaker. As said there, set the value to 0 if you want no breakers in your
game.
Please note that once you turn these features off, the Kombat Kodes involving them
will not work.

3.2. Run bar.


The run bar is displayed as a linear image above the main lifebar, and it scales
depending on how much run value (var(47)) your character has. That means only
straight lines are acceptable as images for run bar.

It can be found in common1.cns file and looks like this:

[State 0, custom powerbar]


type = Explod
trigger1 = var(47) > 0
trigger1 = fvar(5) != 119
trigger1 = numexplod(11004) = 0
trigger1 = numexplod(11011) + enemy(0),numexplod(11011) + enemy(1),numexplod(11011)
+ partner,numexplod(11011) = 0
triggerall = stateno != [18000,19999]
anim = f55
pos = ifelse(teamside = 1, 21, 377), 39-27*(numpartner > 0 && ID > partner,ID)
facing = ifelse(teamside = 1, 1, -1)
postype = left
scale = 0.00208333*var(47),1
ID = 11004
ontop = 1
removetime = -1
ownpal = 1

[State 0, powerbar]
type = modifyExplod
trigger1 = numexplod(11004) > 0
ID = 11004
scale = 0.00208333*var(47),1
ignorehitpause = 1

Notes:
- As seen, the animation number for the run gauge is 55 in Fightfx.air.
- For proper scaling, the image used for the run bar must be centered at 0,0 in
Fightfx.sff.
- the x positions for both team sides can usually be taken from Fight.def
- 0.00208333 is 1/480, so with the max run value of 480 it means, that your image
must cover the whole run bar when fully charged. If it's bigger or smaller, you'll
have to add another multiplier to the equation.

3.3. Aggressor bar.

You can find controllers for Agressor Bar right below the run bar. You can notice
that the positions for the explods are the same as in Fight.def:

"anim = f58" in fightfx displays the same sprite as "p1.front.spr = 120,0" in


fight.sff

"pos = ifelse(teamside = 1, 21, 273), 237" repeats after


"p1.front.offset = 0,237" + "p1.pos = 21,0" and "p2.front.offset = -102,237" +
"p2.pos = 377,0"

parameters like "scale" are identical as well.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy