Merge branch 'NoEvo'

This commit is contained in:
ChocoTaco1 2021-01-21 13:44:30 -05:00
commit 49fb4dddbb
10 changed files with 3166 additions and 2961 deletions

View file

@ -45,7 +45,7 @@
//Small Maps //Small Maps
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
addRotationMap("SmallCrossing", "CTF",1,1,-1,16); //addRotationMap("SmallCrossing", "CTF",1,1,-1,16); //Using Small Crossing: DMP Version
addRotationMap("TWL2_CanyonCrusadeDeluxe", "CTF",1,1,-1,18); addRotationMap("TWL2_CanyonCrusadeDeluxe", "CTF",1,1,-1,18);
addRotationMap("RoundTheMountain", "CTF",1,1,-1,18); addRotationMap("RoundTheMountain", "CTF",1,1,-1,18);
addRotationMap("oasisintensity", "CTF",1,1,-1,12); addRotationMap("oasisintensity", "CTF",1,1,-1,12);
@ -65,48 +65,51 @@ addRotationMap("Bulwark", "CTF",1,1,-1,12);
//addRotationMap("FrostPipe", "CTF",1,0,-1,12); //addRotationMap("FrostPipe", "CTF",1,0,-1,12);
addRotationMap("Blink", "CTF",1,1,-1,10); addRotationMap("Blink", "CTF",1,1,-1,10);
addRotationMap("Discord", "CTF",1,1,6,16); addRotationMap("Discord", "CTF",1,1,6,16);
addRotationMap("StarFallCTF", "CTF",1,1,6,12); addRotationMap("TWL2_MidnightMayhemDeluxe", "CTF",1,0,8,12);
addRotationMap("TWL2_MidnightMayhemDeluxe", "CTF",1,1,8,12);
addRotationMap("Sentry", "CTF",1,1,6,12); addRotationMap("Sentry", "CTF",1,1,6,12);
addRotationMap("TWL2_Skylight", "CTF",1,1,6,12); addRotationMap("TWL2_Skylight", "CTF",1,0,6,12);
addRotationMap("Cinerarium", "CTF",1,1,-1,10); addRotationMap("Exhumed", "CTF",1,1,-1,10);
addRotationMap("Exhumed", "CTF",1,0,-1,10);
//addRotationMap("TWL2_FrozenHope", "CTF",1,0,8,20); //addRotationMap("TWL2_FrozenHope", "CTF",1,0,8,20);
addRotationMap("FrozenHope", "CTF",1,0,8,12); addRotationMap("FrozenHope", "CTF",1,1,8,12);
addRotationMap("ClusterUnFuct", "CTF",1,1,8,12);
addRotationMap("Raspian", "CTF",1,0,8,12);
addRotationMap("Zilch", "CTF",1,1,8,12);
addRotationMap("Cinerarium", "CTF",1,0,-1,12);
addRotationMap("StarFallCTF", "CTF",1,0,6,12);
//Medium Maps //Medium Maps
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
addRotationMap("HighOctane", "CTF",1,1,8,24); addRotationMap("HighOctane", "CTF",1,1,8,24);
addRotationMap("S5_Mordacity", "CTF",1,1,8,24); addRotationMap("S5_Mordacity", "CTF",1,1,12,24);
addRotationMap("S5_Damnation", "CTF",1,0,8,20); addRotationMap("S5_Damnation", "CTF",1,0,12,20);
addRotationMap("TWL2_JaggedClaw", "CTF",1,1,8,24); addRotationMap("TWL2_JaggedClaw", "CTF",1,1,12,24);
addRotationMap("S5_Massive", "CTF",1,1,10,26); addRotationMap("S5_Massive", "CTF",1,1,10,26);
addRotationMap("TWL_Stonehenge", "CTF",1,1,8,20); addRotationMap("TWL_Stonehenge", "CTF",1,1,8,20);
addRotationMap("TWL_Feign", "CTF",1,1,10,20); addRotationMap("TWL_Feign", "CTF",1,0,10,20);
addRotationMap("TheFray", "CTF",1,1,10,20); addRotationMap("TheFray", "CTF",1,0,10,20);
addRotationMap("DangerousCrossing_nef", "CTF",1,1,8,20); addRotationMap("DangerousCrossing_nef", "CTF",1,1,8,20);
addRotationMap("TWL2_Ocular", "CTF",1,1,12,-1); addRotationMap("TWL2_Ocular", "CTF",1,1,16,-1);
addRotationMap("Dire", "CTF",1,0,10,16); addRotationMap("Dire", "CTF",1,1,10,16);
addRotationMap("berlard", "CTF",1,1,12,24); addRotationMap("berlard", "CTF",1,0,12,24);
addRotationMap("S8_Opus", "CTF",1,0,8,24); addRotationMap("S8_Opus", "CTF",1,0,8,24);
addRotationMap("BeggarsRun", "CTF",1,0,8,24); addRotationMap("BeggarsRun", "CTF",1,0,8,24);
addRotationMap("Headstone", "CTF",1,0,8,20); addRotationMap("Headstone", "CTF",1,0,8,20);
addRotationMap("Signal", "CTF",1,0,8,26); addRotationMap("Signal", "CTF",1,0,8,26);
addRotationMap("S5_Woodymyrk", "CTF",1,1,8,26); addRotationMap("S5_Woodymyrk", "CTF",1,1,10,26);
addRotationMap("TenebrousCTF", "CTF",1,1,8,12); addRotationMap("TenebrousCTF", "CTF",1,0,8,12);
addRotationMap("Pariah", "CTF",1,1,8,16); addRotationMap("Pariah", "CTF",1,0,8,16);
addRotationMap("Prismatic", "CTF",1,0,12,26); addRotationMap("Prismatic", "CTF",1,1,12,26);
addRotationMap("TWL_WilderZone", "CTF",1,1,8,20); addRotationMap("TWL_WilderZone", "CTF",1,0,8,20);
//addRotationMap("Mirage", "CTF",1,0,8,20); //addRotationMap("Mirage", "CTF",1,0,8,20);
addRotationMap("S5_Mimicry", "CTF",1,0,8,24); addRotationMap("S5_Mimicry", "CTF",1,0,8,24);
//addRotationMap("TWL_Snowblind", "CTF",1,0,12,-1); //addRotationMap("TWL_Snowblind", "CTF",1,0,12,-1);
addRotationMap("ShortFall", "CTF",1,0,12,24); addRotationMap("ShortFall", "CTF",1,1,12,24);
//addRotationMap("IceRidge_nef", "CTF",1,0,8,20); //addRotationMap("IceRidge_nef", "CTF",1,0,8,20);
//addRotationMap("Disjointed", "CTF",1,0,8,20); //addRotationMap("Disjointed", "CTF",1,0,8,20);
addRotationMap("TWL2_MuddySwamp", "CTF",1,1,8,20); addRotationMap("TWL2_MuddySwamp", "CTF",1,0,8,20);
addRotationMap("HighAnxiety", "CTF",1,0,8,20); addRotationMap("HighAnxiety", "CTF",1,0,8,20);
addRotationMap("S5_Centaur", "CTF",1,1,8,20); addRotationMap("S5_Centaur", "CTF",1,0,8,20);
addRotationMap("S8_Cardiac", "CTF",1,1,12,-1); addRotationMap("S8_Cardiac", "CTF",1,1,12,-1);
addRotationMap("CirclesEdge", "CTF",1,1,10,24); addRotationMap("CirclesEdge", "CTF",1,1,10,24);
addRotationMap("S5_Icedance", "CTF",1,1,8,24); addRotationMap("S5_Icedance", "CTF",1,1,8,24);
@ -133,20 +136,20 @@ addRotationMap("Cinereous", "CTF",1,0,12,20);
//addRotationMap("Coppersky", "CTF",1,0,8,20); //addRotationMap("Coppersky", "CTF",1,0,8,20);
//addRotationMap("TWL2_Crevice", "CTF",1,0,10,20); //addRotationMap("TWL2_Crevice", "CTF",1,0,10,20);
//addRotationMap("TWL_SubZero", "CTF",1,0,10,20); //addRotationMap("TWL_SubZero", "CTF",1,0,10,20);
//addRotationMap("TWL_Titan", "CTF",1,0,10,20); addRotationMap("TWL_Titan", "CTF",1,0,12,20);
//addRotationMap("Confusco", "CTF",1,0,10,20); addRotationMap("Confusco", "CTF",1,0,10,20);
//addRotationMap("Fallout", "CTF",1,0,10,20); //addRotationMap("Fallout", "CTF",1,0,10,20);
//addRotationMap("TheClocktower", "CTF",1,0,10,20); //addRotationMap("TheClocktower", "CTF",1,0,10,20);
//addRotationMap("SoylentGreen", "CTF",1,0,10,20); //addRotationMap("SoylentGreen", "CTF",1,0,10,20);
//addRotationMap("Ramparts", "CTF",1,0,10,20); //addRotationMap("Ramparts", "CTF",1,0,10,20);
//addRotationMap("Blastside_nef", "CTF",1,0,10,24); //addRotationMap("Blastside_nef", "CTF",1,0,10,24);
//addRotationMap("Burstside", "CTF",1,0,10,20); addRotationMap("Burstside", "CTF",1,0,10,20);
//addRotationMap("Infernus", "CTF",1,0,18,26); //addRotationMap("Infernus", "CTF",1,0,18,26);
//addRotationMap("NatureMagic", "CTF",1,0,10,20); //addRotationMap("NatureMagic", "CTF",1,0,10,20);
//addRotationMap("TWL_Damnation", "CTF",1,0,10,20); //addRotationMap("TWL_Damnation", "CTF",1,0,10,20);
addRotationMap("TWL_DangerousCrossing", "CTF",1,1,10,20); addRotationMap("TWL_DangerousCrossing", "CTF",1,1,10,20);
//addRotationMap("TWL_DeadlyBirdsSong", "CTF",1,0,10,20); addRotationMap("TWL_DeadlyBirdsSong", "CTF",1,0,10,20);
addRotationMap("Vauban", "CTF",1,0,18,-1); //addRotationMap("Vauban", "CTF",1,0,18,-1);
//addRotationMap("TWL_Pandemonium", "CTF",1,0,10,24); //addRotationMap("TWL_Pandemonium", "CTF",1,0,10,24);
//Vehicle Maps //Vehicle Maps
@ -154,12 +157,13 @@ addRotationMap("Vauban", "CTF",1,0,18,-1);
addRotationMap("Logans_Run", "CTF",1,1,8,28); addRotationMap("Logans_Run", "CTF",1,1,8,28);
addRotationMap("Rollercoaster_nef", "CTF",1,1,8,28); addRotationMap("Rollercoaster_nef", "CTF",1,1,8,28);
addRotationMap("HostileLoch", "CTF",1,1,12,24); //addRotationMap("Rollercoaster_nef_FZ", "CTF",1,1,8,28);
addRotationMap("HostileLoch", "CTF",1,0,12,24);
addRotationMap("TWL_BeachBlitz", "CTF",1,1,12,24); addRotationMap("TWL_BeachBlitz", "CTF",1,1,12,24);
addRotationMap("TWL2_Magnum", "CTF",1,1,12,28); addRotationMap("TWL2_Magnum", "CTF",1,1,12,28);
addRotationMap("MoonDance", "CTF",1,1,12,28); addRotationMap("MoonDance", "CTF",1,0,12,28);
addRotationMap("Raindance_nef", "CTF",1,1,12,28); addRotationMap("Raindance_nef", "CTF",1,1,12,28);
addRotationMap("TWL_Magmatic", "CTF",1,0,18,28); addRotationMap("TWL_Magmatic", "CTF",1,0,14,28);
addRotationMap("TWL2_FrozenGlory", "CTF",1,1,12,24); addRotationMap("TWL2_FrozenGlory", "CTF",1,1,12,24);
addRotationMap("LandingParty", "CTF",1,1,12,28); addRotationMap("LandingParty", "CTF",1,1,12,28);
//addRotationMap("TitanV", "CTF",1,0,12,28); //addRotationMap("TitanV", "CTF",1,0,12,28);
@ -170,9 +174,9 @@ addRotationMap("TWL_Crossfire", "CTF",1,1,14,28);
//Vehicle Maps: Voteable, But Not in Rotation //Vehicle Maps: Voteable, But Not in Rotation
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
//addRotationMap("SubZeroV", "CTF",1,0,12,24); addRotationMap("SubZeroV", "CTF",1,0,12,24);
//addRotationMap("S8_Geothermal", "CTF",1,0,12,24); addRotationMap("S8_Geothermal", "CTF",1,0,12,24);
//addRotationMap("Lakefront", "CTF",1,0,12,24); addRotationMap("Lakefront", "CTF",1,0,12,24);
//addRotationMap("ShockRidge", "CTF",1,0,12,24); //addRotationMap("ShockRidge", "CTF",1,0,12,24);
addRotationMap("TWL2_BlueMoon", "CTF",1,1,18,28); addRotationMap("TWL2_BlueMoon", "CTF",1,1,18,28);
addRotationMap("TWL_Katabatic", "CTF",1,0,16,28); addRotationMap("TWL_Katabatic", "CTF",1,0,16,28);
@ -185,38 +189,90 @@ addRotationMap("TWL_Katabatic", "CTF",1,0,16,28);
//addRotationMap("FilteredDust", "CTF",1,0,12,24); //addRotationMap("FilteredDust", "CTF",1,0,12,24);
//addRotationMap("Choke", "CTF",1,0,12,24); //addRotationMap("Choke", "CTF",1,0,12,24);
//addRotationMap("TWL_Chokepoint", "CTF",1,0,12,24); //addRotationMap("TWL_Chokepoint", "CTF",1,0,12,24);
//addRotationMap("Nightdance", "CTF",1,0,10,24); addRotationMap("Nightdance", "CTF",1,0,10,24);
//addRotationMap("TWL_Abaddon", "CTF",1,0,16,24); //addRotationMap("TWL_Abaddon", "CTF",1,0,16,24);
//BIG Vehicle Maps //BIG Vehicle Maps
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
addRotationMap("Circleofstones", "CTF",1,1,12,-1); addRotationMap("Circleofstones", "CTF",1,1,16,-1);
addRotationMap("TWL2_Ruined", "CTF",1,1,18,-1); //addRotationMap("TWL2_Ruined", "CTF",1,1,18,-1);
addRotationMap("Ruined", "CTF",1,0,16,-1);
//addRotationMap("Agorazscium", "CTF",1,0,24,-1); //addRotationMap("Agorazscium", "CTF",1,0,24,-1);
//addRotationMap("FullCircle", "CTF",1,0,18,30); //addRotationMap("FullCircle", "CTF",1,0,18,30);
//addRotationMap("Surro", "CTF",1,0,18,24); //addRotationMap("Surro", "CTF",1,0,18,24);
//addRotationMap("TWL2_RoughLand", "CTF",1,0,20,-1); //addRotationMap("TWL2_RoughLand", "CTF",1,0,20,-1);
addRotationMap("HarvestDance", "CTF",1,1,20,-1); addRotationMap("HarvestDance", "CTF",1,1,16,-1);
//addRotationMap("WindyGap", "CTF",1,0,24,-1); //addRotationMap("WindyGap", "CTF",1,0,24,-1);
addRotationMap("Fenix", "CTF",1,1,28,-1); addRotationMap("Fenix", "CTF",1,1,24,-1);
addRotationMap("Hillside", "CTF",1,1,28,-1); addRotationMap("Hillside", "CTF",1,1,24,-1);
//addRotationMap("Sangre_de_Grado", "CTF",1,0,20,-1); //addRotationMap("Sangre_de_Grado", "CTF",1,0,20,-1);
//addRotationMap("Slapdash", "CTF",1,0,20,-1); //addRotationMap("Slapdash", "CTF",1,0,20,-1);
addRotationMap("BerylBasin", "CTF",1,1,16,-1); addRotationMap("BerylBasin", "CTF",1,0,16,-1);
//addRotationMap("TWL_Frozen", "CTF",1,0,20,-1); //addRotationMap("TWL_Frozen", "CTF",1,0,20,-1);
addRotationMap("TWL_Harvester", "CTF",1,1,24,-1); addRotationMap("TWL_Harvester", "CTF",1,1,24,-1);
//addRotationMap("Archipelago", "CTF",1,0,20,-1); //addRotationMap("Archipelago", "CTF",1,0,20,-1);
addRotationMap("TWL2_Bleed", "CTF",1,0,18,-1); addRotationMap("TWL2_Bleed", "CTF",1,0,18,-1);
addRotationMap("Pantheon", "CTF",1,1,20,-1); addRotationMap("Pantheon", "CTF",1,0,20,-1);
addRotationMap("DeathBirdsFly1", "CTF",1,1,24,-1); addRotationMap("DeathBirdsFly1", "CTF",1,1,24,-1);
//addRotationMap("Scarabrae_nef", "CTF",1,0,28,-1); addRotationMap("Scarabrae_nef", "CTF",1,0,28,-1);
addRotationMap("aabaa", "CTF",1,1,28,-1); addRotationMap("aabaa", "CTF",1,1,28,-1);
addRotationMap("TWL_Reversion", "CTF",1,1,28,-1); addRotationMap("TWL_Reversion", "CTF",1,1,28,-1);
//addRotationMap("Glade", "CTF",1,1,28,-1); //addRotationMap("Glade", "CTF",1,1,28,-1);
//addRotationMap("TWL_Horde", "CTF",1,0,28,-1); addRotationMap("TWL_Horde", "CTF",1,1,24,-1);
addRotationMap("CloakofNightV", "CTF",1,1,24,-1); addRotationMap("CloakofNightV", "CTF",1,1,24,-1);
//DMP Mappack
/////////////////////////////////////////////////////////////////////
addRotationMap("DMP_Agroleon", "CTF",1,0,16,28);
addRotationMap("DMP_Astro", "CTF",1,1,8,18);
addRotationMap("DMP_BastardForge", "CTF",1,1,6,24);
addRotationMap("DMP_BitterGorge", "CTF",1,0,18,24);
addRotationMap("DMP_Bunkered", "CTF",1,1,6,12);
addRotationMap("DMP_Cinerarium", "CTF",1,1,6,12);
addRotationMap("DMP_DermCity", "CTF",1,0,-1,-1);
addRotationMap("DMP_Embers", "CTF",1,0,6,12);
addRotationMap("DMP_EmeraldSpit", "CTF",1,1,10,20);
addRotationMap("DMP_FaceCrossing", "CTF",1,0,10,20);
addRotationMap("DMP_Hoth", "CTF",1,0,24,-1);
addRotationMap("DMP_IceGiant", "CTF",1,0,16,28);
addRotationMap("DMP_IsleDeBatalla", "CTF",1,0,10,20);
addRotationMap("DMP_LavaGods", "CTF",1,1,10,20);
addRotationMap("DMP_Magellan", "CTF",1,1,10,18);
addRotationMap("DMP_MoonDance", "CTF",1,1,12,28);
addRotationMap("DMP_Pantheon", "CTF",1,0,18,28);
addRotationMap("DMP_Paranoia", "CTF",1,1,6,10);
addRotationMap("DMP_Pariah", "CTF",1,1,8,16);
addRotationMap("DMP_PipeDream", "CTF",1,1,8,16);
addRotationMap("DMP_RavineV", "CTF",1,0,12,28);
addRotationMap("DMP_ScorchedEarth", "CTF",1,0,14,-1);
addRotationMap("DMP_SimpleFlagArena", "CTF",1,1,6,12);
addRotationMap("DMP_SpinCycle", "CTF",1,1,8,16);
addRotationMap("DMP_StarFall", "CTF",1,1,6,12);
addRotationMap("DMP_Tyre", "CTF",1,1,16,24);
addRotationMap("DMP_Wasteland", "CTF",1,1,10,20);
addRotationMap("SC_Normal", "CTF",1,1,-1,16);
// addRotationMap("SC_Badlands", "CTF",1,1,-1,16);
// addRotationMap("SC_Desert", "CTF",1,1,-1,16);
// addRotationMap("SC_Lush", "CTF",1,1,-1,16);
addRotationMap("SC_Ice", "CTF",1,1,-1,16);
// addRotationMap("SC_Night", "CTF",1,1,-1,16);
// addRotationMap("DX_Badlands", "CTF",1,1,10,20);
// addRotationMap("DX_Desert", "CTF",1,1,10,20);
addRotationMap("DX_Ice", "CTF",1,0,10,20);
// addRotationMap("HO_Badlands", "CTF",1,1,8,24);
// addRotationMap("HO_Desert", "CTF",1,1,8,24);
addRotationMap("HO_Ice", "CTF",1,1,8,24);
// addRotationMap("HO_Lush", "CTF",1,1,8,24);
addRotationMap("Attrition", "CTF",1,0,-1,-1);
// addRotationMap("Chasmaclysmic", "CTF",1,1,-1,-1);
// addRotationMap("DBS_Smoothed", "CTF",1,1,-1,-1);
// addRotationMap("PuliVeivari", "CTF",1,1,-1,-1);
addRotationMap("PlanetX", "CTF",1,0,-1,-1);
// addRotationMap("Ravine", "CTF",1,1,-1,-1);
addRotationMap("Stripmine", "CTF",1,0,-1,-1);
//Not In Rotation - Not Voteable //Not In Rotation - Not Voteable
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
@ -303,7 +359,7 @@ addRotationMap("DesertofDeathLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("Raindance_nefLak", "Lakrabbit",1,1,-1,-1); addRotationMap("Raindance_nefLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("SunDriedLak", "Lakrabbit",1,1,-1,-1); addRotationMap("SunDriedLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("SkinnyDipLak", "Lakrabbit",1,1,-1,-1); addRotationMap("SkinnyDipLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("SaddiesHill", "Lakrabbit",1,0,-1,-1); addRotationMap("SaddiesHill", "Lakrabbit",1,1,-1,-1);
addRotationMap("HavenLak", "Lakrabbit",1,0,-1,-1); addRotationMap("HavenLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("LushLak", "Lakrabbit",1,1,8,-1); addRotationMap("LushLak", "Lakrabbit",1,1,8,-1);
addRotationMap("BoxLak", "Lakrabbit",1,1,-1,10); addRotationMap("BoxLak", "Lakrabbit",1,1,-1,10);
@ -315,6 +371,7 @@ addRotationMap("CankerLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("DustRunLak", "Lakrabbit",1,1,-1,-1); addRotationMap("DustRunLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("CrossfiredLak", "Lakrabbit",1,0,-1,-1); addRotationMap("CrossfiredLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("CloakofLak", "Lakrabbit",1,1,-1,-1); addRotationMap("CloakofLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("SpectreLak", "Lakrabbit",1,1,-1,-1);
//Voteable, But not in rotation //Voteable, But not in rotation
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
@ -327,7 +384,7 @@ addRotationMap("EquinoxLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("PhasmaDustLak", "Lakrabbit",1,1,-1,12); addRotationMap("PhasmaDustLak", "Lakrabbit",1,1,-1,12);
addRotationMap("GodsRiftLak", "Lakrabbit",1,0,-1,-1); addRotationMap("GodsRiftLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("SolsDescentLak", "Lakrabbit",1,0,-1,-1); addRotationMap("SolsDescentLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("Crater71Lak", "Lakrabbit",1,1,6,-1); addRotationMap("Crater71Lak", "Lakrabbit",1,0,6,-1);
//Not Voteable, Not in rotation //Not Voteable, Not in rotation
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////
@ -395,6 +452,7 @@ addRotationMap("PariahLT", "sctf",1,1,-1,16);
addRotationMap("S8_ZilchLT", "sctf",1,1,-1,-1); addRotationMap("S8_ZilchLT", "sctf",1,1,-1,-1);
addRotationMap("TWL_BeachBlitzLT", "sctf",1,1,-1,-1); addRotationMap("TWL_BeachBlitzLT", "sctf",1,1,-1,-1);
addRotationMap("FrozenHopeLT", "sctf",1,1,-1,-1); addRotationMap("FrozenHopeLT", "sctf",1,1,-1,-1);
addRotationMap("Confusco", "sctf",1,0,6,-1);
//addRotationMap("TWL2_JaggedClawLT", "sctf",1,1,-1,-1); //addRotationMap("TWL2_JaggedClawLT", "sctf",1,1,-1,-1);
//Voteable, But not in rotation //Voteable, But not in rotation
@ -407,6 +465,21 @@ addRotationMap("S5_WoodymyrkLT", "sctf",1,1,-1,-1);
addRotationMap("S8_Opus", "sctf",1,0,-1,-1); addRotationMap("S8_Opus", "sctf",1,0,-1,-1);
addRotationMap("TWL_DangerousCrossing", "sctf",1,0,-1,-1); addRotationMap("TWL_DangerousCrossing", "sctf",1,0,-1,-1);
//DMP Mappack
/////////////////////////////////////////////////////////////////////
// addRotationMap("Attrition", "sctf",1,0,-1,-1);
addRotationMap("Rush", "sctf",1,1,-1,-1);
addRotationMap("HillKingLT", "sctf",1,1,-1,-1);
addRotationMap("DMP_BastardForge", "sctf",1,1,-1,-1);
addRotationMap("VanDamnedLT", "sctf",1,1,-1,-1);
addRotationMap("DMP_Paranoia", "sctf",1,0,-1,-1);
addRotationMap("DMP_Spincycle", "sctf",1,1,-1,-1);
addRotationMap("Ravine", "sctf",1,1,-1,-1);
// addRotationMap("DX_Badlands", "sctf",1,0,-1,-1);
// addRotationMap("DX_Desert", "sctf",1,0,-1,-1);
// addRotationMap("DX_Ice", "sctf",1,0,-1,-1);
//addRotationMap("Moonwalk", "sctf",1,0,-1,-1);
//Not Voteable, Not in rotation //Not Voteable, Not in rotation
///////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////

View file

@ -15,7 +15,7 @@ $Host::AnimateWithTransitions = 1;
$Host::AntiPackEnable = 1; $Host::AntiPackEnable = 1;
$Host::AntiPackPlayerCount = 6; $Host::AntiPackPlayerCount = 6;
$Host::AveragePings = 1; $Host::AveragePings = 1;
$Host::BanTime = 30; $Host::BanTime = 43200;
$Host::BotCount = 14; $Host::BotCount = 14;
$Host::BotsEnabled = "0"; $Host::BotsEnabled = "0";
$Host::ClassicAdminLog = 1; $Host::ClassicAdminLog = 1;
@ -100,7 +100,7 @@ $Host::holoName5 = "BloodEagle";
$Host::holoName6 = "Harbinger"; $Host::holoName6 = "Harbinger";
$Host::Info = "This is a Tribes 2 Classic server. More information in Discord. <a:playt2.com/discord>playt2.com/discord</a>"; $Host::Info = "This is a Tribes 2 Classic server. More information in Discord. <a:playt2.com/discord>playt2.com/discord</a>";
$Host::ItemRespawnTime = 30; $Host::ItemRespawnTime = 30;
$Host::KickBanTime = 1; $Host::KickBanTime = 20;
$Host::KickObserverStartOnJoin = 1; $Host::KickObserverStartOnJoin = 1;
$Host::KickObserverTimeout = 1200; $Host::KickObserverTimeout = 1200;
$Host::LakRabbitDuelMode = 0; $Host::LakRabbitDuelMode = 0;

View file

@ -212,7 +212,7 @@ function Flag::objectiveInit(%data, %flag)
// ------------------------------------------------------------------------------------------- // -------------------------------------------------------------------------------------------
} }
// AI consoel spam // AI console spam
function AIThrowObject(%object) function AIThrowObject(%object)
{ {
return; return;
@ -313,6 +313,9 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
if(%targetObject.invincible || %targetObject.getState() $= "Dead") if(%targetObject.invincible || %targetObject.getState() $= "Dead")
return; return;
if(%damageType == $DamageType::SatchelCharge && $InvBanList[LakRabbit, "SatchelCharge"] $= 1)
return;
//rabbit can't DJ in duel mode //rabbit can't DJ in duel mode
// if(Game.duelMode && %targetObject.holdingFlag && %targetObject == %sourceObject // if(Game.duelMode && %targetObject.holdingFlag && %targetObject == %sourceObject
// && %damageType == $DamageType::Disc // && %damageType == $DamageType::Disc
@ -342,10 +345,13 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
&& %sourceObject.getDataBlock().getClassName() $= "PlayerData" && %sourceObject.getDataBlock().getClassName() $= "PlayerData"
&& %targetObject.client == %sourceObject.client) && %targetObject.client == %sourceObject.client)
{ {
if(%damageType == $DamageType::Disc && %sourceObject.freeDJ) if(%sourceObject.holdingFlag $= "") //Not holding a flag (NonRabbit)
{ {
%amount = 0; if(%damageType == $DamageType::Disc && (%sourceObject.freeDJ || $Host::LakRabbitUnlimitedDJ))
%sourceObject.freeDJ--; {
%amount = 0;
%sourceObject.freeDJ--;
}
} }
} }
@ -626,7 +632,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
} }
%weapon = "Plasma"; %weapon = "Plasma";
case $DamageType::Laser: case $DamageType::Laser:
if($InvBanList[LakRabbit, "SniperRifle"]) //banned if($InvBanList[LakRabbit, "SniperRifle"] $= 1) //banned
return; return;
if(%energy > 0.5 || %players > 7) if(%energy > 0.5 || %players > 7)
@ -666,8 +672,11 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
case $DamageType::Missile: case $DamageType::Missile:
// doesn't matter if it's MA // doesn't matter if it's MA
%ma = 0; %ma = 0;
if((getSimTime() - $LakRabbit::MissileHeistTime > 10000) || !$LakRabbit::MissileHeistTime) if($InvBanList[LakRabbit, "MissileLauncher"] $= 1)
return; {
if((getSimTime() - $LakRabbit::MissileHeistTime > 10000) || !$LakRabbit::MissileHeistTime)
return;
}
%weapon = "Missile"; %weapon = "Missile";
} }
} }
@ -814,7 +823,8 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
// should this guy be blown apart? // should this guy be blown apart?
if( %damageType == $DamageType::Explosion || if( %damageType == $DamageType::Explosion ||
%damageType == $DamageType::Mortar || %damageType == $DamageType::Mortar ||
%damageType == $DamageType::Missile ) %damageType == $DamageType::Missile ||
%damageType == $DamageType::SatchelCharge )
{ {
if( %previousDamage >= 0.35 ) // only if <= 35 percent damage remaining if( %previousDamage >= 0.35 ) // only if <= 35 percent damage remaining
{ {
@ -972,7 +982,7 @@ $InvBanList[LakRabbit, "Plasma"] = 0;
$InvBanList[LakRabbit, "Blaster"] = 0; $InvBanList[LakRabbit, "Blaster"] = 0;
$InvBanList[LakRabbit, "EnergyPack"] = 0; $InvBanList[LakRabbit, "EnergyPack"] = 0;
$InvBanList[LakRabbit, "Mine"] = 0; $InvBanList[LakRabbit, "Mine"] = 0;
$InvBanList[LakRabbit, "TargetingLaser"] = 0; $InvBanList[LakRabbit, "TargetingLaser"] = 1;
// borlak functions // borlak functions
@ -1525,26 +1535,22 @@ function LakRabbitGame::playerSpawned(%game, %player)
else else
{ {
%player.clearInventory(); %player.clearInventory();
%player.setInventory(Disc,1); %player.setInventory(Disc,1);
%player.setInventory(Blaster,1); %player.setInventory(Blaster,1);
%player.setInventory(Plasma,1); %player.setInventory(Plasma,1);
%player.setInventory(DiscAmmo,30); %player.setInventory(DiscAmmo,30);
%player.setInventory(PlasmaAmmo,40); %player.setInventory(PlasmaAmmo,40);
%player.setInventory(Mine,6); %player.setInventory(Mine,6);
%player.setInventory(RepairKit,1); %player.setInventory(RepairKit,1);
%player.setInventory(EnergyPack,1); %player.setInventory(EnergyPack,1);
%player.use("Disc"); %player.use("Disc");
} }
%player.schedule(250,"selectWeaponSlot", 0); %player.schedule(250,"selectWeaponSlot", 0);
%player.setEnergyLevel(%player.getDatablock().maxEnergy); %player.setEnergyLevel(%player.getDatablock().maxEnergy);
if($Host::LakRabbitUnlimitedDJ == 1) %player.freeDJ = 1; // free diskjump
%player.freeDJ = 999; // free diskjump
else
%player.freeDJ = 1; // free diskjump
} }

View file

@ -85,6 +85,34 @@ function voteLog(%client, %typeName, %arg1, %arg2, %arg3, %arg4)
} }
} }
// votePercentLog(%client, %typeName, %key, %game.votesFor[%game.kickTeam], %game.votesAgainst[%game.kickTeam], %totalVotes, %game.totalVotesNone)
// Info: Logs voting percent events
function votePercentLog(%display, %typeName, %key, %voteYea, %voteNay, %voteTotal, %voteNone) //%voteNone = Did Not Vote (DNV) (Abstain)
{
if($Host::ClassicVoteLog)
{
// Dif calc for "VoteKickPlayer"
if(%typeName $= "VoteKickPlayer")
{
%percent = mFloor((%voteYea/ClientGroup.getCount()) * 100);
%voteNone = "N/A";
%display = %typeName SPC "[" @ %display.nameBase @ "]";
}
else
{
%percent = mFloor((%voteYea/(ClientGroup.getCount() - %voteNone)) * 100);
%display = %typeName SPC "[" @ %display @ "]";
}
$VoteLog = "[" @ %key @ "]" SPC %display SPC "Yea[" @ %voteYea @ "] Nay[" @ %voteNay @ "] Abstain[" @ %voteNone @ "] Total[" @ %voteTotal @ "] Vote%[" @ %percent @ "]";
// this is the info that will be logged
%logpath = $Host::ClassicVoteLogPath;
export("$VoteLog", %logpath, true);
logEcho($VoteLog);
}
}
// From Goon // From Goon
// Slightly more elegant solution rather than spamming console // Slightly more elegant solution rather than spamming console
function ClassicChatLog(%client, %id, %team, %msg) function ClassicChatLog(%client, %id, %team, %msg)

View file

@ -203,35 +203,51 @@ function GameBaseData::onAdd(%data, %obj)
// Throw Spam fix // Throw Spam fix
function serverCmdThrow(%client, %data) function serverCmdThrow(%client, %data)
{ {
if(%client.tossLock) if(%client.tossLock)
return; {
if(getSimTime() - %client.tossLockTime < 30000)
return;
else
%client.tossLock = 0;
}
if(getSimTime() - %client.tossTime < 128) if(getSimTime() - %client.tossTime < 128)
{ {
%client.tossCounter++; %client.tossCounter++;
if(%client.tossCounter > 30) if(%client.tossCounter > 30)
{ {
echo(%client.nameBase SPC "was Banned for exceeding" SPC %client.tossCounter SPC "Toss Limit."); if(%client.tossLockWarning)
messageAll('msgAll',"\c3" @ %client.namebase SPC "is attempting to lag the server!"); {
messageClient(%client, 'onClientBanned', ""); echo(%client.nameBase SPC "was Banned for exceeding" SPC %client.tossCounter SPC "Toss Limit.");
messageAllExcept( %client, -1, 'MsgClientDrop', "", %client.name, %client ); messageAll('msgAll',"\c3" @ %client.namebase SPC "is attempting to lag the server!");
if(isObject(%client.player)) messageClient(%client, 'onClientBanned', "");
%client.player.scriptKill(0); messageAllExcept( %client, -1, 'MsgClientDrop', "", %client.name, %client );
if (isObject(%client)) if(isObject(%client.player))
{ %client.player.scriptKill(0);
%client.setDisconnectReason("Item Spew scripts are not allowed on this server." ); if (isObject(%client))
%client.schedule(700, "delete"); {
} %client.setDisconnectReason("Item Spew scripts are not allowed on this server." );
BanList::add(%client.guid, %client.getAddress(), $Host::BanTime); %client.schedule(700, "delete");
%client.tossLock = 1; }
return; BanList::add(%client.guid, %client.getAddress(), $Host::BanTime);
} }
} else
else {
%client.tossCounter = 0; echo(%client.nameBase SPC "throwing items has been temporarily suspended for exceeding" SPC %client.tossCounter SPC "throw limit.");
centerprint(%client, "You are recieving this warning for throw spamming items.\nContinuing to use throw spew scripts will result in a ban.", 10, 2);
messageClient(%client, '', "Throwing items has been temporarily suspended.");
%client.tossLockTime = getSimTime();
%client.tossLockWarning = 1;
}
%client.tossLock = 1;
return;
}
}
else
%client.tossCounter = 0;
parent::serverCmdThrow(%client, %data); parent::serverCmdThrow(%client, %data);
%client.tossTime = getSimTime(); %client.tossTime = getSimTime();
} }
}; };

View file

@ -704,6 +704,7 @@ function DefaultGame::cancelMatchStart(%game, %admin)
function DefaultGame::voteKickPlayer(%game, %admin, %client) function DefaultGame::voteKickPlayer(%game, %admin, %client)
{ {
%cause = ""; %cause = "";
%typeName = "VoteKickPlayer";
if(isObject(%admin)) if(isObject(%admin))
{ {
@ -716,8 +717,10 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client)
%totalVotes = %game.votesFor[%game.kickTeam] + %game.votesAgainst[%game.kickTeam]; %totalVotes = %game.votesFor[%game.kickTeam] + %game.votesAgainst[%game.kickTeam];
if(%totalVotes > 0 && (%game.votesFor[%game.kickTeam] / %totalVotes) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.votesFor[%game.kickTeam] / %totalVotes) > ($Host::VotePasspercent / 100))
{ {
kick(%client, %admin, %game.kickGuid); kick(%client, %admin, %game.kickGuid);
%cause = "(vote)"; %cause = "(vote)";
%key = "Passed";
} }
else else
{ {
@ -728,9 +731,15 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client)
if (%cl.team == %game.kickTeam && !%cl.isAIControlled()) if (%cl.team == %game.kickTeam && !%cl.isAIControlled())
messageClient( %cl, 'MsgVoteFailed', '\c2Kick player vote did not pass.' ); messageClient( %cl, 'MsgVoteFailed', '\c2Kick player vote did not pass.' );
} }
%key = "Failed";
} }
} }
//Log Vote %
votePercentLog(%client, %typeName, %key, %game.votesFor[%game.kickTeam], %game.votesAgainst[%game.kickTeam], %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Total: %3 [%4%5]', %game.votesFor[%game.kickTeam], %game.votesAgainst[%game.kickTeam], %totalVotes, mfloor((%game.votesFor[%game.kickTeam] / %totalVotes) * 100), "%", %key);
%game.kickTeam = ""; %game.kickTeam = "";
%game.kickGuid = ""; %game.kickGuid = "";
%game.kickClientName = ""; %game.kickClientName = "";
@ -742,6 +751,8 @@ function DefaultGame::voteKickPlayer(%game, %admin, %client)
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
function DefaultGame::voteChangeMission(%game, %admin, %missionDisplayName, %typeDisplayName, %missionId, %missionTypeId) function DefaultGame::voteChangeMission(%game, %admin, %missionDisplayName, %typeDisplayName, %missionId, %missionTypeId)
{ {
%typeName = "VoteChangeMission";
%mission = $HostMissionFile[%missionId]; %mission = $HostMissionFile[%missionId];
if ( %mission $= "" ) if ( %mission $= "" )
{ {
@ -765,22 +776,39 @@ function DefaultGame::voteChangeMission(%game, %admin, %missionDisplayName, %typ
} }
else else
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The mission was changed to %1 (%2) by vote.', %missionDisplayName, %typeDisplayName ); messageAll('MsgVotePassed', '\c2The mission was changed to %1 (%2) by vote.', %missionDisplayName, %typeDisplayName );
//Log Vote % - Must be before Game Over
%key = "Passed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
%game.gameOver(); %game.gameOver();
loadMission( %mission, %missionType, false ); loadMission( %mission, %missionType, false );
} }
else else
{
messageAll('MsgVoteFailed', '\c2Change mission vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVoteFailed', '\c2Change mission vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote %
%key = "Failed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
}
} }
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %typeDisplayName, %missionId, %missionTypeId ) function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %typeDisplayName, %missionId, %missionTypeId )
{ {
%typeName = "VoteTournamentMode";
%mission = $HostMissionFile[%missionId]; %mission = $HostMissionFile[%missionId];
if ( %mission $= "" ) if ( %mission $= "" )
{ {
@ -808,10 +836,25 @@ function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %t
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2Server switched to Tournament mode by vote (%1): %2 percent.', %missionDisplayName, mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVotePassed', '\c2Server switched to Tournament mode by vote (%1): %2 percent.', %missionDisplayName, mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote % - Must be before Game Over
%key = "Passed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
setModeTournament( %mission, %missionType ); setModeTournament( %mission, %missionType );
} }
else else
messageAll('MsgVoteFailed', '\c2Tournament mode vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); {
//Log Vote %
%key = "Failed";
votePercentLog(%missionDisplayName, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
messageAll('MsgVoteFailed', '\c2Tournament mode vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
}
} }
if(%cause !$= "") if(%cause !$= "")
@ -821,6 +864,8 @@ function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %t
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit ) function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
{ {
%typeName = "VoteChangeTimeLimit";
if( %newLimit == 999 ) if( %newLimit == 999 )
%display = "unlimited"; %display = "unlimited";
else else
@ -844,10 +889,23 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
ResetVOTimeChanged(%game); ResetVOTimeChanged(%game);
// Reset the voted time limit when changing mission // Reset the voted time limit when changing mission
$TimeLimitChanged = 1; $TimeLimitChanged = 1;
//Log Vote %
%key = "Passed";
votePercentLog(%newLimit, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
} }
else else
{ {
messageAll('MsgVoteFailed', '\c2The vote to change the mission time limit did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVoteFailed', '\c2The vote to change the mission time limit did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote %
%key = "Failed";
votePercentLog(%newLimit, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
// VoteOvertime // VoteOvertime
ResetVOall(%game); ResetVOall(%game);
} }
@ -894,6 +952,8 @@ function DefaultGame::voteFFAMode( %game, %admin, %client )
function DefaultGame::voteSkipMission(%game, %admin, %arg1, %arg2, %arg3, %arg4) function DefaultGame::voteSkipMission(%game, %admin, %arg1, %arg2, %arg3, %arg4)
{ {
%typeName = "VoteSkipMission";
if(isObject(%admin)) if(isObject(%admin))
{ {
messageAll('MsgAdminForce', '\c2The Admin %1 has skipped to the next mission.',%admin.name ); messageAll('MsgAdminForce', '\c2The Admin %1 has skipped to the next mission.',%admin.name );
@ -908,13 +968,28 @@ function DefaultGame::voteSkipMission(%game, %admin, %arg1, %arg2, %arg3, %arg4)
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The mission was skipped to next by vote.'); messageAll('MsgVotePassed', '\c2The mission was skipped to next by vote.');
//Log Vote % - Must be before Game Over
%key = "Passed";
votePercentLog("N/A", %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
echo("mission skipped (vote)"); echo("mission skipped (vote)");
%game.gameOver(); %game.gameOver();
//loadMission( findNextCycleMission(), $CurrentMissionType, false ); //loadMission( findNextCycleMission(), $CurrentMissionType, false );
cycleMissions(); cycleMissions();
} }
else else
{
messageAll('MsgVoteFailed', '\c2Skip mission vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVoteFailed', '\c2Skip mission vote did not pass: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
//Log Vote %
%key = "Failed";
votePercentLog("N/A", %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
//Show Vote %
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
}
} }
} }
@ -946,9 +1021,9 @@ function DefaultGame::voteMatchStart( %game, %admin)
} }
else else
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The match has been started by vote: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVotePassed', '\c2The match has been started by vote: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
startTourneyCountdown(); startTourneyCountdown();

View file

@ -1,9 +1,14 @@
//$dtBanList::IP192_168_0_133 = "336\t2020\t365";
//336 day of the year banned Dec1
//2020 year banned
//365 How long to ban (365 days = 1 year)
//$Host::dtBanlist = "prefs/dtBanlist.cs"; //$Host::dtBanlist = "prefs/dtBanlist.cs";
//$Host::KickBanTime = 20; is 20 Minutes
//$Host::BanTime = 43200; is One Month
//$Host::BanTime = 129600; is Three Months
//$Host::BanTime = 259200; is Six Months
//$Host::BanTime = 518400; is 1 year
//$Host::BanTime = 1000000; is Until you unban them (Forever)
//$Host::BanTime = BAN; is Until you unban them (Forever)
//$dtBanList::GUID3555379 = "DAY OF THE YEAR BANNED \t YEAR BANNED \t HOUR BANNED \t MINUTE BANNED \t TIME TO BE BANNED";
//$dtBanList::GUID3555379 = "4\t2021\t18\t31\t518400";
package dtBan package dtBan
{ {
@ -17,57 +22,64 @@ function ClassicLoadBanlist()
exec($Host::ClassicWhitelist); exec($Host::ClassicWhitelist);
} }
function BanList::add(%guid, %ipAddress, %days) function BanList::add(%guid, %ipAddress, %time){
{ if(%time > 999999){
if (%guid > 0) %time = "BAN";
$dtBanList::GUID[%guid] = dtBanDay() TAB getBanYear() TAB %days; }
if (%guid > 0){
$dtBanList::GUID[%guid] = dtBanMark() TAB %time;
}
if (getSubStr(%ipAddress, 0, 3) $= "IP:"){
// add IP ban
%bareIP = getSubStr(%ipAddress, 3, strLen(%ipAddress));
%bareIP = getSubStr(%bareIP, 0, strstr(%bareIP, ":"));
%bareIP = strReplace(%bareIP, ".", "_"); // variable access bug workaround
if (getSubStr(%ipAddress, 0, 3) $= "IP:") $dtBanList::IP[%bareIP] = dtBanMark() TAB %time;
{ //error("ban" SPC %bareIP SPC $dtBanList::IP[%bareIP]);
// add IP ban }
%bareIP = getSubStr(%ipAddress, 3, strLen(%ipAddress));
%bareIP = getSubStr(%bareIP, 0, strstr(%bareIP, ":"));
%bareIP = strReplace(%bareIP, ".", "_"); // variable access bug workaround
$dtBanList::IP[%bareIP] = dtBanDay() TAB getBanYear() TAB %days; // write out the updated bans to the file
//error("ban" SPC %bareIP SPC $dtBanList::IP[%bareIP]); export("$dtBanList*", $Host::dtBanlist);
}
// write out the updated bans to the file
export("$dtBanList*", $Host::dtBanlist);
} }
function banList_checkIP(%client) function banList_checkIP(%client){
{ %ip = %client.getAddress();
%ip = %client.getAddress(); %ip = getSubStr(%ip, 3, strLen(%ip));
%ip = getSubStr(%ip, 3, strLen(%ip)); %ip = getSubStr(%ip, 0, strstr(%ip, ":"));
%ip = getSubStr(%ip, 0, strstr(%ip, ":")); %ip = strReplace(%ip, ".", "_");
%ip = strReplace(%ip, ".", "_");
%time = $dtBanList::IP[%ip]; %time = $dtBanList::IP[%ip];
if (%time !$= "" && %time !$= "UNBAN") if(%time $= "BAN")
{ return 1;
%delta = getBanCount(getField(%time,0), getField(%time,1)); if (%time !$= "" && %time != 0){
if (%delta < getField(%time,2)) %delta = getBanCount(getField(%time,0), getField(%time,1),getField(%time,2),getField(%time,3));
return 1; if (%delta < getField(%time,4))
else return 1;
$dtBanList::IP[%ip] = "UNBAN"; else{
} $dtBanList::IP[%ip] = "";
return 0; schedule(1000,0,"export","$dtBanList*", $Host::dtBanlist);
//export("$dtBanList*", "prefs/dtBanlist.cs");
}
}
return 0;
} }
function banList_checkGUID(%guid) function banList_checkGUID(%guid){
{ %time = $dtBanList::GUID[%guid];
%time = $dtBanList::GUID[%guid]; if(%time $= "BAN")
if (%time !$= "" && %time !$= "UNBAN") return 1;
{ if (%time !$= "" && %time != 0){
%delta = getBanCount(getField(%time,0), getField(%time,1)); %delta = getBanCount(getField(%time,0), getField(%time,1),getField(%time,2),getField(%time,3));
if (%delta < getField(%time,2)) if (%delta < getField(%time,4))
return 1; return 1;
else else{
$dtBanList::GUID[%guid] = "UNBAN"; $dtBanList::GUID[%guid] = "";
} schedule(500,0,"export","$dtBanList*", $Host::dtBanlist);
return 0; //export("$dtBanList*", "prefs/dtBanlist.cs");
}
}
return 0;
} }
}; };
@ -75,17 +87,32 @@ function banList_checkGUID(%guid)
if (!isActivePackage(dtBan)) if (!isActivePackage(dtBan))
activatePackage(dtBan); activatePackage(dtBan);
function getBanCount(%d, %year)
{ function getBanCount(%d, %year, %h, %n){
%dif = getBanYear() - %year; %dif = formattimestring("yy") - %year;
%days += 365 * (%dif-1); %days += 365 * (%dif-1);
%days += 365 - %d; %days += 365 - %d;
%days += dtBanDay(); %days += dtBanDay();
return %days; %ht = %nt = 0;
if(formattimestring("H") > %h){
%ht = formattimestring("H") - %h;
}
else if(formattimestring("H") < %h){
%ht = 24 - %h;
%ht = formattimestring("H")+ %ht;
}
if(formattimestring("n") > %n){
%nt = formattimestring("n") - %n;
}
else if(formattimestring("n") < %n){
%nt = 60 - %n;
%nt = formattimestring("n") + %nt;
}
return mfloor((%days * 1440) + (%ht*60) + %nt);
//return mfloor((%days * 1440) + (%ht*60) + %nt) TAB (%days * 1440) TAB (%ht*60) TAB %nt;
} }
function dtBanDay() function dtBanDay(){
{
%date = formattimestring("mm dd yy"); %date = formattimestring("mm dd yy");
%m = getWord(%date,0);%d = getWord(%date,1);%y = getWord(%date,2); %m = getWord(%date,0);%d = getWord(%date,1);%y = getWord(%date,2);
%count = 0; %count = 0;
@ -94,17 +121,35 @@ function dtBanDay()
%days[4] = "30"; %days[5] = "31"; %days[6] = "30"; %days[4] = "30"; %days[5] = "31"; %days[6] = "30";
%days[7] = "31"; %days[8] = "31"; %days[9] = "30"; %days[7] = "31"; %days[8] = "31"; %days[9] = "30";
%days[10] = "31"; %days[11] = "30"; %days[12] = "31"; %days[10] = "31"; %days[11] = "30"; %days[12] = "31";
for(%i = 1; %i <= %m-1; %i++){
for(%i = 1; %i <= %m-1; %i++)
{
%count += %days[%i]; %count += %days[%i];
} }
return %count + %d; return %count + %d;
} }
function getBanYear() function dtBanMark(){
{ %date = formattimestring("mm dd yy");
return formattimestring("yy"); %m = getWord(%date,0);%d = getWord(%date,1);%y = getWord(%date,2);
%count = 0;
if(%y % 4 < 1){%days[2] = "29";}else{%days[2] = "28";} // leap year
%days[1] = "31";%days[3] = "31";
%days[4] = "30"; %days[5] = "31"; %days[6] = "30";
%days[7] = "31"; %days[8] = "31"; %days[9] = "30";
%days[10] = "31"; %days[11] = "30"; %days[12] = "31";
for(%i = 1; %i <= %m-1; %i++){
%count += %days[%i];
}
return %count + %d TAB formattimestring("yy") TAB formattimestring("H") TAB formattimestring("n");
} }
function unban(%guid,%ip){
if($dtBanList::GUID[%guid] !$= ""){
$dtBanList::GUID[%guid] = "";
error("GUID" SPC %guid SPC "UNBANNED");
}
if($dtBanList::IP[%ip] !$= ""){
$dtBanList::IP[%ip] = "";
error("IP" SPC %ip SPC "UNBANNED");
}
export("$dtBanList*", $Host::dtBanlist);
}

View file

@ -14,7 +14,7 @@
//-----------Settings------------ //-----------Settings------------
//Notes score ui width is 592 //Notes score ui width is 592
$dtStats::version = 8.7; $dtStats::version = 8.8;
//disable stats system //disable stats system
$dtStats::Enable = 1; $dtStats::Enable = 1;
//enable disable map stats //enable disable map stats
@ -26,7 +26,9 @@ $dtStats::viewSelf = 0;
$dtStats::MaxNumOfGames = 100; $dtStats::MaxNumOfGames = 100;
//number of games for running average //number of games for running average
$dtStats::avgCount = 10; $dtStats::avgCount = 10;
// number of players to start tracking totals
$dtStats::minTotal = 6;
//how high the player has to be off the ground before it will count //how high the player has to be off the ground before it will count
$dtStats::midAirHeight = 10; $dtStats::midAirHeight = 10;
@ -353,8 +355,8 @@ $dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "escortAssists
$dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "defenseScore"; $dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "defenseScore";
$dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "offenseScore"; $dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "offenseScore";
$dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "flagDefends"; $dtStats::FVG[$dtStats::FCG["SCtFGame","TG"]++,"SCtFGame","TG"] = "flagDefends";
// in this script only
$dtStats::FV[$dtStats::FC["SCtFGame","TG"]++,"SCtFGame","TG"] = "winCount";// in this script only $dtStats::FV[$dtStats::FC["SCtFGame","TG"]++,"SCtFGame","TG"] = "winCount";
$dtStats::FV[$dtStats::FC["SCtFGame","TG"]++,"SCtFGame","TG"] = "lossCount"; $dtStats::FV[$dtStats::FC["SCtFGame","TG"]++,"SCtFGame","TG"] = "lossCount";
$dtStats::FV[$dtStats::FC["SCtFGame","Min"]++,"SCtFGame","Min"] = "heldTimeSec"; $dtStats::FV[$dtStats::FC["SCtFGame","Min"]++,"SCtFGame","Min"] = "heldTimeSec";
$dtStats::FV[$dtStats::FC["SCtFGame","Min"]++,"SCtFGame","Min"] = "heldTimeSecLow"; $dtStats::FV[$dtStats::FC["SCtFGame","Min"]++,"SCtFGame","Min"] = "heldTimeSecLow";
@ -634,7 +636,6 @@ $dtStats::FV[$dtStats::FC["Max"]++,"Max"] = "maxSpeed";
$dtStats::FV[$dtStats::FC["Avg"]++,"Avg"] = "avgSpeed"; $dtStats::FV[$dtStats::FC["Avg"]++,"Avg"] = "avgSpeed";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "comboCount"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "comboCount";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "distMov"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "distMov";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "weaponScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "firstKill"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "firstKill";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "lastKill"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "lastKill";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "deathKills"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "deathKills";
@ -1025,20 +1026,6 @@ $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "mineDeathGroundGround";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "satchelDeathGroundGround"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "satchelDeathGroundGround";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "cgScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "discScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hGrenadeScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "grenadeScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "laserScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "mortarScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "missileScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "shockScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "plasmaScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "blasterScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "mineScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "satchelScore";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "cgKillAir"; // air kills $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "cgKillAir"; // air kills
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "discKillAir"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "discKillAir";
$dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hGrenadeKillAir"; $dtStats::FV[$dtStats::FC["TG"]++,"TG"] = "hGrenadeKillAir";
@ -4032,31 +4019,6 @@ function DefaultGame::postGameStats(%game,%dtStats){ //stats to add up at the en
%dtStats.gamePCT = mFloor(%game.getGamePct() - %dtStats.joinPCT); %dtStats.gamePCT = mFloor(%game.getGamePct() - %dtStats.joinPCT);
%dtStats.cgScore = (%dtStats.cgKill + %dtStats.cgMA + %dtStats.cgKillAir + (%dtStats.cgKillDist/100) + %dtStats.cgCom) / 100;
%dtStats.discScore = %dtStats.discKill + %dtStats.discMA + %dtStats.discKillAir + (%dtStats.discKillDist/100) + %dtStats.discCom;
%dtStats.hGrenadeScore = %dtStats.hGrenadeKill + %dtStats.hGrenadeMA + %dtStats.hGrenadeKillAir + (%dtStats.hGrenadeKillDist/20) + %dtStats.hGrenadeCom;
%dtStats.grenadeScore = %dtStats.grenadeKill + %dtStats.grenadeMA + %dtStats.grenadeKillAir + (%dtStats.grenadeKillDist/100) + %dtStats.grenadeCom;
%dtStats.laserScore = %dtStats.laserKill + %dtStats.laserMA + %dtStats.laserKillAir + (%dtStats.laserKillDist/250) + %dtStats.laserCom + %dtStats.laserHeadShot;
%dtStats.mortarScore = %dtStats.mortarKill + %dtStats.mortarMA + %dtStats.mortarKillAir + (%dtStats.mortarKillDist/50) + %dtStats.mortarCom;
%dtStats.missileScore = (%dtStats.missileKill + %dtStats.missileMA + %dtStats.missileKillAir + (%dtStats.missileKillDist/500) + %dtStats.missileCom) / 10;
%dtStats.shockScore = %dtStats.shockKill + %dtStats.shockMA + %dtStats.shockKillAir + (%dtStats.shockKillDist/2) + %dtStats.shockCom + %dtStats.shockRearShot;
%dtStats.plasmaScore = %dtStats.plasmaKill + %dtStats.plasmaMA + %dtStats.plasmaKillAir + (%dtStats.plasmaKillDist/50) + %dtStats.plasmaCom;
%dtStats.blasterScore = %dtStats.blasterKill + %dtStats.blasterMA + %dtStats.blasterKillAir + (%dtStats.blasterKillDist/50) + %dtStats.blasterCom;
%dtStats.mineScore = %dtStats.mineKill + %dtStats.mineMA + %dtStats.mineKillAir + %dtStats.mineCom;
%dtStats.satchelScore = %dtStats.satchelKill + %dtStats.satchelMA + %dtStats.satchelKillAir + %dtStats.satchelCom;
%dtStats.weaponScore = %dtStats.cgScore +
%dtStats.discScore +
%dtStats.grenadeScore +
%dtStats.laserScore +
%dtStats.mortarScore +
%dtStats.shockScore +
%dtStats.plasmaScore +
%dtStats.blasterScore +
%dtStats.hGrenadeScore +
%dtStats.missileScore +
%dtStats.mineScore;
%dtStats.totalMA = %dtStats.discMA + %dtStats.totalMA = %dtStats.discMA +
%dtStats.grenadeMA + %dtStats.grenadeMA +
%dtStats.laserMA + %dtStats.laserMA +
@ -4114,7 +4076,7 @@ function DefaultGame::postGameStats(%game,%dtStats){ //stats to add up at the en
%dtStats.grenadeDmgACC = 0; %dtStats.grenadeDmgACC = 0;
} }
if(%dtStats.laserShotsFired < 5) if(%dtStats.laserShotsFired < 10)
%dtStats.laserACC = 0; %dtStats.laserACC = 0;
if(%dtStats.mortarShotsFired < 10){ if(%dtStats.mortarShotsFired < 10){
@ -4122,7 +4084,7 @@ function DefaultGame::postGameStats(%game,%dtStats){ //stats to add up at the en
%dtStats.mortarDmgACC = 0; %dtStats.mortarDmgACC = 0;
} }
if(%dtStats.shockShotsFired < 5) if(%dtStats.shockShotsFired < 10)
%dtStats.shockACC = 0; %dtStats.shockACC = 0;
if(%dtStats.plasmaShotsFired < 10){ if(%dtStats.plasmaShotsFired < 10){
@ -4136,16 +4098,6 @@ function DefaultGame::postGameStats(%game,%dtStats){ //stats to add up at the en
if(%dtStats.hGrenadeShotsFired < 6) if(%dtStats.hGrenadeShotsFired < 6)
%dtStats.hGrenadeACC = 0; %dtStats.hGrenadeACC = 0;
//if(%dtStats.mineShotsFired < 10){
//%dtStats.mineACC = 0;
//%dtStats.mineDiscPct = 0;
//%dtStats.mineDiscAccMP = 0;
//
//}
//if(%dtStats.mineDiscShots < 5)
//%dtStats.mineDiscAcc = 0;
if(%dtStats.satchelShotsFired < 5) if(%dtStats.satchelShotsFired < 5)
%dtStats.satchelACC = 0; %dtStats.satchelACC = 0;
@ -4907,8 +4859,12 @@ function incGameStats(%dtStats,%game) {// record that games stats and inc by one
%mapVal = getField(%dtStats.mapStats[getMapIDName(%game),%game],%varID); %mapVal = getField(%dtStats.mapStats[getMapIDName(%game),%game],%varID);
else else
%mapVal = 0; %mapVal = 0;
if(%val < %mapVal && %val != 0 || !%mapVal){ setValueField(%dtStats,getMapIDName(%game),"m",%game,%varID,%val);} if(%val < %mapVal && %val != 0 || !%mapVal){
else{ setValueField(%dtStats,getMapIDName(%game),"m",%game,%varID,%mapVal);} setValueField(%dtStats,getMapIDName(%game),"m",%game,%varID,%val);
}
else{
setValueField(%dtStats,getMapIDName(%game),"m",%game,%varID,%mapVal);
}
setValueField(%dtStats,"varName","m",%game,%varID,%varNameType); setValueField(%dtStats,"varName","m",%game,%varID,%varNameType);
} }
for(%x = 1; %x <= 9; %x+=2){ for(%x = 1; %x <= 9; %x+=2){
@ -8102,14 +8058,14 @@ function statsMenu(%client,%game){
} }
messageClient( %client, 'SetScoreHudSubheader', "", '<a:gamelink\tS\tView\t%1> Back</a> - <a:gamelink\tS\tReset\t%1>Return To Score Screen</a>',%vClient,%lType); messageClient( %client, 'SetScoreHudSubheader', "", '<a:gamelink\tS\tView\t%1> Back</a> - <a:gamelink\tS\tReset\t%1>Return To Score Screen</a>',%vClient,%lType);
%header = '<tab:0,50,65,200,320,460>\t<color:0befe7> \t# \t%2\tScore\tWeapons\tScore'; %header = '<tab:0,50,65,200,320,460>\t<color:0befe7> \t# \t%2\tScore\tKills\tTotal';
messageClient( %client, 'SetLineHud', "", %tag, %index++, %header,%vClient,$dtStats::gtNameLong[%client.lgame]); messageClient( %client, 'SetLineHud', "", %tag, %index++, %header,%vClient,$dtStats::gtNameLong[%client.lgame]);
for(%i = 0; %i < 10; %i++){ for(%i = 0; %i < 10; %i++){
%scoreName = getField($lData::name["scoreTG",%client.lgame,%lType,%mon,%year],%i); %scoreName = getField($lData::name["scoreTG",%client.lgame,%lType,%mon,%year],%i);
%gameScore = getField($lData::data["scoreTG",%client.lgame,%lType,%mon,%year],%i); %gameScore = getField($lData::data["scoreTG",%client.lgame,%lType,%mon,%year],%i);
%wepName = getField($lData::name["weaponScoreTG",%client.lgame,%lType,%mon,%year],%i); %wepName = getField($lData::name["killsTG",%client.lgame,%lType,%mon,%year],%i);
%wepScore = getField($lData::data["weaponScoreTG",%client.lgame,%lType,%mon,%year],%i); %wepScore = getField($lData::data["killsTG",%client.lgame,%lType,%mon,%year],%i);
if(%gameScore){ if(%gameScore){
%line = '<tab:0,50,65,200,320,460>\t<font:univers condensed:18> \t%3. \t<color:0befe7><clip:138>%1</clip><color:03d597>\t%4\t<color:0befe7><clip:138>%2</clip><color:03d597>\t%5'; %line = '<tab:0,50,65,200,320,460>\t<font:univers condensed:18> \t%3. \t<color:0befe7><clip:138>%1</clip><color:03d597>\t%4\t<color:0befe7><clip:138>%2</clip><color:03d597>\t%5';
messageClient( %client, 'SetLineHud', "", %tag, %index++, %line,%scoreName,%wepName,%i+1,%gameScore,mFloor(%wepScore+0.5)); messageClient( %client, 'SetLineHud', "", %tag, %index++, %line,%scoreName,%wepName,%i+1,%gameScore,mFloor(%wepScore+0.5));
@ -12478,7 +12434,7 @@ function prefTest(%time,%skip){
if(isGameRun() && !$dtStats::building && %plCount > 1){// only track during run time if(isGameRun() && !$dtStats::building && %plCount > 1){// only track during run time
%dif = (%real - %time) - $dtStats::prefTestTime; %dif = (%real - %time) - $dtStats::prefTestTime;
if(%dif > $dtStats::prefTolerance && !%skip){ if(%dif > $dtStats::prefTolerance && !%skip){
%msg = "Server Hang" SPC dtFormatTime(getSimTime()) SPC "Delay =" SPC %dif @ "ms" SPC "Player Count =" SPC %plCount; %msg = "Server Hang" SPC dtFormatTime(getSimTime()) SPC "Delay =" SPC %dif @ "ms" SPC "Player Count =" SPC %plCount SPC $CurrentMission;
if($dtStats::debugEchos){error(%msg);} if($dtStats::debugEchos){error(%msg);}
$dtServer::serverHangTotal++; $dtServer::serverHangTotal++;
$dtServer::serverHangMap[cleanMapName($CurrentMission),Game.class]++; $dtServer::serverHangMap[cleanMapName($CurrentMission),Game.class]++;
@ -12532,7 +12488,6 @@ function dtPingAvg(){
%cl.lastPing = %ping; %cl.lastPing = %ping;
if(%ping > 500){ if(%ping > 500){
%cl.dtStats.lagSpikes++; %cl.dtStats.lagSpikes++;
%vhPing++;
%hpCount++; %hpCount++;
} }
else if(%ping > 200){ else if(%ping > 200){
@ -12562,7 +12517,7 @@ function dtPingAvg(){
} }
} }
if(%plCount / %pc >= 0.5){ if(%plCount / %pc > 0.5){
if(getSimTime() - $dtStats:evTime[1] > $dtStats::eventLockout){ if(getSimTime() - $dtStats:evTime[1] > $dtStats::eventLockout){
%msg = "Packet Loss" SPC dtFormatTime(getSimTime()) SPC "Packet Loss Count =" SPC %plCount SPC "Player Count =" SPC %pc; %msg = "Packet Loss" SPC dtFormatTime(getSimTime()) SPC "Packet Loss Count =" SPC %plCount SPC "Player Count =" SPC %pc;
dtEventLog(%msg, 0); dtEventLog(%msg, 0);
@ -12571,10 +12526,10 @@ function dtPingAvg(){
} }
} }
%hpct = (%hpCount > 0) ? (%hpCount/%pc) : 0; %hpct = (%hpCount > 0) ? (%hpCount/%pc) : 0;
if(%hpct >= 0.5){ if(%hpct > 0.5){
if($dtStats::pingAvg > 1000){//network issues if($dtStats::pingAvg > 1000){//network issues
if(getSimTime() - $dtStats:evTime[2] > $dtStats::eventLockout){ if(getSimTime() - $dtStats:evTime[2] > $dtStats::eventLockout){
%msg = "Host Hang" SPC dtFormatTime(getSimTime()) SPC "Avg:" @ $dtStats::pingAvg @ "/" @ %lowAvg SPC "Min:" @ %min SPC "Max:" @ %max SPC "Counts =" SPC %hpCount @ "/" @ %vhPing @ "/" @ %pc; %msg = "Host Hang" SPC dtFormatTime(getSimTime()) SPC "Avg:" @ $dtStats::pingAvg @ "/" @ %lowAvg SPC "Min:" @ %min SPC "Max:" @ %max SPC "Counts =" SPC %hpCount @ "/" @ %pc;
if($dtStats::debugEchos){error(%msg);} if($dtStats::debugEchos){error(%msg);}
dtEventLog(%msg, 0); dtEventLog(%msg, 0);
$dtServer::hostHangMap[cleanMapName($CurrentMission),Game.class]++; $dtServer::hostHangMap[cleanMapName($CurrentMission),Game.class]++;
@ -12586,17 +12541,17 @@ function dtPingAvg(){
} }
else if($dtStats::pingAvg > 500){ else if($dtStats::pingAvg > 500){
if(getSimTime() - $dtStats:evTime[3] > $dtStats::eventLockout){ if(getSimTime() - $dtStats:evTime[3] > $dtStats::eventLockout){
%msg = "500+ Ping" SPC dtFormatTime(getSimTime()) SPC "Avg:" @ $dtStats::pingAvg @ "/" @ %lowAvg SPC "Min:" @ %min SPC "Max:" @ %max SPC "Counts =" SPC %hpCount @ "/" @ %vhPing @ "/" @ %pc; %msg = "500+ Ping" SPC dtFormatTime(getSimTime()) SPC "Avg:" @ $dtStats::pingAvg @ "/" @ %lowAvg SPC "Min:" @ %min SPC "Max:" @ %max SPC "Counts =" SPC %hpCount @ "/" @ %pc;
if($dtStats::debugEchos){error(%msg);} if($dtStats::debugEchos){error(%msg);}
dtEventLog(%msg, 0); dtEventLog(%msg, 0);
$dtStats:evTime[3] = getSimTime(); $dtStats:evTime[3] = getSimTime();
} }
} }
else if($dtStats::pingAvg > 200){ else if($dtStats::pingAvg > 250){
if(getSimTime() - $dtStats:evTime[4] > $dtStats::eventLockout){ if(getSimTime() - $dtStats:evTime[4] > $dtStats::eventLockout){
%msg = "200+ Ping" SPC dtFormatTime(getSimTime()) SPC "Avg:" @ $dtStats::pingAvg @ "/" @ %lowAvg SPC "Min:" @ %min SPC "Max:" @ %max SPC "Counts =" SPC %hpCount @ "/" @ %pc; %msg = "250+ Ping" SPC dtFormatTime(getSimTime()) SPC "Avg:" @ $dtStats::pingAvg @ "/" @ %lowAvg SPC "Min:" @ %min SPC "Max:" @ %max SPC "Counts =" SPC %hpCount @ "/" @ %pc;
if($dtStats::debugEchos){error(%msg);} if($dtStats::debugEchos){error(%msg);}
dtEventLog(%msg, 0); error(%msg, 0);
$dtStats:evTime[4] = getSimTime(); $dtStats:evTime[4] = getSimTime();
} }
} }
@ -12943,3 +12898,8 @@ function testVarsRandomAll(%max){
// //
// 8.7 // 8.7
// Server monitor fix/tweaks // Server monitor fix/tweaks
//
// 8.8
// Removed arbitrary weapon scores replaced with total kills
// Added map name to server hang in case its a map issue we need to keep an eye on
// 200+ server warning now only echos to console

View file

@ -641,8 +641,10 @@ function DefaultGame::gameOver( %game )
$VehicleMax[HAPCFlyer] = 2; $VehicleMax[HAPCFlyer] = 2;
// Choco - reset turret maxes after each round. // Choco - reset turret maxes after each round.
$TeamDeployableMin[TurretIndoorDeployable] = 4; $TeamDeployableMin[TurretIndoorDeployable] = 4;
$TeamDeployableMin[TurretOutdoorDeployable] = 4; $TeamDeployableMin[TurretOutdoorDeployable] = 4;
$TeamDeployableMax[TurretIndoorDeployable] = 10;
$TeamDeployableMax[TurretOutdoorDeployable] = 10;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------

View file

@ -27,7 +27,7 @@ $Host::holoName[6] = "Harbinger";
// ----------------------------------------- // -----------------------------------------
// z0dd - ZOD, 9/29/02. Removed T2 demo code // z0dd - ZOD, 9/29/02. Removed T2 demo code
$Host::GameName = "Tribes 2 Test"; $Host::GameName = "Tribes 2 Test";
$Host::Info = " "; $Host::Info = "This is a Tribes 2 Classic server. More information in Discord. <a:playt2.com/discord>playt2.com/discord</a>";
$Host::Map = "VaubanLak"; $Host::Map = "VaubanLak";
$Host::MaxPlayers = 30; $Host::MaxPlayers = 30;
$Host::MissionType = "LakRabbit"; $Host::MissionType = "LakRabbit";
@ -95,8 +95,8 @@ $Host::MaxBotDifficulty = 0.75;
$Host::NoSmurfs = 1; $Host::NoSmurfs = 1;
$Host::VoteTime = 30; // amount of time before votes are calculated $Host::VoteTime = 30; // amount of time before votes are calculated
$Host::VotePassPercent = 60; // percent needed to pass a vote $Host::VotePassPercent = 60; // percent needed to pass a vote
$Host::KickBanTime = 1; // specified in days $Host::KickBanTime = 20; // specified in minutes
$Host::BanTime = 30; // specified in days $Host::BanTime = 43200; // specified in minutes (43200 is one month)
$Host::PlayerRespawnTimeout = 60; // time before a dead player is forced into observer mode $Host::PlayerRespawnTimeout = 60; // time before a dead player is forced into observer mode
$Host::warmupTime = 20; $Host::warmupTime = 20;
$Host::TournamentMode = 0; $Host::TournamentMode = 0;