Learning how to juggle from this piece of code

PS_VITA

Active member
Hello guys,

From the DDRA game I'm learning from - This move enables the following attack to juggle an enemy.

I'm sitting here trying to figure out what exactly is the trigger that causes the enemies to be juggled.

Code:
anim freespecial36 # uppercut
@script
    void self = getlocalvar("self");
    int x = getentityproperty(self, "x");
    int y = getentityproperty(self, "a");
    int z = getentityproperty(self, "z");
    int b = getentityproperty(self, "base");

    if(y >= 1+b){
      changeentityproperty(self, "animation", openborconstant("ANI_FOLLOW25"));
    }
@end_script
	loop	0
	delay	3
	offset	77 170
	hitfx   data/sounds/maxhit.wav
        sound   data/sounds/skneehit.wav
	frame	data/chars/billy/sp1.gif
	frame	data/chars/billy/sp1.gif
	@cmd	dasher 2 0 0
	frame	data/chars/billy/sp2.gif
	frame	data/chars/billy/sp2.gif
	@cmd	dasher 2.5 0 0
	frame	data/chars/billy/aaa2.gif 
	attack31  90 68 60 34 20 1
	dropv 6 1
	forcedirection -1
	frame	data/chars/billy/aaa2.gif
	delay   7
	@cmd	dasher 2 0 0
	frame	data/chars/billy/aaa3.gif
	attack31  0 0 0 0 0
	delay   9
	@cmd	dasher 1.5 0 0
	frame	data/chars/billy/aaa3.gif
	delay   9
	@cmd	dasher 0.7 0 0
	frame	data/chars/billy/aaa3.gif

Could someone point me in the right direction as I'm trying to make a different attack act the same way and cause a juggle.
 

Attachments

  • BIGASS_tree2.gif
    BIGASS_tree2.gif
    26.9 KB · Views: 0
  • BIGASS_tree.gif
    BIGASS_tree.gif
    23.4 KB · Views: 0
Dropv after the attack31 information is what's launching the enemy into the air and @cmd dasher is what's moving the player, look in the manual to see how dropv works.

Also the enemy will most probably have a bbox in their fall animation so they can be hit again
 
Hi Danno - I learned how vdrop works last week and I did understand that dasher moves the player
now the enemy will most probably have a bbox in their fall animation so they can be hit again but how would I go about finding this
is related to the attack31 or freespecial36? This is the only move in the entire game that makes an enemy be juggled so I'm just trying to find what to look for. Is it a script or does openbor use a particular command or code for juggles?
 
The attack information (attack31) is what causes the enemy to fall dropv manipulates that fall, only thing I'm not sure of is how many fall animations the enemy has, if the enemy has just 1 fall animation the bbox will be inside it or attack31 could be pointing towards fall31 and the bbox could be inside that animation.

To add there is a follow animation but that's more to do with the players side of the interaction and you just want to know how the enemy can be juggled no? I have to make assumptions about the bbox being inside enemies fall animation because I don't know how all your code is set up, if there's no bbox we'll need more code
 
Here's what I found on  random enemy concerning attack31 or in this case fall31 and as luck would have it the name is uppercut reaction

based on this latest find - what exactly causes the enemy to reset it's hit point ( or whatever you call it) in order to cause it to be juggled if hit again?

Code:
anim fall31 # uppercut reaction
	loop	0
	offset	77 170
	bbox	10 85 90 80
	delay   8
	landframe 7
	@cmd    degravity -0.15
	@cmd bind 0 0 0 0 0
	@cmd    depost 0
	frame	data/chars/linda3/fall01.gif
	frame	data/chars/linda3/fall01.gif
	delay   10
	@cmd    degravity -0.25
	@cmd    antiwall4 -20 "ANI_FOLLOW37"
	frame	data/chars/linda3/fall01.gif
	frame	data/chars/linda3/fall01.gif
	@cmd    degravity -0.5
	@cmd    antiwall4 -20 "ANI_FOLLOW37"
	frame	data/chars/linda3/fall01.gif
	delay   20
	@cmd    degravity -0.75
	@cmd    antiwall4 -20 "ANI_FOLLOW37"
	frame	data/chars/linda3/fall02.gif
	delay   500
	@cmd    degravity -1
	frame	data/chars/linda3/fall02.gif
	bbox	0 0 0 0
	delay   8
	sound	data/sounds/falll.wav
	frame	data/chars/linda3/fall02.gif
	frame	data/chars/linda3/rise0.gif
	delay   2
	@cmd    anichange "ANI_FOLLOW80"
	frame	data/chars/linda3/rise0.gif
 
Ahhhh the plot thickens, could you post players Anim follow25 also? I'm assuming that's an attack too, then I should be able to explain fully how it all works, however it's past midnight here so if someone else doesn't fill in the blanks I'll do it tomorrow.
 
danno said:
Ahhhh the plot thickens, could you post players Anim follow25 also? I'm assuming that's an attack too, then I should be able to explain fully how it all works, however it's past midnight here so if someone else doesn't fill in the blanks I'll do it tomorrow.

Here's what I found... related to anim follow 25 in the players .txt

Code:
anim follow25 # walkoff clone horizontal fall
	loop	0
	delay	11
	offset	77 170
	bbox	60 55 40 100
      landframe 4 
      @cmd  stopz
      @cmd  stopz2
      @cmd    degravity 0.27
	frame	data/chars/billy/j1.gif
      delay	10
      frame	data/chars/billy/j22.gif
      @cmd    degravity 0
      frame	data/chars/billy/j22.gif
      delay	100
      @cmd    degravity -0.50
      frame	data/chars/billy/j22.gif
      delay	15
      sound	data/sounds/step.wav
      @cmd    degravity -1
      frame	data/chars/billy/rise2.gif

Code:
anim walkoff # only vertical fall
	loop	0
	delay	11
	offset	77 170
	bbox	60 55 40 100
      landframe 4
      @cmd  nomoveidle2 "ANI_FOLLOW25" 
      @cmd  stopz
      @cmd  stopz2
      @cmd    degravity 0.27
	frame	data/chars/billy/j1.gif
      delay	10
      @cmd  leaper 1 0 0
      frame	data/chars/billy/j22.gif
      @cmd    degravity -0.50
      frame	data/chars/billy/j22.gif
      delay	100
      frame	data/chars/billy/j22.gif
      delay	15
      sound	data/sounds/step.wav
      @cmd    degravity -1
      frame	data/chars/billy/rise2.gif

I'm unsure of is any of that is relevant - but if you go back to the upper cut attack you also see a script that points to anim follow 25
 
Yeah anim follow25 has nothing to do with the juggle, my assumption was wrong (takes deep breath)

On the players side Anim freespecial36 launches enemy into air attack31 sends enemy to fall31, in enemies fall31 some script is used @cmd degravity changes the gravity of the fall @cmd bind binds the enemy to the player the values in @cmd bind refer to positioning of said bind then @cmd depost (deposition) unbinds the enemy from player, so uppercut, enemy Launches, attacks while enemy falls,in fall there's a bbox allowing itself to be hit again, during fall enemy holds position via gravity changes and bind, at the end of the fall31 there's an animation change
@cmd    anichange "ANI_FOLLOW80" what's inside that?

Hopefully you have enough info now to see how it works.

 
EDIT:

So I think I'm getting somewhere  ... This is the code that I want to be able to modify and add a bbox so I can hit the enemy and juggle him or her. just like the "upper cut reaction" move

Code:
anim fall8
      loop	0
      delay   1000
      offset	77 170
      @cmd    conditionalflip3
      @cmd    degravity -0.15
      frame	data/chars/linda/pain3.gif
      frame	data/chars/linda/pain4.gif
      frame	data/chars/linda/pain5.gif
      frame	data/chars/linda/pain6.gif
      frame	data/chars/linda/fall07.gif
      frame	data/chars/linda/fall08.gif
      frame	data/chars/linda/fall05.gif
      bbox	10 85 90 80
      frame	data/chars/linda/fall06.gif
      offset	77 169
      frame	data/chars/linda/rise0.gif
       bbox	0 0 0 0
      frame	data/chars/linda/pain7.gif
      frame	data/chars/linda/pain8.gif

The problem is that it is not working for me and I don't know why because

if you see the code below  it also has a bbox and If I put a # symbol on it it wont juggle anymore so I know I'm on the right track
I just don't know why it wont work.

Code:
anim fall31 # uppercut reaction
	loop	0
	offset	77 170
	bbox	10 85 90 80
	delay   8
	landframe 7
	@cmd    degravity -0.15
	@cmd bind 0 0 0 0 0
	@cmd    depost 0
	frame	data/chars/linda/fall01.gif
	frame	data/chars/linda/fall01.gif
	delay   10
	@cmd    degravity -0.25
	@cmd    antiwall4 -20 "ANI_FOLLOW37"
	frame	data/chars/linda/fall01.gif
	frame	data/chars/linda/fall01.gif
	@cmd    degravity -0.5
	@cmd    antiwall4 -20 "ANI_FOLLOW37"
	frame	data/chars/linda/fall01.gif
	delay   20
	@cmd    degravity -0.75
	@cmd    antiwall4 -20 "ANI_FOLLOW37"
	frame	data/chars/linda/fall02.gif
	delay   500
	@cmd    degravity -1
	frame	data/chars/linda/fall02.gif
	bbox	0 0 0 0
	delay   8
	sound	data/sounds/falll.wav
	frame	data/chars/linda/fall02.gif
	frame	data/chars/linda/rise0.gif
	delay   2
	@cmd    anichange "ANI_FOLLOW80"
	frame	data/chars/linda/rise0.gif
 
All you need for a basic juggle is an attack that knocks down the enemy, dropv to manipulate the the fall and a bbox in the enemy fall animation, make sure the bbox is at the beginning of the fall Anim, if frames inside an animation don't have a bbox you won't be able to hit them. Try this to start with.
 
danno said:
All you need for a basic juggle is an attack that knocks down the enemy, dropv to manipulate the the fall and a bbox in the enemy fall animation, make sure the bbox is at the beginning of the fall Anim, if frames inside an animation don't have a bbox you won't be able to hit them. Try this to start with.

Going by everything you said  why did my attempt fail to juggle than?

It seems to me I met all the criteria as shown in my example one post above yours.

 
In Anim fall8 it has 7 frames of animation before bbox is activated, try putting the bbox at the beginning of the fall animation like I mentioned earlier, above the first frame of animation, bbox is what allows the hit.


Also judging by the amount of delay in fall8 it's an anim used for script and isn't a standard fall animation.
 
danno said:
In Anim fall8 it has 7 frames of animation before bbox is activated, try putting the bbox at the beginning of the fall animation like I mentioned earlier, above the first frame of animation, bbox is what allows the hit.


Also judging by the amount of delay in fall8 it's an anim used for script and isn't a standard fall animation.

I put the bbox at the beginning and still no luck.
And this isn't your standard fall animation and you are correct , this is when the player grabs and enemy and throws the enemy up in the air.

What else or what code do you think I need to look into, you mentioned a script earlier , what part of the code could points me to that script.

I'm totally lost now.

Thanks for leading me this far.

I really wanna get this done , so please let me know what else I can show you to get me one step closer in getting this done.

 
ChronoCrash,

You are WAY over-complicating this, and probably couldn't pick a worse set of animations to learn from. There's nothing special or unique about juggling. Unless you purposely get scripts and such involved, an entity either has a body box or it doesn't. If it does, you can hit it, if it doesn't you can't. To enable juggling, you just make sure the target has a body box while it's falling. It's really that simple.

Don't try to learn on a module full of scripts and follows. You don't need any of that for juggling and there's just too many moving parts for us to know exactly what's going wrong.

The complexity comes later, when you DON'T want juggling. As in, how to prevent infinite juggles. But first concentrate on learning the basic steps - we can get the advanced part going later.

DC

 
I would suggest you create a sperate enemy with 1 fall animation and test attack knockdown with dropv manipulation and bbox in the enemy fall Anim at the start because from what you've posted this enemy has a lot of fall animations and any of them could be getting used after while in the air or on the way down,

Create another enemy with 1 single fall animation and practise on that,
 
Update, I got it to work!
It's all thanks to you guys.  I kept thinking that it should be simple so I startd stripping away code from the enemy and I found out that he had multiple fall animations and I was trying to put that hit box in the wrong one. It's now done.

Thanks again ;D
 
Back
Top Bottom