Avoid infinites with simple combo

NED

Well-known member
Is there a way to add these features without script?
And if I need script, how to do it?

-jump alt attack : jump, A2 + DOWN
-run jump alt attack : run jump, A2 + DOWN
-run alt attack : run, A2
-increase number of hits in regular grab attack (from 2 to 6)

Also I need a little help on how to have this free special limitation increase working the right way...

--------------------
maxfreespecials {max}

    ~Sets the maximum number of free specials.
    ~{max} is number of available free specials.
    ~Default is 8.
----------------------------

exemple
"maxfreespecials 20"
Is this OK?
Is there a limitation (99?)
 
you can do this with the cancel command, no need of scripts.

look at this example:

anim run
cancel 0 99 0 a2 freespecial4 # strong run attack
loop 1
offset 209 233
bbox 178 152 62 82
sound data/sounds/run01.wav
delay 10
frame data/chars/slayer/run01.gif
frame data/chars/slayer/run02.gif
frame data/chars/slayer/run03.gif
sound data/sounds/run01.wav
frame data/chars/slayer/run04.gif
frame data/chars/slayer/run05.gif
frame data/chars/slayer/run06.gif
frame data/chars/slayer/run07.gif
sound data/sounds/run01.wav
frame data/chars/slayer/run08.gif

in this case, while running, if you press the A2 button the char will perform his run alt attack (in my case, a strong run attack).

you can do the same for jump alternate attacks.

as regard the maxfreespecials limitation, i always set it to 99 just to be sure and it works well.
 
Pierwolf said:
as regard the maxfreespecials limitation, i always set it to 99 just to be sure and it works well.

I've been guilty of this too, but really you should only set what you need. Otherwise you're just wasting memory that must be allocated for unused freespecials. That goes for all of the variable maximums.

DC
 
Pierwolf said:
you can do this with the cancel command, no need of scripts.

look at this example:

anim run
cancel 0 99 0 a2 freespecial4 # strong run attack
loop 1
offset 209 233
bbox 178 152 62 82
sound data/sounds/run01.wav
delay 10
frame data/chars/slayer/run01.gif
frame data/chars/slayer/run02.gif
frame data/chars/slayer/run03.gif
sound data/sounds/run01.wav
frame data/chars/slayer/run04.gif
frame data/chars/slayer/run05.gif
frame data/chars/slayer/run06.gif
frame data/chars/slayer/run07.gif
sound data/sounds/run01.wav
frame data/chars/slayer/run08.gif

in this case, while running, if you press the A2 button the char will perform his run alt attack (in my case, a strong run attack).

you can do the same for jump alternate attacks.

as regard the maxfreespecials limitation, i always set it to 99 just to be sure and it works well.

Thanks!
Cancels, so simple I don't even thinked of it... :P


Damon Caskey said:
I've been guilty of this too, but really you should only set what you need. Otherwise you're just wasting memory that must be allocated for unused freespecials. That goes for all of the variable maximums.

Yes, I can't understand it!
Optimization is always a priority to be sure the game will work on most of the platforms.
I'll do it this way.
Thanks
 
Damon Caskey said:
Pierwolf said:
as regard the maxfreespecials limitation, i always set it to 99 just to be sure and it works well.

I've been guilty of this too, but really you should only set what you need. Otherwise you're just wasting memory that must be allocated for unused freespecials. That goes for all of the variable maximums.

DC

good to know it, thanks!
 
In the same process I try to add a 2nd basic Hard combo 2 hits (using A2 button)
imput : A2, A2 = 2 differents moves that chain (just like kick button in WHSJ by Magggas)

After adding it, Openbor crashes! What's wrong??

Since I already used 9 freespecials ans one follow I used
Freespecial 10
and follow2

I add it in the header for the first imput.
com A2 freespecial10

And this is my moves animations
anim freespecial10# hard attack 1
followanim 2
followcond 1
loop 0
forcedirection -1
jugglecost 1
offset 96 177
bbox 75 84 44 96
delay 2
sound data/sounds/a1.wav
frame data/chars/rachel/a1.gif
sound data/chars/rachel/kiai1.wav
delay 6
attack 98 82 59 43 5 0 0 0 9 0
dropv 1 0.8
frame data/chars/rachel/a2.gif
delay 3
attack 0 0 0 0 0 0
frame data/chars/rachel/a1.gif

anim follow2# hard attack 2
delay 2
loop 0
forcedirection -1
jugglecost 1
offset 96 177
bbox 63 80 63 98
sound data/sounds/a2.wav
frame data/chars/rachel/at1.gif
sound data/chars/rachel/kiai2.wav
frame data/chars/rachel/at2.gif
frame data/chars/rachel/at3.gif
delay 6
attack 104 81 60 44 8 0 0 0 12 0
dropv 1 0.8
frame data/chars/rachel/at4.gif
attack 0 0 0 0 0 0
delay 3
frame data/chars/rachel/at5.gif
delay 3
frame data/chars/rachel/at6.gif
 
I've tested with that
maxfreespecials 15

And "deleted" it since it's limited to 99 by default.
#maxfreespecials 15

I don't know what's wrong.

When I delete the new moves, the character works...
 
OK
I put it to max 15.

The move I'm making is 10 + 11 for cancel
I have a total of 11 freespecials

Openbor always crashes!

Logfile says :
Command 'maxfreespecials' not understood in file 'data/chars/rachel/rachel.txt'!
(But it not seems to be the thing that make it crash)
If I add it, but delete my new moves anims the game still runs.

I just freaking don't understand this logic... too complicated for a spriter with no skills in programing :-\
 
My combo system works this way
regular combo (six imput)
atchain 1 1 2 3 4 5:
attack1
attack2
attack3
attack4
attack5

I've added Hard combo with "A2" (two imput linked by cancel)
freespecial10
freespecial11

The problem is it make infinite loops. ???
After any of the hard attacks you can restart normal combo.
I would have prefered something like that:

AAAAAA
AHH
AAHH
AAAHH
AAAAHH
HA

This is not laugh... :P

Very close to what Magggas use in his WHSJ mod.
 
First, please stop changing the subject of your thread. If you have new unrelated questions they should get a thread of their own so other members who have similar issues in the future might be able to search/index them.

Now as for preventing infinities there are a TON of things you can do, including but not limited to:

[list type=decimal]
[*]Who cares?: In some cases, who gives a flip if you can do infinities? For mooks in a beat em' up, smashing them to pieces in creative ways is half the fun and has 0 effect on game balance.
[*]Combodelay: OpenBOR has a setting that allows you to control the timing of auto combos so the "sweet spot" of delaying hits to keep a target on his feet but still stunned simply doesn't exist.
[*]Spacing: This is how one on one fighters do it. The concept is simple and effective. It requires scripting or a bit of ugly hacking, but either isn't difficult. Just force the defender back a bit on each hit - or push the attacker away if the defender is not able to move (i.e. against a wall). Usually the attacker is pushed back a bit less than the defender would be so that a few more hits can be obtained on a cornered opponent.
[*]Breakout: This is the most common but probably the worst way to break infinities. OpenBOR allows the AI to perform Special2 after taking so many consecutive hits. While this does work it is not very adaptable and extremely annoying to a player. Use it VERY sparingly. If every boss is immune to combos, what's the point of having combos at all?
[*]Support: Always assuring the player is out numbered helps. It's hard to pull an infinity when you have someone punching you in the back, and just as hard to trap all onscreen enemies (usually). Note that out numbered does NOT mean filling the screen with everything but the kitchen sink. That's a common and very noobish mistake.
[*]Difficulty: This goes a bit back to "who cares?", but is a bit more nuanced. Worrying less about infinities and more about overall balance is a difficult concept for many new designers to grasp, but it makes all the difference. Clever enemies who are good at defending themselves without cheating or breaking the rules that players are bound to makes for a much more fun experience than relying on some arbitrary trick. Look at Streets of Rage 2. The player characters easily overpower every single enemy in the game, including the bosses. Moreover all but a tiny handful are highly vulnerable to infinite combos. Yet even one on one fights like Shiva and R. Bear can be quite challenging because these enemies are good at protecting themselves from your moves, and the game itself is widely considered a pinnacle of the side scrolling golden age.
[/list]

Look at some of those and maybe a few of your own; and you'll find the solution. HTH.

DC

 
Yea, i dont care aqbout infinites in scrolling beatemup but in vs fightin games they are cheating.
Unless you want VS mode ?
Juggglepoints solve infinites problem.
 
nedflandeurse said:
My combo system works this way
regular combo (six imput)
atchain 1 1 2 3 4 5:
attack1
attack2
attack3
attack4
attack5

I've added Hard combo with "A2" (two imput linked by cancel)
freespecial10
freespecial11

The problem is it make infinite loops. ???
After any of the hard attacks you can restart normal combo.
I would have prefered something like that:

AAAAAA
AHH
AAHH
AAAHH
AAAAHH
HA

This is not laugh... :P

Very close to what Magggas use in his WHSJ mod.

for the various AHH, AAHH, AAAHH, AAAAHH combo, use a cancel in your attack1, 2 etc... that make them perform freespecial10 by pressing the a2 button.
for the last HA combo, you can simply create another freespecial (let's say freespecial12) linked to your freespecial 10 that is perfectly similiar to the final light attack (attack5, isn't it?).

have you tried it?
 
I'll try it!
Thanks, Pierwolf!
EDIT---------------
Actually, all the combo starting with A are already working!
The real problem is avoiding going back to A from H
to avoid something like that AHAHAHHAAAHHAHAHAHHAAA
Seems complicated...

Damon Caskey said:
First, please stop changing the subject of your thread. If you have new unrelated questions they should get a thread of their own so other members who have similar issues in the future might be able to search/index them.

Sorry about it, I would had not wanted to create 6 threads for my problems and blocking the "recent" panel.

Yes, it's far better to split them, so other noobish creators like me, can use them.
Thanks for pointing it out! :)

Damon Caskey said:
Now as for preventing infinities there are a TON of things you can do, including but not limited to:

Who cares?

I like crazy juggling combo, the enemy always finishes by going out of range, so no problem.
But.
During the test of my char I just did a simple stand combo
Normal attack1 (A)
Hard attack1 (H)
after mashing AHAHAHAHAHAHAHAHAHAHAHAHAHAHAHAH....
I just released an "infnite" more than 40 hits...
 
you have logical mistake there, just fix it and patch the hole you made with cancel.
Its obvious that you should never cancel from 5 to 1 in 12345 chain attack.
If you cancel then you should always do it to new not performed yet freespecial.This way you avoid infinites.Dont cancel to previous attacks.
 
I agree with Damon Caskey about who cares? part. Before you can perform infinites, enemy must have big HP. So if your enemies only have small HP, player won't do much with infinites.

Anyways, a scripted solution would require didhitscript which records hit status of certain attack. This hit status is used to change Hardcombo animation (or other attack animation) to finisher one if it has reached certain limit.
 
Thanks to both, but can you be more specific? It could really help me.

Also, I'm wondering if I havn't activated to crazy/random combo feature without knowing it... I can say all moves seems to combo without logic...


EDIT : I just added a cancel from H to A
A imput send to a clone of last A combo (attack5) - but as a new freespecial
And it overrides any infinite.
Pierwolf send me this simple but effective trick.

Thanks to everybody. Going back to modding... :)
 
Back
Top Bottom