splewis / csgo-retakes

CS:GO Sourcemod plugin for a site-retake gamemode
GNU General Public License v3.0
328 stars 115 forks source link

Halftime Team Switch #102

Open SuplenC opened 7 years ago

SuplenC commented 7 years ago

Hi splewis! I have a hard time trying to set up the server for 2v2 tournament. I installed your retake mod and pug mod too, I did configured both pretty well so now only ".ready" is necessary to start the retake, but my problem is to set up midgame teamswitch. I set up mp_halftime 15, but after the halftime only the result switches, players stay in the same team. Would it be possible to set it up or you have to update that part?

splewis commented 7 years ago

You probably want to set sm_retakes_auto_set_teams 0. Otherwise the plugin manages the teams and puts the previous round winners on T side.

SuplenC commented 7 years ago

I did set it up in retakes.cfg. I can put whole configs here if you want.

Useless39rus commented 7 years ago

mp_halftime 1 does not work, tried sm_retakes_auto_set_teams 0. I also try to configure the server for a 2vs2 tournament. Correct the plugin please.

Sorry for my English.

splewis commented 7 years ago

https://github.com/splewis/csgo-retakes/commit/77bb2d3bc055dfbe8787a03d4084beb76f4a46e2 is an attempted fix.

You could test by downloaded a development build from https://ci.splewis.net/job/csgo-retakes/127/ and seeing if it works. (You just need to replace the addons/sourcemod/plugins/retakes.smx file)

Useless39rus commented 7 years ago

I use retakes-127

My configs cfg/sourcemod/retakes/retakes.cfg sm_retakes_auto_set_teams "0"

cfg/sourcemod/retakes/retakes_game.cfg mp_halftime 1

After the halftime only the result switches, players stay in the same team.

With sm_retakes_auto_set_teams "0" He writes in the chat "The game is currently full with 4 players. You are in the waiting queue." and the game goes on. 20170603161706_1

Sorry for my English.

Useless39rus commented 7 years ago

Upper posts this I played myself during the day.

And in the evening we played with a friend and that's what happened.

We've started. 20170603211346_1

That's how the sides switch after the first half. 20170603212048_1 20170603212112_1

Switching teams after the first half does not work. The result of the game is switched. T side switches over the CT, and the CT side does not switch over the T and the T side of anyone. When switching from T to CT, CT continues to play for T and put the bomb.

splewis commented 7 years ago

Try build 128.

Useless39rus commented 7 years ago

Switching sides works correctly. After switching sides, the game does not work correctly. Each new round happens to switch sides, if you played for T, then you play for CT. When my friend left the server, and I was left alone, I played CT every round, installing a bomb. 20170603222305_1 20170603222352_1

splewis commented 7 years ago

I've reverted the changes since my approach didn't work (https://github.com/splewis/csgo-retakes/commit/77bb2d3bc055dfbe8787a03d4084beb76f4a46e2 and https://github.com/splewis/csgo-retakes/commit/a71fdb71d5dcf9143c5fe19de0ab3e2f57f9c86a). I'm probably not going to get around to fixing this anytime soon.

If someone else wants to take a shot: the problem seems to be detecting that a halftime swap needs to happen before the round_announce_last_round_half like my attempt - teamlogic is done in the round_prestart event, but I think round_announce_last_round_half is called after that.

benclarkegithub commented 7 years ago

My community hosted a retakes tournament recently, so I looked into the bug. I've fixed this and created a pull request!

I also made a simple tournaments extension that adds commands like .ready and .pause, if anyone is interested in using it, keep an eye out @finalrespawn

JesusWithPants commented 7 years ago

@clarkeyio Hey, You pull request doesnt work. On build 128 the same behaviour happens (teamswap on every round) and on build 129 there is no teamswap at all.

My idea is - would it be really hard for @splewis to implement a config cvar, that disables the plugins player placement logic entirely, so other plugins (for example eBot) could take over.

metaphased commented 7 years ago

I'd love to have some sort of working form of this as a few of us are looking to setting up a retake ladder of some sort - I tried fixing it myself to no avail however :(

RavageCS commented 7 years ago

@JesusWithPants There is a cvar for manually setting teams, though ive never tried it.

https://github.com/splewis/csgo-retakes/blob/master/scripting/retakes.sp#L150

benclarkegithub commented 7 years ago

@JesusWithPants my pull request hasn't been accepted yet. If you know how to compile plugins use the fix.

Make sure you set sm_retakes_auto_set_teams 0 and mp_halftime 1

A retakes tournament extension will be released soon. It will be on the @finalrespawn organisation with simple functionality like selecting the number of players, .ready and .pause. Watch the repository for email notifications 😄

splewis commented 7 years ago

@RavageCS

This entire thread is about a bug in that cvar.

Useless39rus commented 7 years ago

@clarkeyio I checked your fix on the @finalrespawn, it does not work

I tested one.

At first I started playing for CT. The first half went right. The second half of the game started, the first round I have the hands of the CT, and should be T. Next rounds I have the hands of T. 20170613191956_1

The second time I started to play for T. The first half went right. The second half of the game began, the first round I have hands T, and should be CT. The next rounds have my CT hands, but I keep playing for T and laying the bomb. 20170613192915_1 20170613192925_1

In both cases, writes that I'm in line, but I'm in the game, not in line. After 16 rounds the game does not end. I did not check overtime, but I do not think they work either. 20170613192102_1 20170613192104_1

Forgive me for my English, I'm writing a translator through Google.

splewis commented 7 years ago

Without knowing specifically what version is being tested, any test like the above isn't useful.

If you're interested you can try build 131 (https://ci.splewis.net/job/csgo-retakes/131/) which should have this fixed - with the problem that player skins are likely wrong the first round after the half. I don't know if that's fixable easily.

benclarkegithub commented 7 years ago

The bug @Useless39rus was talking about is a recently introduced bug that valve haven't fixed yet. It happens in matchmaking too.

If you want expected behaviour while playing a tournament I would suggest setting sm_retakes_auto_set_teams "0" in retakes.cfg and mp_halftime 1, mp_match_can_clinch 1 in retakes_game.cfg.

Useless39rus commented 7 years ago

@clarkeyio Cvar mp_match_can_clinch 1 was not added to me. Tonight evening after work I'll check and report the results. Thanks for your work.

Useless39rus commented 7 years ago

@splewis I'm very interested. I'll check build 131 in the evening after work. I will report the results. Thanks for your work.

metaphased commented 7 years ago

I fired build 131 a go and still getting the same issue with sides after half time - is there any way to allow a different mod, like warmod etc, to handle the team assignments? I gave warmod a go alongside it a few times and the spawn locations work fine with it, and (aslong as there's no knife round) it starts the game well too. Obviously only if it's easier that way, otherwise yea people are still stuck on teams for the first round of a second half.

Edit Clarification: It's actually only the first round of the 2nd half that you are placed on the wrong team (you stay on the team you were on previously), after that first round it's placing me on the correct team and working fine - This was tested with me vs 1 friend

Useless39rus commented 7 years ago

@splewis There are two more problems to fix, if possible. I tested the plugin one At first I started playing for CT. The first half went right. The second half of the game started, the first round I have the hands of the CT, and should be T. Next rounds I have the hands of T. The second time I started to play for T. The first half went right. The second half of the game began, the first round I have hands T, and should be CT. The next rounds have my CT hands, but I keep playing for T and laying the bomb. Screenshots from the game above, I already laid out. Skins hands is not important, but for the beauty and correctness of the plugin would like to fix.

Useless39rus commented 7 years ago

@splewis You have done a very great job on this error. Please, do not stop. Let's finish it.

Useless39rus commented 7 years ago

@splewis Just tested with a friend plugin. Played 1 on 1, everything works correctly and without problems. And when I tested one, there were problems. Many thanks for your work.

Useless39rus commented 7 years ago

My configs

cfg/sourcemod/retakes/retakes.cfg sm_retakes_auto_set_teams "0" sm_retakes_maxplayers "4"

There are 6 players in the game, and there should be 4, and 2 should be in line in the spectators.

20170715230843_1

Useless39rus commented 7 years ago

Also during the game, T who had the bomb, went for a CT and the bomb is gone with him. T looking for a bomb, and she's already on the CT.

splewis commented 7 years ago

The purpose of the sm_retakes_auto_set_teams 0 is to make the plugin not do anything with team changes.

sm_retakes_maxplayers is supposed to be ignored if sm_retakes_auto_set_teams 0 is set.

borzaka commented 5 years ago

Any news with this issue/request?

I would like to enable halftime switch with fixed (no autobalance, no any auto switch, user would stay where joined) teams with these settings:

Edit: well, it looks like it's working with the commands above! :)