From 6a563cd2e8023049815d2b8b301bcda7e0d75afa Mon Sep 17 00:00:00 2001 From: Bara <mail@bara.dev> Date: Fri, 10 Feb 2023 23:06:48 +0100 Subject: [PATCH] Merge dev into master branch (#553) * Test server should based on dev branch * Allow pr tests against the dev branch * Upload build packages for dev branch too * Remove artifact after one month * remove old code, wait 2 frames before setting velocity to 0 (#518) * Update fresh_install.sql (#519) Fixed errors. * Add missing ck_replays table (#520) * Fix version in error message (#521) * --wrong value on check (#522) * fix for #524 (#525) * --fix style records/forwards * --added oldtime var for styles --added time difference between old and new server style record to printed phrase --actually fixed issues(?) * --missing set values for new var * --missing indexation * --wrong format * Rename some files for clarity for updating tables * Add semicolons (#528) * Use LogStackTrace instead of LogError (#530) Usage of sizeof instead of hardcoded size * Add radar images to DownloadTable (#529) * add radar images to download table * remove colon from readme * add surf load screens to readme * Add EU test server to workflow * Add EU test server to README.md * Fix chat processor for our commands (#533) * Log query times (#531) * Hello World * Hello World * Print each query time into server console while startup * Log query times into logs/surftimer/<map>.log logs * Update globals.sp (#536) if database name is greater than 32 then will get following error [SM] Exception reported: More/Less then 1 rows? RowCount: 0, Table: ck_bonus, Column: runtime [SM] Blaming: SurfTimer.smx [SM] Call stack trace: [SM] [0] SetFailState [SM] [1] Line 241, surftimer/db/updater.sp::SQLCheckDataType * Increase name length (#534) * Increase name length from 32 to 128 * Increase name size per updater * Add missing tables * Update VARCHAR size in fresh_install.sql * Skip error check to prevent invalid error * 128 -> 64 * practice mode changes (#539) * practice mode changes * remove timer function * forgot this timer seperates stuff into a million different functions :) * add mapper names to ck_maptier (#538) * add mapper names to ck_maptier * use translation * readme: improve installation + requirements docs (#537) * readme: improve installation + requirements docs * readme: EndTouchFix note update * readme: EndTouchFix note update * Fix SQL Error while creating ck_maptiermappers table * or equal to prestige_rank (#541) * Fix LoadDefaultTitle (only load the first one) (#543) * Fix LoadDefaultTitle (only load the first one) * If the title is enforced, break the loop Co-authored-by: Ismael Semmar Galvez <isgalvez24@gmail.com> * Missing mapper name argument for Map Info (#547) * fix /mi * revert and use g_szMapperName * chore: small code cleanup (#545) * fixes non-ranked players being kicked from server when ck_prestige_rank = 0 (#544) * #506 (#548) * fresh_install update (#551) * increase cplimit from 37 to 100 (#552) --------- Co-authored-by: dPexxIAM <38400978+dPexxIAM@users.noreply.github.com> Co-authored-by: Jacob Christiansen <kin.jacob.chr@gmail.com> Co-authored-by: shipyy <70631212+shipyy@users.noreply.github.com> Co-authored-by: T <74899888+tslashd@users.noreply.github.com> Co-authored-by: Kyle <kyle@kxnrl.com> Co-authored-by: 8guawong <8guawong@gmail.com> Co-authored-by: Markus <mark@saiko.tech> Co-authored-by: Ismael Semmar Galvez <30930942+Ism1tha@users.noreply.github.com> Co-authored-by: Ismael Semmar Galvez <isgalvez24@gmail.com> Co-authored-by: Charles <63302440+Sarrus1@users.noreply.github.com> --- .../sourcemod/scripting/surftimer/globals.sp | 4 +- addons/sourcemod/scripting/surftimer/misc.sp | 58 +++++++++---------- addons/sourcemod/scripting/surftimer/sql.sp | 10 ++-- scripts/mysql-files/fresh_install.sql | 1 + 4 files changed, 34 insertions(+), 39 deletions(-) diff --git a/addons/sourcemod/scripting/surftimer/globals.sp b/addons/sourcemod/scripting/surftimer/globals.sp index e19f89b2..e6810d76 100644 --- a/addons/sourcemod/scripting/surftimer/globals.sp +++ b/addons/sourcemod/scripting/surftimer/globals.sp @@ -50,7 +50,7 @@ // Checkpoint Definitions // Maximum amount of checkpoints in a map -#define CPLIMIT 37 +#define CPLIMIT 100 // Zone Definitions #define ZONE_MODEL "models/props/de_train/barrel.mdl" @@ -1367,7 +1367,7 @@ ConVar g_hHostName = null; Handle g_hDestinations; // CPR command -float g_fClientCPs[MAXPLAYERS + 1][36]; +float g_fClientCPs[MAXPLAYERS + 1][CPLIMIT]; float g_fTargetTime[MAXPLAYERS + 1]; char g_szTargetCPR[MAXPLAYERS + 1][MAX_NAME_LENGTH]; diff --git a/addons/sourcemod/scripting/surftimer/misc.sp b/addons/sourcemod/scripting/surftimer/misc.sp index 83f0e497..87f52192 100644 --- a/addons/sourcemod/scripting/surftimer/misc.sp +++ b/addons/sourcemod/scripting/surftimer/misc.sp @@ -36,9 +36,7 @@ public void SetBotQuota() bool IsValidZonegroup(int zGrp) { - if (-1 < zGrp < g_mapZoneGroupCount) - return true; - return false; + return -1 < zGrp < g_mapZoneGroupCount; } /** @@ -4794,38 +4792,34 @@ public void LoadDefaultTitle(int client) KvGetString(kv, "title", szBuffer, sizeof(szBuffer)); SetDefaultTitle(client, szBuffer); g_iHasEnforcedTitle[client] = true; - break; - } else { - g_iHasEnforcedTitle[client] = false; - continue; } - } - KvGetString(kv, "flag", szBuffer, sizeof(szBuffer), "none"); - // Has to be a flag since no steamid was found, otherwise invalid entry - if (StrEqual(szBuffer, "none")) - continue; - - // Check if client has access to this flag - int bit = ReadFlagString(szBuffer); - if (!CheckCommandAccess(client, "", bit)) - continue; - - // "type" - g_iEnforceTitleType[client] = 2; - KvGetString(kv, "type", szBuffer, sizeof(szBuffer), "both"); - if (StrEqual(szBuffer, "scoreboard")) - g_iEnforceTitleType[client] = 1; - else if (StrEqual(szBuffer, "chat")) - g_iEnforceTitleType[client] = 0; - else - g_iEnforceTitleType[client] = 2; - - KvGetString(kv, "title", szBuffer, sizeof(szBuffer)); - SetDefaultTitle(client, szBuffer); - break; - + // Check if this keyvalue has a flag + if (!StrEqual(szBuffer, "none")) + { + // Does the user has permissions over the flag? + int bit = ReadFlagString(szBuffer); + if (CheckCommandAccess(client, "", bit)) + { + KvGetString(kv, "title", szBuffer, sizeof(szBuffer)); + SetDefaultTitle(client, szBuffer); + g_iHasEnforcedTitle[client] = true; + } + } + // If user has enforced title, check and set the type + if (g_iHasEnforcedTitle[client] == true) + { + KvGetString(kv, "type", szBuffer, sizeof(szBuffer), "both"); + if (StrEqual(szBuffer, "scoreboard")) + g_iEnforceTitleType[client] = 1; + else if (StrEqual(szBuffer, "chat")) + g_iEnforceTitleType[client] = 0; + else + g_iEnforceTitleType[client] = 2; + // If the title is enforced, break the loop + break; + } } while (KvGotoNextKey(kv)); } delete kv; diff --git a/addons/sourcemod/scripting/surftimer/sql.sp b/addons/sourcemod/scripting/surftimer/sql.sp index b95e418c..af4c2396 100644 --- a/addons/sourcemod/scripting/surftimer/sql.sp +++ b/addons/sourcemod/scripting/surftimer/sql.sp @@ -1594,7 +1594,7 @@ public void sql_selectRankedPlayersRankCallback(Handle owner, Handle hndl, const { if (style == 0) { - if (g_PlayerRank[client][0] > GetConVarInt(g_hPrestigeRank) && !g_bPrestigeCheck[client]) + if (g_PlayerRank[client][0] >= GetConVarInt(g_hPrestigeRank) && !g_bPrestigeCheck[client]) KickClient(client, "You must be at least rank %i to join this server", GetConVarInt(g_hPrestigeRank)); } @@ -1603,7 +1603,7 @@ public void sql_selectRankedPlayersRankCallback(Handle owner, Handle hndl, const } else { - if (g_PlayerRank[client][0] < GetConVarInt(g_hPrestigeRank) || g_bPrestigeCheck[client]) + if (g_PlayerRank[client][0] <= GetConVarInt(g_hPrestigeRank) || g_bPrestigeCheck[client]) g_bPrestigeCheck[client] = true; else if (!g_bPrestigeAvoid[client]) KickClient(client, "You must be at least rank %i to join this server", GetConVarInt(g_hPrestigeRank)); @@ -6545,7 +6545,7 @@ public int FinishedMapsMenuHandler(Handle menu, MenuAction action, int client, i public void db_selectTotalBonusCount() { char szQuery[512]; - Format(szQuery, 512, "SELECT COUNT(DISTINCT a.mapname,zonegroup) as count FROM ck_zones a RIGHT JOIN ck_maptier b ON a.mapname = b.mapname WHERE a.zonegroup > 0"); + Format(szQuery, sizeof(szQuery), "SELECT COUNT(DISTINCT `a`.`mapname`, `a`.`zonegroup`) AS `count` FROM `ck_zones` `a` INNER JOIN `ck_maptier` `b` ON `b`.`mapname` = `a`.`mapname` WHERE `a`.`zonetype` = 1 AND `a`.`zonegroup` > 0"); SQL_TQuery(g_hDb, sql_selectTotalBonusCountCallback, szQuery, GetGameTime(), DBPrio_Low); } @@ -6574,7 +6574,7 @@ public void sql_selectTotalBonusCountCallback(Handle owner, Handle hndl, const c public void db_selectTotalStageCount() { char szQuery[512]; - Format(szQuery, 512, "SELECT SUM(c.stages) FROM (SELECT a.mapname, MAX(zonetypeid)+2 as stages FROM `ck_zones` a RIGHT JOIN `ck_maptier` b ON a.mapname = b.mapname WHERE zonetype = 3 GROUP BY a.mapname)c"); + Format(szQuery, sizeof(szQuery), "SELECT COUNT(DISTINCT `a`.`mapname`) + COUNT(1) AS `count` FROM `ck_zones` `a` INNER JOIN `ck_maptier` `b` ON `b`.`mapname` = `a`.`mapname` WHERE `a`.`zonetype` = 3 AND `a`.`zonegroup` = 0;"); SQL_TQuery(g_hDb, sql_selectTotalStageCountCallback, szQuery, GetGameTime(), DBPrio_Low); } @@ -9277,7 +9277,7 @@ public void db_selectMapImprovementCallback(Handle owner, Handle hndl, const cha if (type == 0) { Menu mi = CreateMenu(MapImprovementMenuHandler); - SetMenuTitle(mi, "[Point Reward: %s]\n------------------------------\nTier: %i\n \nMapper: %s\n \n[Completion Points]\n \nMap Finish Points: %i\n \n[Map Improvement Groups]\n \n[Group 1] Ranks 11-%i ~ %i Pts\n[Group 2] Ranks %i-%i ~ %i Pts\n[Group 3] Ranks %i-%i ~ %i Pts\n[Group 4] Ranks %i-%i ~ %i Pts\n[Group 5] Ranks %i-%i ~ %i Pts\n \nSR Pts: %i\n \nTotal Completions: %i\n \n",szMapName, tier, mapcompletion, g1top, RoundFloat(g1points), g2bot, g2top, RoundFloat(g2points), g3bot, g3top, RoundFloat(g3points), g4bot, g4top, RoundFloat(g4points), g5bot, g5top, RoundFloat(g5points), iwrpoints, totalplayers); + SetMenuTitle(mi, "[Point Reward: %s]\n------------------------------\nTier: %i\n \nMapper: %s\n \n[Completion Points]\n \nMap Finish Points: %i\n \n[Map Improvement Groups]\n \n[Group 1] Ranks 11-%i ~ %i Pts\n[Group 2] Ranks %i-%i ~ %i Pts\n[Group 3] Ranks %i-%i ~ %i Pts\n[Group 4] Ranks %i-%i ~ %i Pts\n[Group 5] Ranks %i-%i ~ %i Pts\n \nSR Pts: %i\n \nTotal Completions: %i\n \n",szMapName, tier, g_szMapperName, mapcompletion, g1top, RoundFloat(g1points), g2bot, g2top, RoundFloat(g2points), g3bot, g3top, RoundFloat(g3points), g4bot, g4top, RoundFloat(g4points), g5bot, g5top, RoundFloat(g5points), iwrpoints, totalplayers); // AddMenuItem(mi, "", "", ITEMDRAW_SPACER); AddMenuItem(mi, szMapName, "Top 10 Points"); SetMenuOptionFlags(mi, MENUFLAG_BUTTON_EXIT); diff --git a/scripts/mysql-files/fresh_install.sql b/scripts/mysql-files/fresh_install.sql index d0fa863b..bc438345 100644 --- a/scripts/mysql-files/fresh_install.sql +++ b/scripts/mysql-files/fresh_install.sql @@ -57,6 +57,7 @@ CREATE TABLE IF NOT EXISTS ck_maptier ( `announcerecord` INT(11) NOT NULL DEFAULT '0', `gravityfix` INT(11) NOT NULL DEFAULT '1', `ranked` INT(11) NOT NULL DEFAULT '1', + `mapper` VARCHAR(255) DEFAULT NULL, PRIMARY KEY(`mapname`)) DEFAULT CHARSET=utf8mb4;