Problems with falling

yairvondoom

New member
HI
Great community, I'm having a problem with something I still don't understand.
I want to create a grab and when thrown, land prone as usual like a normal takedown, but when landing, the character lands with the throw frame instead of landing prone as seen in the photo (the photo is a montage I made to show the correct landing form, but when configuring it, it doesn't allow me to show that frame 🤔 What can I do? Considering that I use fall4 for the throw animations,

Wolverine
anim grabforward
fastattack 1
attackone 0
delay 5
loop 0
offset 75 100
@cmd slamstart
@cmd position 1 5 4 0 1
frame data/chars/wolverine/fspecial1_001.gif
@cmd position 1 5 4 0 1
frame data/chars/wolverine/fspecial1_002.gif
offset 62 101
@cmd position 1 5 4 0 1
frame data/chars/wolverine/throw_001.gif
delay 3
@cmd position 37 21 27 0 1
@cmd depost 0
@cmd throw 2 26 3 2.4 0 0
frame data/chars/wolverine/throw_002.gif
frame data/chars/wolverine/throw_003.gif
delay 20
@cmd clearL
frame data/chars/wolverine/throw_004.gif
delay 13
offset 52 95
frame data/chars/wolverine/idle_001.gif
‐---------------------------------

enemy anim doombot (I use the latest animation).

anim fall4
flipframe 0
delay 999
loop 0
bbox 28 21 36 66
offset 49 93
frame data/chars/doombot/fall01.gif
delay 999
frame data/chars/doombot/fall_invert_001.gif
delay 999
frame data/chars/doombot/fall01.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/fall03.gif
delay 999
frame data/chars/doombot/rt.gif
delay 999
frame data/chars/doombot/rb.gif
delay 999
frame data/chars/doombot/nm_01.gif
delay 999
frame data/chars/doombot/nm_02.gif
delay 999
frame data/chars/doombot/pm_02.gif
delay 999
frame data/chars/doombot/pm_01.gif
delay 999
frame data/chars/doombot/fall02.gif
delay 999
offset 57 93
frame data/chars/doombot/tn_001.gif
delay 999
offset 49 93
frame data/chars/doombot/fall04.gif
delay 999
offset 49 93
frame data/chars/doombot/fallhu.gif
delay 999
offset 49 78
frame data/chars/doombot/ss.gif
delay 999
offset 49 76
frame data/chars/doombot/tt.gif
delay 999
offset 49 93
frame data/chars/doombot/jk.gif
delay 999
offset 49 74
frame data/chars/doombot/tx.gif
delay 999
offset 66 110
frame data/chars/doombot/xe.gif
delay 999
offset 50 68
frame data/chars/doombot/kop.gif
bbox 33 21 37 74
delay 999
offset 55 94
frame data/chars/doombot/pr02.gif
loop 1
delay 999
offset 49 92
frame data/chars/doo

THANKS!
 

Attachments

  • 1.png
    1.png
    13.3 KB · Views: 7
  • 2.png
    2.png
    13 KB · Views: 5
  • 4.png
    4.png
    13 KB · Views: 5
  • 6.png
    6.png
    12.8 KB · Views: 6
  • 7.png
    7.png
    12.9 KB · Views: 7
  • 7.png
    7.png
    34.3 KB · Views: 7
  • CORRECTO.png
    CORRECTO.png
    8.8 KB · Views: 6
Hi there.

I can see that you're using script for the throw. We can't tell if FALL4 or any fall animation is the shown animation. We need to see your throw function to see which animation it enforces to thrown enemy.
You will need to find animation script used by Wolverine, find throw function there then copy and paste it here.
 
Hi there.

I can see that you're using script for the throw. We can't tell if FALL4 or any fall animation is the shown animation. We need to see your throw function to see which animation it enforces to thrown enemy.
You will need to find animation script used by Wolverine, find throw function there then copy and paste it here.

I use these scripts for Wolverine:


didblockscript data/scripts/parry.c
animationscript data/scripts/drago.c
ondrawscript data/scripts/shadowon.c

use these scripts for doombot

animationscript data/scripts/drago.c
takedamagescript data/scripts/cmbdmg.c
onfallscript data/scripts/enemy_onfallscript.c
 
animationscript data/scripts/drago.c
ondrawscript data/scripts/shadowon.c
Looks like you are using part of my scripts on your game, as I am the one who did the drago.c file
The name comes from Don Drago, and old friend of mine who worked with Pierwolf on Final Fight Gold.

As far as I can see, there is no position() nor throw() function on that file originally, because that file contains only the codes DonDrago made himself, like some functions to simulate Mugen behaviours.

Here is my customized version of throw(). But keep in mind that I use two animations to make all the throws - FALL7 contains all the frames in all angles I need and FALL9 is the one that I use for throws

C-like:
void throw(int Damage, int Type, int x, int y, int z, int Face)
{ // Damage as throw finisher
   void self = getlocalvar("self");
   //void target = getlocalvar("Target" + self);
   void target = getentityvar(self,"grabbed");
   int SDir = getentityproperty(target,"direction");
   int MDir;

   if(Face==0){ // Same facing?
       MDir = SDir;
   }

   if(Face==1){ // Opposite facing?

     if(SDir==0){ // Facing left?
       MDir = 1;
     } else { MDir = 0;}
   }

   if(target==NULL())
   {
     target = getentityproperty(self, "grabbing");
     setlocalvar("Target" + self, target);
   }
   if(target!=NULL())
   {
     int dir = getentityproperty(target,"direction"); //Get opponent's facing direction
     if(dir==0){ // Facing left?
       x = -x;
     }

     if(Type==1)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL")); // 1st throw type
     }

     if(Type==2)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL9")); // 2nd throw type
     }

     if(Type==3)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL2")); // 3rd throw type
     }
  
     if(Type==4)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_SHOCK")); // 4rd throw type
     }
  
      if(Type==5)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL11")); // 5th throw type
     }
  
     if(Type==6)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_BURN")); // 5th throw type
     }
  
      if(Type==7)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL2")); // 5th throw type
     }
  
     changeentityproperty(target,"subject_to_gravity",1);
     changeentityproperty(target, "attacking", 1);
     changeentityproperty(target, "damage_on_landing", Damage);
     changeentityproperty(target, "projectile", 1);
     changeentityproperty(target, "direction", MDir);
     tossentity(target, y, x, z); // Toss opponent ;)
     }
}

As I can see on your code, it is expecting the FALL9 animation (type==2)
@cmd throw 2 26 3 2.4 0 0

btw you don't need all those delay 999. Delay is persistent, so you just need to set one "delay 999" and it will stay active.
 
Hi there.

I can see that you're using script for the throw. We can't tell if FALL4 or any fall animation is the shown animation. We need to see your throw function to see which animation it enforces to thrown enemy.
You will need to find animation script used by Wolverine, find throw function there then copy and paste it here.

Thank you for your interest.

I reviewed the code and didn't find any launch functions in the drago.c script.
 
Looks like you are using part of my scripts on your game, as I am the one who did the drago.c file
The name comes from Don Drago, and old friend of mine who worked with Pierwolf on Final Fight Gold.

As far as I can see, there is no position() nor throw() function on that file originally, because that file contains only the codes DonDrago made himself, like some functions to simulate Mugen behaviours.

Here is my customized version of throw(). But keep in mind that I use two animations to make all the throws - FALL7 contains all the frames in all angles I need and FALL9 is the one that I use for throws

C-like:
void throw(int Damage, int Type, int x, int y, int z, int Face)
{ // Damage as throw finisher
   void self = getlocalvar("self");
   //void target = getlocalvar("Target" + self);
   void target = getentityvar(self,"grabbed");
   int SDir = getentityproperty(target,"direction");
   int MDir;

   if(Face==0){ // Same facing?
       MDir = SDir;
   }

   if(Face==1){ // Opposite facing?

     if(SDir==0){ // Facing left?
       MDir = 1;
     } else { MDir = 0;}
   }

   if(target==NULL())
   {
     target = getentityproperty(self, "grabbing");
     setlocalvar("Target" + self, target);
   }
   if(target!=NULL())
   {
     int dir = getentityproperty(target,"direction"); //Get opponent's facing direction
     if(dir==0){ // Facing left?
       x = -x;
     }

     if(Type==1)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL")); // 1st throw type
     }

     if(Type==2)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL9")); // 2nd throw type
     }

     if(Type==3)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL2")); // 3rd throw type
     }
 
     if(Type==4)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_SHOCK")); // 4rd throw type
     }
 
      if(Type==5)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL11")); // 5th throw type
     }
 
     if(Type==6)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_BURN")); // 5th throw type
     }
 
      if(Type==7)
     {
       damageentity(target, self, 1, 1, openborconstant("ATK_NORMAL2")); // 5th throw type
     }
 
     changeentityproperty(target,"subject_to_gravity",1);
     changeentityproperty(target, "attacking", 1);
     changeentityproperty(target, "damage_on_landing", Damage);
     changeentityproperty(target, "projectile", 1);
     changeentityproperty(target, "direction", MDir);
     tossentity(target, y, x, z); // Toss opponent ;)
     }
}

As I can see on your code, it is expecting the FALL9 animation (type==2)


btw you don't need all those delay 999. Delay is persistent, so you just need to set one "delay 999" and it will stay active.
Thanks for that advice!

I actually used the script from the lns Final Fight 4 fangame (sorry, I'm really new to this) and used this script as a base. However, I downloaded the game and checked the script. I tried using it, but it gave me this problem:

Loading 'wolverine' from data/chars/wolverine/wolverine.txt
Can't find openbor constant 'PLAYER_MIN_Z'

Script compile error in 'data/scripts/grabscript_complete1.c': openborconstant line 1581, column 12
Script error: failed to import 'data/scripts/grabscript_complete1.c': failed to compile

I added that number 1 so as not to replace the other scripts I tried, since other chars use that script, and replacing it would give me other errors.

Master, I would appreciate it if you could guide me? Best regards.
 
I actually used the script from the lns Final Fight 4 fangame (sorry, I'm really new to this) and used this script as a base. However, I downloaded the game and checked the script. I tried using it, but it gave me this problem:
Ah I see. First, that "game" uses a "customized" version of the OpenBOR. So it won't work on official build.
I would suggest you to throw it away and get one Bloodbane's base modules to work with Tutorial - How To Start On OpenBOR
(also, that thread is full of information)

Loading 'wolverine' from data/chars/wolverine/wolverine.txt
Can't find openbor constant 'PLAYER_MIN_Z'
Second, if I am not wrong, you are receiving this error because you are trying to run the game in V4 and the V3 won't work.
@DCurrent PLAYER_MIN_Z was one of the changed things in V4, right?

Edit: yep, it was changed

Script compile error in 'data/scripts/grabscript_complete1.c': openborconstant line 1581, column 12
Script error: failed to import 'data/scripts/grabscript_complete1.c': failed to compile
Now I am sure that is my code thanks to how the script was named :)

There are many instances of PLAYER_MIN_Z on my library, like this:
C-like:
void bmtcenter()
{        // centers the entity on the screen      
        // Douglas Baldan - 06/10/2014
    void self = getlocalvar("self"); //Get calling entity.
    int Screen = openborvariant("hResolution")/2; // Get screen width divided by 2
    int XPos = openborvariant("xpos"); // Get camera x position
    int Width = openborvariant("PLAYER_MIN_Z")+(openborvariant("PLAYER_MAX_Z") - openborvariant("PLAYER_MIN_Z"))/2; // Get playable area size center
    changeentityproperty(self, "position", Screen+XPos-20, Width+1, 0);

}

But as I stated above, my scripts won't work in V4. So your options are:
- Keep V4 but will need to either adapt all the codes or create new ones yourself (which won't be easy if you don't have experience)
- Downgrade your game to V3 6391
 
Back
Top Bottom