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 <sdktools>
 | 
			
		||||
#include <cstrike>
 | 
			
		||||
 | 
			
		||||
#pragma semicolon 1
 | 
			
		||||
#pragma newdecls required
 | 
			
		||||
@ -6,7 +8,8 @@
 | 
			
		||||
#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", "", "."};
 | 
			
		||||
 | 
			
		||||
bool g_bFakePopulation[MAXPLAYERS+1];
 | 
			
		||||
bool g_bFakePopulation[MAXPLAYERS + 1];
 | 
			
		||||
int g_iLatency[MAXPLAYERS + 1];
 | 
			
		||||
 | 
			
		||||
//----------------------------------------------------------------------------------------------------
 | 
			
		||||
// Purpose:
 | 
			
		||||
@ -16,7 +19,7 @@ public Plugin myinfo =
 | 
			
		||||
	name        = "ImprovedHitboxes", //camouflage
 | 
			
		||||
	author      = "Neon + Dogan",
 | 
			
		||||
	description = "Handle Hitboxes via Plugin",
 | 
			
		||||
	version     = "2.0",
 | 
			
		||||
	version     = "3.0",
 | 
			
		||||
	url         = "https://steamcommunity.com/id/n3ontm"
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@ -39,6 +42,7 @@ public void OnPluginEnd()
 | 
			
		||||
		if(g_bFakePopulation[i])
 | 
			
		||||
		{
 | 
			
		||||
			g_bFakePopulation[i] = false;
 | 
			
		||||
			g_iLatency[i] = 0;
 | 
			
		||||
			KickClientEx(i);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
@ -50,12 +54,19 @@ public void OnPluginEnd()
 | 
			
		||||
public Action Command_DebugFakes(int client, int argc)
 | 
			
		||||
{
 | 
			
		||||
	int iFakes = 0;
 | 
			
		||||
	int iFakesInTeam = 0;
 | 
			
		||||
 | 
			
		||||
	for(int i = 1; i <= MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (g_bFakePopulation[i])
 | 
			
		||||
			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;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -76,7 +87,10 @@ public void OnClientDisconnect(int client)
 | 
			
		||||
	if (client > 0)
 | 
			
		||||
	{
 | 
			
		||||
		if(g_bFakePopulation[client])
 | 
			
		||||
		{
 | 
			
		||||
			g_bFakePopulation[client] = false;
 | 
			
		||||
			g_iLatency[client] = 0;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (!IsFakeClient(client))
 | 
			
		||||
				CheckPopulation();
 | 
			
		||||
@ -96,50 +110,132 @@ public void CheckPopulation()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int iFakes = 0;
 | 
			
		||||
	int iFakesInTeam = 0;
 | 
			
		||||
 | 
			
		||||
	for(int i = 1; i <= MaxClients; i++)
 | 
			
		||||
	{
 | 
			
		||||
		if (g_bFakePopulation[i])
 | 
			
		||||
			iFakes++;
 | 
			
		||||
 | 
			
		||||
		if (g_bFakePopulation[i] && GetClientTeam(i) > 0)
 | 
			
		||||
			iFakesInTeam++;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int iFakesNeeded = 0;
 | 
			
		||||
	int iFakesInTeamNeeded = 0;
 | 
			
		||||
 | 
			
		||||
	if (iPlayers > 61)
 | 
			
		||||
		iFakesNeeded = 0;
 | 
			
		||||
	else if(iPlayers > 60)
 | 
			
		||||
		iFakesNeeded = 1;
 | 
			
		||||
	else if(iPlayers > 55)
 | 
			
		||||
		iFakesNeeded = 3;
 | 
			
		||||
	else if (iPlayers > 20)
 | 
			
		||||
		iFakesNeeded = 4;
 | 
			
		||||
	else if (iPlayers > 10)
 | 
			
		||||
		iFakesNeeded = 3;
 | 
			
		||||
	else if (iPlayers > 5)
 | 
			
		||||
		iFakesNeeded = 2;
 | 
			
		||||
	else
 | 
			
		||||
		iFakesNeeded = 0;
 | 
			
		||||
 | 
			
		||||
	if(iFakesNeeded == iFakes)
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
	while (iFakes < iFakesNeeded)
 | 
			
		||||
	{
 | 
			
		||||
		int RandomName = GetRandomInt(0, NUMBEROFNAMES - 1);
 | 
			
		||||
		int iIndex = CreateFakeClient(g_cName[RandomName]);
 | 
			
		||||
		g_bFakePopulation[iIndex] = true;
 | 
			
		||||
		iFakes++;
 | 
			
		||||
		iFakesNeeded = 0;
 | 
			
		||||
	}
 | 
			
		||||
	else if(iPlayers > 60)
 | 
			
		||||
	{
 | 
			
		||||
		iFakesNeeded = 1;
 | 
			
		||||
		iFakesInTeamNeeded = 0;
 | 
			
		||||
	}
 | 
			
		||||
	else if(iPlayers > 55)
 | 
			
		||||
	{
 | 
			
		||||
		iFakesNeeded = 3;
 | 
			
		||||
		iFakesInTeamNeeded = 2;
 | 
			
		||||
	}
 | 
			
		||||
	else if(iPlayers > 40)
 | 
			
		||||
	{
 | 
			
		||||
		iFakesInTeamNeeded = 3;
 | 
			
		||||
	}
 | 
			
		||||
	else if (iPlayers > 20)
 | 
			
		||||
	{
 | 
			
		||||
		iFakesNeeded = 4;
 | 
			
		||||
		iFakesInTeamNeeded = 2;
 | 
			
		||||
	}
 | 
			
		||||
	else if (iPlayers > 10)
 | 
			
		||||
	{
 | 
			
		||||
		iFakesNeeded = 3;
 | 
			
		||||
		iFakesInTeamNeeded = 1;
 | 
			
		||||
	}
 | 
			
		||||
	else if (iPlayers > 5)
 | 
			
		||||
	{
 | 
			
		||||
		iFakesNeeded = 2;
 | 
			
		||||
	}
 | 
			
		||||
	else
 | 
			
		||||
	{
 | 
			
		||||
		iFakesNeeded = 0;
 | 
			
		||||
		iFakesInTeamNeeded = 0;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	while (iFakes > iFakesNeeded)
 | 
			
		||||
	if (iFakes != iFakesNeeded)
 | 
			
		||||
	{
 | 
			
		||||
		for(int i = 1; i <= MaxClients; i++)
 | 
			
		||||
		while (iFakes < iFakesNeeded)
 | 
			
		||||
		{
 | 
			
		||||
			if(g_bFakePopulation[i])
 | 
			
		||||
			int RandomName = GetRandomInt(0, NUMBEROFNAMES - 1);
 | 
			
		||||
			int iIndex = CreateFakeClient(g_cName[RandomName]);
 | 
			
		||||
			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++;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		while (iFakes > iFakesNeeded)
 | 
			
		||||
		{
 | 
			
		||||
			for(int i = 1; i <= MaxClients; i++)
 | 
			
		||||
			{
 | 
			
		||||
				g_bFakePopulation[i] = false;
 | 
			
		||||
				KickClientEx(i);
 | 
			
		||||
				iFakes--;
 | 
			
		||||
				break;
 | 
			
		||||
				if(g_bFakePopulation[i])
 | 
			
		||||
				{
 | 
			
		||||
					g_bFakePopulation[i] = false;
 | 
			
		||||
					g_iLatency[i] = 0;
 | 
			
		||||
					KickClientEx(i);
 | 
			
		||||
					iFakes--;
 | 
			
		||||
					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)
 | 
			
		||||
{
 | 
			
		||||
	if(g_bTestRound || (GetClientIdleTime(client) > g_iAFKTime && motherInfect))
 | 
			
		||||
	if(g_bTestRound || (GetClientIdleTime(client) > g_iAFKTime && motherInfect) || IsFakeClient(client))
 | 
			
		||||
		return Plugin_Handled;
 | 
			
		||||
 | 
			
		||||
	return Plugin_Continue;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user