mirror of
https://github.com/ChocoTaco1/TacoServer.git
synced 2026-01-20 00:24:49 +00:00
Compare commits
41 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
60a84fdb35 | ||
|
|
74ed8c8cde | ||
|
|
47e1932279 | ||
|
|
bddef9489c | ||
|
|
e99b013183 | ||
|
|
97c9bf7270 | ||
|
|
f8a73b752b | ||
|
|
6075098d79 | ||
|
|
d24df745ab | ||
|
|
14caa5aca5 | ||
|
|
3bd4577832 | ||
|
|
fda3f783e3 | ||
|
|
3e858b5649 | ||
|
|
e1f42951af | ||
|
|
4ac9b3bde8 | ||
|
|
b5ed76eb54 | ||
|
|
137bf547bd | ||
|
|
8af6ce887c | ||
|
|
e96039866f | ||
|
|
956ea4dcff | ||
|
|
d5a0cad2a2 | ||
|
|
790d31108e | ||
|
|
90620a1c6c | ||
|
|
7cd1cb8815 | ||
|
|
002ef81e53 | ||
|
|
7fe6bb3b98 | ||
|
|
dd61ee5fa0 | ||
|
|
9aea8e23a6 | ||
|
|
f38811b7a1 | ||
|
|
1e6ad89251 | ||
|
|
5bd83d11b9 | ||
|
|
a8af516f52 | ||
|
|
49ef792432 | ||
|
|
9ba847500e | ||
|
|
3a1a6beaf6 | ||
|
|
d1131f76b3 | ||
|
|
fae87aa449 | ||
|
|
8297f5e5b6 | ||
|
|
37f30b8654 | ||
|
|
d21c5060c5 | ||
|
|
d736c3a8ff |
|
|
@ -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("OuterWilds", "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);
|
|
||||||
465
Classic/prefs/mapRotation.cs
Normal file
465
Classic/prefs/mapRotation.cs
Normal 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);
|
||||||
|
|
@ -5,7 +5,6 @@ $Host::AllowAdminKick = 1;
|
||||||
$Host::AllowAdminPassVote = 1;
|
$Host::AllowAdminPassVote = 1;
|
||||||
$Host::allowAdminPlayerVotes = "0";
|
$Host::allowAdminPlayerVotes = "0";
|
||||||
$Host::AllowAdminStopVote = 1;
|
$Host::AllowAdminStopVote = 1;
|
||||||
$Host::AllowAdminStopVotes = 1;
|
|
||||||
$Host::AllowAdminVotes = 1;
|
$Host::AllowAdminVotes = 1;
|
||||||
$Host::AllowMapScript = "True";
|
$Host::AllowMapScript = "True";
|
||||||
$Host::AllowPlayerVoteChangeMission = 1;
|
$Host::AllowPlayerVoteChangeMission = 1;
|
||||||
|
|
@ -56,7 +55,7 @@ $Host::ClassicLoadVRamChanges = 0;
|
||||||
$Host::ClassicLogEchoEnabled = 0;
|
$Host::ClassicLogEchoEnabled = 0;
|
||||||
$Host::ClassicMaxVotes = 3;
|
$Host::ClassicMaxVotes = 3;
|
||||||
$Host::ClassicMaxTelepads = 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::ClassicMOTDLines = 3;
|
||||||
$Host::ClassicMOTDTime = 6;
|
$Host::ClassicMOTDTime = 6;
|
||||||
$Host::ClassicNoNullVoiceSpam = 0;
|
$Host::ClassicNoNullVoiceSpam = 0;
|
||||||
|
|
@ -123,7 +122,7 @@ $Host::LoadScreenColor3 = "33CCCC";
|
||||||
$Host::LoadScreenLine1 = "Join Discord:";
|
$Host::LoadScreenLine1 = "Join Discord:";
|
||||||
$Host::LoadScreenLine1_Msg = "<a:playt2.com/discord>playt2.com/discord</a>";
|
$Host::LoadScreenLine1_Msg = "<a:playt2.com/discord>playt2.com/discord</a>";
|
||||||
$Host::LoadScreenLine2 = "Game Modes:";
|
$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 = "Get Mappacks:";
|
||||||
$Host::LoadScreenLine3_Msg = "<a:playt2.com/mappacks>playt2.com/mappacks</a>";
|
$Host::LoadScreenLine3_Msg = "<a:playt2.com/mappacks>playt2.com/mappacks</a>";
|
||||||
$Host::LoadScreenLine4 = "Server Location:";
|
$Host::LoadScreenLine4 = "Server Location:";
|
||||||
|
|
@ -132,7 +131,7 @@ $Host::LoadScreenLine5 = "Server Hosted:";
|
||||||
$Host::LoadScreenLine5_Msg = "Internet";
|
$Host::LoadScreenLine5_Msg = "Internet";
|
||||||
$Host::LoadScreenLine6 = "Server Github:";
|
$Host::LoadScreenLine6 = "Server Github:";
|
||||||
$Host::LoadScreenLine6_Msg = "https://github.com/ChocoTaco1/TacoServer";
|
$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::LoadScreenMOTD2 = "Come play Arena on Wednesday Nights!";
|
||||||
$Host::LoadScreenMOTD3 = "Lak crowd early evenings after work during the week.";
|
$Host::LoadScreenMOTD3 = "Lak crowd early evenings after work during the week.";
|
||||||
$Host::LoadScreenMOTD4 = "Big CTF games Fridays, Saturdays, and Sundays!";
|
$Host::LoadScreenMOTD4 = "Big CTF games Fridays, Saturdays, and Sundays!";
|
||||||
|
|
@ -160,10 +159,10 @@ $Host::PUGautoPassword = 0;
|
||||||
$Host::PUGPassword = "pickup";
|
$Host::PUGPassword = "pickup";
|
||||||
$Host::PUGpasswordAlwaysOn = 0;
|
$Host::PUGpasswordAlwaysOn = 0;
|
||||||
$Host::PureServer = 0;
|
$Host::PureServer = 0;
|
||||||
$Host::ServerRules1 = "\c2if\c4(\c3%client.attitude \c4$= \c5\"fun\" \c4&& \c3%client.Llama_Grabs \c4< \c51\c4) {";
|
$Host::ServerRules1 = "1. Don\'t Llama Grab. (Grab flag slowly)";
|
||||||
$Host::ServerRules2 = " \c1keepTeamsBalanced\c4(\c2%client\c4); \c1dontSwitch2WinningTeam(\c2%client\c4); }";
|
$Host::ServerRules2 = "2. Don\'t sit on teams and AFK. Move to observer.";
|
||||||
$Host::ServerRules3 = "\c2else if\c4(\c3%client.attitude \c4$= \c5\"too_serious\"\c4) {";
|
$Host::ServerRules3 = "3. Don\'t Excessively teamkill or teamkill on purpose.";
|
||||||
$Host::ServerRules4 = " \c1try2HaveFun\c4(\c2%client, %attitude\c4); \c1thisIsPubServer\c4(\c2%client, %attitude\c4); }";
|
$Host::ServerRules4 = "4. Don\'t spam chat with inappropriate topics. Play the game.";
|
||||||
$Host::ShowEndingPlayerScores = 1;
|
$Host::ShowEndingPlayerScores = 1;
|
||||||
$Host::ShowIngamePlayerScores = 1;
|
$Host::ShowIngamePlayerScores = 1;
|
||||||
$Host::Siege::Halftime = 20000;
|
$Host::Siege::Halftime = 20000;
|
||||||
|
|
@ -191,7 +190,7 @@ $Host::TN::echo = 1;
|
||||||
$Host::TournamentMode = 0;
|
$Host::TournamentMode = 0;
|
||||||
$Host::useCustomSkins = 1;
|
$Host::useCustomSkins = 1;
|
||||||
$Host::VoteCooldown = 120;
|
$Host::VoteCooldown = 120;
|
||||||
$Host::VoteDelayTime = 120;
|
$Host::VoteDelayTime = 60;
|
||||||
$Host::VotePassPercent = 60;
|
$Host::VotePassPercent = 60;
|
||||||
$Host::VoteSpread = 20;
|
$Host::VoteSpread = 20;
|
||||||
$Host::VoteTime = "45";
|
$Host::VoteTime = "45";
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@
|
||||||
|
|
||||||
//exec the AI scripts
|
//exec the AI scripts
|
||||||
exec("scripts/aiCTF.cs");
|
exec("scripts/aiCTF.cs");
|
||||||
|
//Time for auto overtime sudden-death mode
|
||||||
|
$CTF::Overtime = 5; //5 Minutes, 0 to disable
|
||||||
|
|
||||||
//-- tracking ---
|
//-- tracking ---
|
||||||
function CTFGame::initGameVars(%game)
|
function CTFGame::initGameVars(%game)
|
||||||
|
|
@ -376,8 +378,8 @@ function CTFGame::playerTouchFlag(%game, %player, %flag)
|
||||||
if ((%flag.carrier $= "") && (%player.getState() !$= "Dead"))
|
if ((%flag.carrier $= "") && (%player.getState() !$= "Dead"))
|
||||||
{
|
{
|
||||||
// z0dd - ZOD, 5/07/04. Cancel the lava return.
|
// z0dd - ZOD, 5/07/04. Cancel the lava return.
|
||||||
if(isEventPending(%obj.lavaEnterThread))
|
if(isEventPending(%flag.lavaEnterThread))
|
||||||
cancel(%obj.lavaEnterThread);
|
cancel(%flag.lavaEnterThread);
|
||||||
|
|
||||||
//flag isn't held and has been touched by a live player
|
//flag isn't held and has been touched by a live player
|
||||||
if (%client.team == %flag.team)
|
if (%client.team == %flag.team)
|
||||||
|
|
@ -950,6 +952,9 @@ function CTFGame::gameOver(%game)
|
||||||
}
|
}
|
||||||
for(%j = 1; %j <= %game.numTeams; %j++)
|
for(%j = 1; %j <= %game.numTeams; %j++)
|
||||||
$TeamScore[%j] = 0;
|
$TeamScore[%j] = 0;
|
||||||
|
|
||||||
|
%game.voteOT = 0;
|
||||||
|
%game.overtime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function CTFGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageType, %implement, %damageLoc)
|
function CTFGame::onClientDamaged(%game, %clVictim, %clAttacker, %damageType, %implement, %damageLoc)
|
||||||
|
|
@ -1245,14 +1250,96 @@ function CTFGame::resetDontScoreTimer(%game, %team)
|
||||||
$dontScoreTimer[%team] = false;
|
$dontScoreTimer[%team] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function CTFGame::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)
|
||||||
|
{
|
||||||
|
%teamOneCaps = mFloor($TeamScore[1] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
%teamTwoCaps = mFloor($TeamScore[2] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
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);
|
||||||
|
echo("Sudden-Death Overtime Initiated");
|
||||||
|
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
|
||||||
|
{
|
||||||
|
%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 CTFGame::checkScoreLimit(%game, %team)
|
function CTFGame::checkScoreLimit(%game, %team)
|
||||||
{
|
{
|
||||||
%scoreLimit = MissionGroup.CTF_scoreLimit * %game.SCORE_PER_TEAM_FLAG_CAP;
|
%scoreLimit = MissionGroup.CTF_scoreLimit * %game.SCORE_PER_TEAM_FLAG_CAP;
|
||||||
// default of 5 if scoreLimit not defined
|
// default of 5 if scoreLimit not defined
|
||||||
if(%scoreLimit $= "")
|
if(%scoreLimit $= "")
|
||||||
%scoreLimit = 5 * %game.SCORE_PER_TEAM_FLAG_CAP;
|
%scoreLimit = 5 * %game.SCORE_PER_TEAM_FLAG_CAP;
|
||||||
if($TeamScore[%team] >= %scoreLimit)
|
if(%game.overtime){
|
||||||
%game.scoreLimitReached();
|
%teamOneCaps = mFloor($TeamScore[1] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
%teamTwoCaps = mFloor($TeamScore[2] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
if(%teamOneCaps != %teamTwoCaps){
|
||||||
|
%game.scoreLimitReached();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if($TeamScore[%team] >= %scoreLimit)
|
||||||
|
%game.scoreLimitReached();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function CTFGame::awardScoreFlagReturn(%game, %cl, %perc)
|
function CTFGame::awardScoreFlagReturn(%game, %cl, %perc)
|
||||||
|
|
@ -1952,7 +2039,7 @@ function CTFGame::awardScoreKill(%game, %killerID)
|
||||||
function checkVehicleCamping( %team )
|
function checkVehicleCamping( %team )
|
||||||
{
|
{
|
||||||
%position = $flagPos[%team];
|
%position = $flagPos[%team];
|
||||||
%radius = 15;
|
%radius = 5;
|
||||||
InitContainerRadiusSearch(%position, %radius, $TypeMasks::VehicleObjectType );
|
InitContainerRadiusSearch(%position, %radius, $TypeMasks::VehicleObjectType );
|
||||||
|
|
||||||
while ((%vehicle = containerSearchNext()) != 0)
|
while ((%vehicle = containerSearchNext()) != 0)
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,15 @@ exec("scripts/aiLCTF.cs");
|
||||||
//exec the prefs
|
//exec the prefs
|
||||||
//exec("prefs/LCTFPrefs.cs");
|
//exec("prefs/LCTFPrefs.cs");
|
||||||
|
|
||||||
|
//Time for auto overtime sudden-death mode
|
||||||
|
$LCTF::Overtime = 5; //5 Minutes, 0 to disable
|
||||||
|
//Damage scales for Chaingun and Grenade Launcher
|
||||||
|
//1 = 100%, 0.85 = 85%, 0 = OFF, etc
|
||||||
|
$LCTF::CGDamageScale = "0";
|
||||||
|
$LCTF::GLDamageScale = "0";
|
||||||
|
//Ban Mines
|
||||||
|
$LCTF::BanMines = 0;
|
||||||
|
|
||||||
function setArmorDefaults(%armor)
|
function setArmorDefaults(%armor)
|
||||||
{
|
{
|
||||||
switch$ ( %armor )
|
switch$ ( %armor )
|
||||||
|
|
@ -57,7 +66,7 @@ function setArmorDefaults(%armor)
|
||||||
$InvBanList[LCTF, "Mortar"] = 1;
|
$InvBanList[LCTF, "Mortar"] = 1;
|
||||||
$InvBanList[LCTF, "SniperRifle"] = 1;
|
$InvBanList[LCTF, "SniperRifle"] = 1;
|
||||||
// Misc
|
// Misc
|
||||||
$InvBanList[LCTF, "Mine"] = 0;
|
$InvBanList[LCTF, "Mine"] = $LCTF::BanMines;
|
||||||
$InvBanList[LCTF, "ConcussionGrenade"] = 0;
|
$InvBanList[LCTF, "ConcussionGrenade"] = 0;
|
||||||
$InvBanList[LCTF, "CameraGrenade"] = 1;
|
$InvBanList[LCTF, "CameraGrenade"] = 1;
|
||||||
$InvBanList[LCTF, "FlareGrenade"] = 1;
|
$InvBanList[LCTF, "FlareGrenade"] = 1;
|
||||||
|
|
@ -368,7 +377,22 @@ package LCTFGame
|
||||||
//Take out anything vehicle related
|
//Take out anything vehicle related
|
||||||
function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC)
|
function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC)
|
||||||
{
|
{
|
||||||
//error("Armor::damageObject( "@%data@", "@%targetObject@", "@%sourceObject@", "@%position@", "@%amount@", "@%damageType@", "@%momVec@" )");
|
//CG and GL Damage Scales
|
||||||
|
if($LCTF::CGDamageScale){
|
||||||
|
if(Game.class $= "LCTFGame" && %damageType $= $DamageType::Bullet){
|
||||||
|
%amount *= $LCTF::CGDamageScale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($LCTF::GLDamageScale){
|
||||||
|
if(isObject($LCTFLastExploded)){
|
||||||
|
%name = $LCTFLastExploded.getName();// find what what exploded last
|
||||||
|
if(Game.class $= "LCTFGame" && %name $= "BasicGrenade"){// BasicGrenade is the nade launcher
|
||||||
|
%amount *= $LCTF::GLDamageScale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//error("Armor::damageObject( "@%data@", "@%targetObject@", "@%sourceObject@", "@%position@", "@%amount@", "@%damageType@", "@%momVec@" )");
|
||||||
if(%targetObject.invincible || %targetObject.getState() $= "Dead")
|
if(%targetObject.invincible || %targetObject.getState() $= "Dead")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
@ -474,6 +498,12 @@ package LCTFGame
|
||||||
playPain( %targetObject );
|
playPain( %targetObject );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Needed for Grenade Launcher type detection
|
||||||
|
function ProjectileData::onExplode(%data, %proj, %pos, %mod){
|
||||||
|
$LCTFLastExploded = %data;// record what exploded
|
||||||
|
parent::onExplode(%data, %proj, %pos, %mod);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
@ -659,6 +689,9 @@ function LCTFGame::gameOver(%game)
|
||||||
|
|
||||||
if (isActivePackage(LCTFOneMine))
|
if (isActivePackage(LCTFOneMine))
|
||||||
deactivatePackage(LCTFOneMine);
|
deactivatePackage(LCTFOneMine);
|
||||||
|
|
||||||
|
%game.voteOT = 0;
|
||||||
|
%game.overtime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -672,8 +705,8 @@ function LCTFGame::playerTouchFlag(%game, %player, %flag)
|
||||||
if ((%flag.carrier $= "") && (%player.getState() !$= "Dead"))
|
if ((%flag.carrier $= "") && (%player.getState() !$= "Dead"))
|
||||||
{
|
{
|
||||||
// z0dd - ZOD, 5/07/04. Cancel the lava return.
|
// z0dd - ZOD, 5/07/04. Cancel the lava return.
|
||||||
if(isEventPending(%obj.lavaEnterThread))
|
if(isEventPending(%flag.lavaEnterThread))
|
||||||
cancel(%obj.lavaEnterThread);
|
cancel(%flag.lavaEnterThread);
|
||||||
|
|
||||||
//flag isn't held and has been touched by a live player
|
//flag isn't held and has been touched by a live player
|
||||||
if (%client.team == %flag.team)
|
if (%client.team == %flag.team)
|
||||||
|
|
@ -683,6 +716,12 @@ function LCTFGame::playerTouchFlag(%game, %player, %flag)
|
||||||
}
|
}
|
||||||
// toggle visibility of the flag
|
// toggle visibility of the flag
|
||||||
setTargetRenderMask(%flag.waypoint.getTarget(), %flag.isHome ? 0 : 1);
|
setTargetRenderMask(%flag.waypoint.getTarget(), %flag.isHome ? 0 : 1);
|
||||||
|
|
||||||
|
if( %player > 0 )
|
||||||
|
{
|
||||||
|
%player.setInvincibleMode(0 ,0.00);
|
||||||
|
%player.setInvincible( false ); // fire your weapon and your invincibility goes away.
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function LCTFGame::playerTouchOwnFlag(%game, %player, %flag)
|
function LCTFGame::playerTouchOwnFlag(%game, %player, %flag)
|
||||||
|
|
@ -1511,14 +1550,96 @@ function LCTFGame::resetDontScoreTimer(%game, %team)
|
||||||
$dontScoreTimer[%team] = false;
|
$dontScoreTimer[%team] = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function LCTFGame::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)
|
||||||
|
{
|
||||||
|
%teamOneCaps = mFloor($TeamScore[1] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
%teamTwoCaps = mFloor($TeamScore[2] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
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);
|
||||||
|
echo("Sudden-Death Overtime Initiated");
|
||||||
|
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
|
||||||
|
{
|
||||||
|
%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 LCTFGame::checkScoreLimit(%game, %team)
|
function LCTFGame::checkScoreLimit(%game, %team)
|
||||||
{
|
{
|
||||||
%scoreLimit = MissionGroup.CTF_scoreLimit * %game.SCORE_PER_TEAM_FLAG_CAP;
|
%scoreLimit = MissionGroup.CTF_scoreLimit * %game.SCORE_PER_TEAM_FLAG_CAP;
|
||||||
// default of 5 if scoreLimit not defined
|
// default of 5 if scoreLimit not defined
|
||||||
if(%scoreLimit $= "")
|
if(%scoreLimit $= "")
|
||||||
%scoreLimit = 5 * %game.SCORE_PER_TEAM_FLAG_CAP;
|
%scoreLimit = 5 * %game.SCORE_PER_TEAM_FLAG_CAP;
|
||||||
if($TeamScore[%team] >= %scoreLimit)
|
if(%game.overtime){
|
||||||
%game.scoreLimitReached();
|
%teamOneCaps = mFloor($TeamScore[1] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
%teamTwoCaps = mFloor($TeamScore[2] / %game.SCORE_PER_TEAM_FLAG_CAP);
|
||||||
|
if(%teamOneCaps != %teamTwoCaps){
|
||||||
|
%game.scoreLimitReached();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if($TeamScore[%team] >= %scoreLimit)
|
||||||
|
%game.scoreLimitReached();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function LCTFGame::awardScoreFlagReturn(%game, %cl, %perc)
|
function LCTFGame::awardScoreFlagReturn(%game, %cl, %perc)
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,23 @@
|
||||||
// 1 - Players get 999 or unlimited DiscJumps
|
// 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 {
|
package LakRabbitGame {
|
||||||
|
|
||||||
|
|
@ -417,7 +434,12 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
||||||
|
|
||||||
// no splash damage vote
|
// no splash damage vote
|
||||||
if(Game.noSplashDamage && %percentDam < 98 && $lastObjExplode && !$lastObjExplode.isHandNade && %damageType != $DamageType::Mine)
|
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)
|
switch$(%damageType)
|
||||||
{
|
{
|
||||||
|
|
@ -435,54 +457,106 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
|
||||||
%sound = %defaultSound;
|
%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
|
if(%targetObject.holdingFlag && %playerHeight >= 100)
|
||||||
//%chance = mFloor(25 - %distance/3);
|
{
|
||||||
//if(%ma && getRandom(1,50) <= %chance && %targetObject.client.headshot)
|
// tr2 style flag drop.. it does kill the rabbit
|
||||||
|
|
||||||
|
%chance = mFloor(20 - %distance/%playerHeight);
|
||||||
|
if(%chance <= 0) %chance = 1;
|
||||||
|
|
||||||
//Normal Slap
|
if(%ma && getRandom(1,100) <= %chance)
|
||||||
%chance = mFloor(15 - %distance/3);
|
{
|
||||||
if(%chance <= 0) %chance = 1;
|
Game.playerDroppedFlag(%targetObject);
|
||||||
|
|
||||||
if(%ma && getRandom(1,100) <= %chance)
|
%position = %targetObject.getPosition();
|
||||||
|
%count = 40;
|
||||||
|
%ttl = 60000;
|
||||||
|
%player = %targetObject;
|
||||||
|
if( %position $= "" )
|
||||||
{
|
{
|
||||||
if(%targetObject.holdingFlag)
|
error("No position passed!");
|
||||||
{
|
return 0;
|
||||||
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 );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
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";
|
%weapon = "Disc";
|
||||||
case $DamageType::Grenade:
|
case $DamageType::Grenade:
|
||||||
if($lastObjExplode.isHandNade) //Hand grenades
|
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
|
// borlak -- make a sound when you hit someone
|
||||||
if(%sound $= "" && %sourceObject.client.team != %targetObject.client.team)
|
// if(%sound $= "" && %sourceObject.client.team != %targetObject.client.team)
|
||||||
messageClient(%sourceObject.client,'MsgHitSound','~wfx/misc/diagnostic_beep.wav');
|
// messageClient(%sourceObject.client,'MsgHitSound','~wfx/misc/diagnostic_beep.wav');
|
||||||
else if(%sound !$= "")
|
// else if(%sound !$= ""){
|
||||||
|
if(%sound !$= ""){
|
||||||
messageAll('msgSpecialHitSound', %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
|
// borlak -- rabbit should be able to kill heavies/mediums fast(er) in duel mode
|
||||||
if(%targetObject.client.armor $= "Heavy" || %targetObject.client.armor $= "Medium")
|
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
|
cancel(%game.updateFlagThread[%flag]); // z0dd - ZOD, 8/4/02. Cancel this flag's thread to KineticPoet's flag updater
|
||||||
%player.freeDJ = 0;
|
%player.freeDJ = 0;
|
||||||
%flag.bounced = 0;
|
%flag.bounced = 0;
|
||||||
|
%player.client.rabbitSplash = getSimTime();
|
||||||
|
|
||||||
%player.client.startTime = getSimTime();
|
%player.client.startTime = getSimTime();
|
||||||
%player.holdingFlag = %flag;
|
%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
|
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
|
// ----- These functions are native to Rabbit
|
||||||
|
|
||||||
function LakRabbitGame::timeLimitReached(%game)
|
function LakRabbitGame::timeLimitReached(%game)
|
||||||
|
|
@ -2092,6 +2211,9 @@ function LakRabbitGame::gameOver(%game)
|
||||||
// borlak -- delete variables
|
// borlak -- delete variables
|
||||||
deleteVariables("$LakFired*");
|
deleteVariables("$LakFired*");
|
||||||
deleteVariables("$LakDamaged*");
|
deleteVariables("$LakDamaged*");
|
||||||
|
|
||||||
|
%game.voteOT = 0;
|
||||||
|
%game.overtime = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
function LakRabbitGame::resetScore(%game, %client)
|
function LakRabbitGame::resetScore(%game, %client)
|
||||||
|
|
@ -2617,96 +2739,41 @@ function LakRabbitGame::applyConcussion(%game, %player)
|
||||||
%game.dropFlag( %player );
|
%game.dropFlag( %player );
|
||||||
}
|
}
|
||||||
|
|
||||||
//--------------------------------Footnotes---------------------------------------
|
function LakRabbitGame::throwDummyFlag(%position, %datablock, %player, %ttl)
|
||||||
//
|
{
|
||||||
//
|
%client = %player.client;
|
||||||
//To make vote options work in evo admin mod, demonstration only below
|
|
||||||
//
|
// create a flag and throw it
|
||||||
//function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote)
|
%droppedflag = new Item() {
|
||||||
//{
|
position = %position;
|
||||||
// parent::serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote);
|
rotation = "0 0 1 " @ (getRandom() * 360);
|
||||||
//
|
scale = "1 1 1";
|
||||||
// // sonic9k 11/6/2003 - Added support for LakRabbit DuelMode option
|
dataBlock = %datablock;
|
||||||
// //
|
collideable = "0";
|
||||||
// case "VoteDuelMode":
|
static = "0";
|
||||||
// if( %isAdmin && !%client.ForceVote )
|
rotate = "1";
|
||||||
// {
|
team = "0";
|
||||||
// adminStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4);
|
isFake = 1;
|
||||||
// adminLog(%client, " has toggled " @ %arg1 @ " (" @ %arg2 @ ")");
|
};
|
||||||
// }
|
MissionCleanup.add(%droppedflag);
|
||||||
// else
|
|
||||||
// {
|
%vec = (-1.0 + getRandom() * 2.0) SPC (-1.0 + getRandom() * 2.0) SPC getRandom();
|
||||||
// if(Game.scheduleVote !$= "")
|
%vec = VectorScale(%vec, getrandom(250,1000) + (getRandom() * 300));
|
||||||
// {
|
|
||||||
// messageClient(%client, 'voteAlreadyRunning', '\c2A vote is already in progress.');
|
// Add player's velocity
|
||||||
// return;
|
if (%player !$= "")
|
||||||
// }
|
{
|
||||||
// %actionMsg = ($Host::LakRabbitDuelMode ? "disable Duel mode" : "enable Duel mode");
|
%droppedflag.setCollisionTimeout(%player);
|
||||||
// for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
|
%vec = vectorAdd(%vec, %player.getVelocity());
|
||||||
// {
|
}
|
||||||
// %cl = ClientGroup.getObject(%idx);
|
|
||||||
// if(!%cl.isAIControlled())
|
%droppedflag.applyImpulse(%pos, %vec);
|
||||||
// {
|
|
||||||
// messageClient(%cl, 'VoteStarted', '\c2%1 initiated a vote to %2.', %client.name, %actionMsg);
|
%droppedFlag.die = schedule(getrandom(1500,5500), 0, "removeLakFakeFlag", %droppedflag);
|
||||||
// %clientsVoting++;
|
}
|
||||||
// }
|
|
||||||
// }
|
function removeLakFakeFlag(%flag)
|
||||||
// playerStartNewVote(%client, %typename, %arg1, %arg2, %arg3, %arg4, %clientsVoting);
|
{
|
||||||
// }
|
%flag.startFade(600, 0, true);
|
||||||
// //
|
%flag.schedule(601, "delete");
|
||||||
// // 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);
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
|
||||||
|
|
@ -427,8 +427,8 @@ function SCtFGame::playerTouchFlag(%game, %player, %flag)
|
||||||
if ((%flag.carrier $= "") && (%player.getState() !$= "Dead"))
|
if ((%flag.carrier $= "") && (%player.getState() !$= "Dead"))
|
||||||
{
|
{
|
||||||
// z0dd - ZOD, 5/07/04. Cancel the lava return.
|
// z0dd - ZOD, 5/07/04. Cancel the lava return.
|
||||||
if(isEventPending(%obj.lavaEnterThread))
|
if(isEventPending(%flag.lavaEnterThread))
|
||||||
cancel(%obj.lavaEnterThread);
|
cancel(%flag.lavaEnterThread);
|
||||||
|
|
||||||
//flag isn't held and has been touched by a live player
|
//flag isn't held and has been touched by a live player
|
||||||
if (%client.team == %flag.team)
|
if (%client.team == %flag.team)
|
||||||
|
|
|
||||||
|
|
@ -4,59 +4,58 @@
|
||||||
//From Krash
|
//From Krash
|
||||||
memPatch("756076","6169");
|
memPatch("756076","6169");
|
||||||
|
|
||||||
// Thanks Turkeh
|
//// Thanks Turkeh
|
||||||
// TraversalRoot Console spam fix
|
//// TraversalRoot Console spam fix
|
||||||
function suppressTraversalRootPatch()
|
//function suppressTraversalRootPatch()
|
||||||
{
|
//{
|
||||||
if($tvpatched)
|
//if($tvpatched)
|
||||||
return;
|
//return;
|
||||||
|
|
||||||
warn("Patching traversal root error...");
|
//warn("Patching traversal root error...");
|
||||||
memPatch("56AD8A", "90909090909090909090909090909090909090909090");
|
//memPatch("56AD8A", "90909090909090909090909090909090909090909090");
|
||||||
memPatch("56D114", "90909090909090909090909090909090909090909090");
|
//memPatch("56D114", "90909090909090909090909090909090909090909090");
|
||||||
$tvpatched = 1;
|
//$tvpatched = 1;
|
||||||
}
|
//}
|
||||||
|
|
||||||
if (!$CmdArmor::Patched)
|
//if (!$CmdArmor::Patched)
|
||||||
{
|
//{
|
||||||
$CmdArmor::Patched = true;
|
//$CmdArmor::Patched = true;
|
||||||
//memPatch("6FC746", "66B8000090906683FE017408ACAA84C075FA89D05F5EC3");
|
////memPatch("6FC746", "66B8000090906683FE017408ACAA84C075FA89D05F5EC3");
|
||||||
memPatch("6FC746", "83FE017408ACAA84C075FA89D05F5EC3");
|
//memPatch("6FC746", "83FE017408ACAA84C075FA89D05F5EC3");
|
||||||
//Removed register size override (cmp si, 1 -> cmp esi, 1) and got rid of
|
////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
|
////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
|
////and wasn't necessary anyways because of xor eax, eax in the original. It also
|
||||||
//generated several NOPs after that for no reason.
|
////generated several NOPs after that for no reason.
|
||||||
}
|
//}
|
||||||
|
|
||||||
function serverCmd(%client)
|
//function serverCmd(%client)
|
||||||
{
|
//{
|
||||||
// Stick your own administrative action code here
|
//// Stick your own administrative action code here
|
||||||
messageAll('msgAll',"\c3" @ %client.namebase SPC "is attempting to crash the server!");
|
//messageAll('msgAll',"\c3" @ %client.namebase SPC "is attempting to crash the server!");
|
||||||
|
|
||||||
messageClient(%client, 'onClientBanned', "");
|
//messageClient(%client, 'onClientBanned', "");
|
||||||
messageAllExcept( %client, -1, 'MsgClientDrop', "", %client.name, %client );
|
//messageAllExcept( %client, -1, 'MsgClientDrop', "", %client.name, %client );
|
||||||
|
|
||||||
// kill and delete this client
|
//// kill and delete this client
|
||||||
if( isObject(%client.player) )
|
//if( isObject(%client.player) )
|
||||||
%client.player.scriptKill(0);
|
//%client.player.scriptKill(0);
|
||||||
|
|
||||||
if ( isObject( %client ) )
|
//if ( isObject( %client ) )
|
||||||
{
|
//{
|
||||||
%client.setDisconnectReason("You have been banned for attempting to crash the server.");
|
//%client.setDisconnectReason("You have been banned for attempting to crash the server.");
|
||||||
%client.schedule(700, "delete");
|
//%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
|
//Used if a clean crash is desired
|
||||||
memPatch("7dc7fc","90");
|
//memPatch("7dc7fc","90");
|
||||||
//Loops Crash patch (Prevent the Uncaught Exception dialog from appearing)
|
//Loops Crash patch (Prevent the Uncaught Exception dialog from appearing)
|
||||||
memPatch("006ff376", "909090909090");
|
//memPatch("006ff376", "909090909090");
|
||||||
|
|
||||||
//Show Linux Icon in server list
|
//Show Linux Icon in server list
|
||||||
//memPatch("5C9628","80CB05");
|
//memPatch("5C9628","80CB05");
|
||||||
|
//Show no Linux Icon
|
||||||
//Bahke MPB stability fix
|
//memPatch("5C9628","80CB01");
|
||||||
//memPatch("614120","9090");
|
|
||||||
|
|
|
||||||
|
|
@ -142,7 +142,7 @@ if (!isActivePackage(PizzaThings))
|
||||||
|
|
||||||
function serverCmdObserveFirstFlag(%client)
|
function serverCmdObserveFirstFlag(%client)
|
||||||
{
|
{
|
||||||
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
if(Game.class !$= CTFGame && Game.class !$= SCtFGame && Game.class !$= LCTFGame )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// client must be an observer
|
// client must be an observer
|
||||||
|
|
@ -160,7 +160,7 @@ function serverCmdObserveFirstFlag(%client)
|
||||||
|
|
||||||
function serverCmdObserveSecondFlag(%client)
|
function serverCmdObserveSecondFlag(%client)
|
||||||
{
|
{
|
||||||
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
if(Game.class !$= CTFGame && Game.class !$= SCtFGame && Game.class !$= LCTFGame )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// client must be an observer
|
// client must be an observer
|
||||||
|
|
@ -184,7 +184,7 @@ function observeFlag(%client, %target, %type, %flagTeam)
|
||||||
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
|
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(Game.class !$= CTFGame && Game.class !$= SCtFGame)
|
if(Game.class !$= CTFGame && Game.class !$= SCtFGame && Game.class !$= LCTFGame )
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(%client.team > 0)
|
if(%client.team > 0)
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ function VehicleData::onDestroyed(%data, %obj, %prevState)
|
||||||
%zVel = (getRandom() * 100.0) + 50.0;
|
%zVel = (getRandom() * 100.0) + 50.0;
|
||||||
%flingVel = %xVel @ " " @ %yVel @ " " @ %zVel;
|
%flingVel = %xVel @ " " @ %yVel @ " " @ %zVel;
|
||||||
%flingee.applyImpulse(%flingee.getTransform(), %flingVel);
|
%flingee.applyImpulse(%flingee.getTransform(), %flingVel);
|
||||||
echo("got player..." @ %flingee.getClassName());
|
//echo("got player..." @ %flingee.getClassName());
|
||||||
%flingee.damage(0, %obj.getPosition(), 0.4, $DamageType::Crash);
|
%flingee.damage(0, %obj.getPosition(), 0.4, $DamageType::Crash);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -70,29 +70,13 @@ function VehicleData::onDestroyed(%data, %obj, %prevState)
|
||||||
%data.deleteAllMounted(%obj);
|
%data.deleteAllMounted(%obj);
|
||||||
// -----------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------
|
||||||
// z0dd - ZOD - Czar, 6/24/02. Move this vehicle out of the way so nothing collides with it.
|
// 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(2000, "delete"); //was 500
|
||||||
// %obj.setFrozenState(true);
|
%data.schedule(500, 'onAvoidCollisions', %obj);
|
||||||
%obj.schedule(500, "delete"); //was 2000
|
|
||||||
//%data.schedule(500, 'onAvoidCollisions', %obj);
|
|
||||||
|
|
||||||
//Transfer the vehicle far away
|
//Transfer the vehicle far away
|
||||||
%obj.schedule(128, "setPosition", vectorAdd(%obj.getPosition(), "40 -27 10000")); //Lowered: was 500
|
%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
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
%obj.setFrozenState(true);
|
|
||||||
%obj.schedule(500, "delete"); //was 500
|
|
||||||
}
|
|
||||||
// -----------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -323,17 +307,6 @@ function serverCmdScopeCommanderMap(%client, %scope)
|
||||||
%client.player.ccActive = %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
|
// Added object check
|
||||||
function VehicleData::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %theClient, %proj)
|
function VehicleData::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %theClient, %proj)
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ function GetTeamCounts(%game)
|
||||||
if($countdownStarted && $MatchStarted)
|
if($countdownStarted && $MatchStarted)
|
||||||
{
|
{
|
||||||
//Variables
|
//Variables
|
||||||
$TotalTeamPlayerCount = $TeamRank[1, count] + $TeamRank[2, count];
|
$TotalTeamPlayerCount = (Game.class $= "LakRabbitGame") ? $TeamRank[0, count] : ($TeamRank[1, count] + $TeamRank[2, count]);
|
||||||
$AllPlayerCount = $HostGamePlayerCount;
|
$AllPlayerCount = $HostGamePlayerCount;
|
||||||
|
|
||||||
//Observers
|
//Observers
|
||||||
|
|
|
||||||
|
|
@ -486,19 +486,8 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
|
||||||
}
|
}
|
||||||
else //is an admin
|
else //is an admin
|
||||||
{
|
{
|
||||||
if($Host::TournamentMode) //Admins still have the option to set the time to 30 minutes in Tourney Mode
|
messageClient(%client, "", "\c2Invalid time selection.");
|
||||||
{
|
return;
|
||||||
if(%arg1 !$= "30") //30 minutes only
|
|
||||||
{
|
|
||||||
messageClient(%client, "", "\c2Invalid time selection.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
messageClient(%client, "", "\c2Invalid time selection.");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -513,8 +502,6 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
|
||||||
{
|
{
|
||||||
if(%arg1 $= "999") %time = "unlimited"; else %time = %arg1;
|
if(%arg1 $= "999") %time = "unlimited"; else %time = %arg1;
|
||||||
%msg = %client.nameBase @ " initiated a vote to change the time limit to " @ %time SPC "minutes.";
|
%msg = %client.nameBase @ " initiated a vote to change the time limit to " @ %time SPC "minutes.";
|
||||||
// VoteOvertime
|
|
||||||
StartVOTimeVote(%game);
|
|
||||||
|
|
||||||
$CMHasVoted[%client.guid]++;
|
$CMHasVoted[%client.guid]++;
|
||||||
}
|
}
|
||||||
|
|
@ -594,11 +581,12 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
|
||||||
case "stopRunningVote":
|
case "stopRunningVote":
|
||||||
if(%client.isSuperAdmin || (%client.isAdmin && $Host::AllowAdminStopVote))
|
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
|
// %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 time vote after time has expired.");
|
// {
|
||||||
return;
|
// messageClient(%client, "", "\c2Can't stop vote after time has expired.");
|
||||||
}
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
stopCurrentVote(%client);
|
stopCurrentVote(%client);
|
||||||
adminLog(%client, " stopped the vote in progress.");
|
adminLog(%client, " stopped the vote in progress.");
|
||||||
|
|
@ -834,21 +822,21 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
|
||||||
|
|
||||||
// LakRabbit Stuff
|
// LakRabbit Stuff
|
||||||
case "VoteDuelMode":
|
case "VoteDuelMode":
|
||||||
if(!$CurrentMissionType $= "LakRabbit")
|
if($CurrentMissionType !$= "LakRabbit")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
||||||
%msg = %client.nameBase @ " initiated a vote to " @ (Game.duelMode == 0 ? "enable" : "disable") @ " duel mode.";
|
%msg = %client.nameBase @ " initiated a vote to " @ (Game.duelMode == 0 ? "enable" : "disable") @ " duel mode.";
|
||||||
|
|
||||||
case "VoteSplashDamage":
|
case "VoteSplashDamage":
|
||||||
if(!$CurrentMissionType $= "LakRabbit")
|
if($CurrentMissionType !$= "LakRabbit")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
||||||
%msg = %client.nameBase @ " initiated a vote to " @ (Game.noSplashDamage == 1 ? "enable" : "disable") @ " splash damage.";
|
%msg = %client.nameBase @ " initiated a vote to " @ (Game.noSplashDamage == 1 ? "enable" : "disable") @ " splash damage.";
|
||||||
|
|
||||||
case "VotePro":
|
case "VotePro":
|
||||||
if(!$CurrentMissionType $= "LakRabbit")
|
if($CurrentMissionType !$= "LakRabbit")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
||||||
|
|
@ -856,7 +844,7 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
|
||||||
|
|
||||||
//Deathmatch Stuff
|
//Deathmatch Stuff
|
||||||
case "DMSLOnlyMode":
|
case "DMSLOnlyMode":
|
||||||
if(!$CurrentMissionType $= "DM")
|
if($CurrentMissionType !$= "DM")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
||||||
|
|
@ -864,18 +852,21 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
|
||||||
|
|
||||||
//LCTF Stuff
|
//LCTF Stuff
|
||||||
case "LCTFProMode":
|
case "LCTFProMode":
|
||||||
if(!$CurrentMissionType $= "LCTF")
|
if($CurrentMissionType !$= "LCTF")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
||||||
%msg = %client.nameBase @ " initiated a vote to " @ (Game.LCTFProMode == 0 ? "enable" : "disable") @ " pro mode.";
|
%msg = %client.nameBase @ " initiated a vote to " @ (Game.LCTFProMode == 0 ? "enable" : "disable") @ " pro mode.";
|
||||||
|
|
||||||
case "LCTFOneMine":
|
case "LCTFOneMine":
|
||||||
if(!$CurrentMissionType $= "LCTF")
|
if($CurrentMissionType !$= "LCTF")
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
if($InvBanList[LCTF, "Mine"])
|
||||||
%msg = %client.nameBase @ " initiated a vote to " @ (Game.LCTFOneMine == 0 ? "enable" : "disable") @ " one mine mode.";
|
messageClient(%client, "", "\c2Mines are disabled at this time.");
|
||||||
|
|
||||||
|
if(!%isAdmin || (%isAdmin && %client.ForceVote))
|
||||||
|
%msg = %client.nameBase @ " initiated a vote to " @ (Game.LCTFOneMine == 1 ? "enable" : "disable") @ " one mine mode.";
|
||||||
|
|
||||||
case "showServerRules":
|
case "showServerRules":
|
||||||
if (($Host::ServerRules[1] !$= "") && (!%client.CantView))
|
if (($Host::ServerRules[1] !$= "") && (!%client.CantView))
|
||||||
|
|
@ -1220,7 +1211,8 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
|
||||||
{
|
{
|
||||||
messageAll( 'MsgAdminForce', '\c2The Admin %2 changed the mission time limit to %1 minutes.', %display, %admin.name );
|
messageAll( 'MsgAdminForce', '\c2The Admin %2 changed the mission time limit to %1 minutes.', %display, %admin.name );
|
||||||
$Host::TimeLimit = %newLimit;
|
$Host::TimeLimit = %newLimit;
|
||||||
adminLog(%admin, " has changed the mission time limit to " @ %display @ " minutes.");
|
adminLog(%admin, " has changed the mission time limit to " @ %display @ " minutes.");
|
||||||
|
$TimeLimitChanged = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
@ -1230,9 +1222,7 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
|
||||||
{
|
{
|
||||||
messageAll('MsgVotePassed', '\c2The mission time limit was set to %1 minutes by vote.', %display);
|
messageAll('MsgVotePassed', '\c2The mission time limit was set to %1 minutes by vote.', %display);
|
||||||
$Host::TimeLimit = %newLimit;
|
$Host::TimeLimit = %newLimit;
|
||||||
// VoteOvertime
|
// Reset the voted time limit when changing mission
|
||||||
ResetVOTimeChanged(%game);
|
|
||||||
// Reset the voted time limit when changing mission
|
|
||||||
$TimeLimitChanged = 1;
|
$TimeLimitChanged = 1;
|
||||||
|
|
||||||
//Log Vote %
|
//Log Vote %
|
||||||
|
|
@ -1250,9 +1240,6 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
|
||||||
votePercentLog(%newLimit, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
|
votePercentLog(%newLimit, %typeName, %key, %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, %game.totalVotesNone);
|
||||||
//Show Vote %
|
//Show Vote %
|
||||||
messageAll('', '\c1Vote %6: \c0Yea: %1 Nay: %2 Abstain: %7 Total: %3 [%4%5]', %game.totalVotesFor, %game.totalVotesAgainst, %totalVotes, mfloor((%game.totalVotesFor/(ClientGroup.getCount() - %game.totalVotesNone)) * 100), "%", %key, %game.totalVotesNone);
|
messageAll('', '\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);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
//Fixes for collision tunneling and other issues, note only tested in classic
|
//Fixes for collision tunneling and other issues, note only tested in classic
|
||||||
//Script By:DarkTiger
|
//Script By:DarkTiger
|
||||||
|
//v4.3 - logic rework remove any skips in the checks
|
||||||
//v3.8 - removed sweep optimization/ bug fix in old method
|
//v3.8 - removed sweep optimization/ bug fix in old method
|
||||||
//v3.7 - removed bypass code
|
//v3.7 - removed bypass code
|
||||||
//v3.6 - lctf and SCtFGame
|
//v3.6 - lctf and SCtFGame
|
||||||
|
|
@ -31,6 +32,7 @@ $flagCheckRadius = 50;
|
||||||
$playerSizeBox = "1.2 1.2 2.3";
|
$playerSizeBox = "1.2 1.2 2.3";
|
||||||
$flagBoxSize = "0.796666 0.139717 2.46029";
|
$flagBoxSize = "0.796666 0.139717 2.46029";
|
||||||
|
|
||||||
|
$boxCollision = 0;
|
||||||
//0 = old AABB method uses fixed box size makes the player bit narrow
|
//0 = old AABB method uses fixed box size makes the player bit narrow
|
||||||
//1 = new OBB method uses perfect box intersection
|
//1 = new OBB method uses perfect box intersection
|
||||||
|
|
||||||
|
|
@ -189,43 +191,16 @@ package flagFix{
|
||||||
};
|
};
|
||||||
activatePackage(flagFix);
|
activatePackage(flagFix);
|
||||||
|
|
||||||
function vectorMul(%a,%b){
|
|
||||||
%x = getWords(%a,0) * getWords(%b,0);
|
|
||||||
%y = getWords(%a,1) * getWords(%b,1);
|
|
||||||
%z = getWords(%a,2) * getWords(%b,2);
|
|
||||||
return %x SPC %y SPC %z;
|
|
||||||
}
|
|
||||||
|
|
||||||
function generateBoxData(){
|
function generateBoxData(){
|
||||||
|
%halfSize = vectorScale($playerSizeBox, 0.5);
|
||||||
|
$plrBoxMin = getWords(VectorSub("0 0 0", %halfSize),0,1) SPC 0;
|
||||||
|
$plrBoxMax = getWords(%halfSize,0,1) SPC getWord($playerSizeBox,2);
|
||||||
|
$plrBox = $plrBoxMin SPC $plrBoxMax;
|
||||||
|
|
||||||
%playerSize = $playerSizeBox; //"1.2 1.2 2.3";
|
%halfSize = vectorScale($flagBoxSize, 0.5);
|
||||||
%halfSize = vectorMul(%playerSize, "0.5 0.5 0");
|
$flagBoxMin = getWords(VectorSub("0 0 0", %halfSize),0,1) SPC 0;
|
||||||
$plrBoxMin = %minA = VectorSub("0 0 0", %halfSize);
|
$flagBoxMax = getWords(%halfSize,0,1) SPC getWord($flagBoxSize,2);
|
||||||
$plrBoxMax = %maxA = getWords(%halfSize,0,1) SPC getWord(%playerSize,2);
|
$flagBox = $flagBoxMin SPC $flagBoxMax;
|
||||||
$plrBox = %minA SPC %maxA;
|
|
||||||
%vSubA = vectorSub(%maxA, %minA);
|
|
||||||
|
|
||||||
%flagSize = $flagBoxSize;
|
|
||||||
%halfSize = vectorMul(%flagSize, "0.5 0.5 0");
|
|
||||||
$flagBoxMin = %minB = VectorSub("0 0 -0.1", %halfSize);
|
|
||||||
$flagBoxMax = %maxB = getWords(%halfSize,0,1) SPC getWord(%flagSize,2);
|
|
||||||
$flagBox = %minB SPC %maxB;
|
|
||||||
%vSubB = vectorSub(%maxB, %minB);
|
|
||||||
|
|
||||||
%box[0] = "0 0 0";
|
|
||||||
%box[1] = "1 0 0";
|
|
||||||
%box[2] = "0 1 0";
|
|
||||||
%box[3] = "1 1 0";
|
|
||||||
%box[4] = "0 0 1";
|
|
||||||
%box[5] = "1 0 1";
|
|
||||||
%box[6] = "0 1 1";
|
|
||||||
%box[7] = "1 1 1";
|
|
||||||
|
|
||||||
for(%i = 0; %i < 8; %i++){
|
|
||||||
$playerBoxData[%i] = vectorAdd(%minA, vectorMul(%vSubA, %box[%i]));
|
|
||||||
$flagBoxData[%i] = vectorAdd(%minB, vectorMul(%vSubB, %box[%i]));
|
|
||||||
}
|
|
||||||
|
|
||||||
}generateBoxData();
|
}generateBoxData();
|
||||||
|
|
||||||
function vectorLerp(%point1, %point2, %t) {
|
function vectorLerp(%point1, %point2, %t) {
|
||||||
|
|
@ -233,7 +208,8 @@ function vectorLerp(%point1, %point2, %t) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function boxIntersectAABB(%plr, %flg, %lerpPos){
|
function boxIntersectAABB(%plr, %flg, %lerpPos){
|
||||||
if($boxCollision == 2){
|
%testMode = 0;
|
||||||
|
if(%testMode == 1){
|
||||||
%fpos = %flg.getPosition();
|
%fpos = %flg.getPosition();
|
||||||
|
|
||||||
%a = vectorAdd($plrBoxMin, %lerpPos) SPC vectorAdd($plrBoxMax, %lerpPos);
|
%a = vectorAdd($plrBoxMin, %lerpPos) SPC vectorAdd($plrBoxMax, %lerpPos);
|
||||||
|
|
@ -250,7 +226,7 @@ function boxIntersectAABB(%plr, %flg, %lerpPos){
|
||||||
(getWord(%a, 2)<= getWord(%b, 5) && getWord(%a, 5) >= getWord(%b, 2));
|
(getWord(%a, 2)<= getWord(%b, 5) && getWord(%a, 5) >= getWord(%b, 2));
|
||||||
}
|
}
|
||||||
|
|
||||||
function DefaultGame::flagColTest(%game, %flag, %rsTeam, %ext){
|
function DefaultGame::flagColTest(%game, %flag, %rsTeam,%fc){
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//obj tunneling check
|
//obj tunneling check
|
||||||
%flagPos = %flag.getPosition();
|
%flagPos = %flag.getPosition();
|
||||||
|
|
@ -273,37 +249,32 @@ function DefaultGame::flagColTest(%game, %flag, %rsTeam, %ext){
|
||||||
InitContainerRadiusSearch( %flagPos, $flagCheckRadius, $TypeMasks::PlayerObjectType);
|
InitContainerRadiusSearch( %flagPos, $flagCheckRadius, $TypeMasks::PlayerObjectType);
|
||||||
while((%player = containerSearchNext()) != 0){
|
while((%player = containerSearchNext()) != 0){
|
||||||
%playerPos = %player.getPosition();
|
%playerPos = %player.getPosition();
|
||||||
//%rot = getWords(%player.getTransform(),3,6);
|
//%toPlayer = vectorNormalize(vectorSub(%flagPos,%playerPos));
|
||||||
if((%rsTeam && %flag.team != %player.team) || !%rsTeam || %player == %ext){
|
//%moveDir = vectorNormalize(%player.getVelocity());
|
||||||
%flagDist = vectorDist(%flagPos, %playerPos);
|
//%d = vectorDot( %toPlayer, %moveDir );
|
||||||
if(%player.lastSim > 0 && (%player.getState() !$= "Dead")){// only check at speed
|
if(((%flag.team != %player.team) || !%rsTeam || %fc == %player) && %player.getState() !$= "Dead"){
|
||||||
//%fdot = vectorDot(vectorNormalize(%player.getVelocity()),vectorNormalize(VectorSub(%flagPos, %playerPos)));
|
//%futurePos = vectorAdd(%playerPos, vectorScale(%player.getVelocity(), $flagSimTime / 1000));
|
||||||
// %tickDist = vectorLen(%player.getVelocity()) * ($flagSimTime/1000);
|
if(%player.lastSim[%flag] $= "" || (getSimTime() - %player.lastSim[%flag]) >= 128){
|
||||||
%sweepCount = mFloor(vectorDist(%playerPos, %player.oldPos) + 1.5);
|
%lastPos = vectorSub(%playerPos, vectorScale(%player.getVelocity(), $flagSimTime / 1000));
|
||||||
if((getSimTime() - %player.lastSim) <= 128){//make sure are last position is valid
|
%player.oldPos[%flag] = %lastPos;// old data so lets do it velocity based
|
||||||
//schedule(1000,0,"drawBeamItem", %player.oldPos,%playerPos,15000);
|
}
|
||||||
for(%i = 0; %i < %sweepCount; %i++){// sweep behind us to see if we should have hit something
|
%sweepCount = mFloor(vectorDist(%playerPos, %player.oldPos[%flag]) + 1);// min of 2
|
||||||
%lerpPos = vectorLerp(%playerPos, %player.oldPos, %i/(%sweepCount-1));//back sweep
|
for(%i = 0; %i < %sweepCount; %i++){// sweep behind us to see if we should have hit something
|
||||||
//%point = MatrixMulPoint(%lerpPos SPC %rot, "-0.6 -0.6 0");
|
%lerpPos = vectorLerp(%playerPos, %player.oldPos[%flag], %i/(%sweepCount-1));//back sweep
|
||||||
//schedule(1000+(%i*128), 0, "drawBoxItemC", %point, %rot, "1.2 1.2 2.3", 15000);
|
if($boxCollision == 1 && boxIntersect(%player, %flag, %lerpPos)){
|
||||||
if($boxCollision == 1 && boxIntersect(%player, %flag, %lerpPos)){
|
%flag.getDataBlock().onCollision(%flag, %player);
|
||||||
// %point = MatrixMulPoint(%flagPos SPC %rot,"-0.398 -0.069 0");
|
break;
|
||||||
// schedule(1000+(%i*128), 0, "drawBoxItemC", %point, %rot, "0.796666 0.139717 4", 15000);
|
}
|
||||||
%flag.getDataBlock().onCollision(%flag, %player);
|
else if(!$boxCollision && boxIntersectAABB(%player, %flag, %lerpPos)){
|
||||||
break;
|
%flag.getDataBlock().onCollision(%flag, %player);
|
||||||
}
|
//error("hit" SPC %player.count++);
|
||||||
else if(!$boxCollision && boxIntersectAABB(%player, %flag, %lerpPos)){
|
break;
|
||||||
%flag.getDataBlock().onCollision(%flag, %player);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
%player.oldPos = %playerPos;
|
%player.oldPos[%flag] = %playerPos;
|
||||||
%player.lastSim = getSimTime();
|
%player.lastSim[%flag] = getSimTime();
|
||||||
}
|
}
|
||||||
//error("scan count" SPC %scanCount SPC %scanPlrCount);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function DefaultGame::atHomeFlagLoop(%game){
|
function DefaultGame::atHomeFlagLoop(%game){
|
||||||
|
|
@ -321,13 +292,16 @@ function DefaultGame::atHomeFlagLoop(%game){
|
||||||
%game.flagResetTime += $flagSimTime;
|
%game.flagResetTime += $flagSimTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//%game.flagColTest($TeamFlag[1]);
|
||||||
|
//%game.flagColTest($TeamFlag[2]);
|
||||||
|
|
||||||
if($TeamFlag[1].isHome && $TeamFlag[2].isHome){//11
|
if($TeamFlag[1].isHome && $TeamFlag[2].isHome){//11
|
||||||
%game.flagColTest($TeamFlag[1],1,0);// only look at the other team
|
%game.flagColTest($TeamFlag[1],1,0);// only look at the other team
|
||||||
%game.flagColTest($TeamFlag[2],1,0);// only look at the other team
|
%game.flagColTest($TeamFlag[2],1,0);// only look at the other team
|
||||||
}
|
}
|
||||||
else if(!$TeamFlag[1].isHome && $TeamFlag[2].isHome){//01
|
else if(!$TeamFlag[1].isHome && $TeamFlag[2].isHome){//01
|
||||||
if(isObject($TeamFlag[1].carrier)){// flag has been dropped
|
if(isObject($TeamFlag[1].carrier)){// flag has been dropped
|
||||||
%game.flagColTest($TeamFlag[2],1, $TeamFlag[1].carrier); //scan for other team expect for are carrier
|
%game.flagColTest($TeamFlag[2],1,$TeamFlag[1].carrier); //scan for other team expect for are carrier
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
%game.flagColTest($TeamFlag[1],0,0);// scan for everyone can touch it
|
%game.flagColTest($TeamFlag[1],0,0);// scan for everyone can touch it
|
||||||
|
|
@ -336,7 +310,7 @@ function DefaultGame::atHomeFlagLoop(%game){
|
||||||
}
|
}
|
||||||
else if($TeamFlag[1].isHome && !$TeamFlag[2].isHome){//10
|
else if($TeamFlag[1].isHome && !$TeamFlag[2].isHome){//10
|
||||||
if(isObject($TeamFlag[2].carrier)){// flag has been dropped
|
if(isObject($TeamFlag[2].carrier)){// flag has been dropped
|
||||||
%game.flagColTest($TeamFlag[1],1, $TeamFlag[2].carrier); //scan for other team expect for are carrier
|
%game.flagColTest($TeamFlag[1],1,$TeamFlag[2].carrier); //scan for other team expect for are carrier
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
%game.flagColTest($TeamFlag[1],1,0);// team 1 flag is still at home so only scan for the other team
|
%game.flagColTest($TeamFlag[1],1,0);// team 1 flag is still at home so only scan for the other team
|
||||||
|
|
@ -345,10 +319,10 @@ function DefaultGame::atHomeFlagLoop(%game){
|
||||||
}
|
}
|
||||||
else if(!$TeamFlag[1].isHome && !$TeamFlag[2].isHome){//00
|
else if(!$TeamFlag[1].isHome && !$TeamFlag[2].isHome){//00
|
||||||
if(!isObject($TeamFlag[1].carrier)){// flag has been dropped
|
if(!isObject($TeamFlag[1].carrier)){// flag has been dropped
|
||||||
%game.flagColTest($TeamFlag[1],0,0);// scan for everyone can touch it
|
%game.flagColTest($TeamFlag[1],0);// scan for everyone can touch it
|
||||||
}
|
}
|
||||||
if(!isObject($TeamFlag[2].carrier)){// flag has been dropped
|
if(!isObject($TeamFlag[2].carrier)){// flag has been dropped
|
||||||
%game.flagColTest($TeamFlag[2],0,0);// scan for everyone can touch it
|
%game.flagColTest($TeamFlag[2],0);// scan for everyone can touch it
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
107
Classic/scripts/autoexec/spawnDir.cs
Normal file
107
Classic/scripts/autoexec/spawnDir.cs
Normal file
|
|
@ -0,0 +1,107 @@
|
||||||
|
// points players in the diretion of the enemy flag home position when outdoors
|
||||||
|
// Script By: DarkTiger
|
||||||
|
// version 1.0
|
||||||
|
|
||||||
|
function CTFGame::pickTeamSpawn(%game, %team) {
|
||||||
|
return %game.pickTeamSpawnRot(%team);
|
||||||
|
}
|
||||||
|
function LCTFGame::pickTeamSpawn(%game, %team) {
|
||||||
|
return %game.pickTeamSpawnRot(%team);
|
||||||
|
}
|
||||||
|
function SCtFGame::pickTeamSpawn(%game, %team) {
|
||||||
|
return %game.pickTeamSpawnRot(%team);
|
||||||
|
}
|
||||||
|
|
||||||
|
function DefaultGame::pickTeamSpawnRot(%game, %team){
|
||||||
|
// early exit if no nav graph
|
||||||
|
if (!navGraphExists())
|
||||||
|
{
|
||||||
|
echo("No navigation graph is present. Build one.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (%attempt = 0; %attempt < 20; %attempt++)
|
||||||
|
{
|
||||||
|
// finds a random spawn sphere
|
||||||
|
// selects inside/outside on this random sphere
|
||||||
|
// if the navgraph exists, then uses it to grab a random node as spawn
|
||||||
|
// location/rotation
|
||||||
|
%sphere = %game.selectSpawnSphere(%team);
|
||||||
|
if (%sphere == -1)
|
||||||
|
{
|
||||||
|
echo("No spawn spheres found for team " @ %team);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
%zone = %game.selectSpawnZone(%sphere);
|
||||||
|
%useIndoor = %zone;
|
||||||
|
%useOutdoor = !%zone;
|
||||||
|
if (%zone)
|
||||||
|
%area = "indoor";
|
||||||
|
else
|
||||||
|
%area = "outdoor";
|
||||||
|
|
||||||
|
%radius = %sphere.radius;
|
||||||
|
%sphereTrans = %sphere.getTransform();
|
||||||
|
%sphereCtr = getWord(%sphereTrans, 0) @ " " @ getWord(%sphereTrans, 1) @ " " @ getWord(%sphereTrans, 2); //don't need full transform here, just x, y, z
|
||||||
|
//echo("Selected Sphere is " @ %sphereCtr @ " with a radius of " @ %radius @ " meters. Selecting from " @ %area @ " zone.");
|
||||||
|
|
||||||
|
%avoidThese = $TypeMasks::VehicleObjectType | $TypeMasks::MoveableObjectType |
|
||||||
|
$TypeMasks::PlayerObjectType | $TypeMasks::TurretObjectType;
|
||||||
|
|
||||||
|
for (%tries = 0; %tries < 10; %tries++)
|
||||||
|
{
|
||||||
|
%nodeIndex = navGraph.randNode(%sphereCtr, %radius, %useIndoor, %useOutdoor);
|
||||||
|
if (%nodeIndex >= 0)
|
||||||
|
{
|
||||||
|
%loc = navGraph.randNodeLoc(%nodeIndex);
|
||||||
|
%adjUp = VectorAdd(%loc, "0 0 1.0"); // don't go much below
|
||||||
|
|
||||||
|
if (ContainerBoxEmpty( %avoidThese, %adjUp, 2.0))
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (%nodeIndex >= 0)
|
||||||
|
{
|
||||||
|
%loc = navGraph.randNodeLoc(%nodeIndex);
|
||||||
|
if (%zone)//spawn indoors
|
||||||
|
{
|
||||||
|
%fpos = getWords($TeamFlag[%team == 1 ? 2 : 1].originalPosition,0,2);
|
||||||
|
%flos = containerRayCast(vectorAdd(%loc,"0 0 1"), vectorAdd(%fpos, "0 0 1"), $TypeMasks::InteriorObjectType | $TypeMasks::StaticTSObjectType | $TypeMasks::ForceFieldObjectType);
|
||||||
|
if(%flos){// do we have anything inbetween us and the flag if not face it
|
||||||
|
if(vectorDist(%loc, getWords(%flos,1,3)) < 25){
|
||||||
|
//error("indoor" SPC %loc);
|
||||||
|
%trns = %loc @ " 0 0 1 0";
|
||||||
|
%spawnLoc = whereToLook(%trns);
|
||||||
|
return %spawnLoc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//error("outdoor" SPC %loc);
|
||||||
|
%rot = %game.selectSpawnDir(%loc, %team, %zone);
|
||||||
|
%spawnLoc = %loc @ %rot;
|
||||||
|
return %spawnLoc;
|
||||||
|
}
|
||||||
|
//error("outdoor" SPC %loc);
|
||||||
|
%rot = %game.selectSpawnDir(%loc, %team, %zone);
|
||||||
|
%spawnLoc = %loc @ %rot;
|
||||||
|
return %spawnLoc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//face flag when spawn
|
||||||
|
function DefaultGame::selectSpawnDir(%game, %loc, %team, %zone){
|
||||||
|
%team = %team == 1 ? 2 : 1;
|
||||||
|
%fpos = getWords($TeamFlag[%team].originalPosition,0,2);
|
||||||
|
//this used only when spawn loc is not on an interior. This points spawning player to the ctr of spawnshpere
|
||||||
|
%fpos = setWord(%fpos, 2, 0);
|
||||||
|
%loc = setWord(%loc, 2, 0);
|
||||||
|
|
||||||
|
if(VectorDist(%loc, %fpos) == 0)
|
||||||
|
return " 0 0 1 0 ";
|
||||||
|
|
||||||
|
%vec = VectorNormalize(VectorSub(%fpos, %loc));
|
||||||
|
%angle = mAcos(getWord(%vec, 1));
|
||||||
|
return (%loc < %fpos) ? (" 0 0 1 " @ %angle) : (" 0 0 1 " @ -%angle);// this works some how
|
||||||
|
}
|
||||||
|
|
@ -51,7 +51,7 @@
|
||||||
|
|
||||||
// First Screen loading time (Map Screen)
|
// First Screen loading time (Map Screen)
|
||||||
// If this is set too low the second screen wont show at all
|
// If this is set too low the second screen wont show at all
|
||||||
$dtLoadingScreen::FirstScreen = 5500;
|
$dtLoadingScreen::FirstScreen = 3000;
|
||||||
// Second Screen Delay
|
// Second Screen Delay
|
||||||
$dtLoadingScreen::Delay = 0;
|
$dtLoadingScreen::Delay = 0;
|
||||||
|
|
||||||
|
|
@ -149,6 +149,10 @@ if (!isActivePackage(LoadScreenPackage) && $Host::LoadingScreenUseDebrief)
|
||||||
// Just make our own
|
// Just make our own
|
||||||
function ALTsendModInfoToClient(%client)
|
function ALTsendModInfoToClient(%client)
|
||||||
{
|
{
|
||||||
|
if(%client.isReady){
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// Wont allow Debrief on consecutive map loads
|
// Wont allow Debrief on consecutive map loads
|
||||||
if(%client.loaded)
|
if(%client.loaded)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
// Stats system for classic and base
|
// Stats system for classic and base
|
||||||
// Script BY: DarkTiger
|
// Script BY: DarkTiger
|
||||||
|
|
@ -15,7 +16,7 @@
|
||||||
// Note See bottom of file for full log
|
// Note See bottom of file for full log
|
||||||
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
//-----------Settings-----------
|
//-----------Settings-----------
|
||||||
$dtStats::version = 10.58;
|
$dtStats::version = 10.60;
|
||||||
//disable stats system
|
//disable stats system
|
||||||
$dtStats::Enable = $Host::dtStatsEnable $= "" ? ($Host::dtStatsEnable = 1) : $Host::dtStatsEnable;
|
$dtStats::Enable = $Host::dtStatsEnable $= "" ? ($Host::dtStatsEnable = 1) : $Host::dtStatsEnable;
|
||||||
if(!$dtStats::Enable){ return;}// so it disables with a restart
|
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["WLRAvg"] = "Win Loss Ratio" TAB "Average";
|
||||||
$statsName["roundsWonTG"] = "Rounds Won" TAB "Total";
|
$statsName["roundsWonTG"] = "Rounds Won" TAB "Total";
|
||||||
$statsName["hatTricksTG"] = "Hat Tricks" TAB "Total";
|
$statsName["hatTricksTG"] = "Hat Tricks" TAB "Total";
|
||||||
|
$statsName["OffKillsTG"] = "Offensive Kills" TAB "Total";
|
||||||
|
$statsName["DefKillsTG"] = "Defensive Kills" TAB "Total";
|
||||||
|
|
||||||
$panelCount = 0;
|
$panelCount = 0;
|
||||||
$upperWepPanel[$panelCount, "CTFGame"] = "discMAHitDistMax"; $upperWepPanel[$panelCount++, "CTFGame"] = "plasmaMAHitDistMax";$upperWepPanel[$panelCount++, "CTFGame"] = "blasterMAHitDistMax";
|
$upperWepPanel[$panelCount, "CTFGame"] = "discMAHitDistMax"; $upperWepPanel[$panelCount++, "CTFGame"] = "plasmaMAHitDistMax";$upperWepPanel[$panelCount++, "CTFGame"] = "blasterMAHitDistMax";
|
||||||
|
|
@ -13383,7 +13386,6 @@ function dtPingStats(){
|
||||||
%cl.dtStats.stat["idleTime"] += ($dtStats::prefTestTime/1000)/60;
|
%cl.dtStats.stat["idleTime"] += ($dtStats::prefTestTime/1000)/60;
|
||||||
if(!%cl.isAIControlled()){
|
if(!%cl.isAIControlled()){
|
||||||
%ping = %cl.getPing();
|
%ping = %cl.getPing();
|
||||||
%cl.lastPing = %ping;
|
|
||||||
%cl.pingTotal += %ping;
|
%cl.pingTotal += %ping;
|
||||||
%cl.pingCount++;
|
%cl.pingCount++;
|
||||||
%cl.dtStats.stat["pingAvg"] = %cl.pingTotal / %cl.pingCount;
|
%cl.dtStats.stat["pingAvg"] = %cl.pingTotal / %cl.pingCount;
|
||||||
|
|
@ -13979,8 +13981,10 @@ package dtBanSys{
|
||||||
|
|
||||||
//Reapply the gag
|
//Reapply the gag
|
||||||
function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice, %voicePitch ){
|
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 );
|
parent::onConnect( %client, %name, %raceGender, %skin, %voice, %voicePitch );
|
||||||
|
|
||||||
%client.isGagged = ($chatGagged[getClientCleanIP(%client)] || $chatGagged[%client.guid]); //restore status
|
%client.isGagged = ($chatGagged[getClientCleanIP(%client)] || $chatGagged[%client.guid]); //restore status
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -13989,7 +13993,8 @@ package dtBanSys{
|
||||||
%time = (%time $= "") ? 100000 : %time;
|
%time = (%time $= "") ? 100000 : %time;
|
||||||
%name = getClientBanName(%guid, %ipAddress);
|
%name = getClientBanName(%guid, %ipAddress);
|
||||||
%bareIP = getCleanIP(%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)){
|
if(!isObject(dtBanList)){
|
||||||
new simGroup(dtBanList);
|
new simGroup(dtBanList);
|
||||||
RootGroup.add(dtBanList);
|
RootGroup.add(dtBanList);
|
||||||
|
|
@ -14003,60 +14008,16 @@ package dtBanSys{
|
||||||
banLengthMin = %time;
|
banLengthMin = %time;
|
||||||
};
|
};
|
||||||
dtBanList.add(%banObj);
|
dtBanList.add(%banObj);
|
||||||
if(!%bareIP)
|
if(%bareIP !$= "0")
|
||||||
$dtBanTemp::IP[%bareIP] = %banObj;
|
$dtBanTemp::IP[%bareIP] = %banObj;
|
||||||
if(%guid){
|
if(%guid){
|
||||||
$dtBanTemp::GUID[%guid] = %banObj;
|
$dtBanTemp::GUID[%guid] = %banObj;
|
||||||
rmvWhiteListGuid(%guid);
|
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();
|
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){
|
function dtIsAdmin(%client,%guid){
|
||||||
|
|
@ -14080,10 +14041,12 @@ function dtIsAdmin(%client,%guid){
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function banList_checkClient(%client, %guid){// only one we care about in whitelist mode
|
||||||
|
//error("banlist check" SPC "client" SPC %client SPC "Guid" SPC %guid);
|
||||||
function banList_checkClientGUID(%client, %guid){// only one we care about in whitelist mode
|
%objA = $dtBanTemp::GUID[%guid];
|
||||||
%obj = $dtBanTemp::GUID[%guid];
|
%ip = getClientCleanIP(%client);
|
||||||
|
%objB = $dtBanTemp::IP[%ip];
|
||||||
|
%obj = (isObject(%objA) == 1) ? %objA : %objB;
|
||||||
if (isObject(%obj) && %obj.banDateTime > 0){
|
if (isObject(%obj) && %obj.banDateTime > 0){
|
||||||
%delta = getTimeDelta(%obj.banDateTime);
|
%delta = getTimeDelta(%obj.banDateTime);
|
||||||
if (%delta < %obj.banLengthMin){
|
if (%delta < %obj.banLengthMin){
|
||||||
|
|
@ -14097,30 +14060,31 @@ function banList_checkClientGUID(%client, %guid){// only one we care about in wh
|
||||||
unbanUserObj(%obj);
|
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 );
|
%safe = ( dtIsAdmin(%client,%guid) || isObject($dtWhtList::WhiteList[%guid]));
|
||||||
if(%realName !$= "")
|
if(!%safe){
|
||||||
%name = trim(%realName);
|
pushFailJoin(%name, %guid, 0, "Not Whitelisted", 0);
|
||||||
else
|
if($dtServerVars::WhiteListMode){
|
||||||
%name = trim(stripChars( detag( getTaggedString( %fc.name ) ), "\cp\co\c6\c7\c8\c9\c0" ));
|
%client.setDisconnectReason("Server is locked, please message admin or wait for approval");
|
||||||
|
%client.delete();
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
%safe = ( dtIsAdmin(%client,%guid) || isObject($dtWhtList::WhiteList[%guid]));
|
// this is here in case of banned ip is a whitelisted account
|
||||||
if(!%safe){
|
if($dtServerVars::IPBanListMode && $dtIPList[%ip] && !isObject($dtWhtList::WhiteList[%guid])){
|
||||||
pushFailJoin(%name, %guid, 0, "Not Whitelisted", 0);
|
pushFailJoin(%name, %client.guid, %ip, "IP Ban List", 2);
|
||||||
if($dtServerVars::WhiteListMode){
|
%client.setDisconnectReason("You are not allowed to play on this server.");
|
||||||
%client.setDisconnectReason("Server is locked, please message admin or wait for approval");
|
|
||||||
%client.delete();
|
%client.delete();
|
||||||
return 1;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -16457,7 +16421,7 @@ function genBigStats(%game, %lType, %mon, %year){
|
||||||
%year = 2024;
|
%year = 2024;
|
||||||
}
|
}
|
||||||
%callCount = 0;
|
%callCount = 0;
|
||||||
%callTime = 16;
|
%callTime = 32;
|
||||||
deleteVariables("$textColor*");
|
deleteVariables("$textColor*");
|
||||||
%mainXSize =1860;
|
%mainXSize =1860;
|
||||||
%mainySize = 1115;
|
%mainySize = 1115;
|
||||||
|
|
@ -16689,7 +16653,7 @@ function genMapStatsImg(%game,%count){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
%callCount = 0;
|
%callCount = 0;
|
||||||
%callTime = 16;
|
%callTime = 32;
|
||||||
deleteVariables("$textColor*");
|
deleteVariables("$textColor*");
|
||||||
%mainXSize =1860;
|
%mainXSize =1860;
|
||||||
%mainySize = 1115;
|
%mainySize = 1115;
|
||||||
|
|
@ -16956,12 +16920,12 @@ function imgCycle3(%img, %count){
|
||||||
}
|
}
|
||||||
%img.yc++;
|
%img.yc++;
|
||||||
if(%img.yc < %img.y)
|
if(%img.yc < %img.y)
|
||||||
schedule(32,0,"imgCycle3",%img);
|
schedule(32,0,"imgCycle3",%img, %count);
|
||||||
else{
|
else{
|
||||||
%img.close();
|
%img.close();
|
||||||
%img.delete();
|
%img.delete();
|
||||||
deleteVariables("$textColor*");
|
deleteVariables("$textColor*");
|
||||||
error("Stats Image Done");
|
error("Stats Image Done" SPC %count);
|
||||||
genBigMapStats(%count++);
|
genBigMapStats(%count++);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -17203,7 +17167,7 @@ function renderArenaMapTextTM(%id){
|
||||||
%sizeX = 1280+20;
|
%sizeX = 1280+20;
|
||||||
%sizeY = 810;
|
%sizeY = 810;
|
||||||
|
|
||||||
%callTime = 8;
|
%callTime = 32;
|
||||||
%spaceing = 20;
|
%spaceing = 20;
|
||||||
%justLeft = 355;
|
%justLeft = 355;
|
||||||
%justLeft2 = 55;
|
%justLeft2 = 55;
|
||||||
|
|
@ -17980,7 +17944,7 @@ function renderLCTFMapTextTM(%id){
|
||||||
%sizeX = 1280+20;
|
%sizeX = 1280+20;
|
||||||
%sizeY = 810;
|
%sizeY = 810;
|
||||||
|
|
||||||
%callTime = 8;
|
%callTime = 32;
|
||||||
%spaceing = 20;
|
%spaceing = 20;
|
||||||
%justLeft = 355;
|
%justLeft = 355;
|
||||||
%justLeft2 = 55;
|
%justLeft2 = 55;
|
||||||
|
|
@ -18757,7 +18721,7 @@ function renderCTFMapTextTM(%id){
|
||||||
%sizeX = 1280+20;
|
%sizeX = 1280+20;
|
||||||
%sizeY = 1115;
|
%sizeY = 1115;
|
||||||
|
|
||||||
%callTime = 8;
|
%callTime = 32;
|
||||||
%spaceing = 20;
|
%spaceing = 20;
|
||||||
%justLeft = 355;
|
%justLeft = 355;
|
||||||
%justLeft2 = 55;
|
%justLeft2 = 55;
|
||||||
|
|
@ -19805,6 +19769,12 @@ function dtBuildMissionList(%reset){
|
||||||
}
|
}
|
||||||
else if ( getSubStr( %line, 0, 18 ) $= "// MissionTypes = " ){
|
else if ( getSubStr( %line, 0, 18 ) $= "// MissionTypes = " ){
|
||||||
%typeList = getSubStr( %line, 18, 1000 );
|
%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;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -20563,16 +20533,17 @@ function mapCyleTest(){
|
||||||
// Added custom two team debrief as well as a evo style extended stats
|
// 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
|
// 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
|
// Ban system changes
|
||||||
// Fix bad loop in ban system
|
// Fix bad loop in ban system
|
||||||
// Misc arena things
|
// Misc arena things
|
||||||
// Added LCTF Naming
|
// Added LCTF Naming
|
||||||
// serverPrefs Support
|
// serverPrefs Support
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
// bansystem rework doto new tribes next changes
|
||||||
////////////////////////////////Storage/////////////////////////////////////////
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
function testVarsRandomAll(%max){
|
function testVarsRandomAll(%max){
|
||||||
%game = Game.class;
|
%game = Game.class;
|
||||||
for(%q = 0; %q < $statsVars::count[%game]; %q++){
|
for(%q = 0; %q < $statsVars::count[%game]; %q++){
|
||||||
|
|
|
||||||
|
|
@ -459,9 +459,9 @@ function DefaultGame::createPlayer(%game, %client, %spawnLoc, %respawn)
|
||||||
if(%respawn)
|
if(%respawn)
|
||||||
{
|
{
|
||||||
%player.setInvincible(true);
|
%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.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);
|
%player.schedule($InvincibleTime * 1000, "setInvincible", false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -445,7 +445,7 @@ function ShapeBase::throwObject(%this,%obj)
|
||||||
{
|
{
|
||||||
%obj.static = false;
|
%obj.static = false;
|
||||||
// z0dd - ZOD - SquirrelOfDeath, 10/02/02. Hack for flag collision bug.
|
// 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);
|
%obj.searchSchedule = Game.schedule(10, "startFlagCollisionSearch", %obj);
|
||||||
}
|
}
|
||||||
//------------------------------------------------------------------
|
//------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ datablock AudioDescription(CloakLooping3d)
|
||||||
|
|
||||||
is3D = true;
|
is3D = true;
|
||||||
minDistance= 10.0;
|
minDistance= 10.0;
|
||||||
MaxDistance= 55.0; //Was 50
|
MaxDistance= 50.0;
|
||||||
type = $EffectAudioType;
|
type = $EffectAudioType;
|
||||||
environmentLevel = 1.0;
|
environmentLevel = 1.0;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ datablock ItemData(SensorJammerPack)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
datablock SensorData(JammerSensorObjectPassive) //v2 was commented out...
|
datablock SensorData(JammerSensorObjectPassive)
|
||||||
{
|
{
|
||||||
// same detection info as 'PlayerObject' sensorData
|
// same detection info as 'PlayerObject' sensorData
|
||||||
detects = true;
|
detects = true;
|
||||||
|
|
@ -76,7 +76,7 @@ datablock SensorData(JammerSensorObjectPassive) //v2 was commented out...
|
||||||
detectFOVPercent = 1.3;
|
detectFOVPercent = 1.3;
|
||||||
useObjectFOV = true;
|
useObjectFOV = true;
|
||||||
|
|
||||||
detectscloaked = 1; //v2
|
//detectscloaked = 1; //v2
|
||||||
|
|
||||||
jams = true;
|
jams = true;
|
||||||
jamsOnlyGroup = true;
|
jamsOnlyGroup = true;
|
||||||
|
|
@ -96,52 +96,55 @@ datablock SensorData(JammerSensorObjectActive)
|
||||||
detectFOVPercent = 1.3;
|
detectFOVPercent = 1.3;
|
||||||
useObjectFOV = true;
|
useObjectFOV = true;
|
||||||
|
|
||||||
detectscloaked = 1; //v2
|
//detectscloaked = 1; //v2
|
||||||
|
|
||||||
jams = true;
|
jams = true;
|
||||||
jamsOnlyGroup = true;
|
jamsOnlyGroup = true;
|
||||||
jamsUsingLOS = true;
|
jamsUsingLOS = true;
|
||||||
jamRadius = 45; //was 30
|
jamRadius = 30;
|
||||||
};
|
};
|
||||||
|
|
||||||
function SensorJammerPackImage::onMount(%data, %obj, %slot)
|
function SensorJammerPackImage::onMount(%data, %obj, %slot)
|
||||||
{
|
{
|
||||||
setTargetSensorData(%obj.client.target, JammerSensorObjectPassive); //v2
|
setTargetSensorData(%obj.client.target, JammerSensorObjectPassive);
|
||||||
%obj.setImageTrigger(%slot, false);
|
|
||||||
commandToClient( %obj.client, 'setSenJamIconOff' );
|
|
||||||
%obj.setJammerFX(false);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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);
|
setTargetSensorData(%obj.client.target, PlayerSensor);
|
||||||
|
%obj.setImageTrigger(%slot, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
function SensorJammerPackImage::onActivate(%data, %obj, %slot)
|
function SensorJammerPackImage::onActivate(%data, %obj, %slot)
|
||||||
{
|
{
|
||||||
messageClient(%obj.client, 'MsgSensorJammerPackOn', '\c2Sensor jammer pack on.');
|
messageClient(%obj.client, 'MsgSensorJammerPackOn', '\c2Sensor jammer pack on.');
|
||||||
setTargetSensorData(%obj.client.target, JammerSensorObjectActive);
|
setTargetSensorData(%obj.client.target, JammerSensorObjectActive);
|
||||||
|
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here
|
||||||
commandToClient( %obj.client, 'setSenJamIconOn' );
|
commandToClient( %obj.client, 'setSenJamIconOn' );
|
||||||
|
|
||||||
%obj.setJammerFX( true );
|
%obj.setJammerFX( true );
|
||||||
}
|
}
|
||||||
|
|
||||||
function SensorJammerPackImage::onDeactivate(%data, %obj, %slot)
|
function SensorJammerPackImage::onDeactivate(%data, %obj, %slot)
|
||||||
{
|
{
|
||||||
messageClient(%obj.client, 'MsgSensorJammerPackOff', '\c2Sensor jammer pack off.');
|
messageClient(%obj.client, 'MsgSensorJammerPackOff', '\c2Sensor jammer pack off.');
|
||||||
setTargetSensorData(%obj.client.target, PlayerSensor); //v2 H bug fix
|
|
||||||
%obj.setImageTrigger(%slot, false);
|
%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' );
|
commandToClient( %obj.client, 'setSenJamIconOff' );
|
||||||
|
|
||||||
%obj.setJammerFX( false );
|
%obj.setJammerFX( false );
|
||||||
}
|
}
|
||||||
|
// z0dd - ZOD, 5/18/03. Removed functions, created parent. Streamline.
|
||||||
function SensorJammerPack::onPickup(%this, %obj, %shape, %amount)
|
//function SensorJammerPack::onPickup(%this, %obj, %shape, %amount)
|
||||||
{
|
//{
|
||||||
//Nope
|
// created to prevent console errors
|
||||||
}
|
//}
|
||||||
|
|
|
||||||
|
|
@ -1085,8 +1085,8 @@ datablock ParticleData(LightPuff)
|
||||||
textureName = "particleTest";
|
textureName = "particleTest";
|
||||||
colors[0] = "0.46 0.36 0.26 0.4";
|
colors[0] = "0.46 0.36 0.26 0.4";
|
||||||
colors[1] = "0.46 0.46 0.36 0.0";
|
colors[1] = "0.46 0.46 0.36 0.0";
|
||||||
sizes[0] = 0.8; //was 0.4
|
sizes[0] = 0.4;
|
||||||
sizes[1] = 1.4; //was 1.0
|
sizes[1] = 1.0;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock ParticleEmitterData(LightPuffEmitter)
|
datablock ParticleEmitterData(LightPuffEmitter)
|
||||||
|
|
@ -1123,9 +1123,9 @@ datablock ParticleData(LiftoffDust)
|
||||||
colors[0] = "0.46 0.36 0.26 0.0";
|
colors[0] = "0.46 0.36 0.26 0.0";
|
||||||
colors[1] = "0.46 0.46 0.36 0.4";
|
colors[1] = "0.46 0.46 0.36 0.4";
|
||||||
colors[2] = "0.46 0.46 0.36 0.0";
|
colors[2] = "0.46 0.46 0.36 0.0";
|
||||||
sizes[0] = 0.6; //was 0.2
|
sizes[0] = 0.2;
|
||||||
sizes[1] = 1.0; //was 0.6
|
sizes[1] = 0.6;
|
||||||
sizes[2] = 1.4; //was 1.0
|
sizes[2] = 1.0;
|
||||||
times[0] = 0.0;
|
times[0] = 0.0;
|
||||||
times[1] = 0.5;
|
times[1] = 0.5;
|
||||||
times[2] = 1.0;
|
times[2] = 1.0;
|
||||||
|
|
@ -1765,7 +1765,7 @@ datablock PlayerData(HeavyMaleHumanArmor) : HeavyPlayerDamageProfile
|
||||||
//Value changed halfway between base and classic.
|
//Value changed halfway between base and classic.
|
||||||
//Classic is 54, Base is 75
|
//Classic is 54, Base is 75
|
||||||
//Shield breaks right at two mine-disc
|
//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;
|
rechargeRate = 0.256;
|
||||||
jetForce = 29.58 * 180;
|
jetForce = 29.58 * 180;
|
||||||
|
|
|
||||||
|
|
@ -62,21 +62,20 @@ function ShapeBaseImageData::onFire(%data, %obj, %slot)
|
||||||
{
|
{
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
|
// z0dd - ZOD, 9/3/02. Anti rapid fire mortar/missile fix.
|
||||||
// if (%obj.cantFire !$= "")
|
if (%obj.cantFire !$= "")
|
||||||
// {
|
{
|
||||||
// return 0;
|
return 0;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// %wpnName = %data.getName();
|
%wpnName = %data.getName();
|
||||||
// if((%wpnName $= "MortarImage") || (%wpnName $= "MissileLauncherImage"))
|
if((%wpnName $= "MortarImage") || (%wpnName $= "MissileLauncherImage"))
|
||||||
// {
|
{
|
||||||
// %obj.cantFire = 1;
|
%obj.cantFire = 1;
|
||||||
// %preventTime = %data.stateTimeoutValue[4];
|
%preventTime = %data.stateTimeoutValue[4];
|
||||||
// //%preventTime = (%data.stateTimeoutValue[4] + %data.stateTimeoutValue[3]) - 0.032;
|
%obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj);
|
||||||
// %obj.reloadSchedule = schedule(%preventTime * 1000, %obj, resetFire, %obj);
|
}
|
||||||
// }
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
%obj.lfireTime[%data.getName()] = getSimTime();
|
//%obj.lfireTime[%data.getName()] = getSimTime();
|
||||||
|
|
||||||
%data.lightStart = getSimTime();
|
%data.lightStart = getSimTime();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -141,16 +141,16 @@ $Host::LoadScreenColor3 = "33CCCC"; //Loading Screen color; Accents
|
||||||
$Host::LoadScreenLine1 = "Join Discord:"; //Loading screen Line 1 Topic
|
$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::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 = "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 = "Get Mappacks:"; //Loading screen Line 3 Topic
|
||||||
$Host::LoadScreenLine3_Msg = "<a:playt2.com/mappacks>playt2.com/mappacks</a>"; //Loading Screen Line 3 Message
|
$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 = "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 = "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 = "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::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::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::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)
|
$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::ClassicChatLogPath = "logs/Chat/";
|
||||||
$Host::ClassicConnectLog = 1;
|
$Host::ClassicConnectLog = 1;
|
||||||
$Host::ClassicConnLogPath = "logs/Connect/log.txt";
|
$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::ClassicMOTDLines = 3;
|
||||||
$Host::ClassicMOTDTime = 6;
|
$Host::ClassicMOTDTime = 6;
|
||||||
$Host::ClassicRotationCustom = 1;
|
$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::ClassicMaxVotes = 5; //Max a player can vote per mission
|
||||||
$Host::ClassicVoteLog = 1; //Log Votes
|
$Host::ClassicVoteLog = 1; //Log Votes
|
||||||
$Host::ClassicVoteLogPath = "logs/Vote/Vote.log"; //Vote Log location
|
$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::ServerRules1 = "1. Don\'t Llama Grab. (Grab flag slowly)";
|
||||||
$Host::ServerRules2 = " \c1keepTeamsBalanced\c4(\c2%client\c4); \c1dontSwitch2WinningTeam(\c2%client\c4); }";
|
$Host::ServerRules2 = "2. Don\'t sit on teams and AFK. Move to observer.";
|
||||||
$Host::ServerRules3 = "\c2else if\c4(\c3%client.attitude \c4$= \c5\"too_serious\"\c4) {";
|
$Host::ServerRules3 = "3. Don\'t Excessively teamkill or teamkill on purpose.";
|
||||||
$Host::ServerRules4 = " \c1try2HaveFun\c4(\c2%client, %attitude\c4); \c1thisIsPubServer\c4(\c2%client, %attitude\c4); }";
|
$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::AnimateWithTransitions = 1; //????????????? T1 engine var may or may not help timescale ?????????????
|
||||||
$Host::AllowAdmin2Admin = 0;
|
$Host::AllowAdmin2Admin = 0;
|
||||||
$Host::AllowAdminBan = 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::KickObserverTimeout = 1200; //How long player can stay in observer before being booted (1200 is 20 mins)
|
||||||
//$Host::ClassicBanlist = "prefs/banlist.cs";
|
//$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::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::ClassicTeamKillLog = 1; //Enable/Disable Teamkill Logging
|
||||||
$Host::ClassicTeamKillLogPath = "logs/TeamKills/teamkills.log"; //TeamKill Log Path
|
$Host::ClassicTeamKillLogPath = "logs/TeamKills/teamkills.log"; //TeamKill Log Path
|
||||||
$Host::ClassicDailyHardRestart = 0; //Enable/Disable Daily Hard Restart
|
$Host::ClassicDailyHardRestart = 0; //Enable/Disable Daily Hard Restart
|
||||||
|
|
|
||||||
|
|
@ -235,7 +235,7 @@ datablock HoverVehicleData(AssaultVehicle) : TankDamageProfile
|
||||||
|
|
||||||
isShielded = true;
|
isShielded = true;
|
||||||
rechargeRate = 1.0;
|
rechargeRate = 1.0;
|
||||||
energyPerDamagePoint = 142; //was 135
|
energyPerDamagePoint = 135;
|
||||||
maxEnergy = 400;
|
maxEnergy = 400;
|
||||||
minJetEnergy = 15;
|
minJetEnergy = 15;
|
||||||
jetEnergyDrain = 2.0;
|
jetEnergyDrain = 2.0;
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ datablock ItemData(FlashGrenadeThrown)
|
||||||
radiusDamageType = $DamageType::Grenade;
|
radiusDamageType = $DamageType::Grenade;
|
||||||
kickBackStrength = 1000;
|
kickBackStrength = 1000;
|
||||||
computeCRC = true;
|
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)
|
datablock ItemData(FlashGrenade)
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,37 @@
|
||||||
// Missile launcher
|
// 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
|
// Sounds
|
||||||
//--------------------------------------
|
//--------------------------------------
|
||||||
|
|
@ -10,6 +41,7 @@ datablock AudioProfile(MissileSwitchSound)
|
||||||
filename = "fx/weapons/missile_launcher_activate.wav";
|
filename = "fx/weapons/missile_launcher_activate.wav";
|
||||||
description = AudioClosest3d;
|
description = AudioClosest3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MissileSwitchEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MissileFireSound)
|
datablock AudioProfile(MissileFireSound)
|
||||||
|
|
@ -17,6 +49,7 @@ datablock AudioProfile(MissileFireSound)
|
||||||
filename = "fx/weapons/missile_fire.WAV";
|
filename = "fx/weapons/missile_fire.WAV";
|
||||||
description = AudioDefault3d;
|
description = AudioDefault3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MissileFireEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MissileProjectileSound)
|
datablock AudioProfile(MissileProjectileSound)
|
||||||
|
|
@ -45,6 +78,7 @@ datablock AudioProfile(MissileExplosionSound)
|
||||||
filename = "fx/explosions/explosion.xpl23.wav";
|
filename = "fx/explosions/explosion.xpl23.wav";
|
||||||
description = AudioBIGExplosion3d;
|
description = AudioBIGExplosion3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MissileExplosionEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MissileDryFireSound)
|
datablock AudioProfile(MissileDryFireSound)
|
||||||
|
|
@ -52,6 +86,7 @@ datablock AudioProfile(MissileDryFireSound)
|
||||||
filename = "fx/weapons/missile_launcher_dryfire.wav";
|
filename = "fx/weapons/missile_launcher_dryfire.wav";
|
||||||
description = AudioClose3d;
|
description = AudioClose3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MissileDryFireEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -727,9 +762,9 @@ datablock ShapeBaseImageData(MissileLauncherImage)
|
||||||
stateSequence[0] = "Activate";
|
stateSequence[0] = "Activate";
|
||||||
stateSound[0] = MissileSwitchSound;
|
stateSound[0] = MissileSwitchSound;
|
||||||
|
|
||||||
stateName[1] = "ActivateReady";
|
stateName[1] = "ActivateReady";
|
||||||
stateTransitionOnAmmo[1] = "Ready";
|
stateTransitionOnLoaded[1] = "Ready";
|
||||||
stateTransitionOnNoAmmo[1] = "FirstLoad";
|
stateTransitionOnNoAmmo[1] = "NoAmmo";
|
||||||
|
|
||||||
stateName[2] = "Ready";
|
stateName[2] = "Ready";
|
||||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||||
|
|
@ -792,9 +827,6 @@ datablock ShapeBaseImageData(MissileLauncherImage)
|
||||||
stateSequence[10] = "Fire";
|
stateSequence[10] = "Fire";
|
||||||
stateScript[10] = "onDumbFire";
|
stateScript[10] = "onDumbFire";
|
||||||
stateSound[10] = MissileFireSound;
|
stateSound[10] = MissileFireSound;
|
||||||
|
|
||||||
stateName[11] = "FirstLoad";
|
|
||||||
stateTransitionOnAmmo[11] = "Ready";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function MissileLauncherImage::onDumbFire(%data,%obj,%slot)
|
function MissileLauncherImage::onDumbFire(%data,%obj,%slot)
|
||||||
|
|
@ -815,42 +847,3 @@ function MissileLauncherImage::onDumbFire(%data,%obj,%slot)
|
||||||
%obj.decInventory(%data.ammo, 1);
|
%obj.decInventory(%data.ammo, 1);
|
||||||
return %p;
|
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);
|
|
||||||
}
|
|
||||||
|
|
@ -2,6 +2,44 @@
|
||||||
// Mortar
|
// 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
|
// Sounds
|
||||||
//--------------------------------------
|
//--------------------------------------
|
||||||
|
|
@ -10,6 +48,7 @@ datablock AudioProfile(MortarSwitchSound)
|
||||||
filename = "fx/weapons/mortar_activate.wav";
|
filename = "fx/weapons/mortar_activate.wav";
|
||||||
description = AudioClosest3d;
|
description = AudioClosest3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MortarSwitchEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MortarReloadSound)
|
datablock AudioProfile(MortarReloadSound)
|
||||||
|
|
@ -17,6 +56,7 @@ datablock AudioProfile(MortarReloadSound)
|
||||||
filename = "fx/weapons/mortar_reload.wav";
|
filename = "fx/weapons/mortar_reload.wav";
|
||||||
description = AudioClosest3d;
|
description = AudioClosest3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MortarReloadEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MortarIdleSound)
|
datablock AudioProfile(MortarIdleSound)
|
||||||
|
|
@ -25,6 +65,7 @@ datablock AudioProfile(MortarIdleSound)
|
||||||
filename = "fx/weapons/plasma_rifle_idle.wav";
|
filename = "fx/weapons/plasma_rifle_idle.wav";
|
||||||
description = ClosestLooping3d;
|
description = ClosestLooping3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = PlasmaIdleEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MortarFireSound)
|
datablock AudioProfile(MortarFireSound)
|
||||||
|
|
@ -32,6 +73,7 @@ datablock AudioProfile(MortarFireSound)
|
||||||
filename = "fx/weapons/mortar_fire.wav";
|
filename = "fx/weapons/mortar_fire.wav";
|
||||||
description = AudioDefault3d;
|
description = AudioDefault3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MortarFireEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MortarProjectileSound)
|
datablock AudioProfile(MortarProjectileSound)
|
||||||
|
|
@ -46,6 +88,7 @@ datablock AudioProfile(MortarExplosionSound)
|
||||||
filename = "fx/weapons/mortar_explode.wav";
|
filename = "fx/weapons/mortar_explode.wav";
|
||||||
description = AudioBIGExplosion3d;
|
description = AudioBIGExplosion3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MortarExplosionEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(UnderwaterMortarExplosionSound)
|
datablock AudioProfile(UnderwaterMortarExplosionSound)
|
||||||
|
|
@ -53,6 +96,7 @@ datablock AudioProfile(UnderwaterMortarExplosionSound)
|
||||||
filename = "fx/weapons/mortar_explode_UW.wav";
|
filename = "fx/weapons/mortar_explode_UW.wav";
|
||||||
description = AudioBIGExplosion3d;
|
description = AudioBIGExplosion3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MortarExplosionEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
datablock AudioProfile(MortarDryFireSound)
|
datablock AudioProfile(MortarDryFireSound)
|
||||||
|
|
@ -60,6 +104,7 @@ datablock AudioProfile(MortarDryFireSound)
|
||||||
filename = "fx/weapons/mortar_dryfire.wav";
|
filename = "fx/weapons/mortar_dryfire.wav";
|
||||||
description = AudioClose3d;
|
description = AudioClose3d;
|
||||||
preload = true;
|
preload = true;
|
||||||
|
effect = MortarDryFireEffect;
|
||||||
};
|
};
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
@ -740,8 +785,8 @@ datablock ShapeBaseImageData(MortarImage)
|
||||||
stateSound[0] = MortarSwitchSound;
|
stateSound[0] = MortarSwitchSound;
|
||||||
|
|
||||||
stateName[1] = "ActivateReady";
|
stateName[1] = "ActivateReady";
|
||||||
stateTransitionOnAmmo[1] = "Ready";
|
stateTransitionOnLoaded[1] = "Ready";
|
||||||
stateTransitionOnNoAmmo[1] = "FirstLoad";
|
stateTransitionOnNoAmmo[1] = "NoAmmo";
|
||||||
|
|
||||||
stateName[2] = "Ready";
|
stateName[2] = "Ready";
|
||||||
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
stateTransitionOnNoAmmo[2] = "NoAmmo";
|
||||||
|
|
@ -775,50 +820,4 @@ datablock ShapeBaseImageData(MortarImage)
|
||||||
stateSound[6] = MortarDryFireSound;
|
stateSound[6] = MortarDryFireSound;
|
||||||
stateTimeoutValue[6] = 1.5;
|
stateTimeoutValue[6] = 1.5;
|
||||||
stateTransitionOnTimeout[6] = "NoAmmo";
|
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);
|
|
||||||
}
|
|
||||||
27
README.md
27
README.md
|
|
@ -1,4 +1,4 @@
|
||||||

|

|
||||||
|
|
||||||
# TacoServer
|
# TacoServer
|
||||||
## A Tribes 2 server with competitive features that is also open-source.
|
## 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
|
### Important Gameplay Changes over stock classic
|
||||||
- OG blaster buffed for Heavy Armors
|
- OG blaster buffed against Heavy Armors (Not Tournament Mode Only)
|
||||||
- No Vehicle Zone around flag is bigger 5 >> 15
|
|
||||||
- Heavy Shield Nerfed (54 to block 1 DMG, is now 60)
|
|
||||||
- Max FOV 120 >> 138 (For Wide Screens)
|
- Max FOV 120 >> 138 (For Wide Screens)
|
||||||
- Item respawn time can be changed (default 30)
|
- Item respawn time can be changed (Optional)
|
||||||
- Cloak Sound 50m >> 55m
|
- All water viscosity follows a global preset (3)
|
||||||
- Bigger ground dust puffs (For cloak) 0.4 larger
|
- <del>No Vehicle Zone around flag is bigger 5 >> 15</del>
|
||||||
- Sensor Jammer jam radius is buffed to jam cloaks 30 >> 45
|
- <del>Heavy Shield Nerfed (54 to block 1 DMG, is now 60)</del>
|
||||||
- Sensor Jammer can passively see cloaker's triangle
|
- <del>Cloak Sound 50m >> 55m</del>
|
||||||
- Mortor reload rework (Player can throw, but must wait until reload time has passed)
|
- <del>Bigger ground dust puffs (For cloak) 0.4 larger</del>
|
||||||
- Tank Shield Nerf (135 to block 1 DMG, is now 142)
|
- <del>Sensor Jammer jam radius is buffed to jam cloaks 30 >> 45</del>
|
||||||
- Whiteout grenades are less seizurely (Due to spamming) 0.9 >> 0.78
|
- <del>Sensor Jammer can passively see cloaker's triangle</del>
|
||||||
- All water viscosity follows a global preset
|
- <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>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue