YesNoOk
avatar

How do you change a Mugen Power Bar to display 4 lines, not the default 3? (Read 36838 times)

Started by JasonThePhoenix, December 31, 2023, 06:24:04 pm
Share this topic:
How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#1  December 31, 2023, 06:24:04 pm
  • **
    • UK
My character has 4000 power and can only spend 25% or 50% of it at a time. How do I update the Mugen Power Bar graphics to reflect that and have four segments instead of separating the bar into three parts?
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#2  December 31, 2023, 06:51:18 pm
  • *****
  • Resident Tosspot
  • Pftheh
    • UK
    • plasmoidthunder.neocities.org

  • Online
You physically change the respective lifebar sprite.

Oh, I want a diagram. I fucking love diagrams.
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#3  December 31, 2023, 11:45:48 pm
  • **
    • UK
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#4  January 01, 2024, 12:55:48 am
  • *****
  • Resident Tosspot
  • Pftheh
    • UK
    • plasmoidthunder.neocities.org

  • Online
Open mugen1/fight.def in Fighter Factory. Since the bar is animated, you'll have to edit several sprites.

Oh, I want a diagram. I fucking love diagrams.
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#5  January 02, 2024, 05:43:52 am
  • **
    • UK
Open mugen1/fight.def in Fighter Factory. Since the bar is animated, you'll have to edit several sprites.

This stuff?

; Definition of fight screen

; *** DO NOT MODIFY OR OVERWRITE THIS FILE ***
; To customize, make a copy of this file in a subdirectory of your
; motif's name. See readme.txt for details on motifs.

; Notes about fonts:
;   - up to 10 fonts can be specified in the [Files] section.
;   - fonts indexed here do not refer to the ones in system.def
;   - fonts are search in directories in the following order:
;     1. system directory
;     2. mugen program directory (not recommended to keep custom fonts here)
;     3. data/ (not recommended to keep custom fonts here)
;     4. font/
;
; See the section "How to Customize" at the end of
; this file.

;-----------------------------------------------------------
;Directories are checked in this order:
;1. current directory fight.def is in
;2. data/
;3. your MUGEN directory

[Files]
sff = fight.sff
snd = fight.snd
font1 = jg.fnt
font2 = num1.fnt
font3 = name1.fnt
fightfx.sff = fightfx.sff
fightfx.air = fightfx.air
common.snd = common.snd

;-----------------------------------------------------------
[FightFx]
scale = 1

;-----------------------------------------------------------
[Lifebar]
;Player 1
p1.pos    = 140,12
p1.bg0.anim = 10
p1.bg1.spr = 11,0
p1.mid.spr = 12,0
p1.front.spr = 13,0
p1.range.x  = 0,-127
;Player 2
p2.pos    = 178,12
p2.bg0.anim = 10
p2.bg0.facing = -1
p2.bg1.spr = 11,0
p2.bg1.facing = -1
p2.mid.spr = 12,0
p2.mid.facing = -1
p2.front.spr = 13,0
p2.front.facing = -1
p2.range.x = 0,127

[Begin Action 10] ;Darkened lifebar background
10,0, 0,0, 1, , S

[Simul Lifebar]
;Player 1
p1.pos    = 140,12
p1.bg0.anim = 20
p1.bg1.spr = 21,0
p1.mid.offset = 0,-1
p1.mid.spr = 22,0
p1.front.offset = 0,-1
p1.front.spr = 23,0
p1.range.x  = 0,-127
;Player 2
p2.pos    = 178,12
p2.bg0.anim = 20
p2.bg0.facing = -1
p2.bg1.spr = 21,0
p2.bg1.facing = -1
p2.mid.offset = 0,-1
p2.mid.spr = 22,0
p2.mid.facing = -1
p2.front.offset = 0,-1
p2.front.spr = 23,0
p2.front.facing = -1
p2.range.x = 0,127
;Player 3
p3.pos    = 140,15
p3.mid.spr = 22,0
p3.front.spr = 23,0
p3.range.x  = 0,-127
;Player 4
p4.pos    = 178,15
p4.mid.spr = 22,0
p4.mid.facing = -1
p4.front.spr = 23,0
p4.front.facing = -1
p4.range.x = 0,127

[Begin Action 20] ;Darkened lifebar background (team)
20,0, 0,0, 1, , S

[Turns Lifebar]
;Player 1
p1.pos    = 140,12
p1.bg0.anim = 10
p1.bg1.spr = 11,0
p1.mid.spr = 12,0
p1.front.spr = 13,0
p1.range.x  = 0,-127
;Player 2
p2.pos    = 178,12
p2.bg0.anim = 10
p2.bg0.facing = -1
p2.bg1.spr = 11,0
p2.bg1.facing = -1
p2.mid.spr = 12,0
p2.mid.facing = -1
p2.front.spr = 13,0
p2.front.facing = -1
p2.range.x = 0,127

;-----------------------------------------------------------
[Powerbar]
;Player 1
p1.pos    = 140,22
p1.bg0.anim = 40
p1.bg1.spr = 41,0
;p1.mid.spr = 42,0
p1.front.spr = 43,0
p1.range.x = 0,-107
p1.counter.offset = -108,6
p1.counter.font = 1,0, 0

;Player 2
p2.pos    = 178,22
p2.bg0.anim = 40
p2.bg0.facing = -1
p2.bg1.spr = 41,0
p2.bg1.facing = -1
;p2.mid.spr = 42,0
;p2.mid.facing = -1
p2.front.spr = 43,0
p2.front.facing = -1
p2.range.x  = 0,107
p2.counter.offset = 109,6
p2.counter.font = 1,0, 0

; --level sounds---
level1.snd = 21,0
level2.snd = 21,0
level3.snd = 21,0

[Begin Action 40] ;Darkened powerbar background
40,0, 0,0, 1, , S


;-----------------------------------------------------------
[Face]
;Player 1
p1.pos    = 2,12
p1.bg.spr = 50,0
p1.face.spr = 9000,0
p1.face.facing = 1
p1.face.offset = 0,10
;Player 2
p2.pos    = 316,12
p2.bg.spr = 50,0
p2.bg.facing = -1
p2.face.spr = 9000,0
p2.face.facing = -1
p2.face.offset = 0,10

[Simul Face]
;Player 1
p1.pos    = 1,12
p1.bg.spr = 60,0
p1.face.spr = 9000,0
p1.face.scale = 0.6,0.6
p1.face.facing = 1
p1.face.offset = 0,10
;Player 2
p2.pos    = 317,12
p2.bg.spr = 60,0
p2.bg.facing = -1
p2.face.spr = 9000,0
p2.face.scale = 0.6,0.6
p2.face.facing = -1
p2.face.offset = 0,10
;Player 3
p3.pos    = 2,12
p3.face.spr = 9000,0
p3.face.scale = 0.6,0.6
p3.face.facing = 1
p3.face.offset = 11,10
;Player 4
p4.pos    = 316,12
p4.bg.facing = -1
p4.face.spr = 9000,0
p4.face.scale = 0.6,0.6
p4.face.facing = -1
p4.face.offset = -11,10

[Turns Face]
;Player 1
p1.pos    = 2,12
p1.bg.spr = 50,0
p1.face.spr = 9000,0
p1.face.facing = 1
p1.face.offset = 0,10
p1.teammate.pos = 1,49
p1.teammate.spacing = 13,0
p1.teammate.bg.spr = 70,0
p1.teammate.ko.spr = 71,0
p1.teammate.face.spr = 9000,0
p1.teammate.face.scale = 0.5,0.53
p1.teammate.face.facing = 1
p1.teammate.face.offset = 1,0
;Player 2
p2.pos    = 316,12
p2.bg.spr = 50,0
p2.bg.facing = -1
p2.face.spr = 9000,0
p2.face.facing = -1
p2.face.offset = 0,10
p2.teammate.pos = 317,49
p2.teammate.spacing = -13,0
p2.teammate.bg.spr = 70,0
p2.teammate.bg.facing = -1
p2.teammate.ko.spr = 71,0
p2.teammate.ko.facing = -1
p2.teammate.face.spr = 9000,0
p2.teammate.face.scale = 0.5,0.53
p2.teammate.face.facing = -1
p2.teammate.face.offset = -1,0

;-----------------------------------------------------------
[Name]
p1.pos = 14,10
;p1.bg. =
p1.name.font = 3,0, 1
;p2.bg. =
p2.pos = 305,10
p2.name.font = 3,0, -1

[Simul Name]
p1.pos = 14,10
p1.name.font = 3,0, 1
p2.pos = 305,10
p2.name.font = 3,0, -1
p3.pos = 138,10
p3.name.font = 3,0, -1
p4.pos = 181,10
p4.name.font = 3,0, 1

[Turns Name]
p1.pos = 14,10
;p1.bg. =
p1.name.font = 3,0, 1
;p2.bg. =
p2.pos = 305,10
p2.name.font = 3,0, -1

;-----------------------------------------------------------
[Time]
pos = 160,23
; Uncomment the following line to use a bg component
;bg.spr =
; Time count display
counter.offset = 0,0
counter.font = 2,0, 0
; Ticks for each count
framespercount = 60

;-----------------------------------------------------------
[Combo]
team1.pos = 10,80         ;Coords to show
team1.start.x = -40       ;Starting x-coords
team1.counter.font = 2,4,1
team1.counter.shake = 1   ;Set to 1 to shake count on hit
team1.text.text = Rush!   ;You can use %i to show count in the text, eg "%i Hit!"
team1.text.font = 1,0,1
team1.text.offset = 3,0   ;Offset of text
team1.displaytime = 90    ;Time to show text
team2.pos = 309,80         ;Coords to show
team2.start.x = 359       ;Starting x-coords
team2.counter.font = 2,4,-1
team2.counter.shake = 1   ;Set to 1 to shake count on hit
team2.text.text = Rush!   ;You can use %i to show count in the text, eg "%i Hit!"
team2.text.font = 1,0,-1
team2.text.offset = 3,0   ;Offset of text
team2.displaytime = 90    ;Time to show text

;-----------------------------------------------------------
[Round]
match.wins = 5              ;Rounds needed to win a match
match.maxdrawgames = 1      ;Max number of drawgames allowed (-1 for infinite) *2001.11.01 NEW*
start.waittime = 30         ;Time to wait before starting intro

; Default position for all components
pos = 0,0

; ROUND X
round.time = 0              ;Time to show round display
round.default.offset = 160, 100
; Default component to show for each round. Text can include a %i to
; the round number. Use "round.default.anim" for animation instead of
; text.
round.default.font = 1,0, 0
round.default.text = Round %i
round.default.displaytime = 60
; Sounds to play for each round (optional, specify up to round 9)
round1.snd = 0,1
round2.snd = 0,2
round3.snd = 0,3
round.sndtime = 0           ;Time to play the sounds
; Components to show for each round (optional, specify up to round 9)
; Uncomment to use
;round1.offset = 160, 100
;round1.anim =

; FIGHT
fight.time = 0              ;Time to show FIGHT component
fight.offset = 160, 110     ;Component for FIGHT display
fight.anim = 80             ;.
fight.snd = 1,0             ;Sound to play
fight.sndtime = 0           ;Time to play sound

ctrl.time = 30              ;Time players get control after "Fight"

; KO
KO.time    = 0              ;Time to show KO component
KO.offset  = 160, 70        ;Component for KO display
KO.anim    = 200            ;.
KO.snd     = 2,0            ;Sound to play for KO announcement
; Double KO
DKO.offset = 160, 70
DKO.font   = 1,5
DKO.text   = Double K.O.
DKO.displaytime = 60
DKO.snd    = 2,1
; Time Over
TO.offset  = 160, 70
TO.font    = 1,5
TO.text    = Time Over
TO.displaytime = 60
TO.snd     = 2,2
KO.sndtime = 0             ;Time to play sound for KO, DKO and TO.
slow.time  = 60            ;Time for KO slowdown (in ticks)
over.waittime = 45         ;Time to wait after KO before player control is stopped
over.hittime = 10          ;Time after KO that players can still damage each other (for double KO)
over.wintime = 45          ;Time to wait before players change to win states
over.time = 210            ;Time to wait before round ends
; Time to wait before showing win/draw message
win.time = 60
; Win text
win.offset = 160, 70
win.font = 1,0
win.text = %s Wins
win.displaytime = 540
; 2-player win text
win2.offset = 160, 70
win2.font = 1,0
win2.text = %s and %s Win
win2.displaytime = 540
; Draw text
draw.offset = 160, 70
draw.font = 1,0
draw.text = Draw Game
draw.displaytime = 540

;"Fight!" Animation
[Begin Action 80]
80,0, 0,0, 1
80,6, 0,0, 1
80,7, 0,0, 1
80,6, 0,0, 1
80,0, 0,0, 30
80,1, 0,0, 1
80,2, 0,0, 1
80,3, 0,0, 1
80,4, 0,0, 1
80,5, 0,0, 1

;"K.O." Animation
[Begin Action 200]
-1,-1, 0,0, 5
200,2, 0,0, 2, ,A1
200,1, 0,0, 2, ,A
200,2, 0,0, 2, ,A
200,2, 0,0, 18, ,A1
200,4, 0,0, 2, ,A1
200,3, 0,0, 2, ,A
200,4, 0,0, 2, ,A
200,4, 0,0, 18, ,A1
200,0, 0,0, 2, ,A1
200,5, 0,0, 2, ,A1
200,5, 0,0, 2, ,A
200,5, 0,0, 2, ,A1
200,0, 0,0, 2, ,A1
200,0, 0,0, 50
200,6, 0,0, 1, ,A1
200,7, 0,0, 1, ,A1
200,8, 0,0, 1, ,A1
200,9, 0,0, 1, ,A1
200,10, 0,0, 1, ,A1

;-----------------------------------------------------------
[WinIcon]
p1.pos = 34,43    ;33,43
p2.pos = 284,43   ;286,43
; Offset for next icon (x,y)
p1.iconoffset = 12,0 
p2.iconoffset = -12,0
; Counter text font and offset for representing wins
p1.counter.offset = 0,0
p1.counter.font = 2,1
p2.counter.offset = 0,0
p2.counter.font = 2,1
; Win by normal
p1.n.spr = 100,0
p2.n.spr = 100,0
; Win by special
p1.s.spr = 101,0
p2.s.spr = 101,0
; Win by hyper (super)
p1.h.spr = 102,0
p2.h.spr = 102,0
; Win by normal throw
p1.throw.spr = 103,0
p2.throw.spr = 103,0
; Win by cheese
p1.c.spr = 104,0
p2.c.spr = 104,0
; Win by time over
p1.t.spr = 105,0
p2.t.spr = 105,0
; Win by suicide (here's a fun one)
p1.suicide.spr = 106,0
p2.suicide.spr = 106,0
; Opponent beaten by his own teammate (another fun one)
p1.teammate.spr = 107,0
p2.teammate.spr = 107,0
; Win by perfect (overlay icon)
p1.perfect.spr = 110,0
p2.perfect.spr = 110,0
; Use icons up until this number of wins
useiconupto = 4


;-----------------------------------------------------------
; How to customize
;-----------------------------------------------------------
; First of all, set filenames under [Files].
;
; Next, you can customize each component of the fight screen.
; A component can be anything from a piece of the lifebar,
; to the text that signals a K.O.
;
; Each component starts with its name, followed by a period,
; and then the names of its elements. For example, a
; component named "bg" with an element of "anim" looks
; like "bg.anim".
;
; There are several main element types:
;   1. anim (animation)
;   2. spr  (sprite)
;   3. font (text)
;   4. snd  (sound)
;
; 1. anim
;    Format: anim = actionno
;    actionno is the number of the action to use. You must
;    specify a valid action that is defined within this file.
;    The sprites for the animation come from the file given
;    for the "sff" parameter in the [Files] group below.
;    You can define your animation actions anywhere in this
;    file, as long as it does not come in the middle of a
;    group (an example of a group is the block of text
;    starting with [Files], and ending on the next group
;    [Lifebar]).
;    For example, to use action 5 for the p1.bg0 component:
;      p1.bg0.anim = 5
;
; 2. spr
;    Format: spr = spritegrp, spriteno
;    This is the identifier pair for the sprite you to
;    display.
;    For example, to show sprite 103,0 for a component named
;    p1.throw:
;      p1.throw.spr = 103,0
;
; 3. font
;    Format: font = fontno, fontbank, alignmnt, R, G, B
;            text = text
;    This lets you set the font (and optionally the content
;    text). fontno is the number of the font defined under
;    [Files]. For instance, for the line "font2 = font/num1.fnt",
;    the fontno is 2.
;    fontbank is the color bank of the font to use. Refer to
;    the font for what color banks it has.
;    alignmt is a number representing the text alignment.
;    1 is left, 0 means center, and -1 is for right-alignment.
;    R, G, B are the color adjustment values for the font.
;    RGB values default to 256,256,256 (no color adjustment).
;    All font values are optional.  If fontno is omitted, no
;    text will be drawn.
;
;    The "text" element should accompany the "font" element
;    wherever necessary. The following example will display
;    "FIGHT!" using font 1, bank 1, with center-alignment.
;      fight.font = 1,1, 0
;      fight.text = FIGHT!
;
; 4. snd
;    Format: snd = sndgrp, sndno
;    This is the identifier pair for the sound effect to
;    play. The .snd file that the sound is played from
;    is given in the "snd" parameter in the [Files] group.
;    This plays sound 21,0 for the "level1" component.
;      level1.snd = 21,0
;
; Take note that the anim, spr and font element types are
; mutually exclusive; you can only use one of them per
; component.
;
; The types of elements supported vary with the component.
; Usually the anim, spr and font elements are interchangeable
; for a component. However, in some cases only one element
; type may be used. An example of this is found under [Combo]:
;   counter.font = 2,4  ;Font for combo counter
; You cannot use an animation or a sprite to represent a
; numeric counter, so it only makes sense to define a font
; for use.
;
; There are other element types that do nothing on their
; own. They can be used with display element types
; (spr, anim and font) to gain more control. These
; have no meaning when used with the snd element.
;   5.  offset
;   6.  displaytime
;   7.  facing
;   8.  vfacing
;   9.  layerno
;   10. scale
;
; 5. offset
;   Format: offset = x, y
;   Displaces the display element horizontally by x pixels,
;   and vertically by y pixels.
;   If this element is omitted, the offset is assumed to
;   be 0,0.
;
; 6. displaytime
;   Format: displaytime = time_in_ticks
;   This element defines the time to display the component.
;   If omitted, the default display time varies with element
;   type. For spr and font elements, the default displaytime
;   is 1. For anim, it is the looptime of the animation.
;   This example displays the text "FIGHT!" for 45 game
;   ticks:
;     fight.font = 1,1, 0
;     fight.text = FIGHT!
;     fight.displaytime = 45
;
; 7. facing
;   Format: facing = dir
;   Sets the horizontal flipping of the display element.
;   1 means no flipping, and -1 means flip horizontally.
;   Does not affect "font" elements. Defaults to 1 if
;   omitted.
;
; 8. vfacing
;   Format: vfacing = dir
;   Sets the vertical flipping of the display element.
;   1 means no flipping, and -1 means flip vertically.
;   Does not affect "font" elements. Defaults to 1 if
;   omitted.
;
; 9. layerno
;   Format: layerno = no
;   This element lets you set the layer to which the
;   display element will be drawn on. 0 is in front of
;   the background, but behind the players. 1 is in
;   front of the players, but behind the foreground.
;   2 is in front of the foreground. The default is 0
;   in most cases.
;   An example of where this might be useful is when
;   you want to have the life or power bars appear
;   on top. In that case, set all the components to
;   have layerno = 2.
;
; 10. scale
;   Format: scale = xscale, yscale
;   Scales the display element by a horizontal scale
;   factor of xscale, and vertically by a factor of
;   yscale. Defaults to 1,1 if omitted.
;   Currently does not affect "font" elements.
;
; Some components have additional elements specific
; to themselves.
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#6  January 02, 2024, 11:30:21 am
  • *****
  • Resident Tosspot
  • Pftheh
    • UK
    • plasmoidthunder.neocities.org

  • Online
You need to edit the sprites themselves. By opening fight.def in Fighter Factory, you can view and modify the sprites via the sprites tab.

Oh, I want a diagram. I fucking love diagrams.
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#7  January 03, 2024, 01:16:36 am
  • **
    • UK
You need to edit the sprites themselves. By opening fight.def in Fighter Factory, you can view and modify the sprites via the sprites tab.

The sprites tab is missing. It's not where it usually is. All the options in the bar at the top of the screen under "Sprites" are greyed out.
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#8  January 03, 2024, 10:46:14 am
  • **
    • UK
You need to edit the sprites themselves. By opening fight.def in Fighter Factory, you can view and modify the sprites via the sprites tab.

I didn't notice until now but your avatar changes when I refresh the page. How did you do that?
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#9  January 03, 2024, 03:17:20 pm
  • ****
  • Formerly DeathScythe
    • Brazil
    • lyricasky.neocities.org
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#10  January 07, 2024, 08:12:03 am
  • **
    • UK
The sprites tab is missing. It's not where it usually is. All the options in the bar at the top of the screen under "Sprites" are greyed out.
It's easier if you just open the sprite itself, fight.sff is the file you want.

I didn't notice until now but your avatar changes when I refresh the page. How did you do that?
signavatar.com

I see. How do I edit fight.sff? Fighter Factory Studio won't open it.
Re: How do you change a Mugen Power Bar to display 4 lines, not the default 3?
#11  January 07, 2024, 08:33:45 am
  • ****
  • Formerly DeathScythe
    • Brazil
    • lyricasky.neocities.org
I see. How do I edit fight.sff? Fighter Factory Studio won't open it.

In FF's menu, Sprites > Open.
You need your sprites ready to insert in the sff, for this you can use an image editor such as Photoshop, Gimp, etc. Once the sprites are ready, import them to the sff, you can replace the default sprites or insert them as new ones, use the "+" button in the left side.
Give them a unique group/index number, then go to your fight.def and replace the sprite numbers there to match the ones you just added.