From 46cd853c2107c74f1683ae3818f34e6680e38cd7 Mon Sep 17 00:00:00 2001 From: ineedbots Date: Thu, 1 Jul 2021 12:59:46 -0600 Subject: [PATCH] triple cap script --- userraw/scripts/tripleDom.gsc | 64 +++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 userraw/scripts/tripleDom.gsc diff --git a/userraw/scripts/tripleDom.gsc b/userraw/scripts/tripleDom.gsc new file mode 100644 index 0000000..488b5ec --- /dev/null +++ b/userraw/scripts/tripleDom.gsc @@ -0,0 +1,64 @@ +#include common_scripts\utility; +#include maps\mp\_utility; +#include maps\mp\gametypes\_hud_util; + +init() +{ + setDvarIfUninitialized( "dom_lastFlagUseTimeMulti", 1.0 ); + + thread watchFlags(); +} + +watchFlags() +{ + if ( getDvar( "g_gametype" ) != "dom" ) + return; + + while ( !isDefined( level.domFlags ) ) + wait 0.05; + + for ( ;; ) + { + wait 1; + + for ( i = 0; i < level.domFlags.size; i++ ) + { + flag = level.domFlags[i]; + + if ( isDefined( flag.originalUseTime ) ) + { + flag.useTime = flag.originalUseTime; + flag.originalUseTime = undefined; + } + } + + team = "none"; + + axisFlags = maps\mp\gametypes\dom::getTeamFlagCount( "axis" ); + alliesFlags = maps\mp\gametypes\dom::getTeamFlagCount( "allies" ); + + if ( alliesFlags == 2 || axisFlags == 2 ) + { + if ( alliesFlags == 2 ) + team = "allies"; + else + team = "axis"; + } + + if ( team != "none" ) + { + for ( i = 0; i < level.domFlags.size; i++ ) + { + flag = level.domFlags[i]; + + flagTeam = flag maps\mp\gametypes\_gameobjects::getOwnerTeam(); + + if ( flagTeam != team && ( flagTeam == "axis" || flagTeam == "allies" ) ) + { + flag.originalUseTime = flag.useTime; + flag.useTime *= getDvarFloat( "dom_lastFlagUseTimeMulti" ); + } + } + } + } +}