Quick Explanation(vban)
Re: Quick Explanation(vban)
I'm not sure when this is occurring and why... But I'll try to reenact this event.
Re: Quick Explanation(vban)
It happens to my dods server too..
XXX was kicked for command spamming: vban fff 1 in the KAC.log
Sincerely yours.
XXX was kicked for command spamming: vban fff 1 in the KAC.log
Sincerely yours.
Re: Quick Explanation(vban)
It seems others have come across with the same issue.
hlds Digest, Vol 29, Issue 58
hlds Digest, Vol 29, Issue 58
Code: Select all
After going through one of my servers Sourcemod command logs I came
across that a number of players executes those commands.
The log messages would look like:
07/18/10 13:39:10: Name<180><STEAM_0:0:123456><> executes: vmodenable 1
07/18/10 13:39:10: Name<180><STEAM_0:0:123456><> executes: vban 0 0 0
Some admins and some non-admins are reported to execute those. Yet, I
can't find them with cvarlist neither on my client or on the server.
It's a Counter-Strike Source server with:
Metamod v1.8.2
Sourcemod v1.3.4-dev
Zombiemod:Reloaded v3.0.0-b2
Does anyone have an idea what those commands do?
Re: Quick Explanation(vban)
ok we are still seeing this vban kick, I finally came across the following code(line 00169) in the sdk's.
so now we know vban is associated with in-game voice.
After hearing a few complaints from others, being kicked for muting others.
I put these 2 together, but I'm still not able to reproduce the vban command spamming kick, it seems like a random kick when someone tries to mute another that is command spamming?
so now we know vban is associated with in-game voice.
After hearing a few complaints from others, being kicked for muting others.
I put these 2 together, but I'm still not able to reproduce the vban command spamming kick, it seems like a random kick when someone tries to mute another that is command spamming?
Code: Select all
00150 bool CVoiceGameMgr::ClientCommand(CBasePlayer *pPlayer, const char *cmd)
00151 {
00152 int playerClientIndex = pPlayer->entindex() - 1;
00153 if(playerClientIndex < 0 || playerClientIndex >= m_nMaxPlayers)
00154 {
00155 VoiceServerDebug( "CVoiceGameMgr::ClientCommand: cmd %s from invalid client (%d)\n", cmd, playerClientIndex );
00156 return true;
00157 }
00158
00159 bool bBan = stricmp(cmd, "vban") == 0;
00160 if(bBan && engine->Cmd_Argc() >= 2)
00161 {
00162 for(int i=1; i < engine->Cmd_Argc(); i++)
00163 {
00164 unsigned long mask = 0;
00165 sscanf(engine->Cmd_Argv(i), "%x", &mask);
00166
00167 if(i <= VOICE_MAX_PLAYERS_DW)
00168 {
00169 VoiceServerDebug( "CVoiceGameMgr::ClientCommand: vban (0x%x) from %d\n", mask, playerClientIndex );
00170 g_BanMasks[playerClientIndex].SetDWord(i-1, mask);
00171 }
00172 else
00173 {
00174 VoiceServerDebug( "CVoiceGameMgr::ClientCommand: invalid index (%d)\n", i );
00175 }
00176 }
00177
00178 // Force it to update the masks now.
00179 //UpdateMasks();
00180 return true;
00181 }
00182 else if(stricmp(cmd, "VModEnable") == 0 && engine->Cmd_Argc() >= 2)
00183 {
00184 VoiceServerDebug( "CVoiceGameMgr::ClientCommand: VModEnable (%d)\n", !!atoi(engine->Cmd_Argv(1)) );
00185 g_PlayerModEnable[playerClientIndex] = !!atoi(engine->Cmd_Argv(1));
00186 g_bWantModEnable[playerClientIndex] = false;
00187 //UpdateMasks();
00188 return true;
00189 }
00190 else
00191 {
00192 return false;
00193 }
00194 }