From c14b20b07aa9bfb156c4643852b565c7d5e2db1b Mon Sep 17 00:00:00 2001 From: Jackz Date: Tue, 15 Aug 2023 18:52:38 -0500 Subject: [PATCH] Changes --- scripting/adminpanel.sp | 17 +++++++++++++---- scripting/globalbans.sp | 4 ++-- scripting/include/feedthetrolls/base.inc | 9 +++++++-- scripting/l4d2_feedthetrolls.sp | 8 ++++---- 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/scripting/adminpanel.sp b/scripting/adminpanel.sp index 96ad7f7..cd844f1 100644 --- a/scripting/adminpanel.sp +++ b/scripting/adminpanel.sp @@ -31,6 +31,7 @@ ConVar cvar_gamemode; char gamemode[32]; char currentMap[64]; int numberOfPlayers = 0; int lastSuccessTime; +int campaignStartTime; int lastErrorCode; int uptime; bool fastUpdateMode = false; @@ -59,6 +60,7 @@ public void OnPluginStart() cvar_gamemode.AddChangeHook(OnCvarChanged); cvar_gamemode.GetString(gamemode, sizeof(gamemode)); + HookEvent("game_init", Event_GameStart); HookEvent("heal_success", Event_HealStop); HookEvent("heal_interrupted", Event_HealStop); 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")); 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")); 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")); playerJoinTime[client] = GetTime(); 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'; nameCache[client][0] = '\0'; if(!IsFakeClient(client)) { @@ -248,6 +255,7 @@ JSONObject GetObject() { delete players; obj.SetFloat("refreshInterval", UPDATE_INTERVAL); obj.SetInt("lastUpdateTime", GetTime()); + obj.SetInt("campaignStartTime", campaignStartTime); return obj; } @@ -351,6 +359,7 @@ JSONObject GetPlayer(int client) { int team = GetClientTeam(client); JSONObject player = new JSONObject(); player.SetString("steamid", steamidCache[client]); + player.SetInt("userId", GetClientUserId(client)); player.SetString("name", nameCache[client]); player.SetInt("team", team); player.SetBool("isAlive", IsPlayerAlive(client)); diff --git a/scripting/globalbans.sp b/scripting/globalbans.sp index ff566be..dd1cb8e 100644 --- a/scripting/globalbans.sp +++ b/scripting/globalbans.sp @@ -254,9 +254,9 @@ public void DB_OnConnectCheck(Database db, DBResultSet results, const char[] err if(hKickType.IntValue > 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 - 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]; g_db.Format(query, sizeof(query), "UPDATE bans SET times_tried=times_tried+1 WHERE steamid = '%s'", steamid); g_db.Query(DB_GenericCallback, query); diff --git a/scripting/include/feedthetrolls/base.inc b/scripting/include/feedthetrolls/base.inc index edadd2c..b3fcefb 100644 --- a/scripting/include/feedthetrolls/base.inc +++ b/scripting/include/feedthetrolls/base.inc @@ -357,8 +357,13 @@ void ApplyTroll(int victim, const char[] name, int activator, trollModifier modi return; } - if(flags > -1 && Trolls[trollIndex].timerInterval > 0.0) { - CreateTimer(Trolls[trollIndex].timerInterval, Trolls[trollIndex].timerFunction, victim, TIMER_REPEAT); + // Clear troll specific timer: + 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; diff --git a/scripting/l4d2_feedthetrolls.sp b/scripting/l4d2_feedthetrolls.sp index 523db09..39ed440 100644 --- a/scripting/l4d2_feedthetrolls.sp +++ b/scripting/l4d2_feedthetrolls.sp @@ -66,8 +66,8 @@ public void OnPluginStart() { g_hWitchAttack = EndPrepSDKCall(); delete data; - 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); + 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.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); 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); 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); - 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"); @@ -86,7 +86,7 @@ public void OnPluginStart() { hBotReverseFFDefend.AddChangeHook(Change_BotDefend); 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_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.");