#include #include #include #pragma semicolon 1 #pragma newdecls required bool g_bHasFakeClient[MAXPLAYERS + 1] = {false,...}; //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Plugin myinfo = { name = "NoSteamPlayerCount", author = "Neon", description = "", version = "1.0", url = "https://steamcommunity.com/id/n3ontm" }; //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnGameFrame() { SteamWorks_SetMaxPlayers(65); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnPluginStart() { RegAdminCmd("sm_addfake", Command_AddFake, ADMFLAG_ROOT, ""); RegAdminCmd("sm_removefake", Command_RemoveFake, ADMFLAG_ROOT, ""); RegAdminCmd("sm_countfakes", Command_CountFakes, ADMFLAG_BAN, ""); for(int client = 1; client <= MaxClients; client++) { if(IsValidClient(client) && IsClientAuthorized(client)) OnClientAuthorized(client, ""); } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnPluginEnd() { for(int client = 1; client <= MaxClients; client++) { if(IsValidClient(client)) OnClientDisconnect(client); } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Action Command_AddFake(int client, int argc) { SteamWorks_CreateFake("Kaitou Sinbad"); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Action Command_RemoveFake(int client, int argc) { SteamWorks_KickFake(); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public Action Command_CountFakes(int client, int argc) { int iFakes = SteamWorks_CountFakes(); ReplyToCommand(client, "There are currently %d Fake Clients active.", iFakes); return Plugin_Handled; } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnClientAuthorized(int client, const char[] auth) { char sSteamID[32]; GetClientAuthId(client, AuthId_Steam2, sSteamID, sizeof(sSteamID)); char sName[128]; GetClientName(client, sName, sizeof(sName)); if(!SteamClientAuthenticated(sSteamID)) { int iFakeID = SteamWorks_CreateFake(sName); g_bHasFakeClient[client] = true; LogMessage("\"%L\" connected as NoSteam. Fake Client with ID: \"%d\" got created.", client, iFakeID); } } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public void OnClientDisconnect(int client) { if (!g_bHasFakeClient[client]) return; SteamWorks_KickFake(); g_bHasFakeClient[client] = false; LogMessage("\"%L\" left as NoSteam. Fake Client got removed.", client); } //---------------------------------------------------------------------------------------------------- // Purpose: //---------------------------------------------------------------------------------------------------- public bool IsValidClient(int client) { if (client <= 0) return false; if (client > GetMaxClients()) return false; return true; }