• All, Gmail is currently rejecting messages from my host. I have a ticket in process, but it may take some time to resolve. Until further notice, do NOT use Gmail for your accounts. You will be unable to receive confirmations and two factor messages to login.
Street fighter 89

In Progress Street Fighter 89 The Final Fight by Machok v3.7

No permission to download
The project is currently under development.
No problem, my man. That's why I hide p{#}lifen and add drawstring to be on top of the life bar as a substitute of it. Now you have 3 lives instead of 2. :)

Is that life bar in scripts or is it default used from levels.txt and lifebar.txt? I will find out if the latest update will be released along with the life script.
I found buggy with my lifebar, if I put your life count script in lifebar.c
some enemy lifebar become like this:
sf89 - 0012.png sf89 - 0013.png

When I put your script in update.c enemy lifebar is good but something pop up in tittle screen:
sf89 - 0014.png sf89 - 0015.png

Any suggestion?
 
@NED Your Maki design looks excellent!

@machok: I didn't know you added @msmalik681's life bar script there. Plus, I notice you have only main function in there instead of combining scripts separately, but that's okay. :) Where, in lifebar.c, did you add the life script to? I never encounter that black-white enemy lifebar problem, but I think you put it in a wrong place.

I just tested the value that pops up in the title screen you said. For now, don't use it in update.c unless @Bloodbane has a solution for making globalvars for the life number.

Anyway, I just modified your lifebar.c so you could have the life script visible in levels instead of the title screen. I think you need to isolate the life script from being inside the enemy script.

Code:
void main()
{//msmalik681


void self = getlocalvar("self");            //get calling entity
int player = getentityproperty(self,"playerindex");    //get player index
void enemy = getentityproperty(self, "opponent");    //get opponent

if(LifeNumber()) return; // LifeNumber function?... check way below

if(enemy)
{
int hp = getentityproperty(enemy,"health")-144;        // get opponents current hp
//drawstring(100,100,1,health);                // for debug use
int x; int y;
if(player==0){x=24; y=33;}                // solid life bar location for player 1 should be same as elife but +1 on each coordinate
else if(player==1){x=227; y=33;}            // solid bar for player 2
else if(player==2){x=226; y=35;}




 if(hp>1)                        //if hp above single life bar
 {
 if(hp>288){drawbox(x,y,144,6,99999,rgbcolor(0,255,187),0);               
 }else if(hp>240){drawbox(x,y,144,6,99999,rgbcolor(119,255,119),0);           
 }else if(hp>180){drawbox(x,y,144,6,99999,rgbcolor(187,255,0),0);          
 }else if(hp>120){drawbox(x,y,144,6,99999,rgbcolor(255,252,0),0);       
 }else if(hp>60){drawbox(x,y,144,6,99999,rgbcolor(255,255,0),0);          
 }else if(hp>1){drawbox(x,y,144,6,99999,rgbcolor(255,255,0),0);}     



 }
}


}

void LifeNumber(){

int P1 = getplayerproperty(0, "entity");
int P2 = getplayerproperty(1, "entity");
int P1Life = getplayerproperty(P1, "lives");
int P2Life = getplayerproperty(P2, "lives");

if(P1){
    drawstring(64, 8, 1, P1Life-1);
}

if(P2){
    drawstring(267, 8, 1, P2Life-1);
}

}

EDIT: After defeating the yellow Andore in the elevator, I couldn't figure how to get out until I pressed up twice and attack to perform some pipe special against an offscreen enemy. I think when you walk around the top left side, sometimes the offscreen enemy (pink/purple Andore) comes out. It's hard to make him come out.

I have no idea how Damnd becomes behind where he's sitting. It's weird. Maybe when you're way far away from the stairs going to the subway and he jumps there offscreen.
 

Attachments

  • sf89 - 0002.png
    sf89 - 0002.png
    10.6 KB · Views: 12
  • sf89 - 0003.png
    sf89 - 0003.png
    29.8 KB · Views: 12
Last edited:
@NED Your Maki design looks excellent!

@machok: I didn't know you added @msmalik681's life bar script there. Plus, I notice you have only main function in there instead of combining scripts separately, but that's okay. :) Where, in lifebar.c, did you add the life script to? I never encounter that black-white enemy lifebar problem, but I think you put it in a wrong place.

I just tested the value that pops up in the title screen you said. For now, don't use it in update.c unless @Bloodbane has a solution for making globalvars for the life number.

Anyway, I just modified your lifebar.c so you could have the life script visible in levels instead of the title screen. I think you need to isolate the life script from being inside the enemy script.

Code:
void main()
{//msmalik681


void self = getlocalvar("self");            //get calling entity
int player = getentityproperty(self,"playerindex");    //get player index
void enemy = getentityproperty(self, "opponent");    //get opponent

if(LifeNumber()) return; // LifeNumber function?... check way below

if(enemy)
{
int hp = getentityproperty(enemy,"health")-144;        // get opponents current hp
//drawstring(100,100,1,health);                // for debug use
int x; int y;
if(player==0){x=24; y=33;}                // solid life bar location for player 1 should be same as elife but +1 on each coordinate
else if(player==1){x=227; y=33;}            // solid bar for player 2
else if(player==2){x=226; y=35;}




 if(hp>1)                        //if hp above single life bar
 {
 if(hp>288){drawbox(x,y,144,6,99999,rgbcolor(0,255,187),0);              
 }else if(hp>240){drawbox(x,y,144,6,99999,rgbcolor(119,255,119),0);          
 }else if(hp>180){drawbox(x,y,144,6,99999,rgbcolor(187,255,0),0);         
 }else if(hp>120){drawbox(x,y,144,6,99999,rgbcolor(255,252,0),0);      
 }else if(hp>60){drawbox(x,y,144,6,99999,rgbcolor(255,255,0),0);         
 }else if(hp>1){drawbox(x,y,144,6,99999,rgbcolor(255,255,0),0);}    



 }
}


}

void LifeNumber(){

int P1 = getplayerproperty(0, "entity");
int P2 = getplayerproperty(1, "entity");
int P1Life = getplayerproperty(P1, "lives");
int P2Life = getplayerproperty(P2, "lives");

if(P1){
    drawstring(64, 8, 1, P1Life-1);
}

if(P2){
    drawstring(267, 8, 1, P2Life-1);
}

}
sf89 - 0018.png

Thank you everything is working very well now, I'll try to test further..
so sorry I'm not good at handling scripts but I try to keep learning.

EDIT: After defeating the yellow Andore in the elevator, I couldn't figure how to get out until I pressed up twice and attack to perform some pipe special against an offscreen enemy. I think when you walk around the top left side, sometimes the offscreen enemy (pink/purple Andore) comes out. It's hard to make him come out.
I've fixed this now, although I've never experienced this issue myself.
I have no idea how Damnd becomes behind where he's sitting. It's weird. Maybe when you're way far away from the stairs going to the subway and he jumps there offscreen.

That's weird think I'll try to investigate about this..

*Many people are reporting the exact problem (andore) so I suggest to use openbor v6330 because I didn't find any problems

This game does not look like it needs a custom life bar the default one should work fine.
It works like a charm,
Maxman script is to modify the life count on the player's so it would have same affect like arcade version (3 openbor lives are written as 2)
and it turns out that there is a conflict with the enemy's life bar
 
Thank you everything is working very well now, I'll try to test further..
so sorry I'm not good at handling scripts but I try to keep learning.

I'm glad it works well for you. :)

It's okay. Don't worry. You're doing good. I know you're learning scripts. Likewise, I'm still learning scripts too.
 

sf89 - 0003.png


I have no idea how Damnd becomes behind where he's sitting. It's weird. Maybe when you're way far away from the stairs going to the subway and he jumps there offscreen.
This one is hard to fix since I experienced it only once and not know what the exact reason, try again many times but no longer experience it
sf89 - 0017.png
I'll keep this for now
 
  • Like
Reactions: NED
I'm working on a v2 demo right now, first priority is bug fix but I also want to ask about the balance of gameplay in this mod (in terms of difficulty level)
so I'll ask you guys.. do you think this mod is too hard to play?

been watching gameplay videos on youtube, looks like most of them need more than 5 continues to get to final stage (while myself not use any single continue to finished it).

1. I designed enemies spawn exactly like the arcade version which I also understand the purpose of arcade machines is to make people continue to take out their coins
but overall my mod is 50% easier than arcade (excluding the extra stages I added)

2. Keep in mind Final Fight1 isn't console game (not talking about snes version here), so there's almost no repeating wait and go until you beat all enemies but instead you can keep going and this way the enemies will come and fill the screen if you keep moving forward. (for now I didn't design this mod for speedrunner so I am not using offscreen kill feature)

3. Already reduced boss difficulty right now (Rolento, Edi.E..) and players will automatically get full health at the beginning of some Capcom original stage. but I have no intention of reducing the aggressive level of non-boss enemies. I also don't like to add moves like hado-ken etc to make gameplay easier, however I'm interested in adding a new combo moves (it's just a plan for now)

so is this enough? if anyone wants to add some input just comment
 
Last edited:
I have to try again the demo because every time I got stuck after elevators because of Andore's bug ^^;

EDIT : OK, finally after testing one more time, I had the chance t ocontinue after this game moment.
For me and my tastes, the difficulty is just the good level. I don't feel like it's impossible or get bored of a too easy game.

Other people will give you feedback as well. But for me it's already good :)

Something I noticed, I cannot remember if it was in the source game. Poison/Roxy etc : they flip hozontally during jump kick if the do a "cross up"
Like jumping from front of player into back of player.

I didn't finished the demo. I'll test a bit more later)
 
Last edited:
I have to try again the demo because every time I got stuck after elevators because of Andore's bug ^^;
temporary solution, you can delete andore for now
on levels folder open industrial_midf.txt
and delete andore, this one:
Code:
spawn andore
@script void main() {
   performattack(getlocalvar("self"), openborconstant("ANI_FOLLOW18"));
} @end_script
coords 500 180
at 209
Something I noticed, I cannot remember if it was in the source game. Poison/Roxy etc : they flip hozontally during jump kick if the do a "cross up"
Like jumping from front of player into back of player.
Yes those move is from original source the problem is they not doing it often but in my mod, they always do that 😶
I am aware this movement makes players a bit difficult to deal with them, I'll keep this in mind

also roxy & poison "almost" dodge when players punch them, this also annoying.
I only use rand()%2 for this move and when I reduce it to 1% they're doing nothing.. so I can't do much for this one

For me and my tastes, the difficulty is just the good level. I don't feel like it's impossible or get bored of a too easy game.
Other people will give you feedback as well. But for me it's already good
Thanks Ned :cool:
 
  • Like
Reactions: NED
final fight franchise lacks project like "Sor remake 5.1", Machok off to a great start with sf89!
this version of the game eclipsed all other FF on openbor!


with your words of game version 0.5, what plans do you have to develop this project to 1.0?

are you plan to add other playable canonic ff characters such as carlos, dean or lucia ? Maybe as secret chars?
 
Last edited:
It reminds me that I'm still willing to update Maki's graphics. What I have in ln mind.
-More frames for walking (frankenspriting)
-More frames for her spining special
-Final palette (CPS1 type)
 
final fight franchise lacks project like "Sor remake 5.1", Machok off to a great start with sf89!
this version of the game eclipsed all other FF on openbor!
Hi thanks glad you enjoy my Final Fight mod really appreciate it

though it's still wip, you might like this one too
with your words of game version 0.5, what plans do you have to develop this project to 1.0?
I'll skip demo v.1 and go to v.2
v1 contains only bugfix while v2 I will try to put (experimental) 2 bonus stages from the original game.
I am currently struggling to work on it 😵‍💫

are you plan to add other playable canonic ff characters such as carlos, dean or lucia ? Maybe as secret chars?
I will gladly include many characters from final fight world. however, I also very picky on this regard.
if there are sprites that have qualities such as nedflandeurse maki that quality exceeds my expectations then yes I would love to include it any time
but if not, I still have plans to add more variety like players can use thugs like bred etc and they have their own story

It reminds me that I'm still willing to update Maki's graphics. What I have in ln mind.
-More frames for walking (frankenspriting)
-More frames for her spining special
-Final palette (CPS1 type)
+Running animation please 🤗
 
  • Like
Reactions: NED
@Miru
you mean custom movesets?
I don't think I can make customize sprites like that but the enemy will have a separate attack movement variation using freespecial
not just combining them into one/two moves with an attack chain command.

well it depends on who the enemy is, if it's axl or slash they really don't have much attacking movement at all
 
@Miru
you mean custom movesets?
I don't think I can make customize sprites like that but the enemy will have a separate attack movement variation using freespecial
not just combining them into one/two moves with an attack chain command.

well it depends on who the enemy is, if it's axl or slash they really don't have much attacking movement at all
I did a playthrough buddy :) i just linked it @

machok

 
Back
Top Bottom