Translated into the SourcePawn programming language from the ChatGPT dialect:
PHP Code:
#pragma semicolon 1
#pragma newdecls required
#include <cstrike>
ConVar
hQuota;
int
iAdd,
iRemove;
public Plugin myinfo =
{
name = "Bot Manager",
author = "Your Name",
description = "Manages bots in Counter-Strike: Source based on player round outcomes.",
version = "1.0"
}
public void OnPluginStart()
{
if(!(hQuota = FindConVar("bot_quota"))) SetFailState("Can't find convar 'bot_quota'");
ConVar cvar;
cvar = CreateConVar("sm_botmanager_add", "10", "wins_to_add_bot", _, true);
cvar.AddChangeHook(CVarChange_Add);
iAdd = cvar.IntValue;
cvar = CreateConVar("sm_botmanager_remove", "8", "wins_to_remove_bot", _, true);
cvar.AddChangeHook(CVarChange_Remove);
iRemove = cvar.IntValue;
HookEvent("player_death", Event_Death, EventHookMode_Post);
}
public void CVarChange_Add(ConVar cvar, const char[] oldValue, const char[] newValue)
{
iAdd = cvar.IntValue;
}
public void CVarChange_Remove(ConVar cvar, const char[] oldValue, const char[] newValue)
{
iRemove = cvar.IntValue;
}
public void Event_Death(Event event, const char[] eventName, bool dontBroadcast)
{
int victim = GetEventInt(event, "victim");
if(!victim || !IsClientInGame(victim))
return;
int attacker = GetEventInt(event, "attacker");
if(!attacker || attacker == victim || !IsClientInGame(attacker) || IsFakeClient(attacker))
return;
int losingTeam = GetClientTeam(victim), num = hQuota.IntValue;
if(GetClientTeam(attacker) != losingTeam)
{
if (CS_GetTeamScore(losingTeam) >= iAdd)
num++;
}
else if(!IsFakeClient(victim) && CS_GetTeamScore(5 - losingTeam) >= iRemove)
num--;
hQuota.IntValue = num;
}
But the algorithm is still flawed, LOL.
__________________