ID:132835
 
I don't know what you call it, but I'll use a side scrolling BYOND Game as an example.

Most players will spam-mash attacks in most BYOND games with high levels of action (IE: in a side scroller it's not uncommon to find a player spamming Right/Shoot in a shooting-scroller non-stop to keep progressing forwards while firing).

The issue is, thanks to a certain update sometime in V4 of BYOND, this becomes a MASSIVE pain. Games like a Street Fighter POrt (poorly made, but a port), Megaman, etc, are harder, if not impossible, to do because the system will store these button mashes, and continue to do them.

Imagine if you will, a player who wants to do three Hadouken in street fighter, but to cover up his own inexperience, spams the Down, Downtowards, Forwards Attack combo over and over. For BYOND as a result, you would get not 3, but roughly 8 Hadouken because that person spammed it over and over.

I would seriously love to see a function where this can be turned off, so that it will not spam, but instead work like back in 3.5 where if you spam it only happens until it stops. Most Action-based games really just SUCK in actual gameplay with this problem. *Examples: Super Smash Bros BYOND, try pressing Right + Attack roughly 20 times within roughly 2-3 seconds, and then stop, you'll continue to move and attack for roughly 3 more seconds...)

Example 2 to show what system I'm complaining about:
(This is an extremist example, there's no real reason to do this exact one)

Step 1:
Program in the following Macro into your macro board, then play any of the standardly bad BYOND Anime Games (Nbotls, BSoc, Etc):

.north\n.south\n.east\n.west

Step 2: Hold button you set the macro to (on Repeat) for roughly 5-10 seconds.

Step 3: Let go, and watch your character run around like a headless chicken for roughly 2-3 minutes, :S.
If this were added I would really like it to be on a 'per macro' basis. Some macros would benefit from this and some would be completely broken.
In response to SuperAntx
SuperAntx wrote:
If this were added I would really like it to be on a 'per macro' basis. Some macros would benefit from this and some would be completely broken.

True, True. In certain games it would be broken (unfair), in others it would KILL the game itself...
I would like to see this added as well
Added an Example 2 which is more easy to reproduce for any staff who are still confused which function I'd like toggle-able.
Latoma wrote:
The issue is, thanks to a certain update sometime in V4 of BYOND, this becomes a MASSIVE pain. Games like a Street Fighter POrt (poorly made, but a port), Megaman, etc, are harder, if not impossible, to do because the system will store these button mashes, and continue to do them.

The issue is at the core of our macro system and not something that has been easy to fix to date. The problem is, BYOND has always allowed only one command per client per tick, but as of BYOND 4.0 we now support key-up macros. In the past it was simple to just discard any duplicate commands from the queue before they got sent to the server, but that can't be done now because of the need to catch key-up macros; if their commands are discarded, games that rely on receiving the key-up could think the key was being held down.

One approach to solving this, which I think we need to do at some point anyway, would be to add a new flag to procs that allows them to execute right away without having to obey the once-per-tick rule, which also means they could queue up as much as they like. This way if you have an action-oriented game, you can flag all the key-activated verbs this way.

As for the problem of key-up macros, I've been wondering for a while if it'd be feasible to go back to the old discard-all-repeats behavior for key-down macros but always let key-up command sequences into the queue. The main thing would be we'd need to modify our command parsing to include some sort of flag for that, so it's not exactly trivial but it's achievable.

Imagine if you will, a player who wants to do three Hadouken in street fighter, but to cover up his own inexperience, spams the Down, Downtowards, Forwards Attack combo over and over. For BYOND as a result, you would get not 3, but roughly 8 Hadouken because that person spammed it over and over.

For this a flag to ignore the one-command-per-tick rule would be an ideal option.

I would seriously love to see a function where this can be turned off, so that it will not spam, but instead work like back in 3.5 where if you spam it only happens until it stops. Most Action-based games really just SUCK in actual gameplay with this problem. *Examples: Super Smash Bros BYOND, try pressing Right + Attack roughly 20 times within roughly 2-3 seconds, and then stop, you'll continue to move and attack for roughly 3 more seconds...)

BYOND 3.0 wouldn't be any better on combos because the one-command-per-tick rule would get in the way. The only significant difference in behavior is that macros with more than one command didn't queue up.

Lummox JR
In response to Lummox JR
Lummox JR wrote:
BYOND 3.0 wouldn't be any better on combos because the one-command-per-tick rule would get in the way. The only significant difference in behavior is that macros with more than one command didn't queue up.

It worked much better, because it I spammed Right-Attack on a Megaman game, and I stopped, it wouldn't keep moving right, it would stop, and allow me to dodge in an instant. Such instant movements were amazingly helpful compared to 4.0+.

Imagine if you will, a player who wants to do three Hadouken in street fighter, but to cover up his own inexperience, spams the Down, Downtowards, Forwards Attack combo over and over. For BYOND as a result, you would get not 3, but roughly 8 Hadouken because that person spammed it over and over.

For this a flag to ignore the one-command-per-tick rule would be an ideal option.

You mean this would be possible in the current version or an optional flag you'd add for the next, because you said "we need to do at some point anyway... add a new flag"?