From be9011d6a48025d68262b1274143e228998a2862 Mon Sep 17 00:00:00 2001 From: Jackz Date: Fri, 29 Sep 2023 17:59:46 -0500 Subject: [PATCH] Fixes and bug adding --- plugins/globalbans.smx | Bin 8253 -> 8246 bytes plugins/l4d2_autorestart.smx | Bin 4235 -> 4621 bytes plugins/l4d_survivor_identity_fix.smx | Bin 13119 -> 13163 bytes scripting/l4d2_autorestart.sp | 20 +++++++++++++--- scripting/l4d2_crescendo_control.sp | 15 ++++++++---- scripting/l4d_survivor_identity_fix.sp | 31 ++++++++++++++----------- 6 files changed, 46 insertions(+), 20 deletions(-) diff --git a/plugins/globalbans.smx b/plugins/globalbans.smx index d7cd408ce1fad48156620186d8bd067850985025..ffb780b1e0634d2e86497548e71a803551ef766a 100644 GIT binary patch delta 8074 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 delta 8081 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 delta 4054 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 literal 13119 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 X8n;qXZQmrVL$cy92)=~|t@8f>yD_MO diff --git a/scripting/l4d2_autorestart.sp b/scripting/l4d2_autorestart.sp index cfdbc59..f775c9d 100644 --- a/scripting/l4d2_autorestart.sp +++ b/scripting/l4d2_autorestart.sp @@ -34,11 +34,25 @@ public void OnPluginStart() { cvar_hibernateWhenEmpty = FindConVar("sv_hibernate_when_empty"); RegAdminCmd("sm_request_restart", Command_RequestRestart, ADMFLAG_GENERIC); + RegAdminCmd("sm_ar_status", Command_Status, ADMFLAG_GENERIC); CreateTimer(600.0, Timer_Check, _, TIMER_REPEAT); } -public Action Command_RequestRestart(int client, int args) { +Action Command_Status(int client, int args) { + char buffer[100]; + FormatTime(buffer, sizeof(buffer), "%F at %I:%M %p", startupTime); + ReplyToCommand(client, "Started: %s", buffer); + int diff = GetTime() - startupTime; + int exceedRestart = diff - MAX_TIME_ONLINE_SECONDS; + int exceedRestartMin = exceedRestart / 60; + int exceedRestartHour = exceedRestartMin / 60; + ReplyToCommand(client, "Overdue restart time: %d hr / %d min / %d s", exceedRestartHour, exceedRestartMin, exceedRestart); + ReplyToCommand(client, "triesBots = %d\ttriesEmpty = %d / %d", triesBots, triesEmpty); + return Plugin_Handled; +} + +Action Command_RequestRestart(int client, int args) { if(IsServerEmpty()) { ReplyToCommand(client, "Restarting..."); LogAction(client, -1, "requested to restart server if empty."); @@ -57,8 +71,8 @@ public Action Timer_Check(Handle h) { ServerCommand("quit"); } return Plugin_Continue; - } else if(GetTime() - startupTime > MAX_TIME_ONLINE_SECONDS) { - LogAction(0, -1, "Server has passed max online time threshold, will restart if remains empty"); + } else if(pendingRestart || GetTime() - startupTime > MAX_TIME_ONLINE_SECONDS) { + LogAction(0, -1, "Server has passed max online time threshold, will restart if remains empty (chk%d)", triesEmpty); pendingRestart = true; cvar_hibernateWhenEmpty.BoolValue = false; if(IsServerEmpty()) { diff --git a/scripting/l4d2_crescendo_control.sp b/scripting/l4d2_crescendo_control.sp index ffbb7a2..678f2e0 100644 --- a/scripting/l4d2_crescendo_control.sp +++ b/scripting/l4d2_crescendo_control.sp @@ -62,7 +62,7 @@ public void OnPluginStart() RegAdminCmd("sm_dgroup", Command_DebugGroups, ADMFLAG_GENERIC); for(int i = 0; i < MAX_GROUPS; i++) { - g_groups[i].members = new ArrayList(); + g_groups[i].members = null; } } @@ -193,6 +193,12 @@ bool ComputeGroups(GroupResult result, float activateFlow) { bool inGroup[MAXPLAYERS+1]; ArrayList members = new ArrayList(); + for(int i = 0; i < MAX_GROUPS; i++) { + if(g_groups[i].members != null) { + delete g_groups[i].members; + } + } + for(int i = 1; i <= MaxClients; i++) { if(!inGroup[i] && IsClientConnected(i) && IsClientInGame(i) && IsPlayerAlive(i) && GetClientTeam(i) == 2) { float prevFlow = L4D2Direct_GetFlowDistance(i); @@ -214,7 +220,7 @@ bool ComputeGroups(GroupResult result, float activateFlow) { inGroup[i] = true; // PrintDebug("add leader to group %d: %N", groupIndex + 1, i); } - // PrintDebug("add member to group %d: %N (dist = %.4f) (fldiff = %.1f)", groupIndex + 1, j, dist, flowDiff); + PrintDebug("add member to group %d: %N (dist = %.4f) (fldiff = %.1f)", groupIndex + 1, j, dist, flowDiff); inGroup[j] = true; members.Push(GetClientUserId(j)); } else { @@ -222,13 +228,14 @@ bool ComputeGroups(GroupResult result, float activateFlow) { } } } - if(g_groups[groupIndex].members.Length > 1) { + if(members.Length > 1) { // Drop the old members: if(g_groups[groupIndex].members != null) { delete g_groups[groupIndex].members; } g_groups[groupIndex].pos = prevPos; g_groups[groupIndex].members = members; + members = new ArrayList(); // PrintDebug("created group #%d with %d members", groupIndex + 1, g_groups[groupIndex].members.Length); groupIndex++; if(groupIndex == MAX_GROUPS) { @@ -258,7 +265,7 @@ bool ComputeGroups(GroupResult result, float activateFlow) { PrintDebug("===GROUP SUMMARY==="); for(int i = 0; i < MAX_GROUPS; i++) { - if(g_groups[i].members.Length > 0) { + if(g_groups[i].members != null && g_groups[i].members.Length > 0) { PrintDebug("---Group %d---", i + 1); PrintDebug("Origin: %.1f %.1f %.1f", g_groups[i].pos[0], g_groups[i].pos[1], g_groups[i].pos[2]); float groupFlow = GetFlowAtPosition(g_groups[i].pos); diff --git a/scripting/l4d_survivor_identity_fix.sp b/scripting/l4d_survivor_identity_fix.sp index 4256e07..79f01a1 100644 --- a/scripting/l4d_survivor_identity_fix.sp +++ b/scripting/l4d_survivor_identity_fix.sp @@ -31,7 +31,8 @@ char g_Models[MAXPLAYERS+1][128]; static int g_iPendingCookieModel[MAXPLAYERS+1]; Handle hConf = null; -static Handle hDHookSetModel = null, hModelPrefCookie; +static Handle hDHookSetModel = null; +Cookie modelPrefCookie; static ConVar hCookiesEnabled; static bool isLateLoad, cookieModelsSet, isL4D1Survivors; static int survivors; @@ -84,7 +85,7 @@ public void OnPluginStart() GetGamedata(); CreateConVar("l4d_survivor_identity_fix_version", PLUGIN_VERSION, "Survivor Change Fix Version", FCVAR_SPONLY|FCVAR_NOTIFY|FCVAR_DONTRECORD); - hCookiesEnabled = CreateConVar("l4d_survivor_identity_fix_cookies", "1.0", "0 -> Disable cookie preference, 1 -> Enable for 5+, 2 -> Enable for any amount"); + hCookiesEnabled = CreateConVar("l4d_survivor_identity_fix_cookies", "2.0", "0 -> Disable cookie preference, 1 -> Enable for 5+, 2 -> Enable for any amount"); HookEvent("player_bot_replace", Event_PlayerToBot, EventHookMode_Post); HookEvent("bot_player_replace", Event_BotToPlayer, EventHookMode_Post); @@ -111,7 +112,7 @@ public void OnPluginStart() chooseMenu.AddItem(info, survivor_names[i]); } - hModelPrefCookie = RegClientCookie("survivor_model", "Survivor model preference", CookieAccess_Public); + modelPrefCookie = RegClientCookie("survivor_model", "Survivor model preference", CookieAccess_Public); RegConsoleCmd("sm_survivor", Cmd_SetSurvivor, "Sets your preferred survivor"); } @@ -260,20 +261,23 @@ public void Event_NewGame(Event event, const char[] name, bool dontBroadcast) { } //Checks if a user has a model preference cookie (set by native). If so, populate g_Models w/ it public void OnClientCookiesCached(int client) { - if(IsFakeClient(client) && hCookiesEnabled.IntValue == 0) return; + return; + if(IsFakeClient(client) || hCookiesEnabled.IntValue == 0) return; char modelPref[2]; - GetClientCookie(client, hModelPrefCookie, modelPref, sizeof(modelPref)); + modelPrefCookie.Get(client, modelPref, sizeof(modelPref)); if(strlen(modelPref) > 0) { //'type' starts at 1, 5 being other l4d1 survivors for l4d2 int type; if(StringToIntEx(modelPref, type) > 0) { PrintToServer("%N has cookie for %s", client, survivor_models[type - 1][17]); if(isL4D1Survivors && type > 4) { - strcopy(g_Models[client], 64, survivor_models[type - 5]); - g_iPendingCookieModel[client] = type - 4; + strcopy(g_Models[client], 32, survivor_models[type - 5]); + g_iPendingCookieModel[client] = type - 5; + } else { + strcopy(g_Models[client], 32, survivor_models[type - 1]); + g_iPendingCookieModel[client] = type - 1; } - } } } @@ -316,6 +320,7 @@ public void Frame_CheckClient(int userid) { if(survivors > survivorThreshold) { //A model is set: Fetched from cookie if(g_iPendingCookieModel[client]) { + return; CreateTimer(0.2, Timer_SetClientModel, userid); }/* else { CreateTimer(0.2, Timer_SetAllCookieModels); @@ -427,13 +432,13 @@ public Action Cmd_SetSurvivor(int client, int args) { char arg1[16]; GetCmdArg(1, arg1, sizeof(arg1)); if(arg1[0] == 'c') { - SetClientCookie(client, hModelPrefCookie, ""); + modelPrefCookie.Set(client, ""); ReplyToCommand(client, "Your survivor preference has been reset"); return Plugin_Handled; } int number; if(StringToIntEx(arg1, number) > 0 && number >= 0 && number < 8) { - SetClientCookie(client, hModelPrefCookie, arg1); + modelPrefCookie.Set(client, arg1); ReplyToCommand(client, "Your survivor preference set to %s", survivor_names[number]); return Plugin_Handled; }else{ @@ -454,13 +459,13 @@ int Menu_ChooseSurvivor(Menu menu, MenuAction action, int activator, int item) { char info[2]; menu.GetItem(item, info, sizeof(info)); if(info[0] == 'c') { - SetClientCookie(activator, hModelPrefCookie, ""); + modelPrefCookie.Set(activator, ""); ReplyToCommand(activator, "Your survivor preference has been reset"); }else{ /*strcopy(g_Models[client], 64, survivor_models[type]); if(isL4D1Survivors) type = GetSurvivorId(str, true); SetEntProp(client, Prop_Send, "m_survivorCharacter", type);*/ - SetClientCookie(activator, hModelPrefCookie, info); + modelPrefCookie.Set(activator, info); ReplyToCommand(activator, "Your survivor preference set to %s", survivor_names[StringToInt(info) - 1]); } } else if (action == MenuAction_End) @@ -507,7 +512,7 @@ public int Native_SetPlayerModel(Handle plugin, int numParams) { char charTypeStr[2]; Format(charTypeStr, sizeof(charTypeStr), "%d", character + 1); if(!IsFakeClient(client) && keep) - SetClientCookie(client, hModelPrefCookie, charTypeStr); + modelPrefCookie.Set(client, charTypeStr); strcopy(g_Models[client], 64, survivor_models[character]); return 0;