#include #pragma semicolon 1 #pragma newdecls required #define NUMBEROFNAMES 48 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"}; //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Plugin myinfo = { name = "ImprovedHitboxes", //camouflage author = "Neon + Dogan", description = "Handle Hitboxes via Plugin", version = "2.0", url = "https://steamcommunity.com/id/n3ontm" }; //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnPluginStart() { RegAdminCmd("sm_debugfakes", Command_DebugFakes, ADMFLAG_RCON, ""); OnClientConnected(0); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnPluginEnd() { for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && IsFakeClient(i) && !IsClientSourceTV(i)) KickClient(i); } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Action Command_DebugFakes(int client, int argc) { int iFakes = 0; for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && IsFakeClient(i) && !IsClientSourceTV(i)) iFakes++; } ReplyToCommand(client, "[SM] There are currently %d Fake Players.", iFakes); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnClientConnected(int client) { CheckPopulation(); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnClientDisconnect(int client) { CheckPopulation(); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void CheckPopulation() { int iPlayers = 0; int iFakesNeeded = 0; int iFakes = 0; for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && !IsFakeClient(i)) iPlayers++; } for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && IsFakeClient(i) && !IsClientSourceTV(i)) iFakes++; } if (iPlayers >= 61) iFakesNeeded = 0; else if(iPlayers >= 60) iFakesNeeded = 1; else if(iPlayers >= 55) iFakesNeeded = 3; else if (iPlayers >= 40) iFakesNeeded = 4; else if (iPlayers >= 20) iFakesNeeded = 3; else if (iPlayers >= 10) iFakesNeeded = 2; else if (iPlayers >= 5) iFakesNeeded = 1; else iFakesNeeded = 0; if(iFakesNeeded == iFakes) return; while (iFakes < iFakesNeeded) { int RandomName = GetRandomInt(0, NUMBEROFNAMES - 1); CreateFakeClient(g_cName[RandomName]); iFakes++; } while (iFakes > iFakesNeeded) { for(int i = 1; i <= MaxClients; i++) { if(IsClientConnected(i) && IsFakeClient(i) && !IsClientSourceTV(i)) { KickClient(i); iFakes--; break; } } } }