geekahedron / SteamGameAutoJoin

AutoJoin script for game lobby page of 2015 Steam Summer Minigame
16 stars 16 forks source link

Still leaves current game even if target room is full #5

Closed anuva closed 9 years ago

anuva commented 9 years ago

If you are already in a room, you will not be forced to leave your current room if the target room is full, too high a level, or one you have previously quit

Actually, you will. Checked this several times (I already have 100M badge and just hopping to help).

geekahedron commented 9 years ago

Actually, you won't. Those other errors are returned from the server before a generic connection error is; and this script will not leave your game if you get any of those errors. If the room is full and you have the box checked to continue trying, it will still not leave your room until a different error is returned, at which point it will leave your room and keep trying to join.

Now, if you're cycling and trying to get into a room that has been full, there is a chance that in the time it takes for you to leave your current room and get into a new opening, you still won't get in and the room will fill up again (and in this case, you have left your room and you didn't get into the one you were trying to). There is no way to avoid some risk, but this will wait to make sure there's at least a chance of getting in before leaving the room you are in.

geekahedron commented 9 years ago

There is probably some optimizing to do in the case where you are using the new functionality to join a list of rooms; if you are cycling on a group of four or five rooms and one has a slot open we may want to switch gears and spend some time only trying to join that one room for a greater chance of getting in, but the current code works as described above.

tl;dr: You won't leave your current room if the target is full, but if you are cycling on full room and a spot opens up there's no guarantee that you are going to get it.

szymmirr commented 9 years ago

I can confirm that, I got 100M about an hour ago and decided to help others. Joined some ~30M room without a trouble but a few minutes later I found ~45M room with 1449 players. Tried to join, but it was full. But then whataheck I'm not in previous room anymore. I did one more test, joined some low room, then tried joining another 1500 one - left previous again. Now I'm stuck on some 3M room with non-scripters and nukers because I'm afraid to try joining better rooms.

Please fix this.