nmrih / source-game

Bugs and issues reporting for NMRiH1
http://store.steampowered.com/app/224260
57 stars 25 forks source link

(public) sv_vote_allow_spectators cvar does not work #907

Closed Holycrapjimhox closed 3 years ago

Holycrapjimhox commented 6 years ago

The cvar "sv_vote_allow_spectators" does not work on public build. It should prevent players that died or who entered mid round from voting on an ongoing callvote (which was called by a player that is currently alive, if sv_vote_allow_dead_call_vote is set to 0).

EDIT: It should only work if sv_vote_allow_dead_call_vote is set to 0, otherwise it makes little sense.

dysphie commented 6 years ago

This cvar works properly. It targets spectators aka Team 1 which you can't join normally. Both dead and alive survivors are Team 0 and thus not affected by it.

You'd probably benefit from a new cvar instead: sv_vote_allow_dead which would prevent deceased players from participating in an ongoing vote.

Bubka3 commented 6 years ago

I think expanding the engines definition of spectator to dead/non-spawned survivors would be a better choice. What would be the purpose of splitting that off to another cvar? I cant think of a situation where someone would want to setup the SourceTV spectator to allow voting but not dead/non-spawn spectators/survivors.

Holycrapjimhox commented 6 years ago

This report is basically to add something to stop trolls from ruining matches where only 3 or 2 players are still alive. The troll would call a restart/changemap vote while alive (if sv_vote_allow_dead_call_vote is set to 0) and then all dead players or late joiners will obviously pick YES, since they probably all want to play, and who can blame them. It's the troll's fault for exploiting the system.

So, if you add a cvar (or modify the engine's definition of dead/late joiners so that the current cvar works) to stop all types of players other than the ones that are alive from PARTICIPATING on an ongoing vote, the griefing would stop. The reason is that, the people that would decide whether the round restarts or the map changes, would be the players actually playing, not spectators who will obviously choose to ruin map progress.

felis-catus commented 6 years ago

Fixed in src-r4608.

Holycrapjimhox commented 5 years ago

It has been found that this issue is not fixed in the public 1.10 build. I'm copying the report I sent to the #tester channel on Discord:

"...we've determined that spectators can vote all the time, regardless of them being late joiners or getting killed during that round We determined that some random spectator is not allowed to vote, while others are allowed to So, tl;dr the command doesn't work at all, in fact, it makes callvotes more exploitable, because the game only requests the same number of votes as the current live player count. So, before 1.10, a team of 8 players required 4 votes to approve a callvote if the quorum ratio is set to 0.50 Now, if there are 4 players alive for example, the game requires only two votes to approve a callvote when quorum ratio is set to 0.50"

Holycrapjimhox commented 4 years ago

The issue persists as of public-1.1.1.0

felis-catus commented 3 years ago

Should be fixed for good in src-r5115.