help to transform bloodbane´s blower script into a guard push script

rafhot

Member
hi i tried to create a guard push move on my project that works like this:

while player are blocking if he press attack without release the block button the character perform a cancel move that is my guardpush

in this cancel move i used bloodbane blower script to push enemies a little, but it still dont lookslike a marvel versus capcom guardpush
can someone help me to make it lookslike a guardpush?

the player animation is perfect, i just need to hjave a proper push effect on enemies
 
i removed blower, somes bugs happened here.
because my project im using subject to screen to somes entitys, and if blower push it to out of screen, entity be stuck there.
 
my project im using subject to screen to somes entitys, and if blower push it to out of screen, entity be stuck there.

That's odd zvitor. I've tried spamming blower to blow enemies with subject_to_screen 1 away but I failed to blow them offscreen and they are stuck onscreen. So I don't understand how you could get such bug

but it still dont lookslike a marvel versus capcom guardpush
can someone help me to make it lookslike a guardpush?

So how does guardpush works exactly?
 
Hmmm... before we discuss on how to edit or modify blower script, I'll post whole blower.txt here:

name Blower
type none
lifespan 1
subject_to_wall 0
subject_to_gravity 0
subject_to_platform 0
offscreenkill 3000


anim idle
@script
    void vSelf    = getlocalvar("self");            //Caller.
    void vEntity;                                    //Target entity placeholder.
    int iEntity;                                    //Entity enumeration holder.
    int iType;                                      //Entity type.
    int iMax      = openborvariant("ent_max");      //Entity count.
    int x = getentityproperty(vSelf, "x");
    int Dir = getentityproperty(vSelf, "direction");
    int Ex;

    //Enumerate and loop through entity collection.
    for(iEntity=0; iEntity<iMax; iEntity++){   
      vEntity = getentity(iEntity);                //Get target entity from current loop.
      iType  = getentityproperty(vEntity, "type"); //Get target type.

      //Enemy, NPC & player type?
      if(iType == openborconstant("TYPE_ENEMY") || iType == openborconstant("TYPE_PLAYER") || iType == openborconstant("TYPE_NPC")){
        Ex = getentityproperty(vEntity, "x");

        if(Dir==1 && Ex >= x + 1 && Ex <= x + 250){
          changeentityproperty(vEntity, "position", Ex+1);
        } else if(Dir==0 && Ex <= x - 1 && Ex >= x - 250){
          changeentityproperty(vEntity, "position", Ex-1);
        }
      }
    }
@end_script
loop 1
delay 1
offset 1 1
frame data/chars/misc/empty.gif
frame data/chars/misc/empty.gif

This entity checks for all active entities then find which ones are player, enemy and npc type. Those types will be moved to same direction as Blower's facing direction by 1 pixels per centisecond. 1 pixel movement is defined in script while 1 centisecond is animation delay. FYI this script is run once per frame.
This entity also has range check which is 1 to 250 pixels from itself. This is so blower won't blow entity which spawns it and won't blow entities which too far from it.

Blower has 1 second lifespan

Now, we can talk about modifying this. rafhot, which part you want to modify?
 
Blood,
in mugen, a bbox from an entity makes the entity to be solid, so if any other entity tries to pass though it, it won't happen, but the enity (the defender) will be pushed back, take a look at the giant blue box at the center
3I4dT3d.png


It will pushes the p2 back once it gets in touch with the blue colision boxes.

About the bug, I think its a matter to include a code to check if the oponent is out of the play area (hwidth), then move it back.
 
i think what need to be changed  is the enemy count, to just push back just the one who hits the player
also  sometimes the blower effect makes the enemy walk without move, to a more acurate guard push maybe just a move the enemy on his idle animation,  because if enemy moves with walk animation gives that aganist wind effect that the guard push does not have

hehe this time is hard to me to explain what i want in english eheheh i hope you understand
 
Setting enemy count it too much IMO cause you might be dealing with multiple enemies at once standing in same position to be pushed away

I believe setting ranges just to small area in front character is enough to achieve this.

to a more acurate guard push maybe just a move the enemy on his idle animation,  because if enemy moves with walk animation gives that aganist wind effect that the guard push does not have

From that video you posted, I got impression that guard push is done regardless of enemy's current animation so it's best not limit blower based on animation.

What do you say?
 
yes you are right, how much do you think i need to reduce? 250 to 50? judging by the video 
for the animation limit thing, i just  dont want to have the felling that there is a wind pushing enemies instead the move
in the video the enemy are pushed with the kick frame very fast
 
Back
Top Bottom