Merge pull request #418 from BenCat07/master

Fix anti-votekick
This commit is contained in:
BenCat07 2018-05-04 21:58:23 +02:00 committed by GitHub
commit f3d046ed49
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 12 deletions

View File

@ -480,17 +480,20 @@ DEFINE_HOOKED_METHOD(CreateMove, bool, void *this_, float input_sample_time,
}
if (serverlag_amount || votelogger::antikick_ticks)
{
NET_StringCmd senddata("voicemenu 0 0");
INetChannel *ch2 = (INetChannel *) g_IEngine->GetNetChannelInfo();
senddata.SetNetChannel(ch2);
senddata.SetReliable(false);
if (votelogger::antikick_ticks)
votelogger::antikick_ticks--;
if (votelogger::antikick_ticks > 10)
{
votelogger::antikick_ticks--;
for (int i = 0; i < (int) 70; i++)
g_IEngine->ServerCmd("use", false);
for (int i = 0; i < (int) 500; i++)
ch2->SendNetMsg(senddata, false);
ch2->Transmit();
}
else {
NET_StringCmd senddata("voicemenu 0 0");
INetChannel *ch2 = (INetChannel *) g_IEngine->GetNetChannelInfo();
senddata.SetNetChannel(ch2);
senddata.SetReliable(false);
else if (!votelogger::antikick_ticks)
{
for (int i = 0; i < (int) serverlag_amount; i++)
ch2->SendNetMsg(senddata, false);
ch2->Transmit();

View File

@ -13,9 +13,9 @@ namespace votelogger
static CatVar enabled(CV_SWITCH, "votelog", "0", "Log votes");
static CatVar requeue(CV_SWITCH, "votelog_requeue", "1",
"Auto requeue on vote kick", "Auto requeue on vote kick");
static CatVar anti_votekick(CV_SWITCH, "anti_votekick", "0", "requires votelog",
static CatVar anti_votekick(CV_SWITCH, "anti_votekick", "0", "anti-votekick",
"Prevent votekicks by lagging the server in a way "
"that every vote comes in delayed");
"that every vote comes is delayed.\ndo not forget to enable votelog and that this\nmakes the server be down for about 30 seconds\ncl_timeout 60 is a must");
int antikick_ticks = 0;
void user_message(bf_read &buffer, int type)
{
@ -50,9 +50,9 @@ void user_message(bf_read &buffer, int type)
if (eid == LOCAL_E->m_IDX)
{
islocalplayer = true;
if (anti_votekick)
if (anti_votekick && !antikick_ticks)
{
antikick_ticks = 600;
antikick_ticks = 66 * 100;
for (int i = 0; i < (int) 70; i++)
g_IEngine->ServerCmd("voicemenu 0 0", false);
}