FakePopulation: big update
+ edit ZombieManager to avoid fakes being motherzombie
This commit is contained in:
parent
7c18d0ce43
commit
8bf4b9363b
@ -1,4 +1,6 @@
|
|||||||
#include <sourcemod>
|
#include <sourcemod>
|
||||||
|
#include <sdktools>
|
||||||
|
#include <cstrike>
|
||||||
|
|
||||||
#pragma semicolon 1
|
#pragma semicolon 1
|
||||||
#pragma newdecls required
|
#pragma newdecls required
|
||||||
@ -6,7 +8,8 @@
|
|||||||
#define NUMBEROFNAMES 62
|
#define NUMBEROFNAMES 62
|
||||||
char g_cName[NUMBEROFNAMES][] = {"Dwelitram", "Gwyri", "Caredus", "Arerawia", "Vilali", "Astiwiel", "Vardonydd", "Ybaossa", "Umyk", "Nico50Pax", "Onand", "Thelian", "Nydaleth", "Chomarin", "Traedien", "Miev", "Kaaede", "Koamond", "TheRottenBenson", "BigLegend2017", "TRIGGEREDHarambexXx", "InPepe2016", "xXxMaster2012", "InBoixXx", "TheKopsing", "Cornelius", "Gustavo", "Bryant", "Winfred", "Nicolas", "Mitchel", "Dana", "Carrol", "Darell", "Ruben", "Jeromy", "Wade", "Scotty", "Salvatore", "Kory", "Don", "Morgan", "Kurtis", "Federico", "Darin", "css-ru", "aimbot", "lastkraftwagenfahrzeug", "edger", "clownface", "слово", "счастливый", "kara", "puta", "meow", "uncle sam", "FunBun", "Counter-Strike.Com.Ua", "For-css.Ru", "BOBO", "", "."};
|
char g_cName[NUMBEROFNAMES][] = {"Dwelitram", "Gwyri", "Caredus", "Arerawia", "Vilali", "Astiwiel", "Vardonydd", "Ybaossa", "Umyk", "Nico50Pax", "Onand", "Thelian", "Nydaleth", "Chomarin", "Traedien", "Miev", "Kaaede", "Koamond", "TheRottenBenson", "BigLegend2017", "TRIGGEREDHarambexXx", "InPepe2016", "xXxMaster2012", "InBoixXx", "TheKopsing", "Cornelius", "Gustavo", "Bryant", "Winfred", "Nicolas", "Mitchel", "Dana", "Carrol", "Darell", "Ruben", "Jeromy", "Wade", "Scotty", "Salvatore", "Kory", "Don", "Morgan", "Kurtis", "Federico", "Darin", "css-ru", "aimbot", "lastkraftwagenfahrzeug", "edger", "clownface", "слово", "счастливый", "kara", "puta", "meow", "uncle sam", "FunBun", "Counter-Strike.Com.Ua", "For-css.Ru", "BOBO", "", "."};
|
||||||
|
|
||||||
bool g_bFakePopulation[MAXPLAYERS+1];
|
bool g_bFakePopulation[MAXPLAYERS + 1];
|
||||||
|
int g_iLatency[MAXPLAYERS + 1];
|
||||||
|
|
||||||
//----------------------------------------------------------------------------------------------------
|
//----------------------------------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
@ -16,7 +19,7 @@ public Plugin myinfo =
|
|||||||
name = "ImprovedHitboxes", //camouflage
|
name = "ImprovedHitboxes", //camouflage
|
||||||
author = "Neon + Dogan",
|
author = "Neon + Dogan",
|
||||||
description = "Handle Hitboxes via Plugin",
|
description = "Handle Hitboxes via Plugin",
|
||||||
version = "2.0",
|
version = "3.0",
|
||||||
url = "https://steamcommunity.com/id/n3ontm"
|
url = "https://steamcommunity.com/id/n3ontm"
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -39,6 +42,7 @@ public void OnPluginEnd()
|
|||||||
if(g_bFakePopulation[i])
|
if(g_bFakePopulation[i])
|
||||||
{
|
{
|
||||||
g_bFakePopulation[i] = false;
|
g_bFakePopulation[i] = false;
|
||||||
|
g_iLatency[i] = 0;
|
||||||
KickClientEx(i);
|
KickClientEx(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -50,12 +54,19 @@ public void OnPluginEnd()
|
|||||||
public Action Command_DebugFakes(int client, int argc)
|
public Action Command_DebugFakes(int client, int argc)
|
||||||
{
|
{
|
||||||
int iFakes = 0;
|
int iFakes = 0;
|
||||||
|
int iFakesInTeam = 0;
|
||||||
|
|
||||||
for(int i = 1; i <= MaxClients; i++)
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
{
|
{
|
||||||
if (g_bFakePopulation[i])
|
if (g_bFakePopulation[i])
|
||||||
iFakes++;
|
iFakes++;
|
||||||
|
|
||||||
|
if (g_bFakePopulation[i] && GetClientTeam(i) > 0)
|
||||||
|
iFakesInTeam++;
|
||||||
}
|
}
|
||||||
ReplyToCommand(client, "[SM] There are currently %d Fake Players.", iFakes);
|
|
||||||
|
ReplyToCommand(client, "[SM] There are currently %d Fake Players, from which %d are in Spectate.", iFakes, iFakes - iFakesInTeam);
|
||||||
|
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -76,7 +87,10 @@ public void OnClientDisconnect(int client)
|
|||||||
if (client > 0)
|
if (client > 0)
|
||||||
{
|
{
|
||||||
if(g_bFakePopulation[client])
|
if(g_bFakePopulation[client])
|
||||||
|
{
|
||||||
g_bFakePopulation[client] = false;
|
g_bFakePopulation[client] = false;
|
||||||
|
g_iLatency[client] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if (!IsFakeClient(client))
|
if (!IsFakeClient(client))
|
||||||
CheckPopulation();
|
CheckPopulation();
|
||||||
@ -96,36 +110,70 @@ public void CheckPopulation()
|
|||||||
}
|
}
|
||||||
|
|
||||||
int iFakes = 0;
|
int iFakes = 0;
|
||||||
|
int iFakesInTeam = 0;
|
||||||
|
|
||||||
for(int i = 1; i <= MaxClients; i++)
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
{
|
{
|
||||||
if (g_bFakePopulation[i])
|
if (g_bFakePopulation[i])
|
||||||
iFakes++;
|
iFakes++;
|
||||||
|
|
||||||
|
if (g_bFakePopulation[i] && GetClientTeam(i) > 0)
|
||||||
|
iFakesInTeam++;
|
||||||
}
|
}
|
||||||
|
|
||||||
int iFakesNeeded = 0;
|
int iFakesNeeded = 0;
|
||||||
|
int iFakesInTeamNeeded = 0;
|
||||||
|
|
||||||
if (iPlayers > 61)
|
if (iPlayers > 61)
|
||||||
|
{
|
||||||
iFakesNeeded = 0;
|
iFakesNeeded = 0;
|
||||||
|
}
|
||||||
else if(iPlayers > 60)
|
else if(iPlayers > 60)
|
||||||
|
{
|
||||||
iFakesNeeded = 1;
|
iFakesNeeded = 1;
|
||||||
|
iFakesInTeamNeeded = 0;
|
||||||
|
}
|
||||||
else if(iPlayers > 55)
|
else if(iPlayers > 55)
|
||||||
|
{
|
||||||
iFakesNeeded = 3;
|
iFakesNeeded = 3;
|
||||||
|
iFakesInTeamNeeded = 2;
|
||||||
|
}
|
||||||
|
else if(iPlayers > 40)
|
||||||
|
{
|
||||||
|
iFakesInTeamNeeded = 3;
|
||||||
|
}
|
||||||
else if (iPlayers > 20)
|
else if (iPlayers > 20)
|
||||||
|
{
|
||||||
iFakesNeeded = 4;
|
iFakesNeeded = 4;
|
||||||
|
iFakesInTeamNeeded = 2;
|
||||||
|
}
|
||||||
else if (iPlayers > 10)
|
else if (iPlayers > 10)
|
||||||
|
{
|
||||||
iFakesNeeded = 3;
|
iFakesNeeded = 3;
|
||||||
|
iFakesInTeamNeeded = 1;
|
||||||
|
}
|
||||||
else if (iPlayers > 5)
|
else if (iPlayers > 5)
|
||||||
|
{
|
||||||
iFakesNeeded = 2;
|
iFakesNeeded = 2;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
iFakesNeeded = 0;
|
iFakesNeeded = 0;
|
||||||
|
iFakesInTeamNeeded = 0;
|
||||||
|
}
|
||||||
|
|
||||||
if(iFakesNeeded == iFakes)
|
if (iFakes != iFakesNeeded)
|
||||||
return;
|
{
|
||||||
|
|
||||||
while (iFakes < iFakesNeeded)
|
while (iFakes < iFakesNeeded)
|
||||||
{
|
{
|
||||||
int RandomName = GetRandomInt(0, NUMBEROFNAMES - 1);
|
int RandomName = GetRandomInt(0, NUMBEROFNAMES - 1);
|
||||||
int iIndex = CreateFakeClient(g_cName[RandomName]);
|
int iIndex = CreateFakeClient(g_cName[RandomName]);
|
||||||
g_bFakePopulation[iIndex] = true;
|
g_bFakePopulation[iIndex] = true;
|
||||||
|
g_iLatency[iIndex] = GetRandomInt(30, 120);
|
||||||
|
AdminId FakeAdmin = CreateAdmin();
|
||||||
|
SetAdminFlag(FakeAdmin, Admin_Custom6, true);
|
||||||
|
SetUserAdmin(iIndex, FakeAdmin, true);
|
||||||
|
CS_SetClientClanTag(iIndex, "UNLOZE");
|
||||||
iFakes++;
|
iFakes++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,10 +184,58 @@ public void CheckPopulation()
|
|||||||
if(g_bFakePopulation[i])
|
if(g_bFakePopulation[i])
|
||||||
{
|
{
|
||||||
g_bFakePopulation[i] = false;
|
g_bFakePopulation[i] = false;
|
||||||
|
g_iLatency[i] = 0;
|
||||||
KickClientEx(i);
|
KickClientEx(i);
|
||||||
iFakes--;
|
iFakes--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (iFakes == iFakesNeeded && iFakesInTeam != iFakesInTeamNeeded)
|
||||||
|
{
|
||||||
|
while (iFakesInTeam < iFakesInTeamNeeded)
|
||||||
|
{
|
||||||
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
|
{
|
||||||
|
if(g_bFakePopulation[i] && GetClientTeam(i) < 1)
|
||||||
|
{
|
||||||
|
ChangeClientTeam(i, CS_TEAM_CT);
|
||||||
|
FakeClientCommandEx(i, "joinclass");
|
||||||
|
iFakesInTeam++;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (iFakesInTeam > iFakesInTeamNeeded)
|
||||||
|
{
|
||||||
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
|
{
|
||||||
|
if(g_bFakePopulation[i] && GetClientTeam(i) > 0)
|
||||||
|
{
|
||||||
|
ChangeClientTeam(i, CS_TEAM_SPECTATOR);
|
||||||
|
iFakesInTeam--;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void OnGameFrame()
|
||||||
|
{
|
||||||
|
for(int i = 1; i <= MaxClients; i++)
|
||||||
|
{
|
||||||
|
if(g_bFakePopulation[i])
|
||||||
|
{
|
||||||
|
int iResEnt = GetPlayerResourceEntity();
|
||||||
|
|
||||||
|
if(iResEnt == -1)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SetEntProp(iResEnt, Prop_Send, "m_iPing", g_iLatency[i], _, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
@ -71,7 +71,7 @@ public void ZR_OnClientHumanPost(int client, bool respawn, bool protect)
|
|||||||
|
|
||||||
public Action ZR_OnClientInfect(int &client, int &attacker, bool &motherInfect, bool &respawnOverride, bool &respawn)
|
public Action ZR_OnClientInfect(int &client, int &attacker, bool &motherInfect, bool &respawnOverride, bool &respawn)
|
||||||
{
|
{
|
||||||
if(g_bTestRound || (GetClientIdleTime(client) > g_iAFKTime && motherInfect))
|
if(g_bTestRound || (GetClientIdleTime(client) > g_iAFKTime && motherInfect) || IsFakeClient(client))
|
||||||
return Plugin_Handled;
|
return Plugin_Handled;
|
||||||
|
|
||||||
return Plugin_Continue;
|
return Plugin_Continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user