O Ilusionista
Captain 100K
You put the word SUPER inside the character ICONMore less the best I can do without script
edit:
like this
You put the word SUPER inside the character ICONMore less the best I can do without script
Yes, you will need to put the same script in the level.c in order to reset the mp when any level starts. For players joining a in-progress game, use the join1.c/join2.c on the same way as the respawn.cshould use script too?
Exact, because this one have a very different feeling.I download the super bar sprite and not good, it looks like your blue color is more fits
View attachment 6507
Feel free to use it:I download the super bar sprite and not good, it looks like your blue color is more fits
Keeping an "old" style of font just like in @O Ilusionista 's screenshot would fit better.
Feel free to use it:
Looks like a layer issue, try to adjust values by putting the mpbar behind the icon at the levels.txt using the mpbarsize command.Ilu, when I use super sprite to cover the mp bar it's keep getting glitching visual very often. Not really sure what is going on
Uptown Restaurant Stage REMAKE by @don vecta
and Yes more update will be shown soon![]()

the bar is default and covered with icon spriteIs that MP bar default or is it a single sprite? I think it's got to do with setlayer
{noborder} turns on or off the border and shadow around life bars. {0} means there is, {1} means no outline or shadow.
mpbarsize 45 6 1 1 0 -300 0 -300 -300
p1mp 31 209
Uptown stage now looks greatNice, this quick edit works well, glad it's there.

Sounds like something I need to look at. I never use those for anything, and don't recall a bug report (or I looked over it/forgot like an idiot). I'll take a crack.I have the same issue here and I never managed to fix. This happens since long time (I think 4432)
void lifebar_colors()
{
char *filename = "saves/lifebar.txt";
char *buf;
size_t size;
int pos;
ArgList arglist;
char argbuf[MAX_ARG_LEN + 1] = "";
char *command;
if(buffer_pakfile(filename, &buf, &size) != 1)
{
goto default_file;
}
else
{
goto proceed;
}
default_file:
if(buffer_pakfile("data/lifebar.txt", &buf, &size) != 1)
{
color_black = 0;
color_red = 0;
color_orange = 0;
color_yellow = 0;
color_white = 0;
color_blue = 0;
color_green = 0;
color_pink = 0;
color_purple = 0;
color_magic = 0;
color_magic2 = 0;
shadowcolor = 0;
shadowalpha = BLEND_MULTIPLY + 1;
shadowopacity = 255;
return;
}
else
{
goto proceed;
}
proceed:
pos = 0;
colorbars = 1;
while(pos < size)
{
if(ParseArgs(&arglist, buf + pos, argbuf))
{
command = GET_ARG(0);
if(command && command[0])
{
if(stricmp(command, "blackbox") == 0)
{
color_black = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "whitebox") == 0)
{
color_white = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color300") == 0)
{
color_orange = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color25") == 0)
{
color_red = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color50") == 0)
{
color_yellow = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color100") == 0)
{
color_green = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color200") == 0)
{
color_blue = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color400") == 0)
{
color_pink = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "color500") == 0)
{
color_purple = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
//magic bars color declarations by tails
else if(stricmp(command, "colormagic") == 0)
{
color_magic = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "colormagic2") == 0)
{
color_magic2 = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
//end of magic bars color declarations by tails
else if(stricmp(command, "shadowcolor") == 0)
{
shadowcolor = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3));
}
else if(stricmp(command, "shadowalpha") == 0) //gfxshadow alpha
{
shadowalpha = GET_INT_ARG(1);
}
else if(stricmp(command, "shadowopacity") == 0)
{
shadowopacity = GET_INT_ARG(1);
}
else if(command && command[0])
{
printf("Warning: Unknown command in lifebar.txt: '%s'.\n", command);
}
}
}
// Go to next line
pos += getNewLineStart(buf + pos);
}
if(buf != NULL)
{
free(buf);
buf = NULL;
}
}
// ltb 1-17-05 end new lifebar colors
I remember I mentioned it already and other users too, but yeah, nobody made a Github reportSounds like something I need to look at. I never use those for anything, and don't recall a bug report (or I looked over it/forgot like an idiot). I'll take a crack.
DC
I remember I mentioned it already and other users too, but yeah, nobody made a Github report![]()
@machok I had this same issue in my old SF VS KOF game, I was able to bypass by putting the same color for both colormagic/colormagic2. It works for percentage and native methods in the mpbarsize.@O Ilusionista @Kratus
Ok so I've been testing mp bar - iconmp and found a weird situation, not sure if this a bug or my setting isn't correct. Better to explain with pic
View attachment 6532
colormagic = yellow bar
colormagic2 = grey
1. mp is zero
2. mprate is filling
3. now this is start to confusing me, why suddenly the mpbar change to colormagic2 when it's not yet full?
because when this happened iconmphigh is also show up but I can't use my super yet
4. mpbar back to yellow (colormagic1) and still fill, this is why my super can't be used because mpbar hasn't full
5. mpbar is full, super now can be used
Question: Why does no.3 suddenly appear? and at the same time iconmphigh icon is also active, even though the mpbar is still not fully charged?
blackbox 255 255 0
whitebox 0 0 0
color25 255 0 0
color50 255 0 0
color100 255 255 0
color200 255 255 0
color300 255 255 0
color400 255 255 0
color500 255 255 0
colormagic 0 10 255
colormagic2 0 10 255
shadowcolor 0 0 0
@DCurrent I made an update some time ago to allow the engine to read the external saves folder for lifebar configuration in the same way as I did for the translation, but I didn't change how the color management works. It really needs to be improved.Just looked at the reading logic for HUD color bars... good lord what a bunch of spaghetti. The variable names are stuff like "orange" and "red" even though they can store any color... and the whole thing is just badly conceived. Added in 2005, by the same person who did that silly hardcoded dive function.
C:void lifebar_colors() { char *filename = "saves/lifebar.txt"; char *buf; size_t size; int pos; ArgList arglist; char argbuf[MAX_ARG_LEN + 1] = ""; char *command; if(buffer_pakfile(filename, &buf, &size) != 1) { goto default_file; } else { goto proceed; } default_file: if(buffer_pakfile("data/lifebar.txt", &buf, &size) != 1) { color_black = 0; color_red = 0; color_orange = 0; color_yellow = 0; color_white = 0; color_blue = 0; color_green = 0; color_pink = 0; color_purple = 0; color_magic = 0; color_magic2 = 0; shadowcolor = 0; shadowalpha = BLEND_MULTIPLY + 1; shadowopacity = 255; return; } else { goto proceed; } proceed: pos = 0; colorbars = 1; while(pos < size) { if(ParseArgs(&arglist, buf + pos, argbuf)) { command = GET_ARG(0); if(command && command[0]) { if(stricmp(command, "blackbox") == 0) { color_black = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "whitebox") == 0) { color_white = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color300") == 0) { color_orange = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color25") == 0) { color_red = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color50") == 0) { color_yellow = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color100") == 0) { color_green = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color200") == 0) { color_blue = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color400") == 0) { color_pink = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "color500") == 0) { color_purple = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } //magic bars color declarations by tails else if(stricmp(command, "colormagic") == 0) { color_magic = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "colormagic2") == 0) { color_magic2 = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } //end of magic bars color declarations by tails else if(stricmp(command, "shadowcolor") == 0) { shadowcolor = _makecolour(GET_INT_ARG(1), GET_INT_ARG(2), GET_INT_ARG(3)); } else if(stricmp(command, "shadowalpha") == 0) //gfxshadow alpha { shadowalpha = GET_INT_ARG(1); } else if(stricmp(command, "shadowopacity") == 0) { shadowopacity = GET_INT_ARG(1); } else if(command && command[0]) { printf("Warning: Unknown command in lifebar.txt: '%s'.\n", command); } } } // Go to next line pos += getNewLineStart(buf + pos); } if(buf != NULL) { free(buf); buf = NULL; } } // ltb 1-17-05 end new lifebar colors
I haven't looked at the actual drawing portion yet, but I shudder to think about it. Well, guess that's why I get paid the big bucks... oh wait...
DC
for the color it's working great however iconmphigh still show up before it's reach full mpI had this same issue in my old SF VS KOF game, I was able to bypass by putting the same color for both colormagic/colormagic2. It works for percentage and native methods in the mpbarsize.
Are you using native or percentage in the mpbarsiize? I remember when I tried to use the iconmps in the past and had a issue, but I don't remember my configs.for the color it's working great however iconmphigh still show up before it's reach full mp![]()