Compare commits

...

28 commits

Author SHA1 Message Date
ChocoTaco1 60a84fdb35 Merge branch 'Dev' into Stable 2026-01-05 15:57:12 -05:00
ChocoTaco1 74ed8c8cde Added LCTF 2026-01-05 15:57:01 -05:00
ChocoTaco1 47e1932279 TotalTeamPlayerCount fix
Improper team count for lakrabbit which effects things like setnextmission votes
2025-12-15 12:43:12 -05:00
ChocoTaco1 bddef9489c Merge branch 'Dev' into Stable 2025-12-05 16:48:52 -05:00
ChocoTaco1 e99b013183 Update TacoOverrides.cs
Treat all vehicles the same
2025-12-05 16:48:41 -05:00
ChocoTaco1 97c9bf7270 Update LakRabbitGame.cs 2025-11-23 13:14:18 -05:00
ChocoTaco1 f8a73b752b Merge branch 'Dev' into Stable 2025-11-03 16:28:38 -05:00
ChocoTaco1 6075098d79 Added TR2 Bonus, Overtime Reset, rabbitSplash
Added TR2 Bonus, Overtime Reset, rabbitSplash
2025-11-03 16:28:06 -05:00
ChocoTaco1 d24df745ab Added Overtime Reset 2025-11-03 16:19:53 -05:00
ChocoTaco1 14caa5aca5 Removed 2025-11-02 20:45:05 -05:00
ChocoTaco1 3bd4577832 Vote Overtime Redo 2025-10-29 15:31:04 -04:00
ChocoTaco1 fda3f783e3 Merge branch 'Dev' into Stable 2025-10-28 14:43:42 -04:00
ChocoTaco1 3e858b5649 General updates 2025-10-28 14:42:20 -04:00
ChocoTaco1 e1f42951af Reenable Zodd's rapid fire fix
Forgot this existed, whoops
Use classic code
2025-10-27 14:06:01 -04:00
ChocoTaco1 4ac9b3bde8 Merge branch 'Dev' into Stable 2025-09-27 18:08:22 -04:00
ChocoTaco1 b5ed76eb54 Fix Readme logo 2025-09-27 18:06:42 -04:00
ChocoTaco1 137bf547bd Merge branch 'Dev' into Stable 2025-09-27 17:57:30 -04:00
ChocoTaco1 8af6ce887c Update 10.60 2025-09-27 17:57:13 -04:00
ChocoTaco1 e96039866f Comp Reversions 2025-09-27 17:49:57 -04:00
ChocoTaco1 956ea4dcff Merge branch 'Dev' into Stable 2025-08-18 18:04:15 -04:00
ChocoTaco1 d5a0cad2a2 Update 10.59 2025-08-18 18:00:24 -04:00
ChocoTaco1 790d31108e Merge branch 'Dev' into Stable 2025-08-18 17:56:59 -04:00
ChocoTaco1 90620a1c6c Removed some things 2025-08-18 17:56:46 -04:00
ChocoTaco1 7cd1cb8815 LoadingScreen Safeguards
Shorter time
Added check
2025-08-18 16:15:26 -04:00
ChocoTaco 002ef81e53 Merge branch 'Dev' into Stable 2025-06-27 13:45:52 -04:00
ChocoTaco 7fe6bb3b98 Wrong message 2025-06-27 13:45:38 -04:00
ChocoTaco dd61ee5fa0 Merge branch 'Dev' into Stable 2025-06-23 15:38:21 -04:00
ChocoTaco 9aea8e23a6 Overtime Bug 2025-06-23 15:38:00 -04:00
25 changed files with 1022 additions and 1232 deletions

View file

@ -1,623 +0,0 @@
// __ __ _____ _ _ _
// | \/ | | __ \ | | | | (_)
// | \ / | __ _ _ __ | |__) |___ | |_ __ _| |_ _ ___ _ __
// | |\/| |/ _` | '_ \ | _ // _ \| __/ _` | __| |/ _ \| '_ \
// | | | | (_| | |_) | | | \ \ (_) | || (_| | |_| | (_) | | | |
// |_| |_|\__,_| .__/ |_| \_\___/ \__\__,_|\__|_|\___/|_| |_|
// | |
// |_|
//
// Use of this file
// To add a new map follow this rules:
// 1. Find the file name, ending in .mis (ie BeggarsRun.mis)
// 2. Add a line with this syntact: addRotationMap(filename, gametype, %voteable, %cycle, %min. %max);
//
//addRotationMap("MAP_NAME","MAP_MODE",VOTEABLE,IN-ROTATION,MINIMUM_PLAYERS,MAXIMUM_PLAYERS);
//
// Example: addRotationMap("BeggarsRun","CTF",1,1,-1,64);
// Beggar's Run will be in the mapRotation. It's in the cycle and can be voted. The map has no minimum player count requirement, and a 64 player max.
//
// Example: addRotationMap("BeggarsRun","CTF",1,0,10,20);
// Beggar's Run will be in the mapRotation. It's not in the cycle, but can be voted. The map has a minimum player count requirement of 10, and 20 players is the maximum to be picked.
//
// Example: addRotationMap("BeggarsRun","CTF",0,0,18,-1);
// Beggar's Run won't be in the mapRotation. It's not in the cycle and can't be voted. The map has a minimum player count requirement of 18, and has no maximum for players.
//
//
//addRotationMap("Casern_Cavite","Bounty",1,1,0,64);
//addRotationMap("Sirocco","CnH",1,1,0,64);
//addRotationMap("aabaaGH","CTF",1,0,0,64);
//addRotationMap("AcidRain","DnD",1,1,0,64);
//addRotationMap("AgentsOfFortune","Hunters",1,1,0,64);
//addRotationMap("SunDriedLak1","LakRabbit",1,1,0,64);
//addRotationMap("Arrakis","Rabbit",1,1,0,64);
//addRotationMap("VulcansHammer","Siege",1,1,0,64);
//addRotationMap("AgentsOfFortune","TeamHunters",1,1,0,64);
//
// _____ _______ ______
// / ____|__ __| ____|
// | | | | | |__
// | | | | | __|
// | |____ | | | |
// \_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//Small Maps
/////////////////////////////////////////////////////////////////////
//addRotationMap("SmallCrossing", "CTF",1,1,-1,16); //Using DMP Version
addRotationMap("TWL2_CanyonCrusadeDeluxe", "CTF",1,1,-1,24);
addRotationMap("RoundTheMountain", "CTF",1,1,-1,18);
addRotationMap("oasisintensity", "CTF",1,1,-1,10);
addRotationMap("Minotaur", "CTF",1,0,-1,18);
addRotationMap("SmallMelee", "CTF",1,0,-1,12);
addRotationMap("Machineeggs", "CTF",1,1,-1,10);
addRotationMap("Mac_FlagArena", "CTF",1,0,-1,14);
addRotationMap("SmallTimeCTF", "CTF",1,0,-1,14);
addRotationMap("TWL2_Hildebrand", "CTF",1,1,-1,18);
addRotationMap("ArenaDome", "CTF",1,0,-1,12);
addRotationMap("Firestorm", "CTF",1,0,-1,12);
addRotationMap("Bulwark", "CTF",1,1,-1,12);
addRotationMap("Blink", "CTF",1,0,-1,10);
addRotationMap("Discord", "CTF",1,1,6,16);
addRotationMap("TWL2_MidnightMayhemDeluxe", "CTF",1,0,8,12);
addRotationMap("Sentry", "CTF",1,1,-1,14);
addRotationMap("TWL2_Skylight", "CTF",1,1,-1,10);
addRotationMap("Exhumed", "CTF",1,0,-1,12);
addRotationMap("FrozenHope", "CTF",1,1,8,12);
addRotationMap("ClusterUnFuct", "CTF",1,0,8,12);
//addRotationMap("Raspian", "CTF",1,0,8,12);
addRotationMap("Zilch", "CTF",1,1,6,12);
addRotationMap("SuperHappyBouncyFunTime", "CTF",1,0,-1,12);
addRotationMap("SuperiorWaterworks", "CTF",1,0,-1,12);
//addRotationMap("TWL2_FrozenHope", "CTF",1,0,8,20);
//addRotationMap("Island", "CTF",1,1,-1,12);
//addRotationMap("TitForTat", "CTF",1,1,-1,12);
//addRotationMap("Cinerarium", "CTF",1,0,-1,12); //Using DMP Version
//addRotationMap("StarFallCTF", "CTF",1,0,6,12); //Using DMP Version
//addRotationMap("TWL_OsIris", "CTF",1,0,8,18);
//addRotationMap("FrostPipe", "CTF",1,0,-1,12);
//Medium Maps
/////////////////////////////////////////////////////////////////////
addRotationMap("HighOctane", "CTF",1,0,10,24);
addRotationMap("S5_Mordacity", "CTF",1,1,10,24);
addRotationMap("S5_Damnation", "CTF",1,1,12,20);
addRotationMap("TWL2_JaggedClaw", "CTF",1,1,14,28);
addRotationMap("S5_Massive", "CTF",1,1,12,32);
addRotationMap("TWL_Stonehenge", "CTF",1,1,8,20);
addRotationMap("TWL_Feign", "CTF",1,1,10,28);
addRotationMap("TheFray", "CTF",1,0,10,20);
//addRotationMap("DangerousCrossing_nef", "CTF",1,1,8,20);
addRotationMap("TWL_DangerousCrossing", "CTF",1,0,10,28);
addRotationMap("TWL2_Ocular", "CTF",1,1,20,-1);
addRotationMap("Dire", "CTF",1,0,10,16);
addRotationMap("berlard", "CTF",1,1,12,24);
addRotationMap("S8_Opus", "CTF",1,1,12,24);
addRotationMap("TWL_BeggarsRun", "CTF",1,0,18,24);
addRotationMap("Headstone", "CTF",1,1,8,24);
addRotationMap("Signal", "CTF",1,0,8,24);
addRotationMap("S5_Woodymyrk", "CTF",1,1,10,32);
addRotationMap("TenebrousCTF", "CTF",1,0,8,12);
addRotationMap("Prismatic", "CTF",1,0,16,32);
addRotationMap("TWL_WilderZone", "CTF",1,1,12,32);
addRotationMap("S5_Mimicry", "CTF",1,0,12,32);
addRotationMap("TWL_Snowblind", "CTF",1,1,20,-1);
addRotationMap("ShortFall", "CTF",1,0,18,28);
addRotationMap("IceRidge_nef", "CTF",1,0,12,32);
//addRotationMap("Disjointed", "CTF",1,0,8,20);
addRotationMap("TWL2_MuddySwamp", "CTF",1,0,10,24);
addRotationMap("HighAnxiety", "CTF",1,1,-1,12);
addRotationMap("S5_Centaur", "CTF",1,1,-1,12);
addRotationMap("S8_Cardiac", "CTF",1,1,18,-1);
addRotationMap("CirclesEdge", "CTF",1,0,10,24);
addRotationMap("S5_Icedance", "CTF",1,1,10,28);
addRotationMap("Surreal", "CTF",1,0,24,-1);
addRotationMap("TWL2_Drifts", "CTF",1,0,14,24);
//addRotationMap("TWL2_Drorck", "CTF",1,0,12,24);
addRotationMap("S5_HawkingHeat", "CTF",1,0,16,28);
addRotationMap("TWL2_Celerity", "CTF",1,1,12,32);
addRotationMap("Draco", "CTF",1,0,8,24);
//addRotationMap("Pariah", "CTF",1,0,8,24); //Using DMP Version
//addRotationMap("Mirage", "CTF",1,0,8,20);
addRotationMap("Norty", "CTF",1,1,18,32);
//Voteable but Not in Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("TWL2_IceDagger", "CTF",1,1,10,20);
addRotationMap("TWL_Titan", "CTF",1,0,16,32);
addRotationMap("Burstside", "CTF",1,0,10,20);
addRotationMap("Infernus", "CTF",1,0,18,26);
addRotationMap("Confusco", "CTF",1,0,10,20);
//addRotationMap("Snowcone", "CTF",1,0,10,20);
addRotationMap("S5_Drache", "CTF",1,0,16,28);
//addRotationMap("JadeValley", "CTF",1,0,10,20);
addRotationMap("S5_Sherman", "CTF",1,1,24,-1);
addRotationMap("S5_Silenus", "CTF",1,0,8,20);
addRotationMap("S5_Reynard", "CTF",1,0,10,20);
//addRotationMap("Coppersky", "CTF",1,0,8,20);
//addRotationMap("TWL2_Crevice", "CTF",1,0,10,20);
addRotationMap("TWL_SubZero", "CTF",1,0,16,32);
addRotationMap("Fallout", "CTF",1,1,16,24);
//addRotationMap("TheClocktower", "CTF",1,0,10,20);
//addRotationMap("SoylentGreen", "CTF",1,0,10,20);
//addRotationMap("Ramparts", "CTF",1,0,10,20);
//addRotationMap("Blastside_nef", "CTF",1,0,10,24);
//addRotationMap("NatureMagic", "CTF",1,0,10,20);
//addRotationMap("TWL_Damnation", "CTF",1,0,10,20);
addRotationMap("TWL_DeadlyBirdsSong", "CTF",1,0,24,32);
addRotationMap("Vauban", "CTF",1,0,18,-1);
addRotationMap("TWL_Pandemonium", "CTF",1,0,16,24);
addRotationMap("TWL_WhiteDwarf", "CTF",1,0,18,24);
//addRotationMap("Cinereous", "CTF",1,0,12,20);
//Vehicle Maps
/////////////////////////////////////////////////////////////////////
addRotationMap("Logans_Run", "CTF",1,1,14,28);
addRotationMap("Rollercoaster_nef", "CTF",1,1,8,-1);
addRotationMap("HostileLoch", "CTF",1,1,8,12);
addRotationMap("TWL_BeachBlitz", "CTF",1,1,18,28);
addRotationMap("TWL2_Magnum", "CTF",1,1,12,-1);
//addRotationMap("MoonDance", "CTF",1,0,12,28); //Using DMP Version
addRotationMap("Raindance_nef", "CTF",1,1,12,28);
addRotationMap("TWL_Magmatic", "CTF",1,0,14,28);
addRotationMap("TWL2_FrozenGlory", "CTF",1,1,12,24);
addRotationMap("LandingParty", "CTF",1,0,16,20);
addRotationMap("TWL_Crossfire", "CTF",1,1,18,28);
//addRotationMap("TitanV", "CTF",1,0,12,28);
//addRotationMap("Rollercoaster_nef_FZ", "CTF",1,1,8,28);
//addRotationMap("The_Calm", "CTF",1,0,12,24);
addRotationMap("TWL2_Dissention", "CTF",1,0,16,32);
//Vehicle Maps: Voteable, But Not in Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("SubZeroV", "CTF",1,0,12,24);
addRotationMap("S8_Geothermal", "CTF",1,0,12,24);
addRotationMap("Lakefront", "CTF",1,0,16,24);
addRotationMap("ShockRidge", "CTF",1,0,12,24);
addRotationMap("TWL2_BlueMoon", "CTF",1,1,18,32);
addRotationMap("TWL_Katabatic", "CTF",1,0,16,32);
addRotationMap("SandOcean", "CTF",1,0,12,28);
addRotationMap("ks_braistv", "CTF",1,0,12,24);
addRotationMap("Nightdance", "CTF",1,0,16,24);
addRotationMap("TWL_Abaddon", "CTF",1,0,16,24);
//addRotationMap("StarIce", "CTF",1,0,12,24);
//addRotationMap("FilteredDust", "CTF",1,0,12,24);
//addRotationMap("Choke", "CTF",1,0,12,24);
addRotationMap("TWL_Chokepoint", "CTF",1,0,12,24);
//addRotationMap("TWL_Starfallen", "CTF",1,0,12,24);
//addRotationMap("ConstructionYard", "CTF",1,0,12,24);
//addRotationMap("AcidRain", "CTF",1,0,12,24);
addRotationMap("Agorazscium", "CTF",1,0,12,24);
//BIG Vehicle Maps
/////////////////////////////////////////////////////////////////////
addRotationMap("Circleofstones", "CTF",1,1,16,-1);
addRotationMap("Ruined", "CTF",1,0,24,-1);
//addRotationMap("FullCircle", "CTF",1,0,18,30);
//addRotationMap("Surro", "CTF",1,0,18,24);
addRotationMap("TWL2_RoughLand", "CTF",1,0,16,-1);
addRotationMap("HarvestDance", "CTF",1,1,24,-1);
//addRotationMap("WindyGap", "CTF",1,0,24,-1);
addRotationMap("Fenix", "CTF",1,1,26,-1);
addRotationMap("Hillside", "CTF",1,0,28,-1);
addRotationMap("TWL_Slapdash", "CTF",1,0,24,-1);
addRotationMap("BerylBasin", "CTF",1,1,20,-1);
//addRotationMap("TWL_Frozen", "CTF",1,0,20,-1);
addRotationMap("TWL_Harvester", "CTF",1,1,24,-1);
addRotationMap("TWL2_Bleed", "CTF",1,0,24,-1);
addRotationMap("DeathBirdsFly1", "CTF",1,1,24,-1);
//addRotationMap("Scarabrae_nef", "CTF",1,0,28,-1);
addRotationMap("aabaa", "CTF",1,1,28,-1);
addRotationMap("TWL_Reversion", "CTF",1,1,28,-1);
addRotationMap("Horde", "CTF",1,0,24,-1);
addRotationMap("CloakofNightV", "CTF",1,0,24,-1);
//addRotationMap("TWL2_Ruined", "CTF",1,1,18,-1);
//addRotationMap("Glade", "CTF",1,1,28,-1);
//addRotationMap("Pantheon", "CTF",1,0,20,-1);
//addRotationMap("Archipelago", "CTF",1,0,20,-1);
//addRotationMap("Sangre_de_Grado", "CTF",1,0,20,-1);
//DMP Mappack
/////////////////////////////////////////////////////////////////////
addRotationMap("DMP_Agroleon", "CTF",1,1,18,28);
addRotationMap("DMP_Astro", "CTF",1,0,16,26);
addRotationMap("DMP_BastardForge", "CTF",1,1,8,28);
addRotationMap("DMP_BitterGorge", "CTF",1,0,24,-1);
addRotationMap("DMP_Bunkered", "CTF",1,0,6,14);
addRotationMap("DMP_Cinerarium", "CTF",1,1,-1,20);
addRotationMap("DMP_DermCity", "CTF",1,0,-1,-1);
addRotationMap("DMP_Embers", "CTF",1,0,-1,14);
addRotationMap("DMP_EmeraldSpit", "CTF",1,0,10,20);
addRotationMap("DMP_FaceCrossing", "CTF",1,0,10,20);
addRotationMap("DMP_Hoth", "CTF",1,1,26,-1);
addRotationMap("DMP_IceGiant", "CTF",1,0,20,32);
addRotationMap("DMP_IsleDeBatalla", "CTF",1,0,10,20);
addRotationMap("DMP_LavaGods", "CTF",1,0,10,20);
addRotationMap("DMP_Magellan", "CTF",1,1,10,28);
addRotationMap("DMP_MoonDance", "CTF",1,1,12,32);
addRotationMap("DMP_Pantheon", "CTF",1,0,16,24);
addRotationMap("DMP_Paranoia", "CTF",1,0,6,10);
addRotationMap("DMP_Pariah", "CTF",1,1,8,24);
addRotationMap("DMP_PipeDream", "CTF",1,0,8,16);
addRotationMap("DMP_RavineV", "CTF",1,0,12,28);
addRotationMap("DMP_ScorchedEarth", "CTF",1,0,24,-1);
addRotationMap("DMP_SimpleFlagArena", "CTF",1,0,-1,12);
addRotationMap("DMP_SpinCycle", "CTF",1,1,-1,16);
addRotationMap("DMP_StarFall", "CTF",1,0,-1,16);
addRotationMap("DMP_Tyre", "CTF",1,1,16,-1);
addRotationMap("DMP_Wasteland", "CTF",1,0,10,20);
addRotationMap("SC_Normal", "CTF",1,0,-1,16);
//addRotationMap("SC_Badlands", "CTF",1,0,-1,16);
//addRotationMap("SC_Desert", "CTF",1,0,-1,16);
//addRotationMap("SC_Lush", "CTF",1,0,-1,16);
addRotationMap("SC_Ice", "CTF",1,1,-1,16);
addRotationMap("SC_Night", "CTF",1,0,-1,16);
//addRotationMap("DX_Badlands", "CTF",1,0,10,20);
//addRotationMap("DX_Desert", "CTF",1,0,10,20);
addRotationMap("DX_Ice", "CTF",1,1,10,28);
//addRotationMap("HO_Badlands", "CTF",1,1,8,24);
//addRotationMap("HO_Desert", "CTF",1,0,8,24);
addRotationMap("HO_Ice", "CTF",1,1,8,28);
addRotationMap("HO_Lush", "CTF",1,0,8,24);
addRotationMap("Attrition", "CTF",1,0,-1,10);
//addRotationMap("Chasmaclysmic", "CTF",1,1,-1,-1);
//addRotationMap("DBS_Smoothed", "CTF",1,0,-1,-1);
addRotationMap("PuliVeivari", "CTF",1,0,-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
/////////////////////////////////////////////////////////////////////
//addRotationMap("Sandstorm", "CTF",1,0,-1,-1);
//addRotationMap("Starfallen", "CTF",1,0,-1,-1);
//addRotationMap("Stonehenge_nef", "CTF",1,0,-1,-1);
addRotationMap("Extractor", "CTF",1,0,16,-1);
//addRotationMap("AstersDescent", "CTF",1,0,-1,-1);
//addRotationMap("Azoth", "CTF",1,0,-1,-1);
//addRotationMap("BattleGrove", "CTF",1,0,-1,-1);
//addRotationMap("Durango", "CTF",1,0,-1,-1);
//addRotationMap("DustLust", "CTF",1,0,-1,-1);
//addRotationMap("IceGulch", "CTF",1,0,-1,-1);
//addRotationMap("MountainMist", "CTF",1,0,-1,-1);
//addRotationMap("Peak", "CTF",1,0,-1,-1);
//addRotationMap("Pendulum", "CTF",1,0,-1,-1);
//addRotationMap("S5_Misadventure", "CTF",1,0,-1,-1);
//addRotationMap("S8_CentralDogma", "CTF",1,0,-1,-1);
//addRotationMap("S8_Mountking", "CTF",1,0,-1,-1);
//addRotationMap("S8_Zilch", "CTF",1,0,-1,-1);
//addRotationMap("TWL2_CloakOfNight", "CTF",1,0,-1,-1);
//addRotationMap("TWL_BaNsHee", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Boss", "CTF",1,0,-1,-1);
//addRotationMap("TWL_NoShelter", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Clusterfuct", "CTF",1,0,-1,-1);
addRotationMap("TWL_Curtilage", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Deserted", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Frostclaw", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Neve", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Ramparts", "CTF",1,0,-1,-1);
//addRotationMap("TWL_Sandstorm", "CTF",1,0,-1,-1);
//addRotationMap("TWL_WoodyMyrk", "CTF",1,0,-1,-1);
//addRotationMap("OctoberRust", "CTF",1,0,-1,-1);
//addRotationMap("DevilsElbow", "CTF",1,0,-1,-1);
//addRotationMap("CloudCity", "CTF",1,0,-1,-1);
//addRotationMap("Damnation", "CTF",1,0,-1,-1);
//addRotationMap("DeathBirdsFly", "CTF",1,0,-1,-1);
//addRotationMap("Desiccator", "CTF",1,0,-1,-1);
//addRotationMap("DustToDust", "CTF",1,0,-1,-1);
//addRotationMap("Katabatic", "CTF",1,0,-1,-1);
//addRotationMap("Quagmire", "CTF",1,0,-1,-1);
//addRotationMap("Recalescence", "CTF",1,0,-1,-1);
//addRotationMap("Reversion", "CTF",1,0,-1,-1);
//addRotationMap("RiverDance", "CTF",1,0,-1,-1);
//addRotationMap("Sanctuary", "CTF",1,0,-1,-1);
//addRotationMap("ThinIce", "CTF",1,0,-1,-1);
//addRotationMap("Tombstone", "CTF",1,0,-1,-1);
//addRotationMap("Broadside_nef", "CTF",1,0,-1,-1);
//addRotationMap("Camelland", "CTF",1,0,-1,-1);
//addRotationMap("HighTrepidation", "CTF",1,0,-1,-1);
//addRotationMap("SmallDesertofDeath", "CTF",1,0,-1,-1);
//addRotationMap("BasinFury", "CTF",1,0,-1,-1);
//addRotationMap("Cadaver", "CTF",1,0,-1,-1);
//addRotationMap("EivoItoxico", "CTF",1,0,-1,-1);
//addRotationMap("Einfach", "CTF",1,0,-1,-1);
//addRotationMap("PicnicTable", "CTF",1,0,-1,-1);
//addRotationMap("Hostility", "CTF",1,0,-1,-1);
//addRotationMap("HighWire", "CTF",1,0,-1,-1);
//addRotationMap("CloudBurst", "CTF",1,0,-1,-1);
//addRotationMap("CloseCombat", "CTF",1,0,-1,-1);
//addRotationMap("DesertofDeath_nef", "CTF",1,0,-1,-1);
//addRotationMap("Gorgon", "CTF",1,0,-1,-1);
//addRotationMap("Magmatic", "CTF",1,0,-1,-1);
//addRotationMap("Sub-zero", "CTF",1,0,-1,-1);
// Custom
/////////////////////////////////////////////////////////////////////
addRotationMap("CoconutFury", "CTF",1,0,-1,-1);
addRotationMap("CinderCone", "CTF",1,0,-1,-1);
addRotationMap("Sector1", "CTF",1,0,-1,-1);
//addRotationMap("Slamnation", "CTF",0,0,-1,-1);
//addRotationMap("MountaintopMayhem", "CTF",0,0,-1,-1);
addRotationMap("ChasmClash", "CTF",1,0,-1,14);
//addRotationMap("FrostBite", "CTF",1,0,-1,-1);
//addRotationMap("Lapiths", "CTF",1,0,-1,-1);
addRotationMap("GreenLawn", "CTF",1,1,12,32);
addRotationMap("OuterWilds", "CTF",1,1,-1,12);
addRotationMap("Jettisoned", "CTF",1,0,-1,10);
addRotationMap("Moonwalk", "CTF",1,1,12,-1);
addRotationMap("Drafts", "CTF",1,1,-1,12);
//addRotationMap("IslaHermano", "CTF",1,0,-1,-1);
addRotationMap("DermCrossingDeluxe", "CTF",1,0,-1,-1);
addRotationMap("DaftGulch", "CTF",1,1,16,24);
addRotationMap("Triad", "CTF",1,0,12,20);
addRotationMap("Vaubania", "CTF",1,0,-1,12);
addRotationMap("VanDamnedCTF", "CTF",1,1,-1,14);
addRotationMap("HillKingCTF", "CTF",1,1,-1,18);
addRotationMap("Bonespur", "CTF",1,1,-1,14);
addRotationMap("Bridgepoint", "CTF",1,0,-1,18);
addRotationMap("Narcolepsy", "CTF",1,1,-1,20);
addRotationMap("WhiteDwarfDeluxe", "CTF",1,0,-1,14);
addRotationMap("SmallSpit", "CTF",1,1,-1,20);
addRotationMap("MisadventureV2", "CTF",1,1,12,28);
addRotationMap("El_Fin", "CTF",1,1,-1,14);
addRotationMap("HogansRun24", "CTF",1,0,-1,14);
addRotationMap("SignalDX", "CTF",1,0,8,24);
// _ _ _ _ _ _
// | | | | | | | | (_) |
// | | __ _| | ___ __ __ _| |__ | |__ _| |_
// | | / _` | |/ / '__/ _` | '_ \| '_ \| | __|
// | |___| (_| | <| | | (_| | |_) | |_) | | |_
// |______\__,_|_|\_\_| \__,_|_.__/|_.__/|_|\__|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("VaubanLak", "Lakrabbit",1,1,8,-1);
addRotationMap("MiniSunDried", "Lakrabbit",1,1,-1,12);
addRotationMap("Sundance", "Lakrabbit",1,1,-1,-1);
addRotationMap("TWL_BeachBlitzLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("DesertofDeathLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("Raindance_nefLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("SunDriedLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("SkinnyDipLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("SaddiesHill", "Lakrabbit",1,0,-1,-1);
addRotationMap("HavenLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("LushLak", "Lakrabbit",1,1,8,-1);
addRotationMap("BoxLak", "Lakrabbit",1,1,-1,10);
addRotationMap("TitaniaLak", "Lakrabbit",1,0,8,-1);
addRotationMap("TibbawLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("InfernusLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("S8_GeothermalLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("CankerLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("DustRunLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("CrossfiredLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("CloakofLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("SpectreLak", "Lakrabbit",1,1,-1,-1);
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("TreasureIslandLak", "Lakrabbit",1,1,-1,-1);
addRotationMap("Sulfide", "Lakrabbit",1,0,-1,-1);
addRotationMap("FrozenFuryLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("Arrakis", "Lakrabbit",1,0,-1,-1);
addRotationMap("EquinoxLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("PhasmaDustLak", "Lakrabbit",1,0,-1,12);
addRotationMap("GodsRiftLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("SolsDescentLak", "Lakrabbit",1,0,-1,-1);
addRotationMap("Crater71Lak", "Lakrabbit",1,0,6,-1);
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap("EscaladeLak", "Lakrabbit",1,0,-1,-1);
//addRotationMap("MagmaticLak", "Lakrabbit",1,0,-1,-1);
//addRotationMap("HillsOfSorrow", "Lakrabbit",1,0,-1,-1);
//addRotationMap("TWL2_MuddySwampLak", "Lakrabbit",1,0,-1,-1);
//addRotationMap("SandStormLak", "Lakrabbit",1,0,-1,-1);
//addRotationMap("BeggarsRunLak", "Lakrabbit",1,0,-1,-1);
//addRotationMap("DamnnationLak", "Lakrabbit",1,0,-1,-1);
// _ _____ _______ ______
// | | / ____|__ __| ____|
// | | | | | | | |__
// | | | | | | | __|
// | |___| |____ | | | |
// |______\_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("DangerousCrossingLT", "LCTF",1,0,-1,-1);
addRotationMap("SmallCrossingLT", "LCTF",1,0,-1,12);
addRotationMap("DireLT", "LCTF",1,0,-1,-1);
addRotationMap("RoundTheMountainLT", "LCTF",1,1,-1,-1);
addRotationMap("CirclesEdgeLT", "LCTF",1,1,-1,-1);
addRotationMap("TenebrousCTF", "LCTF",1,0,-1,-1);
addRotationMap("TheFray", "LCTF",1,0,-1,-1);
addRotationMap("SignalLT", "LCTF",1,0,-1,-1);
addRotationMap("S5_DamnationLT", "LCTF",1,0,8,-1);
addRotationMap("S5_Icedance", "LCTF",1,1,-1,-1);
addRotationMap("S5_Mordacity", "LCTF",1,1,10,-1);
addRotationMap("S5_SilenusLT", "LCTF",1,0,-1,-1);
addRotationMap("TWL2_CanyonCrusadeDeluxeLT", "LCTF",1,1,-1,-1);
addRotationMap("TWL2_HildebrandLT", "LCTF",1,1,-1,-1);
addRotationMap("TWL2_SkylightLT", "LCTF",1,1,-1,-1);
addRotationMap("TWL_FeignLT", "LCTF",1,0,-1,-1);
addRotationMap("TWL_RollercoasterLT", "LCTF",1,0,-1,-1);
addRotationMap("TWL_StonehengeLT", "LCTF",1,1,-1,-1);
addRotationMap("TWL_WilderZoneLT", "LCTF",1,0,-1,-1);
addRotationMap("oasisintensity", "LCTF",1,1,-1,10);
addRotationMap("berlard", "LCTF",1,1,-1,-1);
addRotationMap("RaindanceLT", "LCTF",1,0,-1,-1);
addRotationMap("SmallTimeLT", "LCTF",1,0,-1,-1);
addRotationMap("ArenaDome", "LCTF",1,1,-1,10);
addRotationMap("Bulwark", "LCTF",1,1,-1,-1);
addRotationMap("Discord", "LCTF",1,1,-1,-1);
addRotationMap("S5_MassiveLT", "LCTF",1,0,-1,-1);
addRotationMap("Blink", "LCTF",1,0,-1,-1);
addRotationMap("HillSideLT", "LCTF",1,1,-1,10);
addRotationMap("IcePick", "LCTF",1,1,-1,16);
addRotationMap("OsIrisLT", "LCTF",1,0,-1,-1);
addRotationMap("GrassyKnollLT", "LCTF",1,1,-1,-1);
addRotationMap("TWL2_MuddySwamp", "LCTF",1,0,8,-1);
addRotationMap("SandyRunLT", "LCTF",1,0,-1,12);
addRotationMap("Sentry", "LCTF",1,1,-1,-1);
addRotationMap("DMP_Cinerarium", "LCTF",1,1,-1,14);
addRotationMap("Exhumed", "LCTF",1,1,-1,-1);
addRotationMap("S8_ZilchLT", "LCTF",1,1,-1,-1);
addRotationMap("TWL_BeachBlitzLT", "LCTF",1,0,-1,-1);
addRotationMap("FrozenHopeLT", "LCTF",1,1,-1,-1);
//addRotationMap("Confusco", "LCTF",1,0,6,-1);
addRotationMap("TWL2_JaggedClawLT", "LCTF",1,1,-1,-1);
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("BeggarsRunLT", "LCTF",1,0,-1,-1);
addRotationMap("S5_WoodymyrkLT", "LCTF",1,0,-1,-1);
addRotationMap("S8_Opus", "LCTF",1,0,-1,-1);
addRotationMap("TWL_DangerousCrossing", "LCTF",1,0,-1,-1);
//DMP Mappack
/////////////////////////////////////////////////////////////////////
addRotationMap("AttritionLT", "LCTF",1,1,-1,-1);
addRotationMap("RushLT", "LCTF",1,1,-1,-1);
addRotationMap("HillKingLT", "LCTF",1,1,-1,-1);
addRotationMap("DMP_BastardForgeLT", "LCTF",1,1,-1,-1);
addRotationMap("VanDamnedLT", "LCTF",1,1,-1,-1);
addRotationMap("DMP_Paranoia", "LCTF",1,0,-1,-1);
addRotationMap("DMP_SpincycleLT", "LCTF",1,1,-1,-1);
addRotationMap("Ravine", "LCTF",1,1,-1,-1);
// addRotationMap("DX_Badlands", "LCTF",1,0,-1,-1);
// addRotationMap("DX_Desert", "LCTF",1,0,-1,-1);
addRotationMap("DX_Ice", "LCTF",1,1,-1,-1);
addRotationMap("PipeDreamLT", "LCTF",1,0,-1,-1);
addRotationMap("DMP_LavaGods", "LCTF",1,0,10,20);
addRotationMap("DMP_StarFallLT", "LCTF",1,1,-1,-1);
addRotationMap("DMP_BunkeredLT", "LCTF",1,1,-1,12);
addRotationMap("DMP_PariahLT", "LCTF",1,1,-1,-1);
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap("SurrealLT", "LCTF",1,0,-1,-1);
addRotationMap("DuelersDelight", "LCTF",1,0,-1,12);
addRotationMap("SmallSpit", "LCTF",1,1,-1,14);
addRotationMap("BonespurLT", "LCTF",1,1,-1,14);
addRotationMap("Bridgepoint", "LCTF",1,1,-1,14);
addRotationMap("NarcolepsyLT", "LCTF",1,1,-1,14);
addRotationMap("WhiteDwarfDeluxeLT", "LCTF",1,0,-1,14);
addRotationMap("ClusterUnFuct", "LCTF",1,1,8,-1);
addRotationMap("OuterWildsLT", "LCTF",1,1,-1,12);
addRotationMap("Drafts", "LCTF",1,1,-1,12);
addRotationMap("DermCrossingDeluxeLT", "LCTF",1,1,-1,-1);
addRotationMap("SuperiorWaterworks", "LCTF",1,0,-1,12);
addRotationMap("FrozenForgeLT", "LCTF",1,1,-1,20);
addRotationMap("TWL2_CelerityLT", "LCTF",1,1,-1,20);
addRotationMap("El_FinLT", "LCTF",1,1,-1,14);
addRotationMap("CapriLT", "LCTF",1,1,-1,14);
addRotationMap("RunenmachtLT", "LCTF",1,1,-1,14);
// _____ _ _ _ _
// | __ \ | | | | | | | |
// | | | | ___ __ _| |_| |__ _ __ ___ __ _| |_ ___| |__
// | | | |/ _ \/ _` | __| '_ \| '_ ` _ \ / _` | __/ __| '_ \
// | |__| | __/ (_| | |_| | | | | | | | | (_| | || (__| | | |
// |_____/ \___|\__,_|\__|_| |_|_| |_| |_|\__,_|\__\___|_| |_|
/////////////////////////////////////////////////////////////////////
addRotationMap("RaspDM", "DM",1,1,8,-1);
addRotationMap("EntombedDM", "DM",1,1,-1,-1);
addRotationMap("IceDomeDM", "DM",1,1,-1,-1);
addRotationMap("HoofToeDM", "DM",1,1,6,-1);
addRotationMap("ArenaDomeDM", "DM",1,1,-1,-1);
addRotationMap("VulcansWrathDM", "DM",1,1,-1,-1);
addRotationMap("RampartsDM", "DM",1,1,-1,-1);
addRotationMap("ShrineDM", "DM",1,1,-1,12);
addRotationMap("LiveBaitDM", "DM",1,1,-1,-1);
addRotationMap("FourSquareDM", "DM",1,1,-1,10);
addRotationMap("BrigDM", "DM",1,1,-1,8);
addRotationMap("PitsDM", "DM",1,1,-1,10);
addRotationMap("RingofFireDM", "DM",1,1,-1,10);
addRotationMap("GorgonDM", "DM",1,1,-1,10);
// _____ _
// | __ \ | |
// | | | |_ _ ___| |
// | | | | | | |/ _ \ |
// | |__| | |_| | __/ |
// |_____/ \__,_|\___|_|
/////////////////////////////////////////////////////////////////////
//addRotationMap("AgentsOfFortune", "Duel",1,1,-1,-1);
//addRotationMap("Casern_Cavite", "Duel",1,1,-1,-1);
//addRotationMap("Equinox", "Duel",1,1,-1,-1);
//addRotationMap("Escalade", "Duel",1,1,-1,-1);
//addRotationMap("Fracas", "Duel",1,1,-1,-1);
//addRotationMap("Invictus", "Duel",1,1,-1,-1);
//addRotationMap("MyrkWood", "Duel",1,1,-1,-1);
//addRotationMap("Oasis", "Duel",1,1,-1,-1);
//addRotationMap("Pyroclasm", "Duel",1,1,-1,-1);
//addRotationMap("Rasp", "Duel",1,1,-1,-1);
//addRotationMap("SunDried", "Duel",1,1,-1,-1);
//addRotationMap("Talus", "Duel",1,1,-1,-1);
//addRotationMap("Underhill", "Duel",1,1,-1,-1);
//addRotationMap("Whiteout", "Duel",1,1,-1,-1);
//addRotationMap("Tombstone", "Duel",1,1,-1,-1);
//addRotationMap("VaubanLak", "Duel",1,1,-1,-1);
//addRotationMap("DesertofDeathLak", "Duel",1,1,-1,-1);
// _____ _
// / ____(_)
// | (___ _ ___ __ _ ___
// \___ \| |/ _ \/ _` |/ _ \
// ____) | | __/ (_| | __/
// |_____/|_|\___|\__, |\___|
// __/ |
// |___/
/////////////////////////////////////////////////////////////////////
//addRotationMap("Alcatraz", "Siege",1,1,-1,-1);
//addRotationMap("BridgeTooFar", "Siege",1,1,-1,-1);
//addRotationMap("Caldera", "Siege",1,1,-1,-1);
//addRotationMap("Gauntlet", "Siege",1,1,-1,-1);
//addRotationMap("IceBound", "Siege",1,1,-1,-1);
//addRotationMap("Isleofman", "Siege",1,1,-1,-1);
//addRotationMap("Masada", "Siege",1,1,-1,-1);
//addRotationMap("Respite", "Siege",1,1,-1,-1);
//addRotationMap("Trident", "Siege",1,1,-1,-1);
//addRotationMap("UltimaThule", "Siege",1,1,-1,-1);
// _ _ _
// | | | | | |
// | |__| |_ _ _ __ | |_ ___ _ __ ___
// | __ | | | | '_ \| __/ _ \ '__/ __|
// | | | | |_| | | | | || __/ | \__ \
// |_| |_|\__,_|_| |_|\__\___|_| |___/
/////////////////////////////////////////////////////////////////////
//addRotationMap("MiniSunDried","Hunters",1,1,-1,-1);
//addRotationMap("DustToDust","Hunters",1,1,-1,-1);

View file

@ -0,0 +1,465 @@
//To use this file add a new map with the following rules:
//1. Find the file name, ending in .mis (ie BeggarsRun.mis)
//2. Add a line with this syntact: addRotationMap(filename, gametype, %voteable, %cycle, %min. %max);
//Example: addRotationMap("MAP_NAME","MAP_MODE",VOTEABLE,IN-ROTATION,MINIMUM_PLAYERS,MAXIMUM_PLAYERS);
//-------------------------------------------------------------------------------
addRotationMap("SC_Normal","CTF",true,false,-1,16);
//addRotationMap("SC_Badlands","CTF",true,false,-1,16);
//addRotationMap("SC_Desert","CTF",true,false,-1,16);
//addRotationMap("SC_Lush","CTF",true,false,-1,16);
addRotationMap("SC_Ice","CTF",true,true,-1,16);
addRotationMap("SC_Night","CTF",true,false,-1,16);
addRotationMap("TWL_DangerousCrossing","CTF",true,false,-1,20);
//addRotationMap("DX_Badlands","CTF",true,false,-1,20);
//addRotationMap("DX_Desert","CTF",true,false,-1,20);
addRotationMap("DX_Ice","CTF",true,true,-1,20);
addRotationMap("HighOctane","CTF",true,false,10,24);
//addRotationMap("HO_Badlands","CTF",true,true,10,24);
//addRotationMap("HO_Desert","CTF",true,false,10,24);
addRotationMap("HO_Ice","CTF",true,true,10,24);
addRotationMap("HO_Lush","CTF",true,false,10,24);
addRotationMap("TWL2_CanyonCrusadeDeluxe","CTF",true,true,-1,-1);
addRotationMap("TWL2_Skylight","CTF",true,false,-1,12);
addRotationMap("TWL2_Hildebrand","CTF",true,true,-1,18);
addRotationMap("RoundTheMountain","CTF",true,true,-1,14);
addRotationMap("oasisintensity","CTF",true,true,-1,12);
addRotationMap("Machineeggs","CTF",true,true,-1,10);
addRotationMap("Mac_FlagArena","CTF",true,false,-1,10);
addRotationMap("SmallTimeCTF","CTF",true,true,-1,12);
addRotationMap("ArenaDome","CTF",true,true,-1,10);
addRotationMap("Bulwark","CTF",true,true,-1,12);
addRotationMap("Discord","CTF",true,true,-1,16);
addRotationMap("Sentry","CTF",true,true,-1,12);
addRotationMap("FrozenHope","CTF",true,true,8,12);
addRotationMap("ClusterUnFuct","CTF",true,true,8,12);
addRotationMap("Zilch","CTF",true,true,6,12);
addRotationMap("SuperHappyBouncyFunTime","CTF",true,false,-1,12);
addRotationMap("SuperiorWaterworks","CTF",true,true,-1,10);
//addRotationMap("TWL2_FrozenHope","CTF",true,false,-1,12);
//addRotationMap("Island","CTF",true,true,-1,12);
//addRotationMap("TitForTat","CTF",true,true,-1,12);
//addRotationMap("TWL_OsIris","CTF",true,false,8,18);
//addRotationMap("FrostPipe","CTF",true,false,-1,12);
//addRotationMap("Raspian","CTF",true,false,8,12);
//addRotationMap("Exhumed","CTF",true,false,-1,12);
//addRotationMap("Blink","CTF",true,false,-1,10);
//addRotationMap("Firestorm","CTF",true,false,-1,12);
//addRotationMap("SmallMelee","CTF",true,false,-1,12);
//addRotationMap("Attrition","CTF",true,true,-1,10);
//addRotationMap("Coppersky","CTF",true,false,8,20);
//addRotationMap("S5_Silenus","CTF",true,false,8,20);
//-------------------------------------------------------------------------------
addRotationMap("TWL_Stonehenge","CTF",true,false,8,-1);
addRotationMap("TWL_Feign","CTF",true,true,8,32);
addRotationMap("TWL_Snowblind","CTF",true,false,14,-1);
addRotationMap("TWL_BeggarsRun","CTF",true,true,14,-1);
addRotationMap("TWL_WilderZone","CTF",true,false,12,-1);
addRotationMap("TWL_Titan","CTF",true,false,14,-1);
addRotationMap("TWL_SubZero","CTF",true,true,14,-1);
addRotationMap("TWL_DeadlyBirdsSong","CTF",true,false,14,-1);
addRotationMap("TWL_Pandemonium","CTF",true,false,14,-1);
addRotationMap("TWL2_MidnightMayhemDeluxe","CTF",true,true,12,-1);
addRotationMap("TWL2_JaggedClaw","CTF",true,true,12,-1);
addRotationMap("TWL2_Ocular","CTF",true,true,14,-1);
addRotationMap("TWL2_Drifts","CTF",true,false,14,-1);
addRotationMap("TWL2_Celerity","CTF",true,true,12,-1);
addRotationMap("Minotaur","CTF",true,false,12,-1);
addRotationMap("S5_Centaur","CTF",true,false,-1,12);
addRotationMap("S5_Mordacity","CTF",true,true,10,32);
addRotationMap("S5_Damnation","CTF",true,false,12,-1);
addRotationMap("S5_Massive","CTF",true,true,12,-1);
addRotationMap("S5_Mimicry","CTF",true,true,12,-1);
addRotationMap("S5_Icedance","CTF",true,true,10,-1);
addRotationMap("S5_Woodymyrk","CTF",true,true,10,-1);
addRotationMap("S8_Cardiac","CTF",true,true,14,-1);
addRotationMap("TheFray","CTF",true,false,10,32);
addRotationMap("berlard","CTF",true,true,12,32);
addRotationMap("Headstone","CTF",true,true,12,32);
addRotationMap("Signal","CTF",true,false,12,32);
addRotationMap("TenebrousCTF","CTF",true,false,10,24);
addRotationMap("Prismatic","CTF",true,false,12,32);
addRotationMap("IceRidge_nef","CTF",true,true,12,-1);
addRotationMap("CirclesEdge","CTF",true,false,12,-1);
addRotationMap("Surreal","CTF",true,false,20,-1);
addRotationMap("Norty","CTF",true,true,14,-1);
addRotationMap("Confusco","CTF",true,false,14,32);
addRotationMap("Vauban","CTF",true,false,14,-1);
//addRotationMap("TWL2_MuddySwamp","CTF",true,false,12,32);
//addRotationMap("TWL2_Drorck","CTF",true,false,12,32);
//addRotationMap("TWL2_Crevice","CTF",true,false,12,32);
//addRotationMap("TWL2_IceDagger","CTF",true,false,12,32);
//addRotationMap("S5_HawkingHeat","CTF",true,false,12,32);
//addRotationMap("S5_Drache","CTF",true,true,12,32);
//addRotationMap("S5_Sherman","CTF",true,false,20,-1);
//addRotationMap("S5_Reynard","CTF",true,false,14,32);
//addRotationMap("S8_Opus","CTF",true,false,10,32);
//addRotationMap("ShortFall","CTF",true,false,12,32);
//addRotationMap("Disjointed","CTF",true,false,12,32);
//addRotationMap("HighAnxiety","CTF",true,false,-1,12);
//addRotationMap("Dire","CTF",true,false,10,32);
//addRotationMap("Draco","CTF",true,false,12,32);
//addRotationMap("Mirage","CTF",true,false,12,32);
//addRotationMap("TWL_WhiteDwarf","CTF",true,false,14,-1);
//addRotationMap("Cinereous","CTF",true,false,14,-1);
//addRotationMap("Fallout","CTF",true,false,14,32);
//addRotationMap("TheClocktower","CTF",true,false,10,20);
//addRotationMap("SoylentGreen","CTF",true,false,10,20);
//addRotationMap("Ramparts","CTF",true,false,14,-1);
//addRotationMap("Blastside_nef","CTF",true,false,14,-1);
//addRotationMap("NatureMagic","CTF",true,false,14,-1);
//addRotationMap("TWL_Damnation","CTF",true,false,12,32);
//addRotationMap("Snowcone","CTF",true,false,12,32);
//addRotationMap("JadeValley","CTF",true,false,12,32);
//addRotationMap("Burstside","CTF",true,false,12,32);
//addRotationMap("Infernus","CTF",true,false,14,-1);
//-------------------------------------------------------------------------------
addRotationMap("TWL_Katabatic","CTF",true,false,14,-1);
addRotationMap("TWL_Crossfire","CTF",true,true,14,-1);
addRotationMap("TWL_BeachBlitz","CTF",true,true,12,-1);
addRotationMap("TWL_Magmatic","CTF",true,false,14,-1);
addRotationMap("TWL_Harvester","CTF",true,true,20,-1);
addRotationMap("TWL2_BlueMoon","CTF",true,true,14,-1);
addRotationMap("TWL2_Bleed","CTF",true,false,20,-1);
addRotationMap("TWL2_Dissention","CTF",true,false,14,-1);
addRotationMap("TWL2_Magnum","CTF",true,true,12,-1);
addRotationMap("TWL2_FrozenGlory","CTF",true,true,12,-1);
addRotationMap("Logans_Run","CTF",true,false,12,32);
addRotationMap("Rollercoaster_nef","CTF",true,true,10,-1);
addRotationMap("HostileLoch","CTF",true,false,14,32);
addRotationMap("Raindance_nef","CTF",true,true,12,-1);
addRotationMap("LandingParty","CTF",true,false,12,20);
addRotationMap("ShockRidge","CTF",true,false,12,-1);
addRotationMap("Nightdance","CTF",true,false,14,32);
addRotationMap("TWL_Abaddon","CTF",true,false,20,-1);
addRotationMap("Agorazscium","CTF",true,false,12,32);
addRotationMap("Circleofstones","CTF",true,true,14,-1);
addRotationMap("Ruined","CTF",true,false,14,-1);
addRotationMap("Fenix","CTF",true,false,20,-1);
addRotationMap("Hillside","CTF",true,false,24,-1);
addRotationMap("TWL_Slapdash","CTF",true,false,24,-1);
addRotationMap("BerylBasin","CTF",true,false,14,-1);
addRotationMap("DeathBirdsFly1","CTF",true,false,24,-1);
addRotationMap("aabaa","CTF",true,false,28,-1);
addRotationMap("CloakofNightV","CTF",true,false,24,-1);
addRotationMap("Sangre_de_Grado","CTF",true,false,20,-1);
addRotationMap("FullCircle","CTF",true,false,14,-1);
//addRotationMap("Lakefront","CTF",true,false,14,-1);
//addRotationMap("S8_Geothermal","CTF",true,false,12,32);
//addRotationMap("TWL_Frozen","CTF",true,false,20,-1);
//addRotationMap("TWL_Chokepoint","CTF",true,false,12,24);
//addRotationMap("TWL_Starfallen","CTF",true,false,12,24);
//addRotationMap("TWL_Reversion","CTF",true,false,28,-1);
//addRotationMap("TWL2_RoughLand","CTF",true,false,16,-1);
//addRotationMap("TWL2_Ruined","CTF",true,true,18,-1);
//addRotationMap("SandOcean","CTF",true,false,16,24);
//addRotationMap("ks_braistv","CTF",true,true,12,24);
//addRotationMap("Horde","CTF",true,false,24,-1);
//addRotationMap("Glade","CTF",true,true,28,-1);
//addRotationMap("Pantheon","CTF",true,false,20,-1);
//addRotationMap("Archipelago","CTF",true,false,20,-1);
//addRotationMap("TitanV","CTF",true,false,12,28);
//addRotationMap("The_Calm","CTF",true,false,12,24);
//addRotationMap("Surro","CTF",true,false,18,24);
//addRotationMap("HarvestDance","CTF",true,false,24,-1);
//addRotationMap("WindyGap","CTF",true,false,24,-1);
addRotationMap("Scarabrae_nef","CTF",true,false,28,-1);
//addRotationMap("StarIce","CTF",true,false,12,24);
//addRotationMap("FilteredDust","CTF",true,false,12,24);
//addRotationMap("Choke","CTF",true,false,12,24);
//addRotationMap("ConstructionYard","CTF",true,false,12,24);
//addRotationMap("AcidRain","CTF",true,false,12,24);
//addRotationMap("SubZeroV","CTF",true,true,12,24);
//-------------------------------------------------------------------------------
//addRotationMap("DMP_Agroleon","CTF",true,true,18,28);
//addRotationMap("DMP_Astro","CTF",true,false,16,26);
addRotationMap("DMP_BastardForge","CTF",true,true,12,32);
addRotationMap("DMP_BitterGorge","CTF",true,false,24,-1);
//addRotationMap("DMP_Bunkered","CTF",true,true,6,14);
addRotationMap("DMP_Cinerarium","CTF",true,true,-1,14);
//addRotationMap("DMP_DermCity","CTF",true,false,-1,-1);
//addRotationMap("DMP_Embers","CTF",true,false,-1,14);
//addRotationMap("DMP_EmeraldSpit","CTF",true,false,10,20);
//addRotationMap("DMP_FaceCrossing","CTF",true,false,10,20);
addRotationMap("DMP_Hoth","CTF",true,false,24,-1);
//addRotationMap("DMP_IceGiant","CTF",true,false,20,32);
//addRotationMap("DMP_IsleDeBatalla","CTF",true,false,10,20);
//addRotationMap("DMP_LavaGods","CTF",true,false,10,20);
addRotationMap("DMP_Magellan","CTF",true,false,12,32);
addRotationMap("DMP_MoonDance","CTF",true,true,12,-1);
//addRotationMap("DMP_Pantheon","CTF",true,false,16,24);
addRotationMap("DMP_Paranoia","CTF",true,false,-1,16);
addRotationMap("DMP_Pariah","CTF",true,true,8,32);
addRotationMap("DMP_PipeDream","CTF",true,false,8,24);
addRotationMap("DMP_RavineV","CTF",true,false,12,32);
//addRotationMap("DMP_ScorchedEarth","CTF",true,false,24,-1);
addRotationMap("DMP_SimpleFlagArena","CTF",true,true,-1,14);
addRotationMap("DMP_SpinCycle","CTF",true,true,-1,12);
addRotationMap("DMP_StarFall","CTF",true,true,-1,14);
addRotationMap("DMP_Tyre","CTF",true,true,14,-1);
//addRotationMap("DMP_Wasteland","CTF",true,false,12,32);
//addRotationMap("Chasmaclysmic","CTF",true,true,-1,-1);
//addRotationMap("DBS_Smoothed","CTF",true,false,-1,-1);
//addRotationMap("PuliVeivari","CTF",true,false,-1,-1);
//addRotationMap("PlanetX","CTF",true,false,-1,-1);
//addRotationMap("Ravine","CTF",true,true,-1,-1);
//addRotationMap("Stripmine","CTF",true,false,-1,-1);
//-------------------------------------------------------------------------------
//addRotationMap("S5_Misadventure","CTF",true,false,-1,-1);
//addRotationMap("S8_CentralDogma","CTF",true,false,-1,-1);
//addRotationMap("S8_Mountking","CTF",true,false,-1,-1);
//addRotationMap("S8_Zilch","CTF",true,false,-1,-1);
//addRotationMap("TWL2_CloakOfNight","CTF",true,false,-1,-1);
//addRotationMap("TWL_BaNsHee","CTF",true,false,-1,-1);
//addRotationMap("TWL_Boss","CTF",true,false,-1,-1);
//addRotationMap("TWL_NoShelter","CTF",true,false,-1,-1);
//addRotationMap("TWL_Clusterfuct","CTF",true,false,-1,-1);
//addRotationMap("TWL_Curtilage","CTF",true,false,-1,-1);
//addRotationMap("TWL_Deserted","CTF",true,false,-1,-1);
//addRotationMap("TWL_Frostclaw","CTF",true,false,-1,-1);
//addRotationMap("TWL_Neve","CTF",true,false,-1,-1);
//addRotationMap("TWL_Ramparts","CTF",true,false,-1,-1);
//addRotationMap("TWL_Sandstorm","CTF",true,false,-1,-1);
//addRotationMap("TWL_WoodyMyrk","CTF",true,false,-1,-1);
//addRotationMap("Sandstorm","CTF",true,false,-1,-1);
//addRotationMap("Starfallen","CTF",true,false,-1,-1);
//addRotationMap("Stonehenge_nef","CTF",true,false,-1,-1);
//addRotationMap("Extractor","CTF",true,false,16,-1);
//addRotationMap("AstersDescent","CTF",true,false,-1,-1);
//addRotationMap("Azoth","CTF",true,false,-1,-1);
//addRotationMap("BattleGrove","CTF",true,false,-1,-1);
//addRotationMap("Durango","CTF",true,false,-1,-1);
//addRotationMap("DustLust","CTF",true,false,-1,-1);
//addRotationMap("IceGulch","CTF",true,false,-1,-1);
//addRotationMap("MountainMist","CTF",true,false,-1,-1);
//addRotationMap("Peak","CTF",true,false,-1,-1);
//addRotationMap("Pendulum","CTF",true,false,-1,-1);
//addRotationMap("OctoberRust","CTF",true,false,-1,-1);
//addRotationMap("DevilsElbow","CTF",true,false,-1,-1);
//addRotationMap("CloudCity","CTF",true,false,-1,-1);
//addRotationMap("Damnation","CTF",true,false,-1,-1);
//addRotationMap("DeathBirdsFly","CTF",true,false,-1,-1);
//addRotationMap("Desiccator","CTF",true,false,-1,-1);
//addRotationMap("DustToDust","CTF",true,false,-1,-1);
//addRotationMap("Katabatic","CTF",true,false,-1,-1);
//addRotationMap("Quagmire","CTF",true,false,-1,-1);
//addRotationMap("Recalescence","CTF",true,false,-1,-1);
//addRotationMap("Reversion","CTF",true,false,-1,-1);
//addRotationMap("RiverDance","CTF",true,false,-1,-1);
//addRotationMap("Sanctuary","CTF",true,false,-1,-1);
//addRotationMap("ThinIce","CTF",true,false,-1,-1);
//addRotationMap("Tombstone","CTF",true,false,-1,-1);
//addRotationMap("Broadside_nef","CTF",true,false,-1,-1);
//addRotationMap("Camelland","CTF",true,false,-1,-1);
//addRotationMap("HighTrepidation","CTF",true,false,-1,-1);
//addRotationMap("SmallDesertofDeath","CTF",true,false,-1,-1);
//addRotationMap("BasinFury","CTF",true,false,-1,-1);
//addRotationMap("Cadaver","CTF",true,false,-1,-1);
//addRotationMap("EivoItoxico","CTF",true,false,-1,-1);
//addRotationMap("Einfach","CTF",true,false,-1,-1);
//addRotationMap("PicnicTable","CTF",true,false,-1,-1);
//addRotationMap("Hostility","CTF",true,false,-1,-1);
//addRotationMap("HighWire","CTF",true,false,-1,-1);
//addRotationMap("CloudBurst","CTF",true,false,-1,-1);
//addRotationMap("CloseCombat","CTF",true,false,-1,-1);
//addRotationMap("DesertofDeath_nef","CTF",true,false,-1,-1);
//addRotationMap("Gorgon","CTF",true,false,-1,-1);
//addRotationMap("Magmatic","CTF",true,false,-1,-1);
//-------------------------------------------------------------------------------
addRotationMap("SmallSpit","CTF",true,true,-1,12);
addRotationMap("MisadventureV2","CTF",true,false,12,32);
addRotationMap("El_Fin","CTF",true,true,-1,14);
addRotationMap("HogansRun24","CTF",true,false,14,-1);
addRotationMap("VanDamnedCTF","CTF",true,true,-1,12);
addRotationMap("HillKingCTF","CTF",true,true,-1,12);
addRotationMap("DaftGulch","CTF",true,false,12,32);
addRotationMap("Triad","CTF",true,false,12,32);
addRotationMap("Moonwalk","CTF",true,true,12,-1);
addRotationMap("GreenLawn","CTF",true,true,12,-1);
addRotationMap("OuterWilds","CTF",true,true,-1,14);
addRotationMap("CoconutFury","CTF",true,false,-1,32);
addRotationMap("TWL2_FrozenGlory_Thawed","CTF",true,false,12,-1);
addRotationMap("Sector1","CTF",true,false,-1,-1);
//addRotationMap("CinderCone","CTF",true,false,-1,-1);
//addRotationMap("Slamnation","CTF",false,false,-1,-1);
//addRotationMap("MountaintopMayhem","CTF",false,false,-1,-1);
//addRotationMap("ChasmClash","CTF",true,false,-1,14);
//addRotationMap("FrostBite","CTF",true,false,-1,-1);
//addRotationMap("Lapiths","CTF",true,false,-1,-1);
//addRotationMap("Jettisoned","CTF",true,false,-1,-1);
//addRotationMap("Drafts","CTF",true,true,-1,12);
//addRotationMap("IslaHermano","CTF",true,false,-1,-1);
//addRotationMap("DermCrossingDeluxe","CTF",true,false,-1,-1);
//addRotationMap("Vaubania","CTF",true,true,-1,12);
//addRotationMap("Bonespur","CTF",true,true,-1,14);
//addRotationMap("Bridgepoint","CTF",true,false,-1,18);
//addRotationMap("Narcolepsy","CTF",true,false,-1,20);
//addRotationMap("WhiteDwarfDeluxe","CTF",true,true,-1,14);
//addRotationMap("SignalDX","CTF",true,false,8,24);
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
addRotationMap("VaubanLak","Lakrabbit",true,false,8,-1);
addRotationMap("MiniSunDried","Lakrabbit",true,true,-1,12);
addRotationMap("Sundance","Lakrabbit",true,true,-1,-1);
addRotationMap("TWL_BeachBlitzLak","Lakrabbit",true,true,-1,-1);
addRotationMap("DesertofDeathLak","Lakrabbit",true,true,-1,-1);
addRotationMap("Raindance_nefLak","Lakrabbit",true,true,-1,-1);
addRotationMap("SunDriedLak","Lakrabbit",true,true,-1,-1);
addRotationMap("SkinnyDipLak","Lakrabbit",true,false,-1,-1);
addRotationMap("SaddiesHill","Lakrabbit",true,false,-1,-1);
addRotationMap("HavenLak","Lakrabbit",true,false,-1,-1);
addRotationMap("LushLak","Lakrabbit",true,false,8,-1);
addRotationMap("BoxLak","Lakrabbit",true,true,-1,10);
addRotationMap("TitaniaLak","Lakrabbit",true,false,8,-1);
addRotationMap("TibbawLak","Lakrabbit",true,true,-1,-1);
addRotationMap("InfernusLak","Lakrabbit",true,true,-1,-1);
addRotationMap("S8_GeothermalLak","Lakrabbit",true,false,-1,-1);
addRotationMap("CankerLak","Lakrabbit",true,true,-1,-1);
addRotationMap("DustRunLak","Lakrabbit",true,true,-1,-1);
addRotationMap("CrossfiredLak","Lakrabbit",true,true,-1,-1);
addRotationMap("CloakofLak","Lakrabbit",true,false,-1,-1);
addRotationMap("SpectreLak","Lakrabbit",true,false,-1,-1);
addRotationMap("TreasureIslandLak","Lakrabbit",true,true,-1,-1);
addRotationMap("Sulfide","Lakrabbit",true,false,-1,-1);
addRotationMap("FrozenFuryLak","Lakrabbit",true,false,-1,-1);
addRotationMap("Arrakis","Lakrabbit",true,false,-1,-1);
addRotationMap("EquinoxLak","Lakrabbit",true,false,-1,-1);
addRotationMap("PhasmaDustLak","Lakrabbit",true,true,-1,12);
addRotationMap("GodsRiftLak","Lakrabbit",true,false,-1,-1);
addRotationMap("SolsDescentLak","Lakrabbit",true,true,-1,-1);
addRotationMap("Crater71Lak","Lakrabbit",true,false,6,-1);
//-------------------------------------------------------------------------------
//addRotationMap("EscaladeLak","Lakrabbit",true,false,-1,-1);
//addRotationMap("MagmaticLak","Lakrabbit",true,false,-1,-1);
//addRotationMap("HillsOfSorrow","Lakrabbit",true,false,-1,-1);
//addRotationMap("TWL2_MuddySwampLak","Lakrabbit",true,false,-1,-1);
//addRotationMap("SandStormLak","Lakrabbit",true,false,-1,-1);
//addRotationMap("BeggarsRunLak","Lakrabbit",true,false,-1,-1);
//addRotationMap("DamnnationLak","Lakrabbit",true,false,-1,-1);
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
addRotationMap("DangerousCrossingLT","LCTF",true,false,-1,-1);
addRotationMap("DX_Ice","LCTF",true,true,-1,-1);
//addRotationMap("DX_Badlands","LCTF",true,false,-1,-1);
//addRotationMap("DX_Desert","LCTF",true,false,-1,-1);
addRotationMap("SmallCrossingLT","LCTF",true,false,-1,-1);
addRotationMap("DireLT","LCTF",true,false,-1,-1);
addRotationMap("RoundTheMountainLT","LCTF",true,true,-1,-1);
addRotationMap("TWL_FeignLT","LCTF",true,false,-1,-1);
addRotationMap("TWL_RollercoasterLT","LCTF",true,false,10,-1);
addRotationMap("TWL_StonehengeLT","LCTF",true,true,-1,-1);
addRotationMap("TWL_WilderZoneLT","LCTF",true,false,-1,-1);
addRotationMap("TWL_BeachBlitzLT","LCTF",true,true,-1,-1);
addRotationMap("TWL2_CanyonCrusadeDeluxeLT","LCTF",true,true,-1,-1);
addRotationMap("TWL2_HildebrandLT","LCTF",true,true,-1,-1);
addRotationMap("TWL2_SkylightLT","LCTF",true,false,-1,-1);
addRotationMap("TWL2_JaggedClawLT","LCTF",true,false,-1,-1);
addRotationMap("S5_MassiveLT","LCTF",true,false,-1,-1);
addRotationMap("S5_DamnationLT","LCTF",true,false,8,-1);
addRotationMap("S5_Icedance","LCTF",true,true,10,-1);
addRotationMap("S5_Mordacity","LCTF",true,true,10,-1);
addRotationMap("S8_ZilchLT","LCTF",true,true,-1,-1);
addRotationMap("CirclesEdgeLT","LCTF",true,true,10,-1);
addRotationMap("TenebrousCTF","LCTF",true,false,-1,-1);
addRotationMap("oasisintensity","LCTF",true,true,-1,10);
addRotationMap("berlard","LCTF",true,true,-1,-1);
addRotationMap("RaindanceLT","LCTF",true,false,-1,-1);
addRotationMap("SmallTimeLT","LCTF",true,false,-1,-1);
addRotationMap("ArenaDome","LCTF",true,true,-1,10);
addRotationMap("Bulwark","LCTF",true,true,-1,-1);
addRotationMap("Discord","LCTF",true,true,-1,-1);
addRotationMap("HillSideLT","LCTF",true,true,-1,-1);
addRotationMap("IcePick","LCTF",true,true,-1,16);
addRotationMap("OsIrisLT","LCTF",true,true,-1,-1);
addRotationMap("GrassyKnollLT","LCTF",true,true,-1,-1);
addRotationMap("SandyRunLT","LCTF",true,false,-1,12);
addRotationMap("Sentry","LCTF",true,true,-1,-1);
addRotationMap("Exhumed","LCTF",true,false,-1,-1);
addRotationMap("FrozenHopeLT","LCTF",true,true,-1,-1);
//addRotationMap("TheFray","LCTF",true,false,-1,-1);
//addRotationMap("SignalLT","LCTF",true,false,-1,-1);
//-------------------------------------------------------------------------------
addRotationMap("HillKingLT","LCTF",true,true,-1,-1);
addRotationMap("DMP_BastardForgeLT","LCTF",true,true,10,-1);
addRotationMap("DMP_Paranoia","LCTF",true,false,-1,-1);
addRotationMap("DMP_SpincycleLT","LCTF",true,true,-1,-1);
addRotationMap("DMP_Cinerarium","LCTF",true,true,-1,-1);
addRotationMap("DMP_StarFallLT","LCTF",true,true,-1,-1);
addRotationMap("DMP_BunkeredLT","LCTF",true,true,-1,-1);
addRotationMap("DMP_PariahLT","LCTF",true,true,-1,-1);
addRotationMap("DMP_SimpleFlagArena","LCTF",true,true,-1,-1);
addRotationMap("VanDamnedLT","LCTF",true,true,-1,-1);
addRotationMap("Ravine","LCTF",true,true,10,-1);
addRotationMap("PipeDreamLT","LCTF",true,true,-1,-1);
//addRotationMap("DMP_LavaGods","LCTF",true,false,10,20);
//addRotationMap("AttritionLT","LCTF",true,true,-1,-1);
//addRotationMap("RushLT","LCTF",true,false,-1,-1);
//-------------------------------------------------------------------------------
addRotationMap("SmallSpit","LCTF",true,true,10,-1);
addRotationMap("ClusterUnFuct","LCTF",true,true,10,-1);
addRotationMap("OuterWildsLT","LCTF",true,true,-1,-1);
addRotationMap("SuperiorWaterworks","LCTF",true,true,-1,-1);
addRotationMap("FrozenForgeLT","LCTF",true,true,-1,-1);
addRotationMap("El_FinLT","LCTF",true,true,-1,-1);
addRotationMap("CapriLT","LCTF",true,true,-1,-1);
addRotationMap("RunenmachtLT","LCTF",true,true,-1,-1);
addRotationMap("Machineeggs","LCTF",true,true,-1,-1);
addRotationMap("Mac_FlagArena","LCTF",true,false,-1,-1);
addRotationMap("SuperHappyBouncyFuntime","LCTF",true,false,-1,-1);
addRotationMap("NarcolepsyLT","LCTF",true,false,10,-1);
//addRotationMap("BonespurLT","LCTF",true,true,-1,14);
//addRotationMap("DuelersDelight","LCTF",true,false,-1,12);
//addRotationMap("TWL2_CelerityLT","LCTF",true,true,-1,20);
//addRotationMap("Drafts","LCTF",true,true,-1,12);
//addRotationMap("DermCrossingDeluxeLT","LCTF",true,true,-1,-1);
//addRotationMap("Bridgepoint","LCTF",true,true,-1,14);
//addRotationMap("WhiteDwarfDeluxeLT","LCTF",true,false,-1,14);
//addRotationMap("SurrealLT","LCTF",true,false,-1,-1);
//addRotationMap("Confusco","LCTF",true,false,6,-1);
//addRotationMap("TWL2_MuddySwamp","LCTF",true,false,8,-1);
//addRotationMap("Blink","LCTF",true,false,-1,-1);
//addRotationMap("S8_Opus","LCTF",true,false,-1,-1);
//addRotationMap("BeggarsRunLT","LCTF",true,false,-1,-1);
//addRotationMap("S5_WoodymyrkLT","LCTF",true,false,-1,-1);
//addRotationMap("S5_SilenusLT","LCTF",true,false,-1,-1);
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
addRotationMap("RaspDM","DM",true,true,8,-1);
addRotationMap("EntombedDM","DM",true,true,-1,-1);
addRotationMap("IceDomeDM","DM",true,true,-1,-1);
addRotationMap("HoofToeDM","DM",true,true,6,-1);
addRotationMap("ArenaDomeDM","DM",true,true,-1,-1);
addRotationMap("VulcansWrathDM","DM",true,true,-1,-1);
addRotationMap("RampartsDM","DM",true,true,-1,-1);
addRotationMap("ShrineDM","DM",true,true,-1,12);
addRotationMap("LiveBaitDM","DM",true,true,-1,-1);
addRotationMap("FourSquareDM","DM",true,true,-1,10);
addRotationMap("BrigDM","DM",true,true,-1,8);
addRotationMap("PitsDM","DM",true,true,-1,10);
addRotationMap("RingofFireDM","DM",true,true,-1,10);
addRotationMap("GorgonDM","DM",true,true,-1,10);
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//addRotationMap("Alcatraz","Siege",true,true,-1,-1);
//addRotationMap("Caldera","Siege",true,true,-1,-1);
//addRotationMap("Gauntlet","Siege",true,true,-1,-1);
//addRotationMap("IceBound","Siege",true,true,-1,-1);
//addRotationMap("Masada","Siege",true,true,-1,-1);
//addRotationMap("Respite","Siege",true,true,-1,-1);
//addRotationMap("UltimaThule","Siege",true,true,-1,-1);
//addRotationMap("BridgeTooFar","Siege",true,true,-1,-1);
//addRotationMap("IsleOfMan","Siege",true,true,-1,-1);
//addRotationMap("Trident","Siege",true,true,-1,-1);
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//-------------------------------------------------------------------------------
//addRotationMap("MiniSunDried","Hunters",true,true,-1,-1);
//addRotationMap("DustToDust","Hunters",true,true,-1,-1);

View file

@ -5,7 +5,6 @@ $Host::AllowAdminKick = 1;
$Host::AllowAdminPassVote = 1;
$Host::allowAdminPlayerVotes = "0";
$Host::AllowAdminStopVote = 1;
$Host::AllowAdminStopVotes = 1;
$Host::AllowAdminVotes = 1;
$Host::AllowMapScript = "True";
$Host::AllowPlayerVoteChangeMission = 1;
@ -56,7 +55,7 @@ $Host::ClassicLoadVRamChanges = 0;
$Host::ClassicLogEchoEnabled = 0;
$Host::ClassicMaxVotes = 3;
$Host::ClassicMaxTelepads = 3;
$Host::ClassicMOTD = "<color:3cb4b4><font:Sui Generis:22>Tribes 2 Test\n<color:3cb4b4><font:Univers:16>Server brought to you via Commuity Effort\n<color:3cb4b4><font:Univers:16>Celebrating 20 Years of Tribes2!";
$Host::ClassicMOTD = "<color:3cb4b4><font:Sui Generis:22>Tribes 2 Test\n<color:3cb4b4><font:Univers:16>Server brought to you via Commuity Effort\n<color:3cb4b4><font:Univers:16>Celebrating 25 Years of Tribes2!";
$Host::ClassicMOTDLines = 3;
$Host::ClassicMOTDTime = 6;
$Host::ClassicNoNullVoiceSpam = 0;
@ -123,7 +122,7 @@ $Host::LoadScreenColor3 = "33CCCC";
$Host::LoadScreenLine1 = "Join Discord:";
$Host::LoadScreenLine1_Msg = "<a:playt2.com/discord>playt2.com/discord</a>";
$Host::LoadScreenLine2 = "Game Modes:";
$Host::LoadScreenLine2_Msg = "LakRabbit, Capture the Flag, DeathMatch, (Light Only) Capture the Flag";
$Host::LoadScreenLine2_Msg = "Lak, CTF, DeathMatch, LCTF";
$Host::LoadScreenLine3 = "Get Mappacks:";
$Host::LoadScreenLine3_Msg = "<a:playt2.com/mappacks>playt2.com/mappacks</a>";
$Host::LoadScreenLine4 = "Server Location:";
@ -132,7 +131,7 @@ $Host::LoadScreenLine5 = "Server Hosted:";
$Host::LoadScreenLine5_Msg = "Internet";
$Host::LoadScreenLine6 = "Server Github:";
$Host::LoadScreenLine6_Msg = "https://github.com/ChocoTaco1/TacoServer";
$Host::LoadScreenMOTD1 = "Celebrating 20 Years of Tribes2!";
$Host::LoadScreenMOTD1 = "Celebrating 25 Years of Tribes2!";
$Host::LoadScreenMOTD2 = "Come play Arena on Wednesday Nights!";
$Host::LoadScreenMOTD3 = "Lak crowd early evenings after work during the week.";
$Host::LoadScreenMOTD4 = "Big CTF games Fridays, Saturdays, and Sundays!";
@ -160,10 +159,10 @@ $Host::PUGautoPassword = 0;
$Host::PUGPassword = "pickup";
$Host::PUGpasswordAlwaysOn = 0;
$Host::PureServer = 0;
$Host::ServerRules1 = "\c2if\c4(\c3%client.attitude \c4$= \c5\"fun\" \c4&& \c3%client.Llama_Grabs \c4< \c51\c4) {";
$Host::ServerRules2 = " \c1keepTeamsBalanced\c4(\c2%client\c4); \c1dontSwitch2WinningTeam(\c2%client\c4); }";
$Host::ServerRules3 = "\c2else if\c4(\c3%client.attitude \c4$= \c5\"too_serious\"\c4) {";
$Host::ServerRules4 = " \c1try2HaveFun\c4(\c2%client, %attitude\c4); \c1thisIsPubServer\c4(\c2%client, %attitude\c4); }";
$Host::ServerRules1 = "1. Don\'t Llama Grab. (Grab flag slowly)";
$Host::ServerRules2 = "2. Don\'t sit on teams and AFK. Move to observer.";
$Host::ServerRules3 = "3. Don\'t Excessively teamkill or teamkill on purpose.";
$Host::ServerRules4 = "4. Don\'t spam chat with inappropriate topics. Play the game.";
$Host::ShowEndingPlayerScores = 1;
$Host::ShowIngamePlayerScores = 1;
$Host::Siege::Halftime = 20000;
@ -191,7 +190,7 @@ $Host::TN::echo = 1;
$Host::TournamentMode = 0;
$Host::useCustomSkins = 1;
$Host::VoteCooldown = 120;
$Host::VoteDelayTime = 120;
$Host::VoteDelayTime = 60;
$Host::VotePassPercent = 60;
$Host::VoteSpread = 20;
$Host::VoteTime = "45";

View file

@ -952,6 +952,9 @@ function CTFGame::gameOver(%game)
}
for(%j = 1; %j <= %game.numTeams; %j++)
$TeamScore[%j] = 0;
%game.voteOT = 0;
%game.overtime = 0;
}
function CTFGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageType, %implement, %damageLoc)
@ -1266,8 +1269,15 @@ function CTFGame::checkTimeLimit(%game, %forced)
{
%teamOneCaps = mFloor($TeamScore[1] / %game.SCORE_PER_TEAM_FLAG_CAP);
%teamTwoCaps = mFloor($TeamScore[2] / %game.SCORE_PER_TEAM_FLAG_CAP);
if(%teamOneCaps == %teamTwoCaps && $CTF::Overtime && $Host::TournamentMode){ //Setting exists
if(!%game.overtime){
if(%game.scheduleVote !$= "" && !%game.voteOT && !$Host::TournamentMode)
{
messageAll('MsgOvertime', '\c2Vote Overtime Initiated.~wfx/powered/turret_heavy_activate.wav');
%game.voteOT = 1;
}
else if(%teamOneCaps == %teamTwoCaps && $CTF::Overtime && (($TeamRank[1, count] + $TeamRank[2, count]) > 6))
{
if(!%game.overtime)
{
%game.overtime = 1;
if($CTF::Overtime > 1){ %s = "s"; }
messageAll('MsgOvertime', '\c2Sudden-Death Overtime Initiated: %1 Minute%2 Remaining~wfx/powered/turret_heavy_activate.wav', $CTF::Overtime, %s);
@ -1275,18 +1285,30 @@ function CTFGame::checkTimeLimit(%game, %forced)
UpdateClientTimes($CTF::Overtime * 60 * 1000);
EndCountdown($CTF::Overtime * 60 * 1000);
%game.timeCheck = %game.schedule($CTF::Overtime * 60 * 1000, "timeLimitReached");
//Cancel vote if any
if(%game.scheduleVote !$= "")
{
messageAll('closeVoteHud', "");
cancel(Game.scheduleVote);
Game.scheduleVote = "";
Game.kickClient = "";
clearVotes();
//Stop vote chimes
for(%i = 0; %i < $Host::EnableVoteSoundReminders; %i++)
{
if(isEventPending(Game.voteReminder[%i]))
cancel(Game.voteReminder[%i]);
Game.voteReminder[%i] = "";
}
messageAll('MsgOvertime', "\c2Vote has been cancelled due to Sudden-Death Overtime.");
}
}
}
else{
if(%game.scheduleVote !$= ""){
if(!%game.voteOT){
messageAll('MsgOvertime', '\c2Vote Overtime Initiated.~wfx/powered/turret_heavy_activate.wav');
%game.voteOT = 1;
}
}
else{
%game.timeLimitReached();
}
else
{
%game.timeLimitReached();
}
}
else
@ -2017,7 +2039,7 @@ function CTFGame::awardScoreKill(%game, %killerID)
function checkVehicleCamping( %team )
{
%position = $flagPos[%team];
%radius = 15;
%radius = 5;
InitContainerRadiusSearch(%position, %radius, $TypeMasks::VehicleObjectType );
while ((%vehicle = containerSearchNext()) != 0)

View file

@ -689,6 +689,9 @@ function LCTFGame::gameOver(%game)
if (isActivePackage(LCTFOneMine))
deactivatePackage(LCTFOneMine);
%game.voteOT = 0;
%game.overtime = 0;
}
@ -1566,8 +1569,15 @@ function LCTFGame::checkTimeLimit(%game, %forced)
{
%teamOneCaps = mFloor($TeamScore[1] / %game.SCORE_PER_TEAM_FLAG_CAP);
%teamTwoCaps = mFloor($TeamScore[2] / %game.SCORE_PER_TEAM_FLAG_CAP);
if(%teamOneCaps == %teamTwoCaps && $LCTF::Overtime && $Host::TournamentMode){ //Setting exists
if(!%game.overtime){
if(%game.scheduleVote !$= "" && !%game.voteOT && !$Host::TournamentMode)
{
messageAll('MsgOvertime', '\c2Vote Overtime Initiated.~wfx/powered/turret_heavy_activate.wav');
%game.voteOT = 1;
}
else if(%teamOneCaps == %teamTwoCaps && $LCTF::Overtime && (($TeamRank[1, count] + $TeamRank[2, count]) > 6))
{
if(!%game.overtime)
{
%game.overtime = 1;
if($LCTF::Overtime > 1){ %s = "s"; }
messageAll('MsgOvertime', '\c2Sudden-Death Overtime Initiated: %1 Minute%2 Remaining~wfx/powered/turret_heavy_activate.wav', $LCTF::Overtime, %s);
@ -1575,18 +1585,30 @@ function LCTFGame::checkTimeLimit(%game, %forced)
UpdateClientTimes($LCTF::Overtime * 60 * 1000);
EndCountdown($LCTF::Overtime * 60 * 1000);
%game.timeCheck = %game.schedule($LCTF::Overtime * 60 * 1000, "timeLimitReached");
//Cancel vote if any
if(%game.scheduleVote !$= "")
{
messageAll('closeVoteHud', "");
cancel(Game.scheduleVote);
Game.scheduleVote = "";
Game.kickClient = "";
clearVotes();
//Stop vote chimes
for(%i = 0; %i < $Host::EnableVoteSoundReminders; %i++)
{
if(isEventPending(Game.voteReminder[%i]))
cancel(Game.voteReminder[%i]);
Game.voteReminder[%i] = "";
}
messageAll('MsgOvertime', "\c2Vote has been cancelled due to Sudden-Death Overtime.");
}
}
}
else{
if(%game.scheduleVote !$= ""){
if(!%game.voteOT){
messageAll('MsgOvertime', '\c2Vote Overtime Initiated.~wfx/powered/turret_heavy_activate.wav');
%game.voteOT = 1;
}
}
else{
%game.timeLimitReached();
}
else
{
%game.timeLimitReached();
}
}
else

View file

@ -166,6 +166,23 @@
// 1 - Players get 999 or unlimited DiscJumps
//
datablock ItemData(LakFakeFlag2) : flag
{
lightColor = "0.1 0.1 0.9 1.0";
className = LakFakeFlag;
lightTime = "100";
lightRadius = "5";
};
datablock ItemData(LakFakeFlag4) : LakFakeFlag2
{
lightColor = "0.9 0.9 0.1 1.0";
};
datablock ItemData(LakFakeFlag8) : LakFakeFlag2
{
lightColor = "0.1 0.9 0.1 1.0";
};
package LakRabbitGame {
@ -417,7 +434,12 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
// no splash damage vote
if(Game.noSplashDamage && %percentDam < 98 && $lastObjExplode && !$lastObjExplode.isHandNade && %damageType != $DamageType::Mine)
%amount = 0.0;
{
if(!%targetObject.holdingFlag)
%amount = 0.0;
else if(((getSimTime() - %targetObject.client.rabbitSplash) < 15000)) //Turn on splash for rabbit after not making a shot for an alotted time
%amount = 0.0;
}
switch$(%damageType)
{
@ -435,54 +457,106 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
%sound = %defaultSound;
}
// special knockback if you hit too close, max 15% chance (point blank).. 5% at 30meters, 1% chance for any MA
if(%targetObject.holdingFlag)
{
%tgPos = %targetObject.getPosition();
%terrHeight = getTerrainHeight(getWords(%tgPos,0,1));
%playerHeight = mAbs(getWord(%tgPos,2) - %terrHeight);
}
// Slap based on a Disc headshot
//%chance = mFloor(25 - %distance/3);
//if(%ma && getRandom(1,50) <= %chance && %targetObject.client.headshot)
if(%targetObject.holdingFlag && %playerHeight >= 100)
{
// tr2 style flag drop.. it does kill the rabbit
%chance = mFloor(20 - %distance/%playerHeight);
if(%chance <= 0) %chance = 1;
//Normal Slap
%chance = mFloor(15 - %distance/3);
if(%chance <= 0) %chance = 1;
if(%ma && getRandom(1,100) <= %chance)
{
Game.playerDroppedFlag(%targetObject);
if(%ma && getRandom(1,100) <= %chance)
%position = %targetObject.getPosition();
%count = 40;
%ttl = 60000;
%player = %targetObject;
if( %position $= "" )
{
if(%targetObject.holdingFlag)
{
Game.playerDroppedFlag(%targetObject);
//Added so cloak is turned off when slapped.
%targetObject.setCloaked(false);
%targetObject.freeDJ = 1;
}
if(%sourceObject.holdingFlag && Game.duelMode)
{
duelBonus(%sourceObject.client);
$LakDamaged[%targetObject.client] = 0;
}
// lower damage and make invincible to ground damage to make it a little more fun
%amount = 0.01;
%targetObject.setKnockback(true);
%targetObject.schedule(15000, "setKnockback", false);
%p = %targetObject.getWorldBoxCenter();
%muzzleVec = %sourceObject.getMuzzleVector(0);
%impulseVec = VectorScale(%muzzleVec, 25000);
%targetObject.applyImpulse(%p, %impulseVec);
%sound = '~wfx/misc/slapshot.wav';
%slapmsg = getRandom(1,3);
switch$(%slapmsg)
{
case 1:
messageAll('msgSlapmessage','\c0%1 wonders what the five fingers said to the face.', %targetObject.client.name );
case 2:
messageAll('msgSlapmessage','\c0%1 gets slapped the heck out!', %targetObject.client.name );
case 3:
messageAll('msgSlapmessage','\c0%1 is taking a short tour around the map.', %targetObject.client.name );
}
error("No position passed!");
return 0;
}
if( %count <= 0 )
{
error("Number of flags to spew must be greater than 0!");
return 0;
}
%flagArr[0] = LakFakeFlag8;
%flagArr[1] = LakFakeFlag2;
%flagArr[2] = LakFakeFlag4;
while( %count > 0 )
{
%index = mFloor(getRandom() * 3);
// throwDummyFlag(location, Datablock);
LakRabbitGame::throwDummyFlag(%position, %flagArr[%index], %player, %ttl);
%count--;
}
%targetObject.blowup();
%targetObject.scriptKill($DamageType::Explosion);
%sound = '~wfx/misc/MA1.wav';
}
}
else
{
// special knockback if you hit too close, max 15% chance (point blank).. 5% at 30meters, 1% chance for any MA
// Slap based on a Disc headshot
//%chance = mFloor(25 - %distance/3);
//if(%ma && getRandom(1,50) <= %chance && %targetObject.client.headshot)
//Normal Slap
%chance = mFloor(15 - %distance/3);
if(%chance <= 0) %chance = 1;
if(%ma && getRandom(1,100) <= %chance)
{
if(%targetObject.holdingFlag)
{
Game.playerDroppedFlag(%targetObject);
//Added so cloak is turned off when slapped.
%targetObject.setCloaked(false);
%targetObject.freeDJ = 1;
}
if(%sourceObject.holdingFlag && Game.duelMode)
{
duelBonus(%sourceObject.client);
$LakDamaged[%targetObject.client] = 0;
}
// lower damage and make invincible to ground damage to make it a little more fun
%amount = 0.01;
%targetObject.setKnockback(true);
%targetObject.schedule(15000, "setKnockback", false);
%p = %targetObject.getWorldBoxCenter();
%muzzleVec = %sourceObject.getMuzzleVector(0);
%impulseVec = VectorScale(%muzzleVec, 25000);
%targetObject.applyImpulse(%p, %impulseVec);
%sound = '~wfx/misc/slapshot.wav';
%slapmsg = getRandom(1,3);
switch$(%slapmsg)
{
case 1:
messageAll('msgSlapmessage','\c0%1 wonders what the five fingers said to the face.', %targetObject.client.name );
case 2:
messageAll('msgSlapmessage','\c0%1 gets slapped the heck out!', %targetObject.client.name );
case 3:
messageAll('msgSlapmessage','\c0%1 is taking a short tour around the map.', %targetObject.client.name );
}
}
}
%weapon = "Disc";
case $DamageType::Grenade:
if($lastObjExplode.isHandNade) //Hand grenades
@ -746,10 +820,15 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
}
// borlak -- make a sound when you hit someone
if(%sound $= "" && %sourceObject.client.team != %targetObject.client.team)
messageClient(%sourceObject.client,'MsgHitSound','~wfx/misc/diagnostic_beep.wav');
else if(%sound !$= "")
// if(%sound $= "" && %sourceObject.client.team != %targetObject.client.team)
// messageClient(%sourceObject.client,'MsgHitSound','~wfx/misc/diagnostic_beep.wav');
// else if(%sound !$= ""){
if(%sound !$= ""){
messageAll('msgSpecialHitSound', %sound);
if(%sourceObject.holdingFlag){
%sourceObject.client.rabbitSplash = getSimTime();
}
}
// borlak -- rabbit should be able to kill heavies/mediums fast(er) in duel mode
if(%targetObject.client.armor $= "Heavy" || %targetObject.client.armor $= "Medium")
@ -1905,6 +1984,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag)
cancel(%game.updateFlagThread[%flag]); // z0dd - ZOD, 8/4/02. Cancel this flag's thread to KineticPoet's flag updater
%player.freeDJ = 0;
%flag.bounced = 0;
%player.client.rabbitSplash = getSimTime();
%player.client.startTime = getSimTime();
%player.holdingFlag = %flag;
@ -2017,6 +2097,45 @@ function LakRabbitGame::resetFlag(%game, %flag)
cancel(%game.updateFlagThread[%flag]); // z0dd - ZOD, 8/4/02. Cancel this flag's thread to KineticPoet's flag updater
}
function LakRabbitGame::checkTimeLimit(%game, %forced)
{
// Don't add extra checks:
if ( %forced )
cancel( %game.timeCheck );
// if there is no time limit, check back in a minute to see if it's been set
if(($Host::TimeLimit $= "") || $Host::TimeLimit == 0)
{
%game.timeCheck = %game.schedule(20000, "checkTimeLimit");
return;
}
%curTimeLeftMS = ($Host::TimeLimit * 60 * 1000) + $missionStartTime - getSimTime();
if (%curTimeLeftMS <= 0)
{
if(%game.scheduleVote !$= "" && !%game.voteOT && !$Host::TournamentMode)
{
messageAll('MsgOvertime', '\c2Vote Overtime Initiated.~wfx/powered/turret_heavy_activate.wav');
%game.voteOT = 1;
}
else
{
%game.timeLimitReached();
}
}
else
{
if(%curTimeLeftMS >= 20000)
%game.timeCheck = %game.schedule(20000, "checkTimeLimit");
else
%game.timeCheck = %game.schedule(%curTimeLeftMS + 1, "checkTimeLimit");
//now synchronize everyone's clock
messageAll('MsgSystemClock', "", $Host::TimeLimit, %curTimeLeftMS);
}
}
// ----- These functions are native to Rabbit
function LakRabbitGame::timeLimitReached(%game)
@ -2092,6 +2211,9 @@ function LakRabbitGame::gameOver(%game)
// borlak -- delete variables
deleteVariables("$LakFired*");
deleteVariables("$LakDamaged*");
%game.voteOT = 0;
%game.overtime = 0;
}
function LakRabbitGame::resetScore(%game, %client)
@ -2617,96 +2739,41 @@ function LakRabbitGame::applyConcussion(%game, %player)
%game.dropFlag( %player );
}
//--------------------------------Footnotes---------------------------------------
//
//
//To make vote options work in evo admin mod, demonstration only below
//
//function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote)
//{
// parent::serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote);
//
// // sonic9k 11/6/2003 - Added support for LakRabbit DuelMode option
// //
// case "VoteDuelMode":
// if( %isAdmin && !%client.ForceVote )
// {
// adminStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4);
// adminLog(%client, " has toggled " @ %arg1 @ " (" @ %arg2 @ ")");
// }
// else
// {
// if(Game.scheduleVote !$= "")
// {
// messageClient(%client, 'voteAlreadyRunning', '\c2A vote is already in progress.');
// return;
// }
// %actionMsg = ($Host::LakRabbitDuelMode ? "disable Duel mode" : "enable Duel mode");
// for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
// {
// %cl = ClientGroup.getObject(%idx);
// if(!%cl.isAIControlled())
// {
// messageClient(%cl, 'VoteStarted', '\c2%1 initiated a vote to %2.', %client.name, %actionMsg);
// %clientsVoting++;
// }
// }
// playerStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4, %clientsVoting);
// }
// //
// // sonic9k 11/6/2003 - Added support for LakRabbit SplashDamage option
// //
// case "VoteSplashDamage":
// if( %isAdmin && !%client.ForceVote )
// {
// adminStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4);
// adminLog(%client, " has toggled " @ %arg1 @ " (" @ %arg2 @ ")");
// }
// else
// {
// if(Game.scheduleVote !$= "")
// {
// messageClient(%client, 'voteAlreadyRunning', '\c2A vote is already in progress.');
// return;
// }
// %actionMsg = ($Host::LakRabbitNoSplashDamage ? "enable SplashDamage" : "disable SplashDamage");
// for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
// {
// %cl = ClientGroup.getObject(%idx);
// if(!%cl.isAIControlled())
// {
// messageClient(%cl, 'VoteStarted', '\c2%1 initiated a vote to %2.', %client.name, %actionMsg);
// %clientsVoting++;
// }
// }
// playerStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4, %clientsVoting);
// }
// //
// // chocotaco 8/7/2018 - Added support for LakRabbit Pro option
// //
// case "VotePro":
// if( %isAdmin && !%client.ForceVote )
// {
// adminStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4);
// adminLog(%client, " has toggled " @ %arg1 @ " (" @ %arg2 @ ")");
// }
// else
// {
// if(Game.scheduleVote !$= "")
// {
// messageClient(%client, 'voteAlreadyRunning', '\c2A vote is already in progress.');
// return;
// }
// %actionMsg = ($Host::LakRabbitPubPro ? "disable Pro mode" : "enable Pro mode");
// for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
// {
// %cl = ClientGroup.getObject(%idx);
// if(!%cl.isAIControlled())
// {
// messageClient(%cl, 'VoteStarted', '\c2%1 initiated a vote to %2.', %client.name, %actionMsg);
// %clientsVoting++;
// }
// }
// playerStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4, %clientsVoting);
// }
//}
function LakRabbitGame::throwDummyFlag(%position, %datablock, %player, %ttl)
{
%client = %player.client;
// create a flag and throw it
%droppedflag = new Item() {
position = %position;
rotation = "0 0 1 " @ (getRandom() * 360);
scale = "1 1 1";
dataBlock = %datablock;
collideable = "0";
static = "0";
rotate = "1";
team = "0";
isFake = 1;
};
MissionCleanup.add(%droppedflag);
%vec = (-1.0 + getRandom() * 2.0) SPC (-1.0 + getRandom() * 2.0) SPC getRandom();
%vec = VectorScale(%vec, getrandom(250,1000) + (getRandom() * 300));
// Add player's velocity
if (%player !$= "")
{
%droppedflag.setCollisionTimeout(%player);
%vec = vectorAdd(%vec, %player.getVelocity());
}
%droppedflag.applyImpulse(%pos, %vec);
%droppedFlag.die = schedule(getrandom(1500,5500), 0, "removeLakFakeFlag", %droppedflag);
}
function removeLakFakeFlag(%flag)
{
%flag.startFade(600, 0, true);
%flag.schedule(601, "delete");
}

View file

@ -4,59 +4,58 @@
//From Krash
memPatch("756076","6169");
// Thanks Turkeh
// TraversalRoot Console spam fix
function suppressTraversalRootPatch()
{
if($tvpatched)
return;
//// Thanks Turkeh
//// TraversalRoot Console spam fix
//function suppressTraversalRootPatch()
//{
//if($tvpatched)
//return;
warn("Patching traversal root error...");
memPatch("56AD8A", "90909090909090909090909090909090909090909090");
memPatch("56D114", "90909090909090909090909090909090909090909090");
$tvpatched = 1;
}
//warn("Patching traversal root error...");
//memPatch("56AD8A", "90909090909090909090909090909090909090909090");
//memPatch("56D114", "90909090909090909090909090909090909090909090");
//$tvpatched = 1;
//}
if (!$CmdArmor::Patched)
{
$CmdArmor::Patched = true;
//memPatch("6FC746", "66B8000090906683FE017408ACAA84C075FA89D05F5EC3");
memPatch("6FC746", "83FE017408ACAA84C075FA89D05F5EC3");
//Removed register size override (cmp si, 1 -> cmp esi, 1) and got rid of
//weird NASM garbage code at the beginning. Had a mov ax, 0 which did nothing
//and wasn't necessary anyways because of xor eax, eax in the original. It also
//generated several NOPs after that for no reason.
}
//if (!$CmdArmor::Patched)
//{
//$CmdArmor::Patched = true;
////memPatch("6FC746", "66B8000090906683FE017408ACAA84C075FA89D05F5EC3");
//memPatch("6FC746", "83FE017408ACAA84C075FA89D05F5EC3");
////Removed register size override (cmp si, 1 -> cmp esi, 1) and got rid of
////weird NASM garbage code at the beginning. Had a mov ax, 0 which did nothing
////and wasn't necessary anyways because of xor eax, eax in the original. It also
////generated several NOPs after that for no reason.
//}
function serverCmd(%client)
{
// Stick your own administrative action code here
messageAll('msgAll',"\c3" @ %client.namebase SPC "is attempting to crash the server!");
//function serverCmd(%client)
//{
//// Stick your own administrative action code here
//messageAll('msgAll',"\c3" @ %client.namebase SPC "is attempting to crash the server!");
messageClient(%client, 'onClientBanned', "");
messageAllExcept( %client, -1, 'MsgClientDrop', "", %client.name, %client );
//messageClient(%client, 'onClientBanned', "");
//messageAllExcept( %client, -1, 'MsgClientDrop', "", %client.name, %client );
// kill and delete this client
if( isObject(%client.player) )
%client.player.scriptKill(0);
//// kill and delete this client
//if( isObject(%client.player) )
//%client.player.scriptKill(0);
if ( isObject( %client ) )
{
%client.setDisconnectReason("You have been banned for attempting to crash the server.");
%client.schedule(700, "delete");
}
//if ( isObject( %client ) )
//{
//%client.setDisconnectReason("You have been banned for attempting to crash the server.");
//%client.schedule(700, "delete");
//}
BanList::add(%client.guid, %client.getAddress(), $Host::BanTime);
}
//BanList::add(%client.guid, %client.getAddress(), $Host::BanTime);
//}
//Disable UE box on crash
//Disable UE box on crash (Tribesnext Preview Unpatched Only)
//Used if a clean crash is desired
memPatch("7dc7fc","90");
//memPatch("7dc7fc","90");
//Loops Crash patch (Prevent the Uncaught Exception dialog from appearing)
memPatch("006ff376", "909090909090");
//memPatch("006ff376", "909090909090");
//Show Linux Icon in server list
//memPatch("5C9628","80CB05");
//Bahke MPB stability fix
//memPatch("614120","9090");
//Show no Linux Icon
//memPatch("5C9628","80CB01");

View file

@ -57,7 +57,7 @@ function VehicleData::onDestroyed(%data, %obj, %prevState)
%zVel = (getRandom() * 100.0) + 50.0;
%flingVel = %xVel @ " " @ %yVel @ " " @ %zVel;
%flingee.applyImpulse(%flingee.getTransform(), %flingVel);
echo("got player..." @ %flingee.getClassName());
//echo("got player..." @ %flingee.getClassName());
%flingee.damage(0, %obj.getPosition(), 0.4, $DamageType::Crash);
}
}
@ -70,29 +70,13 @@ function VehicleData::onDestroyed(%data, %obj, %prevState)
%data.deleteAllMounted(%obj);
// -----------------------------------------------------------------------------------------
// z0dd - ZOD - Czar, 6/24/02. Move this vehicle out of the way so nothing collides with it.
if(%data.getName() $="AssaultVehicle")
{
// %obj.setFrozenState(true);
%obj.schedule(500, "delete"); //was 2000
//%data.schedule(500, 'onAvoidCollisions', %obj);
%obj.setFrozenState(true);
%obj.schedule(2000, "delete"); //was 500
%data.schedule(500, 'onAvoidCollisions', %obj);
//Transfer the vehicle far away
%obj.schedule(128, "setPosition", vectorAdd(%obj.getPosition(), "40 -27 10000")); //Lowered: was 500
}
else if(%data.getName() $="BomberFlyer" || %data.getName() $="MobileBaseVehicle")
{
// %obj.setFrozenState(true);
%obj.schedule(2000, "delete"); //was 2000
//%data.schedule(500, 'onAvoidCollisions', %obj);
//Transfer the vehicle far away
%obj.schedule(128, "setPosition", vectorAdd(%obj.getPosition(), "40 -27 10000")); //Lowered: was 500
//Transfer the vehicle far away
%obj.schedule(128, "setPosition", vectorAdd(%obj.getPosition(), "40 -27 10000")); //Lowered: was 500
}
else
{
%obj.setFrozenState(true);
%obj.schedule(500, "delete"); //was 500
}
// -----------------------------------------------------------------------------------------
}
@ -323,17 +307,6 @@ function serverCmdScopeCommanderMap(%client, %scope)
%client.player.ccActive = %scope;
}
//Mortar Throw Reload Fix
// function ShapeBase::throwWeapon(%this)
// {
// if((%this.getMountedImage($WeaponSlot).getName() $= "MortarImage" || %this.getMountedImage($WeaponSlot).getName() $= "MissileLauncherImage" || %this.getMountedImage($WeaponSlot).getName() $= "ShockLanceImage") &&
// (%this.getImageState($WeaponSlot) $= "Reload" || %this.getImageState($WeaponSlot) $= "Fire")){
// return;
// }
// parent::throwWeapon(%this);
// }
// Added object check
function VehicleData::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %theClient, %proj)
@ -433,4 +406,4 @@ if (!isActivePackage(TacoOverrides))
// %z = getWord(%impulseVec, 2) / %data.mass;
// %vel = %x SPC %y SPC %z;
// %this.setVelocity(vectorAdd(%this.getVelocity(), %vel));
// }
// }

View file

@ -42,7 +42,7 @@ function GetTeamCounts(%game)
if($countdownStarted && $MatchStarted)
{
//Variables
$TotalTeamPlayerCount = $TeamRank[1, count] + $TeamRank[2, count];
$TotalTeamPlayerCount = (Game.class $= "LakRabbitGame") ? $TeamRank[0, count] : ($TeamRank[1, count] + $TeamRank[2, count]);
$AllPlayerCount = $HostGamePlayerCount;
//Observers

View file

@ -502,8 +502,6 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
{
if(%arg1 $= "999") %time = "unlimited"; else %time = %arg1;
%msg = %client.nameBase @ " initiated a vote to change the time limit to " @ %time SPC "minutes.";
// VoteOvertime
StartVOTimeVote(%game);
$CMHasVoted[%client.guid]++;
}
@ -583,11 +581,12 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
case "stopRunningVote":
if(%client.isSuperAdmin || (%client.isAdmin && $Host::AllowAdminStopVote))
{
if($VOStatus $="InProgress") //Dont allow a stop vote after time has expired, then no new time is set - VoteOverTime
{
messageClient(%client, "", "\c2Can't stop time vote after time has expired.");
return;
}
// %curTimeLeftMS = ($Host::TimeLimit * 60 * 1000) + $missionStartTime - getSimTime();
// if(%curTimeLeftMS <= 0) //Dont allow a stop vote after time has expired, then no new time is set - VoteOverTime
// {
// messageClient(%client, "", "\c2Can't stop vote after time has expired.");
// return;
// }
stopCurrentVote(%client);
adminLog(%client, " stopped the vote in progress.");
@ -867,7 +866,7 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
messageClient(%client, "", "\c2Mines are disabled at this time.");
if(!%isAdmin || (%isAdmin && %client.ForceVote))
%msg = %client.nameBase @ " initiated a vote to " @ (Game.LCTFOneMine == 0 ? "enable" : "disable") @ " one mine mode.";
%msg = %client.nameBase @ " initiated a vote to " @ (Game.LCTFOneMine == 1 ? "enable" : "disable") @ " one mine mode.";
case "showServerRules":
if (($Host::ServerRules[1] !$= "") && (!%client.CantView))
@ -1223,8 +1222,6 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
{
messageAll('MsgVotePassed', '\c2The mission time limit was set to %1 minutes by vote.', %display);
$Host::TimeLimit = %newLimit;
// VoteOvertime
ResetVOTimeChanged(%game);
// Reset the voted time limit when changing mission
$TimeLimitChanged = 1;
@ -1243,9 +1240,6 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
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
ResetVOall(%game);
}
}

View file

@ -1,99 +0,0 @@
// Vote OverTime Script
//
// Dont allow the match to end if a time vote is pending
// Or if the timelimit has changed
//
// Changes were also made in how time votes are handled in scripts/autoexec/VoteMenu.cs
// DefaultGame::voteChangeMission, DefaultGame::voteChangeTimeLimit, serverCmdStartNewVote
//
// The VoteChangeTimeLimit functions in evo dictate VOStatus conditions
$VOStatus = "Normal";
package VoteOverTime
{
function DefaultGame::checkTimeLimit(%game, %forced)
{
// Don't add extra checks:
if ( %forced )
cancel( %game.timeCheck );
// if there is no time limit, check back in a minute to see if it's been set
if(($Host::TimeLimit $= "") || $Host::TimeLimit == 0)
{
%game.timeCheck = %game.schedule(20000, "checkTimeLimit");
return;
}
%curTimeLeftMS = ($Host::TimeLimit * 60 * 1000) + $missionStartTime - getSimTime();
if (%curTimeLeftMS <= 0)
{
//Vote Overtime
//Check if Time Vote is starting or active or if the timelimit has changed.
//If the timelimit has changed, don't end the game.
switch$($VOStatus)
{
case Starting:
if($missionRunning)
{
messageAll('', '\c2Vote Overtime Initiated.~wfx/powered/turret_heavy_activate.wav', %display);
$VOStatus = "InProgress";
}
case InProgress:
//Do Nothing
case TimeChanged:
//Do Nothing
case Normal:
// time's up, put down your pencils
%game.timeLimitReached();
}
}
else
{
if(%curTimeLeftMS >= 20000)
%game.timeCheck = %game.schedule(20000, "checkTimeLimit");
else
%game.timeCheck = %game.schedule(%curTimeLeftMS + 1, "checkTimeLimit");
//now synchronize everyone's clock
messageAll('MsgSystemClock', "", $Host::TimeLimit, %curTimeLeftMS);
}
}
function DefaultGame::gameOver(%game)
{
Parent::gameOver(%game);
//Reset everything to do with Vote Overtime
ResetVOall(%game);
}
};
// Various Flags for the different situations
// Starting a TimeVote - Sets flags so the game wont end during this vote
function StartVOTimeVote(%game)
{
if(!$Host::TournamentMode)
$VOStatus = "Starting";
}
// Tribes wont change the time after its reached zero and you cant change it again afterwards until a gameover/map change.
// But this serves its purpose for extending the game whether it works (technically) or not.
function ResetVOTimeChanged(%game)
{
$VOStatus = "TimeChanged";
}
// Reset everything. So everything functions normally after a map change.
function ResetVOall(%game)
{
$VOStatus = "Normal";
}
// Prevent package from being activated if it is already
if (!isActivePackage(VoteOverTime))
activatePackage(VoteOverTime);

View file

@ -51,7 +51,7 @@
// First Screen loading time (Map Screen)
// If this is set too low the second screen wont show at all
$dtLoadingScreen::FirstScreen = 5500;
$dtLoadingScreen::FirstScreen = 3000;
// Second Screen Delay
$dtLoadingScreen::Delay = 0;
@ -149,6 +149,10 @@ if (!isActivePackage(LoadScreenPackage) && $Host::LoadingScreenUseDebrief)
// Just make our own
function ALTsendModInfoToClient(%client)
{
if(%client.isReady){
return;
}
// Wont allow Debrief on consecutive map loads
if(%client.loaded)
{

View file

@ -1,4 +1,5 @@
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Stats system for classic and base
// Script BY: DarkTiger
@ -15,7 +16,7 @@
// Note See bottom of file for full log
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//-----------Settings-----------
$dtStats::version = 10.58;
$dtStats::version = 10.60;
//disable stats system
$dtStats::Enable = $Host::dtStatsEnable $= "" ? ($Host::dtStatsEnable = 1) : $Host::dtStatsEnable;
if(!$dtStats::Enable){ return;}// so it disables with a restart
@ -1862,6 +1863,8 @@ $statsName["discKillGroundTG"] = "Ground Disc Kills" TAB "Total";
$statsName["WLRAvg"] = "Win Loss Ratio" TAB "Average";
$statsName["roundsWonTG"] = "Rounds Won" TAB "Total";
$statsName["hatTricksTG"] = "Hat Tricks" TAB "Total";
$statsName["OffKillsTG"] = "Offensive Kills" TAB "Total";
$statsName["DefKillsTG"] = "Defensive Kills" TAB "Total";
$panelCount = 0;
$upperWepPanel[$panelCount, "CTFGame"] = "discMAHitDistMax"; $upperWepPanel[$panelCount++, "CTFGame"] = "plasmaMAHitDistMax";$upperWepPanel[$panelCount++, "CTFGame"] = "blasterMAHitDistMax";
@ -13978,8 +13981,10 @@ package dtBanSys{
//Reapply the gag
function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice, %voicePitch ){
if (banList_checkClient(%client, getField(%client.t2csri_authInfo, 3))){
return 0;
}
parent::onConnect( %client, %name, %raceGender, %skin, %voice, %voicePitch );
%client.isGagged = ($chatGagged[getClientCleanIP(%client)] || $chatGagged[%client.guid]); //restore status
}
@ -13988,7 +13993,8 @@ package dtBanSys{
%time = (%time $= "") ? 100000 : %time;
%name = getClientBanName(%guid, %ipAddress);
%bareIP = getCleanIP(%ipAddress);
if(!isObject($dtBanTemp::GUID[%guid]) && !isObject($dtBanTemp::GUID[%bareIP])){
//error("GUID" SPC %guid SPC "IP" SPC %bareIP);
if(!isObject($dtBanTemp::GUID[%guid]) && !isObject($dtBanTemp::IP[%bareIP])){
if(!isObject(dtBanList)){
new simGroup(dtBanList);
RootGroup.add(dtBanList);
@ -13998,64 +14004,20 @@ package dtBanSys{
name = %name;
guid = %guid;
ip = %bareip;
banDateTime = dtMarkDate();
banDateTime = dtMarkDate();
banLengthMin = %time;
};
dtBanList.add(%banObj);
if(!%bareIP)
if(%bareIP !$= "0")
$dtBanTemp::IP[%bareIP] = %banObj;
if(%guid){
$dtBanTemp::GUID[%guid] = %banObj;
rmvWhiteListGuid(%guid);
}
}
if(isObject($dtBanTemp::GUID[%guid]) && !isObject($dtBanTemp::GUID[%bareIP])){
%obj = $dtBanTemp::GUID[%guid];
%obj.ip = %bareIP;
}
else if(isObject($dtBanTemp::GUID[%bareIP]) && !isObject($dtBanTemp::GUID[%guid])){
%obj = $dtBanTemp::GUID[%bareIP];
%obj.guid = %guid;
}
saveBanList();
}
function banList_checkIP(%client){
%ip = getClientCleanIP(%client);
%obj = $dtBanTemp::IP[%ip];
if(isObject(%obj) && %obj.banDateTime > 0){
%delta = getTimeDelta(%obj.banDateTime);
if (%delta < %obj.banLengthMin){
pushFailJoin(%obj.name, %obj.gui, 0, "Kick/Ban" SPC %obj.banDateTime - %delta SPC "Minutes Left", 1);
return 1;
}
else{
unbanUserObj(%obj);
}
}
return 0;
}
// from tribes next did not want to override this but need to pass %client id into ban check to avoid wierd issues
function serverCmdt2csri_challengeResponse(%client, %serverChallenge){
if (%client.doneAuthenticating)
return;
if (%client.t2csri_serverChallenge $= %serverChallenge){
// check to see if the client is GUID banned, now that we verified their certificate
if (banList_checkClientGUID(%client, getField(%client.t2csri_authInfo, 3))){
return;
}
// client checks out... continue loading sequence
%client.onConnect(%client.tname, %client.trgen, %client.tskin, %client.tvoic, %client.tvopi);
}
else{
%client.setDisconnectReason("Invalid server challenge. Check your account key for corruption.");
%client.delete();
}
}
};
function dtIsAdmin(%client,%guid){
@ -14079,10 +14041,12 @@ function dtIsAdmin(%client,%guid){
return false;
}
function banList_checkClientGUID(%client, %guid){// only one we care about in whitelist mode
%obj = $dtBanTemp::GUID[%guid];
function banList_checkClient(%client, %guid){// only one we care about in whitelist mode
//error("banlist check" SPC "client" SPC %client SPC "Guid" SPC %guid);
%objA = $dtBanTemp::GUID[%guid];
%ip = getClientCleanIP(%client);
%objB = $dtBanTemp::IP[%ip];
%obj = (isObject(%objA) == 1) ? %objA : %objB;
if (isObject(%obj) && %obj.banDateTime > 0){
%delta = getTimeDelta(%obj.banDateTime);
if (%delta < %obj.banLengthMin){
@ -14096,30 +14060,31 @@ function banList_checkClientGUID(%client, %guid){// only one we care about in wh
unbanUserObj(%obj);
}
}
if(isObject(%objA)){
%realName = getField(%client.t2csri_authInfo, 0 );
if(%realName !$= "")
%name = trim(%realName);
else
%name = trim(stripChars( detag( getTaggedString( %fc.name ) ), "\cp\co\c6\c7\c8\c9\c0" ));
%realName = getField(%client.t2csri_authInfo, 0 );
if(%realName !$= "")
%name = trim(%realName);
else
%name = trim(stripChars( detag( getTaggedString( %fc.name ) ), "\cp\co\c6\c7\c8\c9\c0" ));
%safe = ( dtIsAdmin(%client,%guid) || isObject($dtWhtList::WhiteList[%guid]));
if(!%safe){
pushFailJoin(%name, %guid, 0, "Not Whitelisted", 0);
if($dtServerVars::WhiteListMode){
%client.setDisconnectReason("Server is locked, please message admin or wait for approval");
%client.delete();
return 1;
}
}
%safe = ( dtIsAdmin(%client,%guid) || isObject($dtWhtList::WhiteList[%guid]));
if(!%safe){
pushFailJoin(%name, %guid, 0, "Not Whitelisted", 0);
if($dtServerVars::WhiteListMode){
%client.setDisconnectReason("Server is locked, please message admin or wait for approval");
// this is here in case of banned ip is a whitelisted account
if($dtServerVars::IPBanListMode && $dtIPList[%ip] && !isObject($dtWhtList::WhiteList[%guid])){
pushFailJoin(%name, %client.guid, %ip, "IP Ban List", 2);
%client.setDisconnectReason("You are not allowed to play on this server.");
%client.delete();
return 1;
}
}
%ip = getClientCleanIP(%client);// this is here in case of banned ip is a whitelisted account
if($dtServerVars::IPBanListMode && $dtIPList[%ip] && !isObject($dtWhtList::WhiteList[%guid])){
pushFailJoin(%name, %client.guid, %ip, "IP Ban List", 2);
%client.setDisconnectReason("You are not allowed to play on this server.");
%client.delete();
return 1;
}
return 0;
}
@ -16456,7 +16421,7 @@ function genBigStats(%game, %lType, %mon, %year){
%year = 2024;
}
%callCount = 0;
%callTime = 16;
%callTime = 32;
deleteVariables("$textColor*");
%mainXSize =1860;
%mainySize = 1115;
@ -16688,7 +16653,7 @@ function genMapStatsImg(%game,%count){
return;
}
%callCount = 0;
%callTime = 16;
%callTime = 32;
deleteVariables("$textColor*");
%mainXSize =1860;
%mainySize = 1115;
@ -16955,12 +16920,12 @@ function imgCycle3(%img, %count){
}
%img.yc++;
if(%img.yc < %img.y)
schedule(32,0,"imgCycle3",%img);
schedule(32,0,"imgCycle3",%img, %count);
else{
%img.close();
%img.delete();
deleteVariables("$textColor*");
error("Stats Image Done");
error("Stats Image Done" SPC %count);
genBigMapStats(%count++);
}
}
@ -17202,7 +17167,7 @@ function renderArenaMapTextTM(%id){
%sizeX = 1280+20;
%sizeY = 810;
%callTime = 8;
%callTime = 32;
%spaceing = 20;
%justLeft = 355;
%justLeft2 = 55;
@ -17979,7 +17944,7 @@ function renderLCTFMapTextTM(%id){
%sizeX = 1280+20;
%sizeY = 810;
%callTime = 8;
%callTime = 32;
%spaceing = 20;
%justLeft = 355;
%justLeft2 = 55;
@ -18756,7 +18721,7 @@ function renderCTFMapTextTM(%id){
%sizeX = 1280+20;
%sizeY = 1115;
%callTime = 8;
%callTime = 32;
%spaceing = 20;
%justLeft = 355;
%justLeft2 = 55;
@ -19804,6 +19769,12 @@ function dtBuildMissionList(%reset){
}
else if ( getSubStr( %line, 0, 18 ) $= "// MissionTypes = " ){
%typeList = getSubStr( %line, 18, 1000 );
if(strstr(%typeList,"CTF") != -1 && strstr(%typeList,"LCTF") == -1){
%typeList = %typeList SPC "LCTF";
}
if(strstr(%typeList,"CTF") != -1 && strstr(%typeList,"SCtF") == -1){
%typeList = %typeList SPC "SCtF";
}
break;
}
}
@ -20562,16 +20533,17 @@ function mapCyleTest(){
// Added custom two team debrief as well as a evo style extended stats
// Reworked enable disable, only disables stats saving and stats access, do to systems relying on systems
//
// 10.1 - 10.2 - 10.3
// 10.1 - 10.2 - 10.3 - 10.6
// Ban system changes
// Fix bad loop in ban system
// Misc arena things
// Added LCTF Naming
// serverPrefs Support
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////Storage/////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
// bansystem rework doto new tribes next changes
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
function testVarsRandomAll(%max){
%game = Game.class;
for(%q = 0; %q < $statsVars::count[%game]; %q++){

View file

@ -459,9 +459,9 @@ function DefaultGame::createPlayer(%game, %client, %spawnLoc, %respawn)
if(%respawn)
{
%player.setInvincible(true);
%player.setCloaked(true); // z0dd - ZOD, 8/6/02. Don't spawn players cloaked //was //
//%player.setCloaked(true); // z0dd - ZOD, 8/6/02. Don't spawn players cloaked
%player.setInvincibleMode($InvincibleTime,0.02);
%player.respawnCloakThread = %player.schedule($InvincibleTime * 50, "setRespawnCloakOff"); // z0dd - ZOD, 8/6/02. Don't spawn players cloaked //was 1000
//%player.respawnCloakThread = %player.schedule($InvincibleTime * 50, "setRespawnCloakOff"); // z0dd - ZOD, 8/6/02. Don't spawn players cloaked //was 1000
%player.schedule($InvincibleTime * 1000, "setInvincible", false);
}

View file

@ -445,7 +445,7 @@ function ShapeBase::throwObject(%this,%obj)
{
%obj.static = false;
// z0dd - ZOD - SquirrelOfDeath, 10/02/02. Hack for flag collision bug.
if(Game.Class $= CTFGame || Game.Class $= PracticeCTFGame || Game.Class $= SCtFGame)
if(Game.Class $= CTFGame || Game.Class $= PracticeCTFGame || Game.Class $= SCtFGame || Game.Class $= LCTFGame)
%obj.searchSchedule = Game.schedule(10, "startFlagCollisionSearch", %obj);
}
//------------------------------------------------------------------

View file

@ -34,7 +34,7 @@ datablock AudioDescription(CloakLooping3d)
is3D = true;
minDistance= 10.0;
MaxDistance= 55.0; //Was 50
MaxDistance= 50.0;
type = $EffectAudioType;
environmentLevel = 1.0;
};

View file

@ -64,7 +64,7 @@ datablock ItemData(SensorJammerPack)
};
datablock SensorData(JammerSensorObjectPassive) //v2 was commented out...
datablock SensorData(JammerSensorObjectPassive)
{
// same detection info as 'PlayerObject' sensorData
detects = true;
@ -76,7 +76,7 @@ datablock SensorData(JammerSensorObjectPassive) //v2 was commented out...
detectFOVPercent = 1.3;
useObjectFOV = true;
detectscloaked = 1; //v2
//detectscloaked = 1; //v2
jams = true;
jamsOnlyGroup = true;
@ -96,52 +96,55 @@ datablock SensorData(JammerSensorObjectActive)
detectFOVPercent = 1.3;
useObjectFOV = true;
detectscloaked = 1; //v2
//detectscloaked = 1; //v2
jams = true;
jamsOnlyGroup = true;
jamsUsingLOS = true;
jamRadius = 45; //was 30
jamRadius = 30;
};
function SensorJammerPackImage::onMount(%data, %obj, %slot)
{
setTargetSensorData(%obj.client.target, JammerSensorObjectPassive); //v2
%obj.setImageTrigger(%slot, false);
commandToClient( %obj.client, 'setSenJamIconOff' );
%obj.setJammerFX(false);
setTargetSensorData(%obj.client.target, JammerSensorObjectPassive);
}
function deactivateJammer(%data, %obj, %slot)
function SensorJammerPackImage::onUnmount(%data, %obj, %slot)
{
SensorJammerPackImage::onDeactivate(%data, %obj, %slot);
}
function SensorJammerPackImage::onUnmount(%data, %obj, %slot) //v2
{
%obj.setImageTrigger(%slot, false);
setTargetSensorData(%obj.client.target, PlayerSensor);
%obj.setImageTrigger(%slot, false);
}
function SensorJammerPackImage::onActivate(%data, %obj, %slot)
{
messageClient(%obj.client, 'MsgSensorJammerPackOn', '\c2Sensor jammer pack on.');
setTargetSensorData(%obj.client.target, JammerSensorObjectActive);
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here
commandToClient( %obj.client, 'setSenJamIconOn' );
%obj.setJammerFX( true );
}
function SensorJammerPackImage::onDeactivate(%data, %obj, %slot)
{
messageClient(%obj.client, 'MsgSensorJammerPackOff', '\c2Sensor jammer pack off.');
setTargetSensorData(%obj.client.target, PlayerSensor); //v2 H bug fix
%obj.setImageTrigger(%slot, false);
setTargetSensorData(%obj.client.target, JammerSensorObjectPassive); //v2 was PlayerSensor
// ----------------------------------------------------------------------
// z0dd - ZOD, 4/25/02. This function is actually getting called AFTER
// ::onUnmount. We must check to see what the players current sensor data
// is, then if it is NOT PlayerSensor, set to passive jam, bug fix.
if(getTargetSensorData(%obj.client.target).getName() !$= "PlayerSensor")
setTargetSensorData(%obj.client.target, JammerSensorObjectPassive);
// ----------------------------------------------------------------------
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here
commandToClient( %obj.client, 'setSenJamIconOff' );
%obj.setJammerFX( false );
}
function SensorJammerPack::onPickup(%this, %obj, %shape, %amount)
{
//Nope
}
// z0dd - ZOD, 5/18/03. Removed functions, created parent. Streamline.
//function SensorJammerPack::onPickup(%this, %obj, %shape, %amount)
//{
// created to prevent console errors
//}

View file

@ -1085,8 +1085,8 @@ datablock ParticleData(LightPuff)
textureName = "particleTest";
colors[0] = "0.46 0.36 0.26 0.4";
colors[1] = "0.46 0.46 0.36 0.0";
sizes[0] = 0.8; //was 0.4
sizes[1] = 1.4; //was 1.0
sizes[0] = 0.4;
sizes[1] = 1.0;
};
datablock ParticleEmitterData(LightPuffEmitter)
@ -1123,9 +1123,9 @@ datablock ParticleData(LiftoffDust)
colors[0] = "0.46 0.36 0.26 0.0";
colors[1] = "0.46 0.46 0.36 0.4";
colors[2] = "0.46 0.46 0.36 0.0";
sizes[0] = 0.6; //was 0.2
sizes[1] = 1.0; //was 0.6
sizes[2] = 1.4; //was 1.0
sizes[0] = 0.2;
sizes[1] = 0.6;
sizes[2] = 1.0;
times[0] = 0.0;
times[1] = 0.5;
times[2] = 1.0;
@ -1765,7 +1765,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile
//Value changed halfway between base and classic.
//Classic is 54, Base is 75
//Shield breaks right at two mine-disc
energyPerDamagePoint = 60.0; // shield energy required to block one point of damage
energyPerDamagePoint = 54.0; // shield energy required to block one point of damage
rechargeRate = 0.256;
jetForce = 29.58 * 180;

View file

@ -62,21 +62,20 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
{
// ---------------------------------------------------------------------------
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
// if (%obj.cantFire !$= "")
// {
// return 0;
// }
if (%obj.cantFire !$= "")
{
return 0;
}
// %wpnName = %data.getName();
// if((%wpnName $= "MortarImage") || (%wpnName $= "MissileLauncherImage"))
// {
// %obj.cantFire = 1;
// %preventTime = %data.stateTimeoutValue[4];
// //%preventTime = (%data.stateTimeoutValue[4] + %data.stateTimeoutValue[3]) - 0.032;
// %obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj);
// }
%wpnName = %data.getName();
if((%wpnName $= "MortarImage") || (%wpnName $= "MissileLauncherImage"))
{
%obj.cantFire = 1;
%preventTime = %data.stateTimeoutValue[4];
%obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj);
}
// ---------------------------------------------------------------------------
%obj.lfireTime[%data.getName()] = getSimTime();
//%obj.lfireTime[%data.getName()] = getSimTime();
%data.lightStart = getSimTime();

View file

@ -141,16 +141,16 @@ $Host::LoadScreenColor3 = "33CCCC"; //Loading Screen color; Accents
$Host::LoadScreenLine1 = "Join Discord:"; //Loading screen Line 1 Topic
$Host::LoadScreenLine1_Msg = "<a:playt2.com/discord>playt2.com/discord</a>"; //Loading Screen Line 1 Message
$Host::LoadScreenLine2 = "Game Modes:"; //Loading screen Line 2 Topic
$Host::LoadScreenLine2_Msg = "LakRabbit, Capture the Flag, DeathMatch, (Light Only) Capture the Flag"; //Loading Screen Line 2 Message
$Host::LoadScreenLine2_Msg = "Lak, CTF, DeathMatch, LCTF"; //Loading Screen Line 2 Message
$Host::LoadScreenLine3 = "Get Mappacks:"; //Loading screen Line 3 Topic
$Host::LoadScreenLine3_Msg = "<a:playt2.com/mappacks>playt2.com/mappacks</a>"; //Loading Screen Line 3 Message
$Host::LoadScreenLine4 = "Server Location:"; //Loading screen Line 4 Topic
$Host::LoadScreenLine4_Msg = "Iowa"; //Loading Screen Line 4 Message
$Host::LoadScreenLine4_Msg = "Somewhere"; //Loading Screen Line 4 Message
$Host::LoadScreenLine5 = "Server Hosted:"; //Loading screen Line 5 Topic (Debrief LoadScreen Only)
$Host::LoadScreenLine5_Msg = "Google Compute Engine"; //Loading Screen Line 5 Message (Debrief LoadScreen Only)
$Host::LoadScreenLine5_Msg = "Internet"; //Loading Screen Line 5 Message (Debrief LoadScreen Only)
$Host::LoadScreenLine6 = "Server Github:"; //Loading screen Line 6 Topic (Debrief LoadScreen Only)
$Host::LoadScreenLine6_Msg = "https://github.com/ChocoTaco1/TacoServer"; //Loading Screen Line 6 Message (Debrief LoadScreen Only)
$Host::LoadScreenMOTD1 = "Celebrating 20 Years of Tribes2!"; //MOTD or Events Line 1 Message (Debrief LoadScreen Only)
$Host::LoadScreenMOTD1 = "Celebrating 25 Years of Tribes2!"; //MOTD or Events Line 1 Message (Debrief LoadScreen Only)
$Host::LoadScreenMOTD2 = "Come play Arena on Wednesday Nights!"; //MOTD or Events Line 2 Message (Debrief LoadScreen Only)
$Host::LoadScreenMOTD3 = "Lak crowd early evenings after work during the week."; //MOTD or Events Line 3 Message (Debrief LoadScreen Only)
$Host::LoadScreenMOTD4 = "Big CTF games Fridays, Saturdays, and Sundays!"; //MOTD or Events Line 4 Message (Debrief LoadScreen Only)
@ -160,7 +160,7 @@ $Host::ClassicChatLog = 1;
$Host::ClassicChatLogPath = "logs/Chat/";
$Host::ClassicConnectLog = 1;
$Host::ClassicConnLogPath = "logs/Connect/log.txt";
$Host::ClassicMOTD = "<color:3cb4b4><font:Sui Generis:22>Discord PUB\n<color:3cb4b4><font:Univers:16>Server brought to you by Ravin and Choco\n<color:3cb4b4><font:Univers:16>Celebrating 20 Years of Tribes2!";
$Host::ClassicMOTD = "<color:3cb4b4><font:Sui Generis:22>Tribes 2 Test\n<color:3cb4b4><font:Univers:16>Server brought to you via Commuity Effort\n<color:3cb4b4><font:Univers:16>Celebrating 25 Years of Tribes2!";
$Host::ClassicMOTDLines = 3;
$Host::ClassicMOTDTime = 6;
$Host::ClassicRotationCustom = 1;
@ -171,10 +171,10 @@ $Host::ClassicSuppressTraversalRootError = 1; //Suppress console spam e
$Host::ClassicMaxVotes = 5; //Max a player can vote per mission
$Host::ClassicVoteLog = 1; //Log Votes
$Host::ClassicVoteLogPath = "logs/Vote/Vote.log"; //Vote Log location
$Host::ServerRules1 = "\c2if\c4(\c3%client.attitude \c4$= \c5\"fun\" \c4&& \c3%client.Llama_Grabs \c4< \c51\c4) {";
$Host::ServerRules2 = " \c1keepTeamsBalanced\c4(\c2%client\c4); \c1dontSwitch2WinningTeam(\c2%client\c4); }";
$Host::ServerRules3 = "\c2else if\c4(\c3%client.attitude \c4$= \c5\"too_serious\"\c4) {";
$Host::ServerRules4 = " \c1try2HaveFun\c4(\c2%client, %attitude\c4); \c1thisIsPubServer\c4(\c2%client, %attitude\c4); }";
$Host::ServerRules1 = "1. Don\'t Llama Grab. (Grab flag slowly)";
$Host::ServerRules2 = "2. Don\'t sit on teams and AFK. Move to observer.";
$Host::ServerRules3 = "3. Don\'t Excessively teamkill or teamkill on purpose.";
$Host::ServerRules4 = "4. Don\'t spam chat with inappropriate topics. Play the game.";
$Host::AnimateWithTransitions = 1; //????????????? T1 engine var may or may not help timescale ?????????????
$Host::AllowAdmin2Admin = 0;
$Host::AllowAdminBan = 0;
@ -201,7 +201,7 @@ $Host::KickObserverStartOnJoin = 0; //Start KickObserver Timer as so
$Host::KickObserverTimeout = 1200; //How long player can stay in observer before being booted (1200 is 20 mins)
//$Host::ClassicBanlist = "prefs/banlist.cs";
$Host::VoteCooldown = 120; //Time cooldown that dosnt allow a player to vote again after theyve initiated a vote (120 is 2 mins)
$Host::VoteDelayTime = 120; //Delay the ability to vote (For everyone) at the beginning of the match (120 is 2 minutes)
$Host::VoteDelayTime = 60; //Delay the ability to vote (For everyone) at the beginning of the match (120 is 2 minutes)
$Host::ClassicTeamKillLog = 1; //Enable/Disable Teamkill Logging
$Host::ClassicTeamKillLogPath = "logs/TeamKills/teamkills.log"; //TeamKill Log Path
$Host::ClassicDailyHardRestart = 0; //Enable/Disable Daily Hard Restart

View file

@ -235,7 +235,7 @@ datablock HoverVehicleData(AssaultVehicle) : TankDamageProfile
isShielded = true;
rechargeRate = 1.0;
energyPerDamagePoint = 142; //was 135
energyPerDamagePoint = 135;
maxEnergy = 400;
minJetEnergy = 15;
jetEnergyDrain = 2.0;

View file

@ -37,7 +37,7 @@ datablock ItemData(FlashGrenadeThrown)
radiusDamageType = $DamageType::Grenade;
kickBackStrength = 1000;
computeCRC = true;
maxWhiteout = 0.78; // z0dd - ZOD, 9/8/02. Was 1.2 //Reduced. Was 0.9 Choco
maxWhiteout = 0.9; // z0dd - ZOD, 9/8/02. Was 1.2
};
datablock ItemData(FlashGrenade)

View file

@ -2,6 +2,37 @@
// Missile launcher
//--------------------------------------
//--------------------------------------------------------------------------
// Force-Feedback Effects
//--------------------------------------
datablock EffectProfile(MissileSwitchEffect)
{
effectname = "weapons/missile_launcher_activate";
minDistance = 2.5;
maxDistance = 2.5;
};
datablock EffectProfile(MissileFireEffect)
{
effectname = "weapons/missile_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(MissileDryFireEffect)
{
effectname = "weapons/missile_launcher_dryfire";
minDistance = 2.5;
maxDistance = 2.5;
};
datablock EffectProfile(MissileExplosionEffect)
{
effectname = "explosions/explosion.xpl23";
minDistance = 10;
maxDistance = 30;
};
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------
@ -10,6 +41,7 @@ datablock AudioProfile(MissileSwitchSound)
filename = "fx/weapons/missile_launcher_activate.wav";
description = AudioClosest3d;
preload = true;
effect = MissileSwitchEffect;
};
datablock AudioProfile(MissileFireSound)
@ -17,6 +49,7 @@ datablock AudioProfile(MissileFireSound)
filename = "fx/weapons/missile_fire.WAV";
description = AudioDefault3d;
preload = true;
effect = MissileFireEffect;
};
datablock AudioProfile(MissileProjectileSound)
@ -45,6 +78,7 @@ datablock AudioProfile(MissileExplosionSound)
filename = "fx/explosions/explosion.xpl23.wav";
description = AudioBIGExplosion3d;
preload = true;
effect = MissileExplosionEffect;
};
datablock AudioProfile(MissileDryFireSound)
@ -52,6 +86,7 @@ datablock AudioProfile(MissileDryFireSound)
filename = "fx/weapons/missile_launcher_dryfire.wav";
description = AudioClose3d;
preload = true;
effect = MissileDryFireEffect;
};
@ -727,9 +762,9 @@ datablock ShapeBaseImageData(MissileLauncherImage)
stateSequence[0] = "Activate";
stateSound[0] = MissileSwitchSound;
stateName[1] = "ActivateReady";
stateTransitionOnAmmo[1] = "Ready";
stateTransitionOnNoAmmo[1] = "FirstLoad";
stateName[1] = "ActivateReady";
stateTransitionOnLoaded[1] = "Ready";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNoAmmo[2] = "NoAmmo";
@ -792,9 +827,6 @@ datablock ShapeBaseImageData(MissileLauncherImage)
stateSequence[10] = "Fire";
stateScript[10] = "onDumbFire";
stateSound[10] = MissileFireSound;
stateName[11] = "FirstLoad";
stateTransitionOnAmmo[11] = "Ready";
};
function MissileLauncherImage::onDumbFire(%data,%obj,%slot)
@ -815,42 +847,3 @@ function MissileLauncherImage::onDumbFire(%data,%obj,%slot)
%obj.decInventory(%data.ammo, 1);
return %p;
}
function MissileLauncherImage::onUnmount(%this,%obj,%slot){
parent::onUnmount(%this,%obj,%slot);
if(isEventPending(%obj.reloadDelaySch))
cancel(%obj.reloadDelaySch);
}
function MissileLauncherImage::onMount(%this,%obj,%slot){
if(%obj.getClassName() !$= "Player")
return;
if (%this.armthread $= "")
%obj.setArmThread(look);
else
%obj.setArmThread(%this.armThread);
if(%obj.getMountedImage($WeaponSlot).ammo !$= ""){
if (%obj.getInventory(%this.ammo)){
%fireAndReloadTime = mFloor((%this.stateTimeoutValue[4] + %this.stateTimeoutValue[3]) * 1000);
if(%obj.lfireTime[%this.getName()] && (getSimTime() - %obj.lfireTime[%this.getName()]) < %fireAndReloadTime){
if(isEventPending(%obj.reloadDelaySch)){
cancel(%obj.reloadDelaySch);
}
%time = mFloor(%fireAndReloadTime - (getSimTime() - %obj.lfireTime[%this.getName()]));
%obj.reloadDelaySch = schedule(%time, 0, "ammoStateDelay", %obj, %slot, true);
}
else{
%obj.setImageAmmo(%slot,true);
}
}
}
%obj.client.setWeaponsHudActive(%this.item);
if(%obj.getMountedImage($WeaponSlot).ammo !$= "")
%obj.client.setAmmoHudCount(%obj.getInventory(%this.ammo));
else
%obj.client.setAmmoHudCount(-1);
}

View file

@ -2,6 +2,44 @@
// Mortar
//--------------------------------------
//--------------------------------------------------------------------------
// Force-Feedback Effects
//--------------------------------------
datablock EffectProfile(MortarSwitchEffect)
{
effectname = "weapons/mortar_activate";
minDistance = 2.5;
maxDistance = 2.5;
};
datablock EffectProfile(MortarFireEffect)
{
effectname = "weapons/mortar_fire";
minDistance = 2.5;
maxDistance = 5.0;
};
datablock EffectProfile(MortarReloadEffect)
{
effectname = "weapons/mortar_reload";
minDistance = 2.5;
maxDistance = 2.5;
};
datablock EffectProfile(MortarDryFireEffect)
{
effectname = "weapons/mortar_dryfire";
minDistance = 2.5;
maxDistance = 2.5;
};
datablock EffectProfile(MortarExplosionEffect)
{
effectname = "explosions/explosion.xpl03";
minDistance = 30;
maxDistance = 65;
};
//--------------------------------------------------------------------------
// Sounds
//--------------------------------------
@ -10,6 +48,7 @@ datablock AudioProfile(MortarSwitchSound)
filename = "fx/weapons/mortar_activate.wav";
description = AudioClosest3d;
preload = true;
effect = MortarSwitchEffect;
};
datablock AudioProfile(MortarReloadSound)
@ -17,6 +56,7 @@ datablock AudioProfile(MortarReloadSound)
filename = "fx/weapons/mortar_reload.wav";
description = AudioClosest3d;
preload = true;
effect = MortarReloadEffect;
};
datablock AudioProfile(MortarIdleSound)
@ -25,6 +65,7 @@ datablock AudioProfile(MortarIdleSound)
filename = "fx/weapons/plasma_rifle_idle.wav";
description = ClosestLooping3d;
preload = true;
effect = PlasmaIdleEffect;
};
datablock AudioProfile(MortarFireSound)
@ -32,6 +73,7 @@ datablock AudioProfile(MortarFireSound)
filename = "fx/weapons/mortar_fire.wav";
description = AudioDefault3d;
preload = true;
effect = MortarFireEffect;
};
datablock AudioProfile(MortarProjectileSound)
@ -46,6 +88,7 @@ datablock AudioProfile(MortarExplosionSound)
filename = "fx/weapons/mortar_explode.wav";
description = AudioBIGExplosion3d;
preload = true;
effect = MortarExplosionEffect;
};
datablock AudioProfile(UnderwaterMortarExplosionSound)
@ -53,6 +96,7 @@ datablock AudioProfile(UnderwaterMortarExplosionSound)
filename = "fx/weapons/mortar_explode_UW.wav";
description = AudioBIGExplosion3d;
preload = true;
effect = MortarExplosionEffect;
};
datablock AudioProfile(MortarDryFireSound)
@ -60,6 +104,7 @@ datablock AudioProfile(MortarDryFireSound)
filename = "fx/weapons/mortar_dryfire.wav";
description = AudioClose3d;
preload = true;
effect = MortarDryFireEffect;
};
//----------------------------------------------------------------------------
@ -740,8 +785,8 @@ datablock ShapeBaseImageData(MortarImage)
stateSound[0] = MortarSwitchSound;
stateName[1] = "ActivateReady";
stateTransitionOnAmmo[1] = "Ready";
stateTransitionOnNoAmmo[1] = "FirstLoad";
stateTransitionOnLoaded[1] = "Ready";
stateTransitionOnNoAmmo[1] = "NoAmmo";
stateName[2] = "Ready";
stateTransitionOnNoAmmo[2] = "NoAmmo";
@ -775,50 +820,4 @@ datablock ShapeBaseImageData(MortarImage)
stateSound[6] = MortarDryFireSound;
stateTimeoutValue[6] = 1.5;
stateTransitionOnTimeout[6] = "NoAmmo";
stateName[7] = "FirstLoad";
stateTransitionOnAmmo[7] = "Ready";
};
function MortarImage::onUnmount(%this,%obj,%slot){
parent::onUnmount(%this,%obj,%slot);
if(isEventPending(%obj.reloadDelaySch))
cancel(%obj.reloadDelaySch);
}
function MortarImage::onMount(%this,%obj,%slot){
if(%obj.getClassName() !$= "Player")
return;
if (%this.armthread $= "")
%obj.setArmThread(look);
else
%obj.setArmThread(%this.armThread);
if(%obj.getMountedImage($WeaponSlot).ammo !$= ""){
if (%obj.getInventory(%this.ammo)){
%fireAndReloadTime = mFloor((%this.stateTimeoutValue[4] + %this.stateTimeoutValue[3]) * 1000);
if(%obj.lfireTime[%this.getName()] && (getSimTime() - %obj.lfireTime[%this.getName()]) < %fireAndReloadTime){
if(isEventPending(%obj.reloadDelaySch)){
cancel(%obj.reloadDelaySch);
}
%time = mFloor(%fireAndReloadTime - (getSimTime() - %obj.lfireTime[%this.getName()]));
%obj.reloadDelaySch = schedule(%time, 0, "ammoStateDelay", %obj, %slot, true);
}
else{
%obj.setImageAmmo(%slot,true);
}
}
}
%obj.client.setWeaponsHudActive(%this.item);
if(%obj.getMountedImage($WeaponSlot).ammo !$= "")
%obj.client.setAmmoHudCount(%obj.getInventory(%this.ammo));
else
%obj.client.setAmmoHudCount(-1);
}
function ammoStateDelay(%obj, %slot, %state){
if(isObject(%obj) && %obj.getState() !$= "Dead")
%obj.setImageAmmo(%slot, %state);
}

View file

@ -1,4 +1,4 @@
![Tribes 2](https://media.discordapp.net/attachments/1160685717303861413/1160685718176280666/68747470733a2f2f63646e2e646973636f72646170702e636f6d2f6174746163686d656e74732f3532313739373031323031343735393937302f3637383436303530353539373134393231342f5461636f5365727665722e706e67.png?ex=671814cf&is=6716c34f&hm=7d071d3b2e221ad89b80de48f91e4ed17d548573c16ed512f3a03efaa719b605&)
![Tribes 2](https://playt2.com/images/avatar300.png)
# TacoServer
## A Tribes 2 server with competitive features that is also open-source.
@ -45,19 +45,20 @@ Discord: [Tribes 2 Discord](https://playt2.com/discord)
---
### Important Gameplay Changes over stock classic
- OG blaster buffed for Heavy Armors
- No Vehicle Zone around flag is bigger 5 >> 15
- Heavy Shield Nerfed (54 to block 1 DMG, is now 60)
- OG blaster buffed against Heavy Armors (Not Tournament Mode Only)
- Max FOV 120 >> 138 (For Wide Screens)
- Item respawn time can be changed (default 30)
- Cloak Sound 50m >> 55m
- Bigger ground dust puffs (For cloak) 0.4 larger
- Sensor Jammer jam radius is buffed to jam cloaks 30 >> 45
- Sensor Jammer can passively see cloaker's triangle
- Mortor reload rework (Player can throw, but must wait until reload time has passed)
- Tank Shield Nerf (135 to block 1 DMG, is now 142)
- Whiteout grenades are less seizurely (Due to spamming) 0.9 >> 0.78
- All water viscosity follows a global preset
- Item respawn time can be changed (Optional)
- All water viscosity follows a global preset (3)
- <del>No Vehicle Zone around flag is bigger 5 >> 15</del>
- <del>Heavy Shield Nerfed (54 to block 1 DMG, is now 60)</del>
- <del>Cloak Sound 50m >> 55m</del>
- <del>Bigger ground dust puffs (For cloak) 0.4 larger</del>
- <del>Sensor Jammer jam radius is buffed to jam cloaks 30 >> 45</del>
- <del>Sensor Jammer can passively see cloaker's triangle</del>
- <del>Mortor reload rework (Player can throw, but must wait until reload time has passed)</del>
- <del>Tank Shield Nerf (135 to block 1 DMG, is now 142)</del>
- <del>Whiteout grenades are less seizurely (Due to spamming) 0.9 >> 0.78</del>
- <del>Spawn fade-in effect</del>
---