Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Entering a tiebreaker restarts the track from round 1 #36

Open
Voyager006 opened this issue Dec 4, 2020 · 4 comments
Open

Entering a tiebreaker restarts the track from round 1 #36

Voyager006 opened this issue Dec 4, 2020 · 4 comments
Labels
bug Something isn't working

Comments

@Voyager006
Copy link
Collaborator

Voyager006 commented Dec 4, 2020

Increasing the points limit during the last round of a track (a round when at least one player will reach the points limit) will not stop the game from finishing the match and proceeding to the next track. This is documented (https://methods.xaseco.org/methodstmf.php), although this means that entering a tiebreaker in the last round requires a match restart.

In addition, it is not trivial to set the points limit for the current map only; setting the points limit has an effect for all upcoming tracks.

A solution, although rigid, is to enforce the number of rounds with a /ko rounds command and somehow shadow calls to /round (plugins can't listen to predefined commands in TMGery). Then, one might choose to

  • alter the points limit underway, or
  • find a way to restart the track (if needed) once the given number of rounds has been reached

Though, for the latter, the points limit will be misleading and the restart has to be done before EndRound it seems.

So far the only recommendation is to avoid using tiebreakers when using multiple rounds.

@Voyager006 Voyager006 added the bug Something isn't working label Dec 4, 2020
@Voyager006
Copy link
Collaborator Author

Voyager006 commented Dec 4, 2020

It is possible to set array(0) in SetRoundCustomPoints if you add the optional boolean value, i.e. no points will be given. Then all players will stay at 0 points.

The problem is that map skips have to be done before EndRound. It is possible to achieve this by keeping track of the number of submitted scores in onPlayerFinish (for Rounds only, of course) and skip once all players have set a score. It will be quite abrupt though.

@Voyager006
Copy link
Collaborator Author

Voyager006 commented Dec 15, 2020

A solution which involves altering the points limit underway, which should be able to be used with /round, is as following:

  • At the beginning of each round, if it's not a tiebreaker, note down the points limit
  • If a tiebreaker should be initiated
    • If it's the last round, restart the map with a points limit of 1
    • Otherwise, increment the points limit with 1
  • When exiting the tiebreaker, apply the points limit back again

However, there's no guarantee against stuff that breaks when using /round midst a tiebreaker.

@Voyager006 Voyager006 changed the title Entering a tiebreaker in the last round restarts the track from round 1 Entering a tiebreaker restarts the track from round 1 Dec 15, 2020
@w1lla
Copy link

w1lla commented Mar 21, 2021

http://www.tm-forum.com/viewtopic.php?f=28&t=16101&p=118300&hilit=ManualFlow#p118228

With this you can control how the server should need to respond to actual stuff like tiebreakers or disconnects for instance.

@Voyager006
Copy link
Collaborator Author

Voyager006 commented Mar 21, 2021

Manual flow control is a good suggestion, however, I'm not sure if the script is able to avoid the Play -> Podium transition. (Or maybe the script has to stall the transition until the tiebreaker is over?) I don't know much about it though. May need to play with it for a bit.

I wonder if you can use ForceScores and manually undo the scores right before the round ends. Should investigate that option too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants