This commit is contained in:
Jackz 2023-08-15 18:52:38 -05:00
parent 46444c8693
commit c14b20b07a
No known key found for this signature in database
GPG key ID: E0BBD94CF657F603
4 changed files with 26 additions and 12 deletions

View file

@ -31,6 +31,7 @@ ConVar cvar_gamemode; char gamemode[32];
char currentMap[64]; char currentMap[64];
int numberOfPlayers = 0; int numberOfPlayers = 0;
int lastSuccessTime; int lastSuccessTime;
int campaignStartTime;
int lastErrorCode; int lastErrorCode;
int uptime; int uptime;
bool fastUpdateMode = false; bool fastUpdateMode = false;
@ -59,6 +60,7 @@ public void OnPluginStart()
cvar_gamemode.AddChangeHook(OnCvarChanged); cvar_gamemode.AddChangeHook(OnCvarChanged);
cvar_gamemode.GetString(gamemode, sizeof(gamemode)); cvar_gamemode.GetString(gamemode, sizeof(gamemode));
HookEvent("game_init", Event_GameStart);
HookEvent("heal_success", Event_HealStop); HookEvent("heal_success", Event_HealStop);
HookEvent("heal_interrupted", Event_HealStop); HookEvent("heal_interrupted", Event_HealStop);
HookEvent("player_first_spawn", Event_PlayerFirstSpawn); HookEvent("player_first_spawn", Event_PlayerFirstSpawn);
@ -101,16 +103,21 @@ void TryStartTimer(bool fast = true) {
} }
} }
public void Event_HealStart(Event event, const char[] name, bool dontBroadcast) {
void Event_GameStart(Event event, const char[] name, bool dontBroadcast) {
campaignStartTime = GetTime();
}
void Event_HealStart(Event event, const char[] name, bool dontBroadcast) {
int healing = GetClientOfUserId(event.GetInt("subject")); int healing = GetClientOfUserId(event.GetInt("subject"));
g_icBeingHealed[healing] = true; g_icBeingHealed[healing] = true;
} }
public void Event_HealStop(Event event, const char[] name, bool dontBroadcast) { void Event_HealStop(Event event, const char[] name, bool dontBroadcast) {
int healing = GetClientOfUserId(event.GetInt("subject")); int healing = GetClientOfUserId(event.GetInt("subject"));
g_icBeingHealed[healing] = false; g_icBeingHealed[healing] = false;
} }
public void Event_PlayerFirstSpawn(Event event, const char[] name, bool dontBroadcast) { void Event_PlayerFirstSpawn(Event event, const char[] name, bool dontBroadcast) {
int client = GetClientOfUserId(event.GetInt("userid")); int client = GetClientOfUserId(event.GetInt("userid"));
playerJoinTime[client] = GetTime(); playerJoinTime[client] = GetTime();
RecalculatePlayerCount(); RecalculatePlayerCount();
@ -143,7 +150,7 @@ public void OnClientPutInServer(int client) {
} }
} }
public void OnClientDisconnect_Post(int client) { public void OnClientDisconnect(int client) {
steamidCache[client][0] = '\0'; steamidCache[client][0] = '\0';
nameCache[client][0] = '\0'; nameCache[client][0] = '\0';
if(!IsFakeClient(client)) { if(!IsFakeClient(client)) {
@ -248,6 +255,7 @@ JSONObject GetObject() {
delete players; delete players;
obj.SetFloat("refreshInterval", UPDATE_INTERVAL); obj.SetFloat("refreshInterval", UPDATE_INTERVAL);
obj.SetInt("lastUpdateTime", GetTime()); obj.SetInt("lastUpdateTime", GetTime());
obj.SetInt("campaignStartTime", campaignStartTime);
return obj; return obj;
} }
@ -351,6 +359,7 @@ JSONObject GetPlayer(int client) {
int team = GetClientTeam(client); int team = GetClientTeam(client);
JSONObject player = new JSONObject(); JSONObject player = new JSONObject();
player.SetString("steamid", steamidCache[client]); player.SetString("steamid", steamidCache[client]);
player.SetInt("userId", GetClientUserId(client));
player.SetString("name", nameCache[client]); player.SetString("name", nameCache[client]);
player.SetInt("team", team); player.SetInt("team", team);
player.SetBool("isAlive", IsPlayerAlive(client)); player.SetBool("isAlive", IsPlayerAlive(client));

View file

@ -254,9 +254,9 @@ public void DB_OnConnectCheck(Database db, DBResultSet results, const char[] err
if(hKickType.IntValue > 0) { if(hKickType.IntValue > 0) {
if(public_message[0] != '\0') if(public_message[0] != '\0')
KickClient(client, "You have been banned:\n%s\n\nAppeal at jackz.me/apl/%d", public_message, id); KickClient(client, "Banned:\n%s\nAppeal at jackz.me/apl/%d", public_message, id);
else else
KickClient(client, "You have been banned from this server.\n\nAppeal at jackz.me/apl/%d", id); KickClient(client, "You have been banned from this server.\nAppeal at jackz.me/apl/%d", id);
static char query[128]; static char query[128];
g_db.Format(query, sizeof(query), "UPDATE bans SET times_tried=times_tried+1 WHERE steamid = '%s'", steamid); g_db.Format(query, sizeof(query), "UPDATE bans SET times_tried=times_tried+1 WHERE steamid = '%s'", steamid);
g_db.Query(DB_GenericCallback, query); g_db.Query(DB_GenericCallback, query);

View file

@ -357,8 +357,13 @@ void ApplyTroll(int victim, const char[] name, int activator, trollModifier modi
return; return;
} }
if(flags > -1 && Trolls[trollIndex].timerInterval > 0.0) { // Clear troll specific timer:
CreateTimer(Trolls[trollIndex].timerInterval, Trolls[trollIndex].timerFunction, victim, TIMER_REPEAT); if(Trolls[trollIndex].timerInterval > 0.0) {
if(flags > -1)
Trolls[trollIndex].timerHandles[victim] = CreateTimer(Trolls[trollIndex].timerInterval, Trolls[trollIndex].timerFunction, victim, TIMER_REPEAT);
else if(Trolls[trollIndex].timerHandles[victim] != null) {
delete Trolls[trollIndex].timerHandles[victim];
}
} }
if(!silent && SilentMenuSelected[activator]) silent = true; if(!silent && SilentMenuSelected[activator]) silent = true;

View file

@ -66,8 +66,8 @@ public void OnPluginStart() {
g_hWitchAttack = EndPrepSDKCall(); g_hWitchAttack = EndPrepSDKCall();
delete data; delete data;
hAllowEnemyTeam = CreateConVar("sm_ftt_select_enemy", "0", "Allow applying trolls to enemy teams", FCVAR_NONE, true, 0.0, true, 1.0); hAllowEnemyTeam = CreateConVar("sm_ftt_select_enemy", "0", "Allow applying trolls to enemy teams", FCVAR_NONE, true, 0.0, true, 1.0);
hThrowItemInterval = CreateConVar("sm_ftt_throw_interval", "30", "The interval in seconds to throw items. 0 to disable", FCVAR_NONE, true, 0.0); hThrowItemInterval = CreateConVar("sm_ftt_throw_interval", "30", "The interval in seconds to throw items. 0 to disable", FCVAR_NONE, true, 0.0);
hThrowItemInterval.AddChangeHook(Change_ThrowInterval); hThrowItemInterval.AddChangeHook(Change_ThrowInterval);
hAutoPunish = CreateConVar("sm_ftt_autopunish_action", "0", "Setup automatic punishment of players. Add bits together\n0=Disabled, 1=Tank magnet, 2=Special magnet, 4=Swarm, 8=InstantVomit", FCVAR_NONE, true, 0.0); hAutoPunish = CreateConVar("sm_ftt_autopunish_action", "0", "Setup automatic punishment of players. Add bits together\n0=Disabled, 1=Tank magnet, 2=Special magnet, 4=Swarm, 8=InstantVomit", FCVAR_NONE, true, 0.0);
hAutoPunishExpire = CreateConVar("sm_ftt_autopunish_expire", "0", "How many minutes of gametime until autopunish is turned off? 0 for never.", FCVAR_NONE, true, 0.0); hAutoPunishExpire = CreateConVar("sm_ftt_autopunish_expire", "0", "How many minutes of gametime until autopunish is turned off? 0 for never.", FCVAR_NONE, true, 0.0);
@ -78,7 +78,7 @@ public void OnPluginStart() {
hBotReverseFFDefend = CreateConVar("sm_ftt_bot_defend", "0", "Should bots defend themselves?\n0 = OFF\n1 = Will retaliate against non-admins\n2 = Anyone", FCVAR_NONE, true, 0.0, true, 2.0); hBotReverseFFDefend = CreateConVar("sm_ftt_bot_defend", "0", "Should bots defend themselves?\n0 = OFF\n1 = Will retaliate against non-admins\n2 = Anyone", FCVAR_NONE, true, 0.0, true, 2.0);
hAntirushBaseFreq = CreateConVar("sm_ftt_antirush_freq_base", "24", "The base frequency of anti-rush", FCVAR_NONE, true, 0.0); hAntirushBaseFreq = CreateConVar("sm_ftt_antirush_freq_base", "24", "The base frequency of anti-rush", FCVAR_NONE, true, 0.0);
hAntirushIncFreq = CreateConVar("sm_ftt_antirush_freq_inc", "1", "The incremental frequency of anti-rush", FCVAR_NONE, true, 0.0); hAntirushIncFreq = CreateConVar("sm_ftt_antirush_freq_inc", "1", "The incremental frequency of anti-rush", FCVAR_NONE, true, 0.0);
hBotDefendChance = CreateConVar("sm_ftt_bot_defend_chance", "0.75", "% Chance bots will defend themselves.", FCVAR_NONE, true, 0.0, true, 1.0); hBotDefendChance = CreateConVar("sm_ftt_bot_defend_chance", "0.75", "% Chance bots will defend themselves.", FCVAR_NONE, true, 0.0, true, 1.0);
hSbFriendlyFire = FindConVar("sb_friendlyfire"); hSbFriendlyFire = FindConVar("sb_friendlyfire");
@ -86,7 +86,7 @@ public void OnPluginStart() {
hBotReverseFFDefend.AddChangeHook(Change_BotDefend); hBotReverseFFDefend.AddChangeHook(Change_BotDefend);
RegAdminCmd("sm_ftl", Command_ListTheTrolls, ADMFLAG_GENERIC, "Lists all the trolls currently ingame."); RegAdminCmd("sm_ftl", Command_ListTheTrolls, ADMFLAG_GENERIC, "Lists all the trolls currently ingame.");
RegAdminCmd("sm_ftm", Command_ListModes, ADMFLAG_GENERIC, "Lists all the troll modes and their description"); RegAdminCmd("sm_ftm", Command_ListModes, ADMFLAG_GENERIC, "Lists all the troll modes and their description");
RegAdminCmd("sm_ftr", Command_ResetUser, ADMFLAG_GENERIC, "Resets user of any troll effects."); RegAdminCmd("sm_ftr", Command_ResetUser, ADMFLAG_GENERIC, "Resets user of any troll effects.");
RegAdminCmd("sm_fta", Command_ApplyUser, ADMFLAG_KICK, "Apply a troll mod to a player, or shows menu if no parameters."); RegAdminCmd("sm_fta", Command_ApplyUser, ADMFLAG_KICK, "Apply a troll mod to a player, or shows menu if no parameters.");
RegAdminCmd("sm_ftas", Command_ApplyUserSilent, ADMFLAG_ROOT, "Apply a troll mod to a player, or shows menu if no parameters."); RegAdminCmd("sm_ftas", Command_ApplyUserSilent, ADMFLAG_ROOT, "Apply a troll mod to a player, or shows menu if no parameters.");