NoEvo Redo

This commit is contained in:
ChocoTaco 2020-03-23 16:23:42 -04:00
parent b84ddd8859
commit facba6d9cd
36 changed files with 6686 additions and 2425 deletions

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,538 @@
// __ __ _____ _ _ _
// | \/ | | __ \ | | | | (_)
// | \ / | __ _ _ __ | |__) |___ | |_ __ _| |_ _ ___ _ __
// | |\/| |/ _` | '_ \ | _ // _ \| __/ _` | __| |/ _ \| '_ \
// | | | | (_| | |_) | | | \ \ (_) | || (_| | |_| | (_) | | | |
// |_| |_|\__,_| .__/ |_| \_\___/ \__\__,_|\__|_|\___/|_| |_|
// | |
// |_|
//
// 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,12);
addRotationMap("TWL2_CanyonCrusadeDeluxe", "CTF",1,1,-1,12);
addRotationMap("RoundTheMountain", "CTF",1,1,-1,14);
addRotationMap("oasisintensity", "CTF",1,1,-1,12);
addRotationMap("Minotaur", "CTF",1,0,-1,12);
//addRotationMap("Island", "CTF",1,1,-1,12);
//addRotationMap("TitForTat", "CTF",1,1,-1,12);
addRotationMap("SmallMelee", "CTF",1,0,-1,12);
//addRotationMap("SuperHappyBouncyFunTime", "CTF",1,1,-1,12);
addRotationMap("Machineeggs", "CTF",1,1,-1,12);
addRotationMap("Mac_FlagArena", "CTF",1,0,-1,12);
addRotationMap("SmallTimeCTF", "CTF",1,1,-1,10);
addRotationMap("TWL2_Hildebrand", "CTF",1,1,-1,12);
addRotationMap("ArenaDome", "CTF",1,1,-1,12);
addRotationMap("Firestorm", "CTF",1,1,-1,12);
addRotationMap("Bulwark", "CTF",1,1,-1,12);
//Medium Maps
/////////////////////////////////////////////////////////////////////
addRotationMap("HighOctane", "CTF",1,1,8,20);
addRotationMap("S5_Mordacity", "CTF",1,1,10,20);
addRotationMap("S5_Damnation", "CTF",1,1,8,20);
addRotationMap("TWL2_JaggedClaw", "CTF",1,0,8,20);
addRotationMap("S5_Massive", "CTF",1,1,8,20);
addRotationMap("TWL_Stonehenge", "CTF",1,1,8,20);
addRotationMap("TWL_Feign", "CTF",1,0,8,20);
addRotationMap("TheFray", "CTF",1,1,8,20);
addRotationMap("DangerousCrossing_nef", "CTF",1,1,8,20);
addRotationMap("TWL2_Skylight", "CTF",1,0,8,20);
addRotationMap("TWL2_Ocular", "CTF",1,1,12,20);
addRotationMap("Dire", "CTF",1,1,8,20);
addRotationMap("berlard", "CTF",1,1,8,20);
addRotationMap("S8_Opus", "CTF",1,0,8,20);
addRotationMap("BeggarsRun", "CTF",1,0,8,20);
addRotationMap("Headstone", "CTF",1,0,8,20);
addRotationMap("Signal", "CTF",1,1,8,20);
addRotationMap("S5_Woodymyrk", "CTF",1,1,8,20);
addRotationMap("Discord", "CTF",1,1,8,20);
addRotationMap("TenebrousCTF", "CTF",1,1,8,20);
addRotationMap("Pariah", "CTF",1,0,8,20);
addRotationMap("Prismatic", "CTF",1,0,8,20);
addRotationMap("TWL_WilderZone", "CTF",1,1,8,20);
addRotationMap("Mirage", "CTF",1,1,8,20);
addRotationMap("S5_Mimicry", "CTF",1,1,10,20);
addRotationMap("TWL_Snowblind", "CTF",1,0,12,20);
addRotationMap("ShortFall", "CTF",1,0,8,20);
addRotationMap("IceRidge_nef", "CTF",1,0,8,20);
//addRotationMap(Disjointed", "CTF",1,1,8,20);
addRotationMap("TWL2_MuddySwamp", "CTF",1,0,8,20);
addRotationMap("Blink", "CTF",1,1,8,20);
addRotationMap("HighAnxiety", "CTF",1,0,8,20);
addRotationMap("S5_Centaur", "CTF",1,0,8,20);
addRotationMap("S8_Cardiac", "CTF",1,1,12,24);
addRotationMap("CirclesEdge", "CTF",1,1,10,20);
addRotationMap("S5_Icedance", "CTF",1,1,8,20);
addRotationMap("Surreal", "CTF",1,1,8,20);
//Voteable but Not in Rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap("Snowcone", "CTF",1,0,10,20);
//addRotationMap("S5_Drache", "CTF",1,0,10,20);
//addRotationMap("S5_HawkingHeat", "CTF",1,0,10,20);
//addRotationMap("JadeValley", "CTF",1,0,10,20);
//addRotationMap("S5_Sherman", "CTF",1,0,10,20);
addRotationMap("S5_Silenus", "CTF",1,0,8,20);
addRotationMap("TWL2_FrozenHope", "CTF",1,0,8,20);
//addRotationMap("TWL2_IceDagger", "CTF",1,0,10,20);
//addRotationMap("S5_Reynard", "CTF",1,0,10,20);
//addRotationMap("TWL_Cinereous", "CTF",1,0,10,20);
//addRotationMap("TWL_OsIris, CTF", "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,10,20);
addRotationMap("TWL_Titan", "CTF",1,0,10,20);
addRotationMap("Confusco", "CTF",1,0,10,20);
//addRotationMap("Fallout", "CTF",1,0,10,20);
addRotationMap("TheClocktower", "CTF",1,0,10,20);
//addRotationMap("oylentGreen", "CTF",1,0,10,20);
addRotationMap("TWL2_MidnightMayhemDeluxe", "CTF",1,0,8,20);
addRotationMap("Nightdance", "CTF",1,0,10,20);
//addRotationMap("Ramparts", "CTF",1,0,10,20);
addRotationMap("TWL2_Celerity", "CTF",1,0,8,20);
addRotationMap("Blastside_nef", "CTF",1,0,10,20);
addRotationMap("Infernus", "CTF",1,0,10,20);
addRotationMap("NatureMagic", "CTF",1,0,10,20);
//addRotationMap(TWL_Damnation", "CTF",1,0,10,20);
//addRotationMap(TWL_DangerousCrossing", "CTF",1,0,10,20);
//addRotationMap(TWL_DeadlyBirdsSong", "CTF",1,0,10,20);
addRotationMap("Vauban", "CTF",1,0,12,20);
//Vehicle Maps
/////////////////////////////////////////////////////////////////////
addRotationMap("HostileLoch", "CTF",1,1,12,20);
addRotationMap("TWL_BeachBlitz", "CTF",1,0,12,20);
addRotationMap("TWL2_Magnum", "CTF",1,1,12,20);
addRotationMap("Logans_Run", "CTF",1,1,12,20);
addRotationMap("Rollercoaster_nef", "CTF",1,1,12,24);
addRotationMap("MoonDance", "CTF",1,1,12,24);
addRotationMap("Raindance_nef", "CTF",1,1,12,20);
addRotationMap("TWL_Magmatic", "CTF",1,1,12,20);
addRotationMap("TWL2_FrozenGlory", "CTF",1,1,12,20);
addRotationMap("LandingParty", "CTF",1,1,12,20);
addRotationMap("TitanV", "CTF",1,0,12,20);
addRotationMap("TWL_Crossfire", "CTF",1,1,12,20);
//addRotationMap("Surro", "CTF",1,0,12,20);
//addRotationMap("The_Calm", "CTF",1,0,12,20);
//Vehicle Maps: Voteable, But Not in Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("SubZeroV", "CTF",1,0,12,20);
//addRotationMap("TWL2_RoughLand", "CTF",1,0,12,20);
addRotationMap("S8_Geothermal", "CTF",1,0,12,20);
addRotationMap("Lakefront", "CTF",1,0,12,20);
addRotationMap("ShockRidge", "CTF",1,0,12,20);
addRotationMap("TWL2_BlueMoon", "CTF",1,0,12,20);
addRotationMap("FullCircle", "CTF",1,0,12,20);
addRotationMap("TWL_Katabatic", "CTF",1,0,12,20);
addRotationMap("TWL_Starfallen", "CTF",1,0,12,20);
addRotationMap("ConstructionYard", "CTF",1,0,12,20);
//addRotationMap("AcidRain", "CTF",1,0,12,20);
addRotationMap("SandOcean", "CTF",1,0,12,20);
//addRotationMap("StarIce", "CTF",1,0,12,20);
addRotationMap("ks_braistv", "CTF",1,0,12,20);
addRotationMap("FilteredDust", "CTF",1,0,12,20);
//addRotationMap("Choke", "CTF",1,0,12,20);
//addRotationMap("TWL2_Ruined", "CTF",1,0,12,20);
//addRotationMap("TWL_Chokepoint", "CTF",1,0,12,20);
//addRotationMap("Glade", "CTF",1,0,12,20);
//BIG Vehicle Maps
/////////////////////////////////////////////////////////////////////
addRotationMap("HarvestDance", "CTF",1,1,18,32);
addRotationMap("WindyGap", "CTF",1,1,20,32);
addRotationMap("Fenix", "CTF",1,1,24,32);
addRotationMap("Hillside", "CTF",1,1,20,32);
//addRotationMap("Sangre_de_Grado", "CTF",1,0,20,32);
addRotationMap("Slapdash", "CTF",1,0,20,32);
addRotationMap("BerylBasin", "CTF",1,0,18,32);
//addRotationMap("TWL_Frozen", "CTF",1,0,20,32);
addRotationMap("TWL_Harvester", "CTF",1,0,20,32);
addRotationMap("Archipelago", "CTF",1,0,20,32);
addRotationMap("TWL2_Bleed", "CTF",1,0,20,32);
//addRotationMap("Pantheon", "CTF",1,0,20,32);
addRotationMap("Circleofstones", "CTF",1,1,20,32);
addRotationMap("Scarabrae_nef", "CTF",1,0,20,32);
//Not In Rotation - Not Voteable
/////////////////////////////////////////////////////////////////////
//addRotationMap("Sandstorm", "CTF",1,0,-1,32);
//addRotationMap("Starfallen", "CTF",1,0,-1,32);
//addRotationMap("Stonehenge_nef", "CTF",1,0,-1,32);
//addRotationMap("Extractor", "CTF",1,0,-1,32);
//addRotationMap("AstersDescent", "CTF",1,0,-1,32);
//addRotationMap("Azoth", "CTF",1,0,-1,32);
//addRotationMap("BattleGrove", "CTF",1,0,-1,32);
//addRotationMap("Durango", "CTF",1,0,-1,32);
//addRotationMap("DustLust", "CTF",1,0,-1,32);
//addRotationMap("IceGulch", "CTF",1,0,-1,32);
//addRotationMap("MountainMist", "CTF",1,0,-1,32);
//addRotationMap("Peak", "CTF",1,0,-1,32);
//addRotationMap("Pendulum", "CTF",1,0,-1,32);
//addRotationMap("S5_Misadventure", "CTF",1,0,-1,32);
//addRotationMap("S8_CentralDogma", "CTF",1,0,-1,32);
//addRotationMap("S8_Mountking", "CTF",1,0,-1,32);
//addRotationMap("S8_Zilch", "CTF",1,0,-1,32);
//addRotationMap("TWL2_CloakOfNight", "CTF",1,0,-1,32);
//addRotationMap("TWL2_Dissention", "CTF",1,0,-1,32);
//addRotationMap("TWL2_Drifts", "CTF",1,0,-1,32);
//addRotationMap("TWL2_Drorck", "CTF",1,0,-1,32);
//addRotationMap("TWL2_Norty", "CTF",1,0,-1,32);
//addRotationMap("TWL_Abaddon", "CTF",1,0,-1,32);
//addRotationMap("TWL_BaNsHee", "CTF",1,0,-1,32);
//addRotationMap("TWL_Boss", "CTF",1,0,-1,32);
//addRotationMap("TWL_NoShelter", "CTF",1,0,-1,32);
//addRotationMap("TWL_Clusterfuct", "CTF",1,0,-1,32);
//addRotationMap("TWL_Curtilage", "CTF",1,0,-1,32);
//addRotationMap("TWL_Deserted", "CTF",1,0,-1,32);
//addRotationMap("TWL_Frostclaw", "CTF",1,0,-1,32);
//addRotationMap("TWL_Horde", "CTF",1,0,-1,32);
//addRotationMap("TWL_Neve", "CTF",1,0,-1,32);
//addRotationMap("TWL_Pandemonium", "CTF",1,0,-1,32);
//addRotationMap("TWL_Ramparts", "CTF",1,0,-1,32);
//addRotationMap("TWL_Sandstorm", "CTF",1,0,-1,32);
//addRotationMap("TWL_WoodyMyrk", "CTF",1,0,-1,32);
//addRotationMap("OctoberRust", "CTF",1,0,-1,32);
//addRotationMap("DevilsElbow", "CTF",1,0,-1,32);
//addRotationMap("CloudCity", "CTF",1,0,-1,32);
//addRotationMap("Damnation", "CTF",1,0,-1,32);
//addRotationMap("DeathBirdsFly", "CTF",1,0,-1,32);
//addRotationMap("Desiccator", "CTF",1,0,-1,32);
//addRotationMap("DustToDust", "CTF",1,0,-1,32);
//addRotationMap("Katabatic", "CTF",1,0,-1,32);
//addRotationMap("Quagmire", "CTF",1,0,-1,32);
//addRotationMap("Recalescence", "CTF",1,0,-1,32);
//addRotationMap("Reversion", "CTF",1,0,-1,32);
//addRotationMap("RiverDance", "CTF",1,0,-1,32);
//addRotationMap("Sanctuary", "CTF",1,0,-1,32);
//addRotationMap("ThinIce", "CTF",1,0,-1,32);
//addRotationMap("Tombstone", "CTF",1,0,-1,32);
//addRotationMap("Broadside_nef", "CTF",1,0,-1,32);
//addRotationMap("Camelland", "CTF",1,0,-1,32);
//addRotationMap("HighTrepidation", "CTF",1,0,-1,32);
//addRotationMap("SmallDesertofDeath", "CTF",1,0,-1,32);
//addRotationMap("Agorazscium", "CTF",1,0,-1,32);
//addRotationMap("BasinFury", "CTF",1,0,-1,32);
//addRotationMap("Cadaver", "CTF",1,0,-1,32);
//addRotationMap("EivoItoxico", "CTF",1,0,-1,32);
//addRotationMap("Einfach", "CTF",1,0,-1,32);
//addRotationMap("PicnicTable", "CTF",1,0,-1,32);
//addRotationMap("Hostility", "CTF",1,0,-1,32);
//addRotationMap("HighWire", "CTF",1,0,-1,32);
//addRotationMap("CloudBurst", "CTF",1,0,-1,32);
//addRotationMap("CloseCombat", "CTF",1,0,-1,32);
//addRotationMap("DesertofDeath_nef", "CTF",1,0,-1,32);
//addRotationMap("Gorgon", "CTF",1,0,-1,32);
//addRotationMap("Magamatic", "CTF",1,0,-1,32);
//addRotationMap("Sub-zero", "CTF",1,0,-1,32);
// _ _ _ _ _ _
// | | | | | | | | (_) |
// | | __ _| | ___ __ __ _| |__ | |__ _| |_
// | | / _` | |/ / '__/ _` | '_ \| '_ \| | __|
// | |___| (_| | <| | | (_| | |_) | |_) | | |_
// |______\__,_|_|\_\_| \__,_|_.__/|_.__/|_|\__|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("VaubanLak", "Lakrabbit",1,1,-1,32);
addRotationMap("MiniSunDried", "Lakrabbit",1,1,-1,12);
addRotationMap("Sundance", "Lakrabbit",1,1,-1,32);
addRotationMap("TWL_BeachBlitzLak", "Lakrabbit",1,1,-1,32);
addRotationMap("DesertofDeathLak", "Lakrabbit",1,1,-1,32);
addRotationMap("Raindance_nefLak", "Lakrabbit",1,1,-1,32);
addRotationMap("SunDriedLak", "Lakrabbit",1,1,-1,32);
addRotationMap("SkinnyDipLak", "Lakrabbit",1,1,-1,32);
addRotationMap("SaddiesHill", "Lakrabbit",1,1,-1,32);
addRotationMap("HavenLak", "Lakrabbit",1,0,-1,32);
addRotationMap("LushLak", "Lakrabbit",1,1,-1,32);
addRotationMap("BoxLak", "Lakrabbit",1,1,-1,10);
addRotationMap("TitaniaLak", "Lakrabbit",1,0,8,32);
addRotationMap("TibbawLak", "Lakrabbit",1,1,-1,32);
addRotationMap("InfernusLak", "Lakrabbit",1,1,-1,32);
addRotationMap("S8_GeothermalLak", "Lakrabbit",1,1,-1,32);
addRotationMap("CankerLak", "Lakrabbit",1,1,-1,32);
addRotationMap("DustRunLak", "Lakrabbit",1,1,-1,32);
addRotationMap("CrossfiredLak", "Lakrabbit",1,0,-1,32);
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("TreasureIslandLak", "Lakrabbit",1,0,-1,32);
addRotationMap("Sulfide", "Lakrabbit",1,0,-1,32);
addRotationMap("FrozenFuryLak", "Lakrabbit",1,0,-1,32);
addRotationMap("Arrakis", "Lakrabbit",1,0,-1,32);
addRotationMap("EquinoxLak", "Lakrabbit",1,0,-1,32);
addRotationMap("PhasmaDustLak", "Lakrabbit",1,1,-1,12);
addRotationMap("GodsRiftLak", "Lakrabbit",1,0,-1,32);
addRotationMap("SolsDescentLak", "Lakrabbit",1,0,-1,32);
addRotationMap("Crater71Lak", "Lakrabbit",1,0,-1,32);
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap("EscaladeLak", "Lakrabbit",1,0,-1,32);
//addRotationMap("MagmaticLak", "Lakrabbit",1,0,-1,32);
//addRotationMap("HillsOfSorrow", "Lakrabbit",1,0,-1,32);
//addRotationMap("TWL2_MuddySwampLak", "Lakrabbit",1,0,-1,32);
//addRotationMap("SandStormLak", "Lakrabbit",1,0,-1,32);
//addRotationMap("BeggarsRunLak", "Lakrabbit",1,0,-1,32);
//addRotationMap("DamnnationLak", "Lakrabbit",1,0,-1,32);
// _ _____ _______ ______
// | | / ____|__ __| ____|
// | | | | | | | |__
// | | | | | | | __|
// | |___| |____ | | | |
// |______\_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("BastardForgeLT", "sctf",1,1,-1,32);
//addRotationMap("FirestormLT", "sctf",1,1,-1,32);
addRotationMap("DangerousCrossingLT", "sctf",1,1,-1,32);
addRotationMap("SmallCrossingLT", "sctf",1,0,-1,12);
addRotationMap("DireLT", "sctf",1,1,-1,32);
addRotationMap("RoundTheMountainLT", "sctf",1,1,-1,32);
addRotationMap("CirclesEdgeLT", "sctf",1,1,-1,32);
addRotationMap("TenebrousCTF", "sctf",1,1,-1,32);
addRotationMap("TheFray", "sctf",1,0,-1,32);
addRotationMap("SignalLT", "sctf",1,1,-1,32);
addRotationMap("StarFallLT", "sctf",1,1,-1,32);
addRotationMap("S5_DamnationLT", "sctf",1,1,-1,32);
addRotationMap("S5_Icedance", "sctf",1,1,-1,32);
addRotationMap("S5_Mordacity", "sctf",1,1,-1,32);
addRotationMap("S5_SilenusLT", "sctf",1,0,-1,32);
addRotationMap("TWL2_CanyonCrusadeDeluxeLT", "sctf",1,1,-1,32);
addRotationMap("TWL2_FrozenHopeLT", "sctf",1,1,-1,32);
//addRotationMap("TWL2_JaggedClawLT", "sctf",1,1,-1,32);
addRotationMap("TWL2_HildebrandLT", "sctf",1,1,-1,32);
addRotationMap("TWL2_SkylightLT", "sctf",1,1,-1,32);
//addRotationMap("TWL_BeachBlitzLT", "sctf",1,1,-1,32);
addRotationMap("TWL_FeignLT", "sctf",1,0,-1,32);
addRotationMap("TWL_RollercoasterLT", "sctf",1,1,-1,32);
addRotationMap("TWL_StonehengeLT", "sctf",1,1,-1,32);
addRotationMap("TWL_WilderZoneLT", "sctf",1,1,-1,32);
addRotationMap("oasisintensity", "sctf",1,1,-1,10);
addRotationMap("berlard", "sctf",1,0,-1,32);
addRotationMap("RaindanceLT", "sctf",1,1,-1,32);
addRotationMap("SmallTimeLT", "sctf",1,0,-1,32);
addRotationMap("ArenaDome", "sctf",1,1,-1,32);
addRotationMap("Bulwark", "sctf",1,1,-1,32);
addRotationMap("Discord", "sctf",1,1,-1,32);
//addRotationMap("JadeValley", "sctf",1,1,-1,32);
addRotationMap("S5_MassiveLT", "sctf",1,1,-1,32);
addRotationMap("Blink", "sctf",1,1,-1,32);
addRotationMap("HillSideLT", "sctf",1,1,-1,12);
addRotationMap("IcePick", "sctf",1,1,-1,16);
addRotationMap("OsIrisLT", "sctf",1,1,-1,32);
addRotationMap("GrassyKnoll", "sctf",1,1,-1,32);
addRotationMap("TWL2_MuddySwamp", "sctf",1,1,8,32);
addRotationMap("SandyRunLT", "sctf",1,1,-1,12);
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
addRotationMap("CamellandLT", "sctf",1,1,-1,32);
//addRotationMap("Headstone", "sctf",1,0,-1,32);
//addRotationMap("Mirage", "sctf",1,0,-1,32);
addRotationMap("BeggarsRunLT", "sctf",1,0,-1,32);
//addRotationMap("S5_HawkingHeat", "sctf",1,0,-1,32);
//addRotationMap("S5_Mimicry", "sctf",1,0,-1,32);
addRotationMap("S5_Woodymyrk", "sctf",1,0,-1,32);
//addRotationMap("S8_Cardiac", "sctf",1,0,-1,32);
//addRotationMap("TWL2_Celerity", "sctf",1,0,-1,32);
//addRotationMap("TWL2_Crevice", "sctf",1,0,-1,32);
addRotationMap("S8_Opus", "sctf",1,0,-1,32);
//addRotationMap("TWL2_MidnightMayhemDeluxe", "sctf",1,0,-1,32);
//addRotationMap("TWL2_Ocular", "sctf",1,0,-1,32);
//addRotationMap("TWL_Cinereous", "sctf",1,0,-1,32);
//addRotationMap("TWL_Deserted", "sctf",1,0,-1,32);
addRotationMap("TWL_DangerousCrossing", "sctf",1,0,-1,32);
//addRotationMap("TWL_OsIris", "sctf",1,0,-1,32);
//addRotationMap("TWL_Damnation", "sctf",1,0,-1,32);
//addRotationMap("TWL_Titan", "sctf",1,0,-1,32);
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap("SurrealLT", "sctf",1,1,-1,32);
//addRotationMap("Coppersky", "sctf",1,1,-1,32);
addRotationMap("DuelersDelight", "sctf",1,0,-1,12);
//addRotationMap("SuperHappyBouncyFunTime", "sctf",1,1,-1,32);
addRotationMap("PariahLT", "sctf",1,1,-1,16);
//addRotationMap("SmallMelee", "sctf",1,1,-1,32);
//addRotationMap("TitForTat", "sctf",1,1,-1,32);
//addRotationMap("CloseCombatLT", "sctf",1,1,-1,32);
//addRotationMap("Prismatic", "sctf",1,1,-1,32);
//addRotationMap("Damnation", "sctf",1,1,-1,32);
//addRotationMap("DustToDust", "sctf",1,1,-1,32);
//addRotationMap("Minotaur", "sctf",1,1,-1,32);
//addRotationMap("DesertofDeath_nef", "sctf",1,1,-1,32);
//addRotationMap("Gorgon", "sctf",1,1,-1,32);
//addRotationMap("Titan", "sctf",1,1,-1,32);
//addRotationMap("Mac_FlagArena", "sctf",1,1,-1,32);
//addRotationMap("Extractor", "sctf",1,1,-1,32);
//addRotationMap("AstersDescent", "sctf",1,1,-1,32);
//addRotationMap("Azoth", "sctf",1,1,-1,32);
//addRotationMap("DustLust", "sctf",1,1,-1,32);
//addRotationMap("Disjointed", "sctf",1,1,-1,32);
//addRotationMap("Peak", "sctf",1,1,-1,32);
//addRotationMap("Snowcone", "sctf",1,1,-1,32);
//addRotationMap("S5_Centaur", "sctf",1,1,-1,32);
//addRotationMap("S5_Drache", "sctf",1,1,-1,32);
//addRotationMap("S5_Misadventure", "sctf",1,1,-1,32);
//addRotationMap("S5_Reynard", "sctf",1,1,-1,32);
//addRotationMap("S5_Sherman", "sctf",1,1,-1,32);
//addRotationMap("S8_Geothermal", "sctf",1,1,-1,32);
//addRotationMap("S8_Zilch", "sctf",1,1,-1,32);
//addRotationMap("TWL2_Drifts", "sctf",1,1,-1,32);
//addRotationMap("TWL2_Drorck", "sctf",1,1,-1,32);
//addRotationMap("TWL2_FrozenGlory", "sctf",1,1,-1,32);
//addRotationMap("TWL2_IceDagger", "sctf",1,1,-1,32);
//addRotationMap("TWL2_Norty", "sctf",1,1,-1,32);
//addRotationMap("TWL2_RoughLand", "sctf",1,1,-1,32);
//addRotationMap("TWL2_Ruined", "sctf",1,1,-1,32);
//addRotationMap("TWL_BaNsHee", "sctf",1,1,-1,32);
//addRotationMap("TWL_Boss", "sctf",1,1,-1,32);
//addRotationMap("TWL_Crossfire", "sctf",1,1,-1,32);
//addRotationMap("TWL_NoShelter", "sctf",1,1,-1,32);
//addRotationMap("TWL_Clusterfuct", "sctf",1,1,-1,32);
//addRotationMap("TWL_Curtilage", "sctf",1,1,-1,32);
//addRotationMap("TWL_DeadlyBirdsSong", "sctf",1,1,-1,32);
//addRotationMap("TWL_Frostclaw", "sctf",1,1,-1,32);
//addRotationMap("TWL_Magamatic", "sctf",1,1,-1,32);
//addRotationMap("TWL_Neve", "sctf",1,1,-1,32);
//addRotationMap("TWL_Pandemonium", "sctf",1,1,-1,32);
//addRotationMap("TWL_Ramparts", "sctf",1,1,-1,32);
//addRotationMap("DehSwamp", "sctf",1,1,-1,32);
//addRotationMap("HostileLoch", "sctf",1,1,-1,32);
//addRotationMap("DevilsElbow", "sctf",1,1,-1,32);
//addRotationMap("SmallDesertofDeath", "sctf",1,1,-1,32);
//addRotationMap("ShortFall", "sctf",1,1,-1,32);
//addRotationMap("Fallout", "sctf",1,1,-1,32);
//addRotationMap("SoylentGreen", "sctf",1,1,-1,32);
//addRotationMap("Island", "sctf",1,1,-1,32);
//addRotationMap("HighOctane", "sctf",1,1,-1,32);
// _____ _ _ _ _
// | __ \ | | | | | | | |
// | | | | ___ __ _| |_| |__ _ __ ___ __ _| |_ ___| |__
// | | | |/ _ \/ _` | __| '_ \| '_ ` _ \ / _` | __/ __| '_ \
// | |__| | __/ (_| | |_| | | | | | | | | (_| | || (__| | | |
// |_____/ \___|\__,_|\__|_| |_|_| |_| |_|\__,_|\__\___|_| |_|
/////////////////////////////////////////////////////////////////////
addRotationMap("RaspDM", "DM",1,1,8,32);
addRotationMap("EntombedDM", "DM",1,1,-1,32);
addRotationMap("IceDomeDM", "DM",1,1,-1,32);
addRotationMap("HoofToeDM", "DM",1,1,6,32);
addRotationMap("ArenaDomeDM", "DM",1,1,-1,32);
addRotationMap("VulcansWrathDM", "DM",1,1,-1,32);
addRotationMap("RampartsDM", "DM",1,1,-1,32);
addRotationMap("ShrineDM", "DM",1,1,-1,12);
addRotationMap("LiveBaitDM", "DM",1,1,-1,32);
addRotationMap("FourSquareDM", "DM",1,1,-1,10);
addRotationMap("BrigDM", "DM",1,1,-1,8);
// _____ _
// | __ \ | |
// | | | |_ _ ___| |
// | | | | | | |/ _ \ |
// | |__| | |_| | __/ |
// |_____/ \__,_|\___|_|
/////////////////////////////////////////////////////////////////////
//addRotationMap("AgentsOfFortune", "Duel",1,1,-1,32);
//addRotationMap("Casern_Cavite", "Duel",1,1,-1,32);
//addRotationMap("Equinox", "Duel",1,1,-1,32);
//addRotationMap("Escalade", "Duel",1,1,-1,32);
//addRotationMap("Fracas", "Duel",1,1,-1,32);
//addRotationMap("Invictus", "Duel",1,1,-1,32);
//addRotationMap("MyrkWood", "Duel",1,1,-1,32);
//addRotationMap("Oasis", "Duel",1,1,-1,32);
//addRotationMap("Pyroclasm", "Duel",1,1,-1,32);
//addRotationMap("Rasp", "Duel",1,1,-1,32);
//addRotationMap("SunDried", "Duel",1,1,-1,32);
//addRotationMap("Talus", "Duel",1,1,-1,32);
//addRotationMap("Underhill", "Duel",1,1,-1,32);
//addRotationMap("Whiteout", "Duel",1,1,-1,32);
//addRotationMap("Tombstone", "Duel",1,1,-1,32);
//addRotationMap("VaubanLak", "Duel",1,1,-1,32);
//addRotationMap("DesertofDeathLak", "Duel",1,1,-1,32);
// _____ _
// / ____(_)
// | (___ _ ___ __ _ ___
// \___ \| |/ _ \/ _` |/ _ \
// ____) | | __/ (_| | __/
// |_____/|_|\___|\__, |\___|
// __/ |
// |___/
/////////////////////////////////////////////////////////////////////
addRotationMap("Alcatraz", "Siege",1,1,-1,32);
addRotationMap("BridgeTooFar", "Siege",1,1,-1,32);
addRotationMap("Caldera", "Siege",1,1,-1,32);
addRotationMap("Gauntlet", "Siege",1,1,-1,32);
addRotationMap("IceBound", "Siege",1,1,-1,32);
addRotationMap("Isleofman", "Siege",1,1,-1,32);
addRotationMap("Masada", "Siege",1,1,-1,32);
addRotationMap("Respite", "Siege",1,1,-1,32);
addRotationMap("Trident", "Siege",1,1,-1,32);
addRotationMap("UltimaThule", "Siege",1,1,-1,32);

View file

@ -44,7 +44,7 @@ function setArmorDefaults(%armor)
$InvBanList[SCtF, "Mine"] = 0; $InvBanList[SCtF, "Mine"] = 0;
$InvBanList[SCtF, "ConcussionGrenade"] = 0; $InvBanList[SCtF, "ConcussionGrenade"] = 0;
$InvBanList[SCtF, "CameraGrenade"] = 1; $InvBanList[SCtF, "CameraGrenade"] = 1;
$InvBanList[SCtF, "FlareGrenade"] = 0; $InvBanList[SCtF, "FlareGrenade"] = 1;
$InvBanList[SCtF, "FlashGrenade"] = 1; $InvBanList[SCtF, "FlashGrenade"] = 1;
$InvBanList[SCtF, "Grenade"] = 0; $InvBanList[SCtF, "Grenade"] = 0;
//Pro Mode //Pro Mode

View file

@ -1,573 +0,0 @@
// __ __ _ _ _ _
// | \/ | | | (_) (_) |
// | \ / | __ _ _ __ | | _ _ __ ___ _| |_ ___
// | |\/| |/ _` | '_ \ | | | | '_ ` _ \| | __/ __|
// | | | | (_| | |_) | | |____| | | | | | | | |_\__ \
// |_| |_|\__,_| .__/ |______|_|_| |_| |_|_|\__|___/
// | |
// |_|
// To set when tribes can select a map(based on the current population of the server) when looking thru the rotation for a suitable Next map.
// The First number is the minimum. The Second number is the maximum.
//
// $Host::MapPlayerLimitsAcidRain_CTF = "8 32";
//
// This Example shows a map with the mimimum of 8 for the map to be selected, and a max of 32.
// Furthermore, if you did not want to have a minimum or maximum you can just set these values to -1.
//
// To see if a Limit has indeed loaded.
// echo( $Host::MapPlayerLimitsSmallCrossing_CTF );
// echo( $Host::MapPlayerLimitsHighOctane_CTF );
// echo( $Host::MapPlayerLimitsSnowcone_CTF );
//
// %min SPC %max is just the preset %min SPC(Space) %max in the "Set Values for this Group" section
// "8 32" or "-1 -1" or "-1 16" will also work. Just dont forget the quotes.
// As the list goes down %min %max will stay the same unless you change them (a new %min = ? %max = ?) etc
// This is done so a crash cant occur using local variables
// Using exec( $Host::EvoCustomMapLimitsFile ); in console
function setmaps()
{
// _____ _______ ______
// / ____|__ __| ____|
// | | | | | |__
// | | | | | __|
// | |____ | | | |
// \_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//Small Maps
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = -1;
%max = 18;
$Host::MapPlayerLimitsSmallCrossing_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_CanyonCrusadeDeluxe_CTF = %min SPC %max;
$Host::MapPlayerLimitsRoundTheMountain_CTF = %min SPC "14";
$Host::MapPlayerLimitsoasisintensity_CTF = %min SPC "12";
$Host::MapPlayerLimitsMinotaur_CTF = %min SPC %max;
$Host::MapPlayerLimitsIsland_CTF = %min SPC %max;
$Host::MapPlayerLimitsTitForTat_CTF = %min SPC %max;
$Host::MapPlayerLimitsSmallMelee_CTF = %min SPC "12";
$Host::MapPlayerLimitsSuperHappyBouncyFunTime_CTF = %min SPC "10";
$Host::MapPlayerLimitsMachineeggs_CTF = %min SPC "10";
$Host::MapPlayerLimitsMac_FlagArena_CTF = %min SPC "12";
$Host::MapPlayerLimitsSmallTimeCTF_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Hildebrand_CTF = %min SPC %max;
$Host::MapPlayerLimitsArenaDome_CTF = %min SPC "10";
$Host::MapPlayerLimitsFirestorm_CTF = %min SPC %max;
$Host::MapPlayerLimitsBulwark_CTF = %min SPC "12";
//Medium Maps
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = 8;
%max = 32;
$Host::MapPlayerLimitsHighOctane_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Mordacity_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Damnation_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_JaggedClaw_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Massive_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Stonehenge_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Feign_CTF = %min SPC %max;
$Host::MapPlayerLimitsTheFray_CTF = %min SPC %max;
$Host::MapPlayerLimitsDangerousCrossing_nef_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Skylight_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Ocular_CTF = %min SPC %max;
$Host::MapPlayerLimitsDire_CTF = %min SPC %max;
$Host::MapPlayerLimitsberlard_CTF = %min SPC %max;
$Host::MapPlayerLimitsS8_Opus_CTF = %min SPC %max;
$Host::MapPlayerLimitsBeggarsRun_CTF = %min SPC %max;
$Host::MapPlayerLimitsSignal_CTF = %min SPC %max;
$Host::MapPlayerLimitsHeadstone_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Centaur_CTF = %min SPC %max;
$Host::MapPlayerLimitsS8_Cardiac_CTF = %min SPC %max;
$Host::MapPlayerLimitsCirclesEdge_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Icedance_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Woodymyrk_CTF = %min SPC %max;
$Host::MapPlayerLimitsDiscord_CTF = %min SPC %max;
$Host::MapPlayerLimitsTenebrousCTF_CTF = %min SPC %max;
$Host::MapPlayerLimitsPariah_CTF = %min SPC %max;
$Host::MapPlayerLimitsPrismatic_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_WilderZone_CTF = %min SPC %max;
$Host::MapPlayerLimitsMirage_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Mimicry_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Snowblind_CTF = %min SPC %max;
$Host::MapPlayerLimitsShortFall_CTF = %min SPC %max;
$Host::MapPlayerLimitsIceRidge_nef_CTF = %min SPC %max;
$Host::MapPlayerLimitsDisjointed_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_MuddySwamp_CTF = %min SPC %max;
$Host::MapPlayerLimitsBlink_CTF = %min SPC %max;
$Host::MapPlayerLimitsHighAnxiety_CTF = %min SPC %max;
//Voteable but Not in Rotation
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = 10;
%max = 32;
$Host::MapPlayerLimitsSnowcone_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Drache_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_HawkingHeat_CTF = %min SPC %max;
$Host::MapPlayerLimitsJadeValley_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Sherman_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Silenus_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_FrozenHope_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_IceDagger_CTF = %min SPC %max;
$Host::MapPlayerLimitsS5_Reynard_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Cinereous_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_OsIris_CTF = %min SPC %max;
$Host::MapPlayerLimitsCoppersky_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Crevice_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_SubZero_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Titan_CTF = %min SPC %max;
$Host::MapPlayerLimitsConfusco_CTF = %min SPC %max;
$Host::MapPlayerLimitsFallout_CTF = %min SPC %max;
$Host::MapPlayerLimitsTheClocktower_CTF = %min SPC %max;
$Host::MapPlayerLimitsSoylentGreen_CTF = %min SPC %max;
$Host::MapPlayerLimitsSurreal_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_MidnightMayhemDeluxe_CTF = %min SPC %max;
$Host::MapPlayerLimitsNightdance_CTF = %min SPC %max;
$Host::MapPlayerLimitsRamparts_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Celerity_CTF = %min SPC %max;
$Host::MapPlayerLimitsBlastside_nef_CTF = %min SPC %max;
$Host::MapPlayerLimitsInfernus_CTF = %min SPC %max;
$Host::MapPlayerLimitsNatureMagic_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Damnation_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_DangerousCrossing_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_DeadlyBirdsSong_CTF = %min SPC %max;
$Host::MapPlayerLimitsVauban_CTF = %min SPC %max;
//Vehicle Maps
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = 12;
%max = 32;
$Host::MapPlayerLimitsHostileLoch_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_BeachBlitz_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Magnum_CTF = %min SPC %max;
$Host::MapPlayerLimitsLogans_Run_CTF = %min SPC %max;
$Host::MapPlayerLimitsRollercoaster_nef_CTF = %min SPC %max;
$Host::MapPlayerLimitsMoonDance_CTF = %min SPC %max;
$Host::MapPlayerLimitsRaindance_nef_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Magamatic_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_FrozenGlory_CTF = %min SPC %max;
$Host::MapPlayerLimitsLandingParty_CTF = %min SPC %max;
$Host::MapPlayerLimitsTitanV_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Crossfire_CTF = %min SPC %max;
$Host::MapPlayerLimitsWindyGap_CTF = %min SPC %max;
$Host::MapPlayerLimitsSurro_CTF = %min SPC %max;
$Host::MapPlayerLimitsHarvestDance_CTF = %min SPC %max;
$Host::MapPlayerLimitsSubZeroV_CTF = %min SPC %max;
$Host::MapPlayerLimitsThe_Calm_CTF = %min SPC %max;
//Vehicle Maps: Voteable, But Not in Rotation
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = 12;
%max = 32;
$Host::MapPlayerLimitsTWL2_RoughLand_CTF = %min SPC %max;
$Host::MapPlayerLimitsS8_Geothermal_CTF = %min SPC %max;
$Host::MapPlayerLimitsLakefront_CTF = %min SPC %max;
$Host::MapPlayerLimitsShockRidge_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_BlueMoon_CTF = %min SPC %max;
$Host::MapPlayerLimitsFullCircle_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Katabatic_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Starfallen_CTF = %min SPC %max;
$Host::MapPlayerLimitsConstructionYard_CTF = %min SPC %max;
$Host::MapPlayerLimitsAcidRain_CTF = %min SPC %max;
$Host::MapPlayerLimitsSandOcean_CTF = %min SPC %max;
$Host::MapPlayerLimitsStarIce_CTF = %min SPC %max;
$Host::MapPlayerLimitsks_braistv_CTF = %min SPC %max;
$Host::MapPlayerLimitsFilteredDust_CTF = %min SPC %max;
$Host::MapPlayerLimitsChoke_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Ruined_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Chokepoint_CTF = %min SPC %max;
$Host::MapPlayerLimitsGlade_CTF = %min SPC %max;
//BIG Vehicle Maps
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = 14;
%max = 32;
$Host::MapPlayerLimitsFenix_CTF = "18" SPC %max;
$Host::MapPlayerLimitsHillside_CTF = "18" SPC %max;
$Host::MapPlayerLimitsSangre_de_Grado_CTF = %min SPC %max;
$Host::MapPlayerLimitsSlapdash_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Bleed_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Harvester_CTF = %min SPC %max;
$Host::MapPlayerLimitsArchipelago_CTF = %min SPC %max;
$Host::MapPlayerLimitsPantheon_CTF = %min SPC %max;
$Host::MapPlayerLimitsCircleofstones_CTF = %min SPC %max;
$Host::MapPlayerLimitsBerylBasin_CTF = %min SPC %max;
$Host::MapPlayerLimitsTWL_Frozen_CTF = %min SPC %max;
//Not In Rotation - Not Voteable
/////////////////////////////////////////////////////////////////////
//$Host::MapPlayerLimitsSandstorm_CTF = "8 32";
//$Host::MapPlayerLimitsScarabrae_nef_CTF = "8 32";
//$Host::MapPlayerLimitsStarfallen_CTF = "8 32";
//$Host::MapPlayerLimitsStonehenge_nef_CTF = "8 32";
//$Host::MapPlayerLimitsExtractor_CTF = "8 32";
//$Host::MapPlayerLimitsAstersDescent_CTF = "8 32";
//$Host::MapPlayerLimitsAzoth_CTF = "8 32";
//$Host::MapPlayerLimitsBattleGrove_CTF = "8 32";
//$Host::MapPlayerLimitsDurango_CTF = "8 32";
//$Host::MapPlayerLimitsDustLust_CTF = "8 32";
//$Host::MapPlayerLimitsIceGulch_CTF = "8 32";
//$Host::MapPlayerLimitsMountainMist_CTF = "8 32";
//$Host::MapPlayerLimitsPeak_CTF = "8 32";
//$Host::MapPlayerLimitsPendulum_CTF = "8 32";
//$Host::MapPlayerLimitsS5_Misadventure_CTF = "8 32";
//$Host::MapPlayerLimitsS8_CentralDogma_CTF = "8 32";
//$Host::MapPlayerLimitsS8_Mountking_CTF = "8 32";
//$Host::MapPlayerLimitsS8_Zilch_CTF = "8 32";
//$Host::MapPlayerLimitsTWL2_CloakOfNight_CTF = "8 32";
//$Host::MapPlayerLimitsTWL2_Dissention_CTF = "8 32";
//$Host::MapPlayerLimitsTWL2_Drifts_CTF = "8 32";
//$Host::MapPlayerLimitsTWL2_Drorck_CTF = "8 32";
//$Host::MapPlayerLimitsTWL2_Norty_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Abaddon_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_BaNsHee_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Boss_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_NoShelter_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Clusterfuct_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Curtilage_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Deserted_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Frostclaw_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Horde_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Neve_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Pandemonium_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Ramparts_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_Sandstorm_CTF = "8 32";
//$Host::MapPlayerLimitsTWL_WoodyMyrk_CTF = "8 32";
//$Host::MapPlayerLimitsOctoberRust_CTF = "8 32";
//$Host::MapPlayerLimitsDevilsElbow_CTF = "8 32";
//$Host::MapPlayerLimitsCloudCity_CTF = "8 32";
//$Host::MapPlayerLimitsDamnation_CTF = "8 32";
//$Host::MapPlayerLimitsDeathBirdsFly_CTF = "8 32";
//$Host::MapPlayerLimitsDesiccator_CTF = "8 32";
//$Host::MapPlayerLimitsDustToDust_CTF = "8 32";
//$Host::MapPlayerLimitsKatabatic_CTF = "8 32";
//$Host::MapPlayerLimitsQuagmire_CTF = "8 32";
//$Host::MapPlayerLimitsRecalescence_CTF = "8 32";
//$Host::MapPlayerLimitsReversion_CTF = "8 32";
//$Host::MapPlayerLimitsRiverDance_CTF = "8 32";
//$Host::MapPlayerLimitsSanctuary_CTF = "8 32";
//$Host::MapPlayerLimitsThinIce_CTF = "8 32";
//$Host::MapPlayerLimitsTombstone_CTF = "8 32";
//$Host::MapPlayerLimitsBroadside_nef_CTF = "8 32";
//$Host::MapPlayerLimitsCamelland_CTF = "8 32";
//$Host::MapPlayerLimitsHighTrepidation_CTF = "8 32";
//$Host::MapPlayerLimitsSmallDesertofDeath_CTF = "8 32";
//$Host::MapPlayerLimitsAgorazscium_CTF = "8 32";
//$Host::MapPlayerLimitsBasinFury_CTF = "8 32";
//$Host::MapPlayerLimitsCadaver_CTF = "8 32";
//$Host::MapPlayerLimitsEivoItoxico_CTF = "8 32";
//$Host::MapPlayerLimitsEinfach_CTF = "8 32";
//$Host::MapPlayerLimitsPicnicTable_CTF = "8 32";
//$Host::MapPlayerLimitsHostility_CTF = "8 32";
//$Host::MapPlayerLimitsHighWire_CTF = "8 32";
//$Host::MapPlayerLimitsCloudBurst_CTF = "8 32";
//$Host::MapPlayerLimitsCloseCombat_CTF = "8 32";
//$Host::MapPlayerLimitsDesertofDeath_nef_CTF = "8 32";
//$Host::MapPlayerLimitsGorgon_CTF = "8 32";
//$Host::MapPlayerLimitsMagamatic_CTF = "8 32";
//$Host::MapPlayerLimitsSub-zero_CTF = "8 32";
// _ _ _ _ _ _
// | | | | | | | | (_) |
// | | __ _| | ___ __ __ _| |__ | |__ _| |_
// | | / _` | |/ / '__/ _` | '_ \| '_ \| | __|
// | |___| (_| | <| | | (_| | |_) | |_) | | |_
// |______\__,_|_|\_\_| \__,_|_.__/|_.__/|_|\__|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = -1;
%max = 32;
$Host::MapPlayerLimitsVaubanLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsMiniSunDried_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsSundance_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsTWL_BeachBlitzLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsDesertofDeathLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsRaindance_nefLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsSunDriedLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsSkinnyDipLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsSaddiesHill_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsHavenLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsLushLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsBoxLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsTitaniaLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsTibbawLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsInfernusLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsS8_GeothermalLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsCankerLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsDustRunLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsCrossfiredLak_LakRabbit = %min SPC %max;
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
$Host::MapPlayerLimitsTreasureIslandLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsSulfide_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsFrozenFuryLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsArrakis_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsEquinoxLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsPhasmaDustLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsGodsRiftLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsSolsDescentLak_LakRabbit = %min SPC %max;
$Host::MapPlayerLimitsCrater71Lak_LakRabbit = %min SPC %max;
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//$Host::MapPlayerLimitsEscaladeLak_LakRabbit = "8 32";
//$Host::MapPlayerLimitsMagmaticLak_LakRabbit = "8 32";
//$Host::MapPlayerLimitsHillsOfSorrow_LakRabbit = "8 32";
//$Host::MapPlayerLimitsTWL2_MuddySwampLak_LakRabbit = "8 32";
//$Host::MapPlayerLimitsSandStormLak_LakRabbit = "8 32";
//$Host::MapPlayerLimitsBeggarsRunLak_LakRabbit = "8 32";
//$Host::MapPlayerLimitsDamnnationLak_LakRabbit = "8 32";
// _ _____ _______ ______
// | | / ____|__ __| ____|
// | | | | | | | |__
// | | | | | | | __|
// | |___| |____ | | | |
// |______\_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = -1;
%max = 32;
$Host::MapPlayerLimitsBastardForgeLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsFirestormLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsDangerousCrossingLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsSmallCrossingLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsDireLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsRoundTheMountainLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsCirclesEdgeLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTenebrousCTF_sctf = %min SPC %max;
$Host::MapPlayerLimitsTheFray_sctf = %min SPC %max;
$Host::MapPlayerLimitsSignalLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsStarFallLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_DamnationLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_Icedance_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_Mordacity_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_SilenusLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_CanyonCrusadeDeluxeLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_FrozenHopeLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_JaggedClawLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_HildebrandLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_SkylightLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_BeachBlitzLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_FeignLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_RollercoasterLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_StonehengeLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_WilderZoneLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsoasisintensity_sctf = %min SPC %max;
$Host::MapPlayerLimitsberlard_sctf = %min SPC %max;
$Host::MapPlayerLimitsRaindanceLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsSmallTimeLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsArenaDome_sctf = %min SPC %max;
$Host::MapPlayerLimitsBulwark_sctf = %min SPC %max;
$Host::MapPlayerLimitsDiscord_sctf = %min SPC %max;
$Host::MapPlayerLimitsJadeValley_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_MassiveLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsBlink_sctf = %min SPC %max;
$Host::MapPlayerLimitsHillTopHop_sctf = %min SPC %max;
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
$Host::MapPlayerLimitsHeadstone_sctf = %min SPC %max;
$Host::MapPlayerLimitsMirage_sctf = %min SPC %max;
$Host::MapPlayerLimitsBeggarsRunLT_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_HawkingHeat_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_Mimicry_sctf = %min SPC %max;
$Host::MapPlayerLimitsS5_Woodymyrk_sctf = %min SPC %max;
$Host::MapPlayerLimitsS8_Cardiac_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Celerity_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Crevice_sctf = %min SPC %max;
$Host::MapPlayerLimitsS8_Opus_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_MidnightMayhemDeluxe_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL2_Ocular_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_Cinereous_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_Deserted_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_DangerousCrossing_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_OsIris_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_Damnation_sctf = %min SPC %max;
$Host::MapPlayerLimitsTWL_Titan_sctf = %min SPC %max;
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//$Host::MapPlayerLimitsSurrealLT_sctf = "8 32";
//$Host::MapPlayerLimitsCoppersky_sctf = "8 32";
//$Host::MapPlayerLimitsDuelersDelight_sctf = "8 32";
//$Host::MapPlayerLimitsSuperHappyBouncyFunTime_sctf = "8 32";
//$Host::MapPlayerLimitsPariahLT_sctf = "8 32";
//$Host::MapPlayerLimitsSmallMelee_sctf = "8 32";
//$Host::MapPlayerLimitsTitForTat_sctf = "8 32";
//$Host::MapPlayerLimitsCloseCombatLT_sctf = "8 32";
//$Host::MapPlayerLimitsPrismatic_sctf = "8 32";
//$Host::MapPlayerLimitsDamnation_sctf = "8 32";
//$Host::MapPlayerLimitsDustToDust_sctf = "8 32";
//$Host::MapPlayerLimitsMinotaur_sctf = "8 32";
//$Host::MapPlayerLimitsDesertofDeath_nef_sctf = "8 32";
//$Host::MapPlayerLimitsGorgon_sctf = "8 32";
//$Host::MapPlayerLimitsTitan_sctf = "8 32";
//$Host::MapPlayerLimitsMac_FlagArena_sctf = "8 32";
//$Host::MapPlayerLimitsExtractor_sctf = "8 32";
//$Host::MapPlayerLimitsAstersDescent_sctf = "8 32";
//$Host::MapPlayerLimitsAzoth_sctf = "8 32";
//$Host::MapPlayerLimitsDustLust_sctf = "8 32";
//$Host::MapPlayerLimitsDisjointed_sctf = "8 32";
//$Host::MapPlayerLimitsPeak_sctf = "8 32";
//$Host::MapPlayerLimitsSnowcone_sctf = "8 32";
//$Host::MapPlayerLimitsS5_Centaur_sctf = "8 32";
//$Host::MapPlayerLimitsS5_Drache_sctf = "8 32";
//$Host::MapPlayerLimitsS5_Misadventure_sctf = "8 32";
//$Host::MapPlayerLimitsS5_Reynard_sctf = "8 32";
//$Host::MapPlayerLimitsS5_Sherman_sctf = "8 32";
//$Host::MapPlayerLimitsS8_Geothermal_sctf = "8 32";
//$Host::MapPlayerLimitsS8_Zilch_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_Drifts_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_Drorck_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_FrozenGlory_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_IceDagger_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_MuddySwamp_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_Norty_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_RoughLand_sctf = "8 32";
//$Host::MapPlayerLimitsTWL2_Ruined_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_BaNsHee_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Boss_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Crossfire_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_NoShelter_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Clusterfuct_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Curtilage_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_DeadlyBirdsSong_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Frostclaw_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Magamatic_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Neve_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Pandemonium_sctf = "8 32";
//$Host::MapPlayerLimitsTWL_Ramparts_sctf = "8 32";
//$Host::MapPlayerLimitsDehSwamp_sctf = "8 32";
//$Host::MapPlayerLimitsHostileLoch_sctf = "8 32";
//$Host::MapPlayerLimitsDevilsElbow_sctf = "8 32";
//$Host::MapPlayerLimitsCamelland_sctf = "8 32";
//$Host::MapPlayerLimitsSmallDesertofDeath_sctf = "8 32";
//$Host::MapPlayerLimitsShortFall_sctf = "8 32";
//$Host::MapPlayerLimitsFallout_sctf = "8 32";
//$Host::MapPlayerLimitsSoylentGreen_sctf = "8 32";
//$Host::MapPlayerLimitsIsland_sctf = "8 32";
//$Host::MapPlayerLimitsHighOctane_sctf = "8 32";
// _____ _ _ _ _
// | __ \ | | | | | | | |
// | | | | ___ __ _| |_| |__ _ __ ___ __ _| |_ ___| |__
// | | | |/ _ \/ _` | __| '_ \| '_ ` _ \ / _` | __/ __| '_ \
// | |__| | __/ (_| | |_| | | | | | | | | (_| | || (__| | | |
// |_____/ \___|\__,_|\__|_| |_|_| |_| |_|\__,_|\__\___|_| |_|
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
%min = -1;
%max = 32;
$Host::MapPlayerLimitsRaspDM_DM = %min SPC %max;
$Host::MapPlayerLimitsEntombedDM_DM = %min SPC %max;
$Host::MapPlayerLimitsIceDomeDM_DM = %min SPC %max;
$Host::MapPlayerLimitsHoofToeDM_DM = %min SPC %max;
$Host::MapPlayerLimitsArenaDomeDM_DM = %min SPC %max;
$Host::MapPlayerLimitsVulcansWrathDM_DM = %min SPC %max;
$Host::MapPlayerLimitsRampartsDM_DM = %min SPC %max;
$Host::MapPlayerLimitsShrineDM_DM = %min SPC %max;
$Host::MapPlayerLimitsLiveBaitDM_DM = %min SPC %max;
$Host::MapPlayerLimitsFourSquareDM_DM = %min SPC %max;
$Host::MapPlayerLimitsBrigDM_DM = %min SPC %max;
// _____ _
// | __ \ | |
// | | | |_ _ ___| |
// | | | | | | |/ _ \ |
// | |__| | |_| | __/ |
// |_____/ \__,_|\___|_|
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
//%min = -1;
//%max = 32;
//$Host::MapPlayerLimitsAgentsOfFortune_Duel = %min SPC %max;
//$Host::MapPlayerLimitsCasern_Cavite_Duel = %min SPC %max;
//$Host::MapPlayerLimitsEquinox_Duel = %min SPC %max;
//$Host::MapPlayerLimitsEscalade_Duel = %min SPC %max;
//$Host::MapPlayerLimitsFracas_Duel = %min SPC %max;
//$Host::MapPlayerLimitsInvictus_Duel = %min SPC %max;
//$Host::MapPlayerLimitsMyrkWood_Duel = %min SPC %max;
//$Host::MapPlayerLimitsOasis_Duel = %min SPC %max;
//$Host::MapPlayerLimitsPyroclasm_Duel = %min SPC %max;
//$Host::MapPlayerLimitsRasp_Duel = %min SPC %max;
//$Host::MapPlayerLimitsSunDried_Duel = %min SPC %max;
//$Host::MapPlayerLimitsTalus_Duel = %min SPC %max;
//$Host::MapPlayerLimitsUnderhill_Duel = %min SPC %max;
//$Host::MapPlayerLimitsWhiteout_Duel = %min SPC %max;
//$Host::MapPlayerLimitsTombstone_Duel = %min SPC %max;
//$Host::MapPlayerLimitsVaubanLak_Duel = %min SPC %max;
//$Host::MapPlayerLimitsDesertofDeathLak_Duel = %min SPC %max;
// _____ _
// / ____(_)
// | (___ _ ___ __ _ ___
// \___ \| |/ _ \/ _` |/ _ \
// ____) | | __/ (_| | __/
// |_____/|_|\___|\__, |\___|
// __/ |
// |___/
/////////////////////////////////////////////////////////////////////
//Set Values for this Group
//%min = -1;
//%max = 32;
//$Host::MapPlayerLimitsIsleofman_Siege = %min SPC %max;
//$Host::MapPlayerLimitsTrident_Siege = %min SPC %max;
//$Host::MapPlayerLimitsAlcatraz_Siege = %min SPC %max;
}
// Run our function
setmaps();

View file

@ -1,530 +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, %ffa, %cycle);
//
// %ffa = changing this to 0, will remove the map from the FFA mode
// %cycle = changing this to 0 will remove the map from the FFA cycle, but not from the rotation (optional)
// if %ffa is 0, %cycle is useless
//
// Note: filename must be written without .mis
//
// Example: addRotationMap(BeggarsRun, CTF, 1, 1);
// Beggar's Run will be in the FFA mapRotation. It's in the cycle and can be voted
//
// Example: addRotationMap(BeggarsRun, CTF, 1, 0);
// Beggar's Run will be in the FFA mapRotation. It's not in the cycle, but can be voted
//
// Example: addRotationMap(BeggarsRun, CTF, 0);
// Beggar's Run won't be in the FFA mapRotation. It's not in the cycle and can't be voted
//
// Info:
// If you don't want a map to be played neither in Tournement Mode, write // at the beginning of the line (or delete the line)
// If you don't want a gametype to be played, just don't add any map of that gametype
// Some Mods (ie LakLakRabbit) use own maps. To use this mods, you must add the maps in this file
// %cycle variable is optional and if not included the map will always be in the cycle (if %ffa is 1).
// _____ _______ ______
// / ____|__ __| ____|
// | | | | | |__
// | | | | | __|
// | |____ | | | |
// \_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//Small Maps
/////////////////////////////////////////////////////////////////////
addRotationMap(SmallCrossing, CTF, 1, 1);
addRotationMap(TWL2_CanyonCrusadeDeluxe, CTF, 1, 1);
addRotationMap(RoundTheMountain, CTF, 1, 1);
addRotationMap(oasisintensity, CTF, 1, 1);
addRotationMap(Minotaur, CTF, 1, 0);
addRotationMap(Island, CTF, 1, 0);
addRotationMap(TitForTat, CTF, 1, 0);
addRotationMap(SmallMelee, CTF, 1, 0);
addRotationMap(SuperHappyBouncyFunTime, CTF, 1, 0);
addRotationMap(Machineeggs, CTF, 1, 0);
addRotationMap(Mac_FlagArena, CTF, 1, 0);
addRotationMap(SmallTimeCTF, CTF, 1, 1);
addRotationMap(TWL2_Hildebrand, CTF, 1, 1);
addRotationMap(ArenaDome, CTF, 1, 0);
addRotationMap(Firestorm, CTF, 1, 0);
//Medium Maps
/////////////////////////////////////////////////////////////////////
addRotationMap(HighOctane, CTF, 1, 1);
addRotationMap(S5_Mordacity, CTF, 1, 1);
addRotationMap(S5_Damnation, CTF, 1, 1);
addRotationMap(TWL2_JaggedClaw, CTF, 1, 1);
addRotationMap(S5_Massive, CTF, 1, 1);
addRotationMap(TWL_Stonehenge, CTF, 1, 1);
addRotationMap(TWL_Feign, CTF, 1, 0);
addRotationMap(TheFray, CTF, 1, 1);
addRotationMap(DangerousCrossing_nef, CTF, 1, 1);
addRotationMap(TWL2_Skylight, CTF, 1, 1);
addRotationMap(TWL2_Ocular, CTF, 1, 1);
addRotationMap(Dire, CTF, 1, 0);
addRotationMap(berlard, CTF, 1, 1);
addRotationMap(S8_Opus, CTF, 1, 0);
addRotationMap(BeggarsRun, CTF, 1, 0);
addRotationMap(Signal, CTF, 1, 1);
addRotationMap(Bulwark, CTF, 1, 1);
addRotationMap(S5_Woodymyrk, CTF, 1, 1);
addRotationMap(Discord, CTF, 1, 1);
addRotationMap(TenebrousCTF, CTF, 1, 1);
addRotationMap(Pariah, CTF, 1, 1);
addRotationMap(Prismatic, CTF, 1, 0);
addRotationMap(TWL_WilderZone, CTF, 1, 1);
addRotationMap(Mirage, CTF, 1, 1);
addRotationMap(S5_Mimicry, CTF, 1, 1);
addRotationMap(TWL_Snowblind, CTF, 1, 0);
addRotationMap(ShortFall, CTF, 1, 0);
addRotationMap(IceRidge_nef, CTF, 1, 0);
addRotationMap(Disjointed, CTF, 1, 0);
addRotationMap(TWL2_MuddySwamp, CTF, 1, 0);
addRotationMap(Blink, CTF, 1, 1);
addRotationMap(HighAnxiety, CTF, 1, 1);
addRotationMap(Headstone, CTF, 1, 0);
addRotationMap(S5_Centaur, CTF, 1, 0);
addRotationMap(S8_Cardiac, CTF, 1, 1);
addRotationMap(CirclesEdge, CTF, 1, 1);
addRotationMap(S5_Icedance, CTF, 1, 1);
addRotationMap(Surreal, CTF, 1, 0);
//Voteable but Not in Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap(Snowcone, CTF, 1, 0);
addRotationMap(S5_Drache, CTF, 1, 0);
addRotationMap(S5_HawkingHeat, CTF, 1, 0);
addRotationMap(JadeValley, CTF, 1, 0);
addRotationMap(S5_Sherman, CTF, 1, 0);
addRotationMap(S5_Silenus, CTF, 1, 0);
addRotationMap(TWL2_FrozenHope, CTF, 1, 0);
addRotationMap(TWL2_IceDagger, CTF, 1, 0);
addRotationMap(S5_Reynard, CTF, 1, 0);
addRotationMap(TWL_Cinereous, CTF, 1, 0);
addRotationMap(TWL_OsIris, CTF, 1, 0);
addRotationMap(Coppersky, CTF, 1, 0);
addRotationMap(TWL2_Crevice, CTF, 1, 0);
addRotationMap(TWL_SubZero, CTF, 1, 0);
addRotationMap(TWL_Titan, CTF, 1, 0);
addRotationMap(Confusco, CTF, 1, 0);
addRotationMap(Fallout, CTF, 1, 0);
addRotationMap(TheClocktower, CTF, 1, 0);
addRotationMap(SoylentGreen, CTF, 1, 0);
addRotationMap(TWL2_MidnightMayhemDeluxe, CTF, 1, 0);
addRotationMap(Nightdance, CTF, 1, 0);
addRotationMap(Ramparts, CTF, 1, 0);
addRotationMap(TWL2_Celerity, CTF, 1, 1);
addRotationMap(Blastside_nef, CTF, 1, 0);
addRotationMap(Infernus, CTF, 1, 0);
addRotationMap(NatureMagic, CTF, 1, 0);
addRotationMap(TWL_Damnation, CTF, 1, 0);
addRotationMap(TWL_DangerousCrossing, CTF, 1, 0);
addRotationMap(TWL_DeadlyBirdsSong, CTF, 1, 0);
addRotationMap(Vauban, CTF, 1, 0);
//Vehicle Maps
/////////////////////////////////////////////////////////////////////
addRotationMap(HostileLoch, CTF, 1, 1);
addRotationMap(TWL_BeachBlitz, CTF, 1, 1);
addRotationMap(TWL2_Magnum, CTF, 1, 1);
addRotationMap(Logans_Run, CTF, 1, 1);
addRotationMap(Rollercoaster_nef, CTF, 1, 1);
addRotationMap(MoonDance, CTF, 1, 1);
addRotationMap(Raindance_nef, CTF, 1, 0);
addRotationMap(TWL_Magmatic, CTF, 1, 0);
addRotationMap(TWL2_FrozenGlory, CTF, 1, 1);
addRotationMap(LandingParty, CTF, 1, 1);
addRotationMap(TitanV, CTF, 1, 0);
addRotationMap(TWL_Crossfire, CTF, 1, 1);
addRotationMap(WindyGap, CTF, 1, 0);
addRotationMap(Surro, CTF, 1, 0);
addRotationMap(HarvestDance, CTF, 1, 0);
addRotationMap(The_Calm, CTF, 1, 0);
//Vehicle Maps: Voteable, But Not in Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap(SubZeroV, CTF, 1, 0);
addRotationMap(TWL2_RoughLand, CTF, 1, 0);
addRotationMap(S8_Geothermal, CTF, 1, 0);
addRotationMap(Lakefront, CTF, 1, 0);
addRotationMap(ShockRidge, CTF, 1, 0);
addRotationMap(TWL2_BlueMoon, CTF, 1, 0);
addRotationMap(FullCircle, CTF, 1, 0);
addRotationMap(TWL_Katabatic, CTF, 1, 0);
addRotationMap(TWL_Starfallen, CTF, 1, 0);
addRotationMap(ConstructionYard, CTF, 1, 0);
addRotationMap(AcidRain, CTF, 1, 0);
addRotationMap(SandOcean, CTF, 1, 0);
addRotationMap(StarIce, CTF, 1, 0);
addRotationMap(ks_braistv , CTF, 1, 0);
addRotationMap(FilteredDust, CTF, 1, 0);
addRotationMap(Choke, CTF, 1, 0);
addRotationMap(TWL2_Ruined, CTF, 1, 0);
addRotationMap(TWL_Chokepoint, CTF, 1, 0);
addRotationMap(Glade, CTF, 1, 0);
//BIG Vehicle Maps
/////////////////////////////////////////////////////////////////////
addRotationMap(Fenix, CTF, 1, 0);
addRotationMap(Hillside, CTF, 1, 0);
addRotationMap(Sangre_de_Grado, CTF, 1, 0);
addRotationMap(Slapdash, CTF, 1, 0);
addRotationMap(BerylBasin, CTF, 1, 0);
addRotationMap(TWL_Frozen, CTF, 1, 0);
addRotationMap(TWL_Harvester, CTF, 1, 0);
addRotationMap(Archipelago, CTF, 1, 0);
addRotationMap(TWL2_Bleed, CTF, 1, 0);
addRotationMap(Pantheon, CTF, 1, 0);
addRotationMap(Circleofstones, CTF, 1, 1);
//Not In Rotation - Not Voteable
/////////////////////////////////////////////////////////////////////
//addRotationMap(Sandstorm, CTF, 1, 0);
//addRotationMap(Scarabrae_nef, CTF, 0, 0);
//addRotationMap(Starfallen, CTF, 1, 0);
//addRotationMap(Stonehenge_nef, CTF, 1, 0);
//addRotationMap(Extractor, CTF, 0, 0);
//addRotationMap(AstersDescent, CTF, 1, 0);
//addRotationMap(Azoth, CTF, 0, 0);
//addRotationMap(BattleGrove, CTF, 0, 0);
//addRotationMap(Durango, CTF, 0, 0);
//addRotationMap(DustLust, CTF, 0, 0);
//addRotationMap(IceGulch, CTF, 0, 0);
//addRotationMap(MountainMist, CTF, 0, 0);
//addRotationMap(Peak, CTF, 0, 0);
//addRotationMap(Pendulum, CTF, 0, 0);
//addRotationMap(S5_Misadventure, CTF, 1, 0);
//addRotationMap(S8_CentralDogma, CTF, 0, 0);
//addRotationMap(S8_Mountking, CTF, 0, 0);
//addRotationMap(S8_Zilch, CTF, 0, 0);
//addRotationMap(TWL2_CloakOfNight, CTF, 1, 0);
//addRotationMap(TWL2_Dissention, CTF, 0, 0);
//addRotationMap(TWL2_Drifts, CTF, 1, 0);
//addRotationMap(TWL2_Drorck, CTF, 0, 0);
//addRotationMap(TWL2_Norty, CTF, 1, 0);
//addRotationMap(TWL_Abaddon, CTF, 0, 0);
//addRotationMap(TWL_BaNsHee, CTF, 0, 0);
//addRotationMap(TWL_Boss, CTF, 0, 0);
//addRotationMap(TWL_NoShelter, CTF, 1, 0);
//addRotationMap(TWL_Clusterfuct, CTF, 0, 0);
//addRotationMap(TWL_Curtilage, CTF, 0, 0);
//addRotationMap(TWL_Deserted, CTF, 1, 0);
//addRotationMap(TWL_Frostclaw, CTF, 1, 0);
//addRotationMap(TWL_Horde, CTF, 0, 0);
//addRotationMap(TWL_Neve, CTF, 0, 0);
//addRotationMap(TWL_Pandemonium, CTF, 0, 0);
//addRotationMap(TWL_Ramparts, CTF, 0, 0);
//addRotationMap(TWL_Sandstorm, CTF, 0, 0);
//addRotationMap(TWL_WoodyMyrk, CTF, 1, 0);
//addRotationMap(OctoberRust, CTF, 0, 0);
//addRotationMap(DevilsElbow, CTF, 0, 0);
//addRotationMap(CloudCity, CTF, 0, 0);
//addRotationMap(Damnation, CTF, 0, 0);
//addRotationMap(DeathBirdsFly, CTF, 0, 0);
//addRotationMap(Desiccator, CTF, 0, 0);
//addRotationMap(DustToDust, CTF, 0, 0);
//addRotationMap(Katabatic, CTF, 0, 0);
//addRotationMap(Quagmire, CTF, 0, 0);
//addRotationMap(Recalescence, CTF, 0, 0);
//addRotationMap(Reversion, CTF, 0, 0);
//addRotationMap(RiverDance, CTF, 1, 0);
//addRotationMap(Sanctuary, CTF, 0, 0);
//addRotationMap(ThinIce, CTF, 0, 0);
//addRotationMap(Tombstone, CTF, 0, 0);
//addRotationMap(Broadside_nef, CTF, 0, 0);
//addRotationMap(Camelland, CTF, 0, 0);
//addRotationMap(HighTrepidation, CTF, 0, 0);
//addRotationMap(SmallDesertofDeath, CTF, 0, 0);
//addRotationMap(Agorazscium, CTF, 0, 0);
//addRotationMap(BasinFury, CTF, 0, 0);
//addRotationMap(Cadaver, CTF, 0, 0);
//addRotationMap(EivoItoxico, CTF, 0, 0);
//addRotationMap(Einfach, CTF, 0, 0);
//addRotationMap(PicnicTable, CTF, 1, 0);
//addRotationMap(Hostility, CTF, 0, 0);
//addRotationMap(HighWire, CTF, 0, 0);
//addRotationMap(CloudBurst, CTF, 1, 0);
//addRotationMap(CloseCombat, CTF, 1, 0);
//addRotationMap(DesertofDeath_nef, CTF, 0, 0);
//addRotationMap(Gorgon, CTF, 1, 0);
//addRotationMap(Magamatic, CTF, 1, 0);
//addRotationMap(Sub-zero, CTF, 1, 1);
// _ _ _ _ _ _
// | | | | | | | | (_) |
// | | __ _| | ___ __ __ _| |__ | |__ _| |_
// | | / _` | |/ / '__/ _` | '_ \| '_ \| | __|
// | |___| (_| | <| | | (_| | |_) | |_) | | |_
// |______\__,_|_|\_\_| \__,_|_.__/|_.__/|_|\__|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap(VaubanLak, LakRabbit, 1, 1);
addRotationMap(MiniSunDried, LakRabbit, 1, 1);
addRotationMap(Sundance, LakRabbit, 1, 1);
addRotationMap(TWL_BeachBlitzLak, LakRabbit, 1, 1);
addRotationMap(DesertofDeathLak, LakRabbit, 1, 1);
addRotationMap(Raindance_nefLak, LakRabbit, 1, 1);
addRotationMap(SunDriedLak, LakRabbit, 1, 1);
addRotationMap(SkinnyDipLak, LakRabbit, 1, 1);
addRotationMap(SaddiesHill, LakRabbit, 1, 1);
addRotationMap(HavenLak, LakRabbit, 1, 0);
addRotationMap(LushLak, LakRabbit, 1, 1);
addRotationMap(BoxLak, LakRabbit, 1, 1);
addRotationMap(TitaniaLak, LakRabbit, 1, 0);
addRotationMap(TibbawLak, LakRabbit, 1, 1);
addRotationMap(InfernusLak, LakRabbit, 1, 1);
addRotationMap(S8_GeothermalLak, LakRabbit, 1, 1);
addRotationMap(CankerLak, LakRabbit, 1, 1);
addRotationMap(DustRunLak, LakRabbit, 1, 1);
addRotationMap(CrossfiredLak, LakRabbit, 1, 0);
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
addRotationMap(TreasureIslandLak, LakRabbit, 1, 0);
addRotationMap(Sulfide, LakRabbit, 1, 0);
addRotationMap(FrozenFuryLak, LakRabbit, 1, 0);
addRotationMap(Arrakis, LakRabbit, 1, 0);
addRotationMap(EquinoxLak, LakRabbit, 1, 0);
addRotationMap(PhasmaDustLak, LakRabbit, 1, 1);
addRotationMap(GodsRiftLak, LakRabbit, 1, 0);
addRotationMap(SolsDescentLak, LakRabbit, 1, 0);
addRotationMap(Crater71Lak, LakRabbit, 1, 0);
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap(EscaladeLak, LakRabbit, 1, 0);
//addRotationMap(MagmaticLak, LakRabbit, 1, 0);
//addRotationMap(HillsOfSorrow, LakRabbit, 1, 1);
//addRotationMap(TWL2_MuddySwampLak, LakRabbit, 0, 0);
//addRotationMap(SandStormLak, LakRabbit, 1, 0);
//addRotationMap(BeggarsRunLak, LakRabbit, 1, 0);
//addRotationMap(DamnnationLak, LakRabbit, 1, 0);
// _ _____ _______ ______
// | | / ____|__ __| ____|
// | | | | | | | |__
// | | | | | | | __|
// | |___| |____ | | | |
// |______\_____| |_| |_|
/////////////////////////////////////////////////////////////////////
//In Rotation
/////////////////////////////////////////////////////////////////////
addRotationMap(BastardForgeLT, sctf, 1, 1);
addRotationMap(FirestormLT, sctf, 1, 1);
addRotationMap(DangerousCrossingLT, sctf, 1, 1);
addRotationMap(SmallCrossingLT, sctf, 1, 1);
addRotationMap(DireLT, sctf, 1, 1);
addRotationMap(RoundTheMountainLT, sctf, 1, 1);
addRotationMap(CirclesEdgeLT, sctf, 1, 1);
addRotationMap(TenebrousCTF, sctf, 1, 1);
addRotationMap(TheFray, sctf, 1, 1);
addRotationMap(SignalLT, sctf, 1, 1);
addRotationMap(StarFallLT, sctf, 1, 1);
addRotationMap(S5_DamnationLT, sctf, 1, 1);
addRotationMap(S5_Icedance, sctf, 1, 1);
addRotationMap(S5_Mordacity, sctf, 1, 1);
addRotationMap(S5_SilenusLT, sctf, 1, 1);
addRotationMap(TWL2_CanyonCrusadeDeluxeLT, sctf, 1, 1);
addRotationMap(TWL2_FrozenHopeLT, sctf, 1, 1);
addRotationMap(TWL2_JaggedClawLT, sctf, 1, 1);
addRotationMap(TWL2_HildebrandLT, sctf, 1, 1);
addRotationMap(TWL2_SkylightLT, sctf, 1, 1);
addRotationMap(TWL_BeachBlitzLT, sctf, 1, 1);
addRotationMap(TWL_FeignLT, sctf, 1, 1);
addRotationMap(TWL_RollercoasterLT, sctf, 1, 1);
addRotationMap(TWL_StonehengeLT, sctf, 1, 1);
addRotationMap(TWL_WilderZoneLT, sctf, 1, 1);
addRotationMap(oasisintensity, sctf, 1, 1);
addRotationMap(berlard, sctf, 1, 1);
addRotationMap(RaindanceLT, sctf, 1, 1);
addRotationMap(SmallTimeLT, sctf, 1, 1);
addRotationMap(ArenaDome, sctf, 1, 1);
addRotationMap(Bulwark, sctf, 1, 1);
addRotationMap(Discord, sctf, 1, 1);
addRotationMap(JadeValley, sctf, 1, 1);
addRotationMap(S5_MassiveLT, sctf, 1, 1);
addRotationMap(Blink, sctf, 1, 1);
addRotationMap(HillTopHop, sctf, 1, 1);
//Voteable, But not in rotation
/////////////////////////////////////////////////////////////////////
addRotationMap(Headstone, sctf, 1, 0);
addRotationMap(Mirage, sctf, 1, 0);
addRotationMap(BeggarsRunLT, sctf, 1, 0);
addRotationMap(S5_HawkingHeat, sctf, 1, 0);
addRotationMap(S5_Mimicry, sctf, 1, 0);
addRotationMap(S5_Woodymyrk, sctf, 1, 0);
addRotationMap(S8_Cardiac, sctf, 1, 0);
addRotationMap(TWL2_Celerity, sctf, 1, 0);
addRotationMap(TWL2_Crevice, sctf, 1, 0);
addRotationMap(S8_Opus, sctf, 1, 0);
addRotationMap(TWL2_MidnightMayhemDeluxe, sctf, 1, 0);
addRotationMap(TWL2_Ocular, sctf, 1, 0);
addRotationMap(TWL_Cinereous, sctf, 1, 0);
addRotationMap(TWL_Deserted, sctf, 1, 0);
addRotationMap(TWL_DangerousCrossing, sctf, 1, 0);
addRotationMap(TWL_OsIris, sctf, 1, 0);
addRotationMap(TWL_Damnation, sctf, 1, 0);
addRotationMap(TWL_Titan, sctf, 1, 0);
//Not Voteable, Not in rotation
/////////////////////////////////////////////////////////////////////
//addRotationMap(SurrealLT, sctf, 1, 1);
//addRotationMap(Coppersky, sctf, 1, 1);
//addRotationMap(DuelersDelight, sctf, 1, 1);
//addRotationMap(SuperHappyBouncyFunTime, sctf, 1, 0);
//addRotationMap(PariahLT, sctf, 1, 1);
//addRotationMap(SmallMelee, sctf, 1, 1);
//addRotationMap(TitForTat, sctf, 1, 1);
//addRotationMap(CloseCombatLT, sctf, 1, 1);
//addRotationMap(Prismatic, sctf, 1, 1);
//addRotationMap(Damnation, sctf, 0, 0);
//addRotationMap(DustToDust, sctf, 0, 0);
//addRotationMap(Minotaur, sctf, 0, 0);
//addRotationMap(DesertofDeath_nef, sctf, 0, 0);
//addRotationMap(Gorgon, sctf, 0, 0);
//addRotationMap(Titan, sctf, 0, 0);
//addRotationMap(Mac_FlagArena, sctf, 0, 0);
//addRotationMap(Extractor, sctf, 0, 0);
//addRotationMap(AstersDescent, sctf, 0, 0);
//addRotationMap(Azoth, sctf, 0, 0);
//addRotationMap(DustLust, sctf, 0, 0);
//addRotationMap(Disjointed, sctf, 0, 0);
//addRotationMap(Peak, sctf, 0, 0);
//addRotationMap(Snowcone, sctf, 0, 0);
//addRotationMap(S5_Centaur, sctf, 0, 0);
//addRotationMap(S5_Drache, sctf, 0, 0);
//addRotationMap(S5_Misadventure, sctf, 0, 0);
//addRotationMap(S5_Reynard, sctf, 0, 0);
//addRotationMap(S5_Sherman, sctf, 0, 0);
//addRotationMap(S8_Geothermal, sctf, 0, 0);
//addRotationMap(S8_Zilch, sctf, 0, 0);
//addRotationMap(TWL2_Drifts, sctf, 0, 0);
//addRotationMap(TWL2_Drorck, sctf, 0, 0);
//addRotationMap(TWL2_FrozenGlory, sctf, 0, 0);
//addRotationMap(TWL2_IceDagger, sctf, 0, 0);
//addRotationMap(TWL2_MuddySwamp, sctf, 0, 0);
//addRotationMap(TWL2_Norty, sctf, 0, 0);
//addRotationMap(TWL2_RoughLand, sctf, 0, 0);
//addRotationMap(TWL2_Ruined, sctf, 0, 0);
//addRotationMap(TWL_BaNsHee, sctf, 0, 0);
//addRotationMap(TWL_Boss, sctf, 0, 0);
//addRotationMap(TWL_Crossfire, sctf, 0, 0);
//addRotationMap(TWL_NoShelter, sctf, 0, 0);
//addRotationMap(TWL_Clusterfuct, sctf, 0, 0);
//addRotationMap(TWL_Curtilage, sctf, 0, 0);
//addRotationMap(TWL_DeadlyBirdsSong, sctf, 0, 0);
//addRotationMap(TWL_Frostclaw, sctf, 0, 0);
//addRotationMap(TWL_Magamatic, sctf, 0, 0);
//addRotationMap(TWL_Neve, sctf, 0, 0);
//addRotationMap(TWL_Pandemonium, sctf, 0, 0);
//addRotationMap(TWL_Ramparts, sctf, 0, 0);
//addRotationMap(DehSwamp, sctf, 0, 0);
//addRotationMap(HostileLoch, sctf, 0, 0);
//addRotationMap(DevilsElbow, sctf, 0, 0);
//addRotationMap(Camelland, sctf, 0, 0);
//addRotationMap(SmallDesertofDeath, sctf, 0, 0);
//addRotationMap(ShortFall, sctf, 0, 0);
//addRotationMap(Fallout, sctf, 0, 0);
//addRotationMap(SoylentGreen, sctf, 0, 0);
//addRotationMap(Island, sctf, 0, 0);
//addRotationMap(HighOctane, sctf, 0, 0);
// _____ _ _ _ _
// | __ \ | | | | | | | |
// | | | | ___ __ _| |_| |__ _ __ ___ __ _| |_ ___| |__
// | | | |/ _ \/ _` | __| '_ \| '_ ` _ \ / _` | __/ __| '_ \
// | |__| | __/ (_| | |_| | | | | | | | | (_| | || (__| | | |
// |_____/ \___|\__,_|\__|_| |_|_| |_| |_|\__,_|\__\___|_| |_|
/////////////////////////////////////////////////////////////////////
addRotationMap(RaspDM, DM, 1, 1);
addRotationMap(EntombedDM, DM, 1, 1);
addRotationMap(IceDomeDM, DM, 1, 1);
addRotationMap(HoofToeDM, DM, 1, 1);
addRotationMap(ArenaDomeDM, DM, 1, 1);
addRotationMap(VulcansWrathDM, DM, 1, 1);
addRotationMap(RampartsDM, DM, 1, 1);
addRotationMap(ShrineDM, DM, 1, 1);
addRotationMap(LiveBaitDM, DM, 1, 1);
addRotationMap(FourSquareDM, DM, 1, 1);
addRotationMap(BrigDM, DM, 1, 1);
// _____ _
// | __ \ | |
// | | | |_ _ ___| |
// | | | | | | |/ _ \ |
// | |__| | |_| | __/ |
// |_____/ \__,_|\___|_|
/////////////////////////////////////////////////////////////////////
//addRotationMap(AgentsOfFortune, Duel, 0, 0);
//addRotationMap(Casern_Cavite, Duel, 0, 0);
//addRotationMap(Equinox, Duel, 1, 1);
//addRotationMap(Escalade, Duel, 1, 1);
//addRotationMap(Fracas, Duel, 0, 0);
//addRotationMap(Invictus, Duel, 0, 0);
//addRotationMap(MyrkWood, Duel, 1, 1);
//addRotationMap(Oasis, Duel, 1, 1);
//addRotationMap(Pyroclasm, Duel, 1, 1);
//addRotationMap(Rasp, Duel, 1, 1);
//addRotationMap(SunDried, Duel, 1, 1);
//addRotationMap(Talus, Duel, 0, 0);
//addRotationMap(Underhill, Duel, 0, 0);
//addRotationMap(Whiteout, Duel, 1, 1);
//addRotationMap(Tombstone, Duel, 1, 1);
//addRotationMap(VaubanLak, Duel, 1, 1);
//addRotationMap(DesertofDeathLak, Duel, 1, 1);
// _____ _
// / ____(_)
// | (___ _ ___ __ _ ___
// \___ \| |/ _ \/ _` |/ _ \
// ____) | | __/ (_| | __/
// |_____/|_|\___|\__, |\___|
// __/ |
// |___/
/////////////////////////////////////////////////////////////////////
//addRotationMap(Isleofman, Siege, 1, 1);
//addRotationMap(Trident, Siege, 1, 1);
//addRotationMap(Alcatraz, Siege, 1, 1);

View file

@ -1,17 +1,25 @@
$Host::AdminList = ""; $Host::AdminPassword = "changethis";
$Host::AdminPassword = "changeme"; $Host::AllowAdmin2Admin = 0;
$Host::AdvStats::Delim = "\c7"; $Host::AllowAdminBan = 0;
$Host::AdvStats::LogChat = 0; $Host::AllowAdminPassVote = 1;
$Host::AdvStats::SpamInfoToConsole = 0; $Host::allowAdminPlayerVotes = "0";
$Host::allowAdminPlayerVotes = 0; $Host::AllowAdminStopVote = 1;
$Host::AllowAdminStopVotes = 1;
$Host::AllowAdminVotes = 1;
$Host::AllowMapScript = "True"; $Host::AllowMapScript = "True";
$Host::AnimateWithTransitions = 0; $Host::AllowPlayerVoteChangeMission = 1;
$Host::AllowPlayerVoteSkipMission = 1;
$Host::AllowPlayerVoteTimeLimit = 1;
$Host::AllowPlayerVoteTournamentMode = 0;
$Host::AnimateWithTransitions = 1;
$Host::AntiCloakEnable = 1; $Host::AntiCloakEnable = 1;
$Host::AntiCloakPlayerCount = 6; $Host::AntiCloakPlayerCount = 6;
$Host::AveragePings = 1;
$Host::BanTime = 1440; $Host::BanTime = 1440;
$Host::BotCount = 2; $Host::BotCount = 14;
$Host::BotsEnabled = 0; $Host::BotsEnabled = "0";
$Host::ClassicAdminLogPath = "prefs"; $Host::ClassicAdminLog = 1;
$Host::ClassicAdminLogPath = "logs/Admin/Admin.log";
$Host::ClassicAllowConsoleAccess = 0; $Host::ClassicAllowConsoleAccess = 0;
$Host::ClassicAntiTurtleTime = 5; $Host::ClassicAntiTurtleTime = 5;
$Host::ClassicAutoPWEnabled = 0; $Host::ClassicAutoPWEnabled = 0;
@ -21,10 +29,11 @@ $Host::ClassicAutoRestartServer = 0;
$Host::ClassicBadWordFilter = 0; $Host::ClassicBadWordFilter = 0;
$Host::ClassicBalancedBots = 0; $Host::ClassicBalancedBots = 0;
$Host::ClassicCanKickBots = 0; $Host::ClassicCanKickBots = 0;
$Host::ClassicConnectLog = 0; $Host::ClassicConnectLog = 1;
$Host::ClassicConnLogPath = "prefs"; $Host::ClassicConnLogPath = "logs/Connect/Connect.log";
$Host::ClassicCycleMisTypes = 0; $Host::ClassicCycleMisTypes = 0;
$Host::ClassicEchoChat = 0; $Host::ClassicEchoChat = 0;
$Host::ClassicEvoStats = 1;
$Host::ClassicFairTeams = 1; $Host::ClassicFairTeams = 1;
$Host::ClassicLimitArmors = 0; $Host::ClassicLimitArmors = 0;
$Host::ClassicLoadBlasterChanges = 0; $Host::ClassicLoadBlasterChanges = 0;
@ -39,6 +48,9 @@ $Host::ClassicLoadTR2Gametype = 0;
$Host::ClassicLoadVRamChanges = 0; $Host::ClassicLoadVRamChanges = 0;
$Host::ClassicLogEchoEnabled = 0; $Host::ClassicLogEchoEnabled = 0;
$Host::ClassicMaxTelepads = 3; $Host::ClassicMaxTelepads = 3;
$Host::ClassicMOTD = "<color:3cb4b4><font:Sui Generis:22>Discord PUB\n<color:3cb4b4><font:Univers:16>Server Hosted/Provided by Branzone/Ravin\n<color:3cb4b4><font:Univers:16>Get Mappacks at https://playt2.com/";
$Host::ClassicMOTDLines = 3;
$Host::ClassicMOTDTime = 6;
$Host::ClassicNoNullVoiceSpam = 0; $Host::ClassicNoNullVoiceSpam = 0;
$Host::ClassicPacketRateToClient = 32; $Host::ClassicPacketRateToClient = 32;
$Host::ClassicPacketSize = 450; $Host::ClassicPacketSize = 450;
@ -46,6 +58,9 @@ $Host::ClassicRandomizeTeams = 1;
$Host::ClassicRandomMissions = 1; $Host::ClassicRandomMissions = 1;
$Host::ClassicRandomMisTypes = 0; $Host::ClassicRandomMisTypes = 0;
$Host::ClassicRestartTime = 12; $Host::ClassicRestartTime = 12;
$Host::ClassicRotationCustom = 1;
$Host::ClassicRotationFile = "prefs/mapRotation.cs";
$Host::ClassicStatsType = 2;
$Host::ClassicSuperAdminPassword = "changeme"; $Host::ClassicSuperAdminPassword = "changeme";
$Host::ClassicTelnet = 1; $Host::ClassicTelnet = 1;
$Host::ClassicTelnetListenPass = "changeme"; $Host::ClassicTelnetListenPass = "changeme";
@ -55,121 +70,20 @@ $Host::ClassicTkLimit = 0;
$Host::ClassicUseHighPerformanceCounter = 0; $Host::ClassicUseHighPerformanceCounter = 0;
$Host::CRCTextures = 0; $Host::CRCTextures = 0;
$Host::Dedicated = 1; $Host::Dedicated = 1;
$Host::DefenseTurret::Active = 0;
$Host::DefenseTurret::MaxWptHeight = 10;
$Host::DefenseTurret::Optional = 0;
$Host::DefenseTurret::RequiredInTourney = 0;
$Host::DMSLOnlyMode = 0; $Host::DMSLOnlyMode = 0;
$Host::EmptyServerReset = 1; $Host::EmptyServerReset = 1;
$Host::EmptyServerResetTime = 120; $Host::EmptyServerResetTime = 120;
$Host::EnableAutobalance = 1; $Host::EnableAutobalance = 1;
$Host::EnableLakUnlimitedDJ = 1;
$Host::EnableMapRepetitionChecker = 1;
$Host::EnableMortarTurret = 0; $Host::EnableMortarTurret = 0;
$Host::EnableNoBaseRapeNotify = 1;
$Host::EnableNetTourneyClient = 0; $Host::EnableNetTourneyClient = 0;
$Host::EnableSetNextMission = 1; $Host::EnableNoBaseRapeNotify = 1;
$Host::EnableTeamBalanceNotify = 1; $Host::EnableTeamBalanceNotify = 1;
$Host::EnableTurretPlayerCount = 10; $Host::EnableTurretPlayerCount = 10;
$Host::EnableVoteSound = 1; $Host::EnableVoteSound = 1;
$Host::EvoAdminAdmin = 0;
$Host::EvoAdminBan = 0;
$Host::EvoAdminClanLock = 0;
$Host::EvoAdminClearServer = 0;
$Host::EvoAdminCRCCheck = 0;
$Host::EvoAdminLogging = 1;
$Host::EvoAdminMaxPlayers = 20;
$Host::EvoAdminMinPlayers = 20;
$Host::EvoAdminPassVote = 0;
$Host::EvoAdminReset = 0;
$Host::EvoAdminServerPW = 0;
$Host::EvoAdminStopVotes = 1;
$Host::EvoAdminSwitchTeams = 1;
$Host::EvoAdminWhois = 0;
$Host::EvoAllowAdminVoteGameType = 1;
$Host::EvoAllowPlayerVoteChangeMission = 1;
$Host::EvoAllowPlayerVoteGameType = 1;
$Host::EvoAllowPlayerVoteTeamDamage = 0;
$Host::EvoAllowPlayerVoteTimeLimit = 1;
$Host::EvoAllowPlayerVoteTournamentMode = 0;
$Host::EvoAutoPWEnabled = 0;
$Host::EvoAutoPWPassword = "pickup";
$Host::EvoAutoPWPlayerCount = 0;
$Host::EvoAutoPWTourneyNoRemove = 1;
$Host::EvoAveragePings = 1;
$Host::EvoBanListFile = "prefs/evo_BanList.cs";
$Host::EvoBlockSuperAdminWhois = 0;
$Host::EvoCannedChatLogging = 0;
$Host::EvoCannedSpamAllowed = 1;
$Host::EvoChatConsole = 1;
$Host::EvoChatLogging = 0;
$Host::EvoConnectLogging = 1;
$Host::EvoCustomMapLimitsFile = "prefs/SetMapLimits.cs";
$Host::EvoCustomMapRotation = 1;
$Host::EvoCustomMapRotationFile = "prefs/evo_mapRotation.cs";
$Host::EvoDailyHour = "00:00";
$Host::EvoDailyLogs = 0;
$Host::EvoDebugHTTP = 0;
$Host::EvoDefaultLeaseLevel = 1;
$Host::EvoDefaultsLoaded = 1;
$Host::EvoDefaultTimeLimit = 1;
$Host::EvoFairTeams = 1;
$Host::EvoForcedVotes = 1;
$Host::EvoFullServerPWAddAllowed = 0;
$Host::EvoFullServerPWEnabled = 0;
$Host::EvoFullServerPWPassword = "pickup";
$Host::EvoGameFixes = 1;
$Host::EvoKickObservers = 1200;
$Host::EvoLeaseInterval = 0;
$Host::EvoLeaseLocation = "prefs/leasedSA.txt";
$Host::EvoMOTD = "<color:3cb4b4><font:Sui Generis:22>Discord PUB\n<color:3cb4b4><font:Univers:16>Server Hosted/Provided by Branzone/Ravin\n<color:3cb4b4><font:Univers:16>Get Mappacks at https://playt2.tk";
$Host::EvoMOTDlines = 3;
$Host::EvoMOTDtime = 5;
$Host::EvoMuteSpamFX = 0;
$Host::EvoNoBaseRapeClassicPlayerCount = 14;
$Host::EvoNoBaseRapeEnabled = 1;
$Host::EvoNoBaseRapePlayerCount = 14;
$Host::EvoObserveFlag = 1;
$Host::EvoOneMapOnly = 0;
$Host::EvoPreMatchCannedSpamAllowed = 1;
$Host::EvoPreMatchSpamAllowed = 1;
$Host::EvoRandomMissions = 1;
$Host::EvoRandomTeams = 1;
$Host::EvoRelaxedFairTeams = 0;
$Host::EvoServerRules1 = "\c2if\c4(\c3%client.fun == \c5true \c4&& \c3%client.Llama_Grabs \c4< \c51\c4)";
$Host::EvoServerRules2 = " \c1Be_Courteous\c4(\c2%client, %game\c4);";
$Host::EvoServerRules3 = "\c2else if\c4(\c3%client.attitude \c4!$ = \c5%client.fun\c4)";
$Host::EvoServerRules4 = " \c1Try_2_Have_Fun\c4(\c2%client, %attitude\c4);";
$Host::EvoShowStats = 1;
$Host::EvoSkipMission = 0;
$Host::EvoSpamAllowed = 1;
$Host::EvoStats = 1;
$Host::EvoStatsPosition = 1;
$Host::EvoStatsTourney = 1;
$Host::EvoStatsType = 2;
$Host::EvoSuperAdminClanLock = 0;
$Host::EvoSuperAdminCRCCheck = 1;
$Host::EvoSuperAdminReset = 1;
$Host::EvoSuperAdminSuper = 1;
$Host::EvoSuperAdminWhois = 1;
$Host::EvoSuperClearServer = 1;
$Host::EvoSuperPassVote = 1;
$Host::EvoTCCannedMessages = 1;
$Host::EvoTCMessages = 1;
$Host::EvoTeamCannedSpam = 1;
$Host::EvoTeamMeMsg = 1;
$Host::EvoTeamSpam = 1;
$Host::EvoTimeLimitList = "90 120 150 180 240 360 480 999";
$Host::EvoTKLogging = 0;
$Host::EvoTKMax = 12;
$Host::EvoTKVote = 5;
$Host::EvoTKWarn1 = 3;
$Host::EvoTKWarn2 = 6;
$Host::EvoTourneySameMap = 1;
$Host::EvoUseHighPerformanceCounter = 0;
$Host::FloodProtectionEnabled = 1; $Host::FloodProtectionEnabled = 1;
$Host::GameName = "Tribes 2 Test"; $Host::GameName = "Tribes 2 Test";
$Host::HiVisibility = "1"; $Host::GuidCheck = 0;
$Host::HiVisibility = "0";
$Host::holoName1 = "Storm"; $Host::holoName1 = "Storm";
$Host::holoName2 = "Inferno"; $Host::holoName2 = "Inferno";
$Host::holoName3 = "Starwolf"; $Host::holoName3 = "Starwolf";
@ -178,707 +92,60 @@ $Host::holoName5 = "BloodEagle";
$Host::holoName6 = "Harbinger"; $Host::holoName6 = "Harbinger";
$Host::Info = " "; $Host::Info = " ";
$Host::KickBanTime = 600; $Host::KickBanTime = 600;
$Host::KickObserverTimeout = 1200;
$Host::LakRabbitDuelMode = 0; $Host::LakRabbitDuelMode = 0;
$Host::LakRabbitNoSplashDamage = "1"; $Host::LakRabbitNoSplashDamage = 1;
$Host::LakRabbitPubPro = 0; $Host::LakRabbitPubPro = 0;
$Host::LakRabbitShowFlagIcon = 1;
$Host::LakRabbitShowFlagTask = 0;
$Host::LakRabbitUnlimitedDJ = 1;
$Host::LoadingScreenUseDebrief = 1; $Host::LoadingScreenUseDebrief = 1;
$Host::LoadScreenColor1 = "05edad"; $Host::LoadScreenColor1 = "05edad";
$Host::LoadScreenColor2 = "29DEE7"; $Host::LoadScreenColor2 = "29DEE7";
$Host::LoadScreenColor3 = "33CCCC"; $Host::LoadScreenColor3 = "33CCCC";
$Host::LoadScreenLine1 = "Join Discord:"; $Host::LoadScreenLine1 = "Join Discord:";
$Host::LoadScreenLine1_Msg = "https://discord.me/tribes2"; $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 = "LakRabbit, Capture the Flag, DeathMatch, (Light Only) Capture the Flag, Siege";
$Host::LoadScreenLine3 = "Required Mappacks:"; $Host::LoadScreenLine3 = "Get Mappacks:";
$Host::LoadScreenLine3_Msg = "S5, S8, TWL, TWL2"; $Host::LoadScreenLine3_Msg = "<a:playt2.com/mappacks>playt2.com/mappacks</a>";
$Host::LoadScreenLine4 = "Server Provided by:"; $Host::LoadScreenLine4 = "Server Provided by:";
$Host::LoadScreenLine4_Msg = "Ravin"; $Host::LoadScreenLine4_Msg = "Ravin and Choco";
$Host::LoadScreenLine5 = "Server Hosted by:"; $Host::LoadScreenLine5 = "Server Hosted by:";
$Host::LoadScreenLine5_Msg = "Branzone"; $Host::LoadScreenLine5_Msg = "Branzone";
$Host::LoadScreenLine6 = "Server Github:"; $Host::LoadScreenLine6 = "Server Github:";
$Host::LoadScreenLine6_Msg = "https://github.com/ChocoTaco1/TacoServer"; $Host::LoadScreenLine6_Msg = "<a:github.com/ChocoTaco1/TacoServer>github.com/ChocoTaco1/TacoServer</a>";
$Host::LoadScreenMOTD1 = "Blaster is here to stay!"; $Host::LoadScreenMOTD1 = "Lak crowd early evenings after work during the week.";
$Host::LoadScreenMOTD2 = "Come play Arena on Wednesday Nights!"; $Host::LoadScreenMOTD2 = "Big CTF games Fridays, Saturdays, and Sundays!";
$Host::LoadScreenMOTD3 = "Lak crowd early evenings after work during the week."; $Host::LoadScreenMOTD3 = "Please make an effort to keep teams balanced!";
$Host::LoadScreenMOTD4 = "Big CTF games Fridays, Saturdays, and Sundays!"; $Host::LoadScreenMOTD4 = " ";
$Host::LogIntentionalQuit = 1;
$Host::Map = "VaubanLak"; $Host::Map = "VaubanLak";
$Host::MapCycleAcidRain_CTF = "0";
$Host::MapCycleArchipelago_CTF = "0";
$Host::MapCycleArenaDome_CTF = "0";
$Host::MapCycleArenaDome_sctf = "1";
$Host::MapCycleArenaDomeDM_DM = "1";
$Host::MapCycleArrakis_LakRabbit = "0";
$Host::MapCycleBastardForgeLT_sctf = "1";
$Host::MapCycleBeggarsRun_CTF = "1";
$Host::MapCycleBeggarsRunLT_sctf = "0";
$Host::MapCycleberlard_CTF = "1";
$Host::MapCycleberlard_sctf = "1";
$Host::MapCycleBerylBasin_CTF = "1";
$Host::MapCycleBlastside_nef_CTF = "0";
$Host::MapCycleBlink_CTF = "1";
$Host::MapCycleBlink_sctf = "1";
$Host::MapCycleBoxLak_LakRabbit = "1";
$Host::MapCycleBulwark_CTF = "1";
$Host::MapCycleBulwark_sctf = "1";
$Host::MapCycleCankerLak_LakRabbit = "1";
$Host::MapCycleChoke_CTF = "0";
$Host::MapCycleCircleofstones_CTF = "1";
$Host::MapCycleCirclesEdge_CTF = "1";
$Host::MapCycleCirclesEdgeLT_sctf = "1";
$Host::MapCycleConfusco_CTF = "0";
$Host::MapCycleConstructionYard_CTF = "0";
$Host::MapCycleCoppersky_CTF = "0";
$Host::MapCycleCrater71Lak_LakRabbit = "0";
$Host::MapCycleCrossfiredLak_LakRabbit = "1";
$Host::MapCycleDangerousCrossing_nef_CTF = "1";
$Host::MapCycleDangerousCrossingLT_sctf = "1";
$Host::MapCycleDesertofDeathLak_LakRabbit = "1";
$Host::MapCycleDire_CTF = "1";
$Host::MapCycleDireLT_sctf = "1";
$Host::MapCycleDiscord_CTF = "1";
$Host::MapCycleDiscord_sctf = "1";
$Host::MapCycleDisjointed_CTF = "1";
$Host::MapCycleDustRunLak_LakRabbit = "1";
$Host::MapCycleEntombedDM_DM = "1";
$Host::MapCycleEquinoxLak_LakRabbit = "0";
$Host::MapCycleFallout_CTF = "0";
$Host::MapCycleFenix_CTF = "0";
$Host::MapCycleFilteredDust_CTF = "0";
$Host::MapCycleFirestorm_CTF = "1";
$Host::MapCycleFirestormLT_sctf = "1";
$Host::MapCycleFourSquareDM_DM = "1";
$Host::MapCycleFrozenFuryLak_LakRabbit = "0";
$Host::MapCycleFullCircle_CTF = "0";
$Host::MapCycleGlade_CTF = "0";
$Host::MapCycleGodsRiftLak_LakRabbit = "0";
$Host::MapCycleHarvestDance_CTF = "1";
$Host::MapCycleHavenLak_LakRabbit = "1";
$Host::MapCycleHeadstone_CTF = "1";
$Host::MapCycleHeadstone_sctf = "0";
$Host::MapCycleHighAnxiety_CTF = "1";
$Host::MapCycleHighOctane_CTF = "1";
$Host::MapCycleHillside_CTF = "0";
$Host::MapCycleHillTopHop_sctf = "1";
$Host::MapCycleHoofToeDM_DM = "1";
$Host::MapCycleHostileLoch_CTF = "1";
$Host::MapCycleIceDomeDM_DM = "1";
$Host::MapCycleIceRidge_nef_CTF = "1";
$Host::MapCycleInfernus_CTF = "0";
$Host::MapCycleInfernusLak_LakRabbit = "1";
$Host::MapCycleIsland_CTF = "1";
$Host::MapCycleJadeValley_CTF = "0";
$Host::MapCycleJadeValley_sctf = "1";
$Host::MapCycleks_braistv_CTF = "0";
$Host::MapCycleLakefront_CTF = "0";
$Host::MapCycleLandingParty_CTF = "1";
$Host::MapCycleLiveBaitDM_DM = "1";
$Host::MapCycleLogans_Run_CTF = "1";
$Host::MapCycleLushLak_LakRabbit = "1";
$Host::MapCycleMac_FlagArena_CTF = "1";
$Host::MapCycleMachineeggs_CTF = "1";
$Host::MapCycleMiniSunDried_LakRabbit = "1";
$Host::MapCycleMinotaur_CTF = "1";
$Host::MapCycleMirage_CTF = "1";
$Host::MapCycleMirage_sctf = "0";
$Host::MapCycleMoonDance_CTF = "1";
$Host::MapCycleNatureMagic_CTF = "0";
$Host::MapCycleNightdance_CTF = "0";
$Host::MapCycleoasisintensity_CTF = "1";
$Host::MapCycleoasisintensity_sctf = "1";
$Host::MapCyclePantheon_CTF = "0";
$Host::MapCyclePariah_CTF = "1";
$Host::MapCyclePhasmaDustLak_LakRabbit = "0";
$Host::MapCyclePrismatic_CTF = "1";
$Host::MapCycleRaindance_nef_CTF = "1";
$Host::MapCycleRaindance_nefLak_LakRabbit = "1";
$Host::MapCycleRaindanceLT_sctf = "1";
$Host::MapCycleRamparts_CTF = "0";
$Host::MapCycleRampartsDM_DM = "1";
$Host::MapCycleRaspDM_DM = "1";
$Host::MapCycleRollercoaster_nef_CTF = "1";
$Host::MapCycleRoundTheMountain_CTF = "1";
$Host::MapCycleRoundTheMountainLT_sctf = "1";
$Host::MapCycleS5_Centaur_CTF = "1";
$Host::MapCycleS5_Damnation_CTF = "1";
$Host::MapCycleS5_DamnationLT_sctf = "1";
$Host::MapCycleS5_Drache_CTF = "0";
$Host::MapCycleS5_HawkingHeat_CTF = "0";
$Host::MapCycleS5_HawkingHeat_sctf = "0";
$Host::MapCycleS5_Icedance_CTF = "1";
$Host::MapCycleS5_Icedance_sctf = "1";
$Host::MapCycleS5_Massive_CTF = "1";
$Host::MapCycleS5_MassiveLT_sctf = "1";
$Host::MapCycleS5_Mimicry_CTF = "1";
$Host::MapCycleS5_Mimicry_sctf = "0";
$Host::MapCycleS5_Mordacity_CTF = "1";
$Host::MapCycleS5_Mordacity_sctf = "1";
$Host::MapCycleS5_Reynard_CTF = "0";
$Host::MapCycleS5_Sherman_CTF = "0";
$Host::MapCycleS5_Silenus_CTF = "0";
$Host::MapCycleS5_SilenusLT_sctf = "1";
$Host::MapCycleS5_Woodymyrk_CTF = "1";
$Host::MapCycleS5_Woodymyrk_sctf = "0";
$Host::MapCycleS8_Cardiac_CTF = "1";
$Host::MapCycleS8_Cardiac_sctf = "0";
$Host::MapCycleS8_Geothermal_CTF = "0";
$Host::MapCycleS8_GeothermalLak_LakRabbit = "1";
$Host::MapCycleS8_Opus_CTF = "1";
$Host::MapCycleS8_Opus_sctf = "0";
$Host::MapCycleSaddiesHill_LakRabbit = "1";
$Host::MapCycleSandOcean_CTF = "0";
$Host::MapCycleSangre_de_Grado_CTF = "0";
$Host::MapCycleShockRidge_CTF = "0";
$Host::MapCycleShortFall_CTF = "1";
$Host::MapCycleShrineDM_DM = "1";
$Host::MapCycleSignal_CTF = "1";
$Host::MapCycleSignalLT_sctf = "1";
$Host::MapCycleSkinnyDipLak_LakRabbit = "1";
$Host::MapCycleSlapdash_CTF = "0";
$Host::MapCycleSmallCrossing_CTF = "1";
$Host::MapCycleSmallCrossingLT_sctf = "1";
$Host::MapCycleSmallMelee_CTF = "0";
$Host::MapCycleSmallTimeCTF_CTF = "1";
$Host::MapCycleSmallTimeLT_sctf = "1";
$Host::MapCycleSnowcone_CTF = "0";
$Host::MapCycleSolsDescentLak_LakRabbit = "0";
$Host::MapCycleSoylentGreen_CTF = "0";
$Host::MapCycleStarFallLT_sctf = "1";
$Host::MapCycleStarIce_CTF = "0";
$Host::MapCycleSubZeroV_CTF = "1";
$Host::MapCycleSulfide_LakRabbit = "0";
$Host::MapCycleSundance_LakRabbit = "1";
$Host::MapCycleSunDriedLak_LakRabbit = "1";
$Host::MapCycleSuperHappyBouncyFunTime_CTF = "1";
$Host::MapCycleSurreal_CTF = "0";
$Host::MapCycleSurro_CTF = "1";
$Host::MapCycleTenebrousCTF_CTF = "1";
$Host::MapCycleTenebrousCTF_sctf = "1";
$Host::MapCycleTheClocktower_CTF = "0";
$Host::MapCycleTheFray_CTF = "1";
$Host::MapCycleTheFray_sctf = "1";
$Host::MapCycleTibbawLak_LakRabbit = "1";
$Host::MapCycleTitaniaLak_LakRabbit = "1";
$Host::MapCycleTitanV_CTF = "1";
$Host::MapCycleTitForTat_CTF = "0";
$Host::MapCycleTreasureIslandLak_LakRabbit = "0";
$Host::MapCycleTWL2_Bleed_CTF = "0";
$Host::MapCycleTWL2_BlueMoon_CTF = "0";
$Host::MapCycleTWL2_CanyonCrusadeDeluxe_CTF = "1";
$Host::MapCycleTWL2_CanyonCrusadeDeluxeLT_sctf = "1";
$Host::MapCycleTWL2_Celerity_CTF = "0";
$Host::MapCycleTWL2_Celerity_sctf = "0";
$Host::MapCycleTWL2_Crevice_CTF = "0";
$Host::MapCycleTWL2_Crevice_sctf = "0";
$Host::MapCycleTWL2_FrozenGlory_CTF = "1";
$Host::MapCycleTWL2_FrozenHope_CTF = "0";
$Host::MapCycleTWL2_FrozenHopeLT_sctf = "1";
$Host::MapCycleTWL2_Hildebrand_CTF = "1";
$Host::MapCycleTWL2_HildebrandLT_sctf = "1";
$Host::MapCycleTWL2_IceDagger_CTF = "0";
$Host::MapCycleTWL2_JaggedClaw_CTF = "1";
$Host::MapCycleTWL2_JaggedClawLT_sctf = "1";
$Host::MapCycleTWL2_Magnum_CTF = "1";
$Host::MapCycleTWL2_MidnightMayhemDeluxe_CTF = "0";
$Host::MapCycleTWL2_MidnightMayhemDeluxe_sctf = "0";
$Host::MapCycleTWL2_MuddySwamp_CTF = "1";
$Host::MapCycleTWL2_Ocular_CTF = "1";
$Host::MapCycleTWL2_Ocular_sctf = "0";
$Host::MapCycleTWL2_RoughLand_CTF = "0";
$Host::MapCycleTWL2_Ruined_CTF = "0";
$Host::MapCycleTWL2_Skylight_CTF = "1";
$Host::MapCycleTWL2_SkylightLT_sctf = "1";
$Host::MapCycleTWL_BeachBlitz_CTF = "1";
$Host::MapCycleTWL_BeachBlitzLak_LakRabbit = "1";
$Host::MapCycleTWL_BeachBlitzLT_sctf = "1";
$Host::MapCycleTWL_Chokepoint_CTF = "0";
$Host::MapCycleTWL_Cinereous_CTF = "0";
$Host::MapCycleTWL_Cinereous_sctf = "0";
$Host::MapCycleTWL_Crossfire_CTF = "1";
$Host::MapCycleTWL_Damnation_CTF = "0";
$Host::MapCycleTWL_Damnation_sctf = "0";
$Host::MapCycleTWL_DangerousCrossing_CTF = "0";
$Host::MapCycleTWL_DangerousCrossing_sctf = "0";
$Host::MapCycleTWL_DeadlyBirdsSong_CTF = "0";
$Host::MapCycleTWL_Deserted_sctf = "0";
$Host::MapCycleTWL_Feign_CTF = "1";
$Host::MapCycleTWL_FeignLT_sctf = "1";
$Host::MapCycleTWL_Frozen_CTF = "0";
$Host::MapCycleTWL_Harvester_CTF = "0";
$Host::MapCycleTWL_Katabatic_CTF = "0";
$Host::MapCycleTWL_OsIris_CTF = "0";
$Host::MapCycleTWL_OsIris_sctf = "0";
$Host::MapCycleTWL_RollercoasterLT_sctf = "1";
$Host::MapCycleTWL_Snowblind_CTF = "1";
$Host::MapCycleTWL_Starfallen_CTF = "0";
$Host::MapCycleTWL_Stonehenge_CTF = "1";
$Host::MapCycleTWL_StonehengeLT_sctf = "1";
$Host::MapCycleTWL_SubZero_CTF = "0";
$Host::MapCycleTWL_Titan_CTF = "0";
$Host::MapCycleTWL_Titan_sctf = "0";
$Host::MapCycleTWL_WilderZone_CTF = "1";
$Host::MapCycleTWL_WilderZoneLT_sctf = "1";
$Host::MapCycleVauban_CTF = "1";
$Host::MapCycleVaubanLak_LakRabbit = "1";
$Host::MapCycleVulcansWrathDM_DM = "1";
$Host::MapCycleWindyGap_CTF = "1";
$Host::MapFFAAcidRain_CTF = "1";
$Host::MapFFAArchipelago_CTF = "1";
$Host::MapFFAArenaDome_CTF = "1";
$Host::MapFFAArenaDome_sctf = "1";
$Host::MapFFAArenaDomeDM_DM = "1";
$Host::MapFFAArrakis_LakRabbit = "1";
$Host::MapFFABastardForgeLT_sctf = "1";
$Host::MapFFABeggarsRun_CTF = "1";
$Host::MapFFABeggarsRunLT_sctf = "1";
$Host::MapFFAberlard_CTF = "1";
$Host::MapFFAberlard_sctf = "1";
$Host::MapFFABerylBasin_CTF = "1";
$Host::MapFFABlastside_nef_CTF = "1";
$Host::MapFFABlink_CTF = "1";
$Host::MapFFABlink_sctf = "1";
$Host::MapFFABoxLak_LakRabbit = "1";
$Host::MapFFABulwark_CTF = "1";
$Host::MapFFABulwark_sctf = "1";
$Host::MapFFACankerLak_LakRabbit = "1";
$Host::MapFFAChoke_CTF = "1";
$Host::MapFFACircleofstones_CTF = "1";
$Host::MapFFACirclesEdge_CTF = "1";
$Host::MapFFACirclesEdgeLT_sctf = "1";
$Host::MapFFAConfusco_CTF = "1";
$Host::MapFFAConstructionYard_CTF = "1";
$Host::MapFFACoppersky_CTF = "1";
$Host::MapFFACrater71Lak_LakRabbit = "1";
$Host::MapFFACrossfiredLak_LakRabbit = "1";
$Host::MapFFADangerousCrossing_nef_CTF = "1";
$Host::MapFFADangerousCrossingLT_sctf = "1";
$Host::MapFFADesertofDeathLak_LakRabbit = "1";
$Host::MapFFADire_CTF = "1";
$Host::MapFFADireLT_sctf = "1";
$Host::MapFFADiscord_CTF = "1";
$Host::MapFFADiscord_sctf = "1";
$Host::MapFFADisjointed_CTF = "1";
$Host::MapFFADustRunLak_LakRabbit = "1";
$Host::MapFFAEntombedDM_DM = "1";
$Host::MapFFAEquinoxLak_LakRabbit = "1";
$Host::MapFFAFallout_CTF = "1";
$Host::MapFFAFenix_CTF = "1";
$Host::MapFFAFilteredDust_CTF = "1";
$Host::MapFFAFirestorm_CTF = "1";
$Host::MapFFAFirestormLT_sctf = "1";
$Host::MapFFAFourSquareDM_DM = "1";
$Host::MapFFAFrozenFuryLak_LakRabbit = "1";
$Host::MapFFAFullCircle_CTF = "1";
$Host::MapFFAGlade_CTF = "1";
$Host::MapFFAGodsRiftLak_LakRabbit = "1";
$Host::MapFFAHarvestDance_CTF = "1";
$Host::MapFFAHavenLak_LakRabbit = "1";
$Host::MapFFAHeadstone_CTF = "1";
$Host::MapFFAHeadstone_sctf = "1";
$Host::MapFFAHighAnxiety_CTF = "1";
$Host::MapFFAHighOctane_CTF = "1";
$Host::MapFFAHillside_CTF = "1";
$Host::MapFFAHillTopHop_sctf = "1";
$Host::MapFFAHoofToeDM_DM = "1";
$Host::MapFFAHostileLoch_CTF = "1";
$Host::MapFFAIceDomeDM_DM = "1";
$Host::MapFFAIceRidge_nef_CTF = "1";
$Host::MapFFAInfernus_CTF = "1";
$Host::MapFFAInfernusLak_LakRabbit = "1";
$Host::MapFFAIsland_CTF = "1";
$Host::MapFFAJadeValley_CTF = "1";
$Host::MapFFAJadeValley_sctf = "1";
$Host::MapFFAks_braistv_CTF = "1";
$Host::MapFFALakefront_CTF = "1";
$Host::MapFFALandingParty_CTF = "1";
$Host::MapFFALiveBaitDM_DM = "1";
$Host::MapFFALogans_Run_CTF = "1";
$Host::MapFFALushLak_LakRabbit = "1";
$Host::MapFFAMac_FlagArena_CTF = "1";
$Host::MapFFAMachineeggs_CTF = "1";
$Host::MapFFAMiniSunDried_LakRabbit = "1";
$Host::MapFFAMinotaur_CTF = "1";
$Host::MapFFAMirage_CTF = "1";
$Host::MapFFAMirage_sctf = "1";
$Host::MapFFAMoonDance_CTF = "1";
$Host::MapFFANatureMagic_CTF = "1";
$Host::MapFFANightdance_CTF = "1";
$Host::MapFFAoasisintensity_CTF = "1";
$Host::MapFFAoasisintensity_sctf = "1";
$Host::MapFFAPantheon_CTF = "1";
$Host::MapFFAPariah_CTF = "1";
$Host::MapFFAPhasmaDustLak_LakRabbit = "1";
$Host::MapFFAPrismatic_CTF = "1";
$Host::MapFFARaindance_nef_CTF = "1";
$Host::MapFFARaindance_nefLak_LakRabbit = "1";
$Host::MapFFARaindanceLT_sctf = "1";
$Host::MapFFARamparts_CTF = "1";
$Host::MapFFARampartsDM_DM = "1";
$Host::MapFFARaspDM_DM = "1";
$Host::MapFFARollercoaster_nef_CTF = "1";
$Host::MapFFARoundTheMountain_CTF = "1";
$Host::MapFFARoundTheMountainLT_sctf = "1";
$Host::MapFFAS5_Centaur_CTF = "1";
$Host::MapFFAS5_Damnation_CTF = "1";
$Host::MapFFAS5_DamnationLT_sctf = "1";
$Host::MapFFAS5_Drache_CTF = "1";
$Host::MapFFAS5_HawkingHeat_CTF = "1";
$Host::MapFFAS5_HawkingHeat_sctf = "1";
$Host::MapFFAS5_Icedance_CTF = "1";
$Host::MapFFAS5_Icedance_sctf = "1";
$Host::MapFFAS5_Massive_CTF = "1";
$Host::MapFFAS5_MassiveLT_sctf = "1";
$Host::MapFFAS5_Mimicry_CTF = "1";
$Host::MapFFAS5_Mimicry_sctf = "1";
$Host::MapFFAS5_Mordacity_CTF = "1";
$Host::MapFFAS5_Mordacity_sctf = "1";
$Host::MapFFAS5_Reynard_CTF = "1";
$Host::MapFFAS5_Sherman_CTF = "1";
$Host::MapFFAS5_Silenus_CTF = "1";
$Host::MapFFAS5_SilenusLT_sctf = "1";
$Host::MapFFAS5_Woodymyrk_CTF = "1";
$Host::MapFFAS5_Woodymyrk_sctf = "1";
$Host::MapFFAS8_Cardiac_CTF = "1";
$Host::MapFFAS8_Cardiac_sctf = "1";
$Host::MapFFAS8_Geothermal_CTF = "1";
$Host::MapFFAS8_GeothermalLak_LakRabbit = "1";
$Host::MapFFAS8_Opus_CTF = "1";
$Host::MapFFAS8_Opus_sctf = "1";
$Host::MapFFASaddiesHill_LakRabbit = "1";
$Host::MapFFASandOcean_CTF = "1";
$Host::MapFFASangre_de_Grado_CTF = "1";
$Host::MapFFAShockRidge_CTF = "1";
$Host::MapFFAShortFall_CTF = "1";
$Host::MapFFAShrineDM_DM = "1";
$Host::MapFFASignal_CTF = "1";
$Host::MapFFASignalLT_sctf = "1";
$Host::MapFFASkinnyDipLak_LakRabbit = "1";
$Host::MapFFASlapdash_CTF = "1";
$Host::MapFFASmallCrossing_CTF = "1";
$Host::MapFFASmallCrossingLT_sctf = "1";
$Host::MapFFASmallMelee_CTF = "1";
$Host::MapFFASmallTimeCTF_CTF = "1";
$Host::MapFFASmallTimeLT_sctf = "1";
$Host::MapFFASnowcone_CTF = "1";
$Host::MapFFASolsDescentLak_LakRabbit = "1";
$Host::MapFFASoylentGreen_CTF = "1";
$Host::MapFFAStarFallLT_sctf = "1";
$Host::MapFFAStarIce_CTF = "1";
$Host::MapFFASubZeroV_CTF = "1";
$Host::MapFFASulfide_LakRabbit = "1";
$Host::MapFFASundance_LakRabbit = "1";
$Host::MapFFASunDriedLak_LakRabbit = "1";
$Host::MapFFASuperHappyBouncyFunTime_CTF = "1";
$Host::MapFFASurreal_CTF = "1";
$Host::MapFFASurro_CTF = "1";
$Host::MapFFATenebrousCTF_CTF = "1";
$Host::MapFFATenebrousCTF_sctf = "1";
$Host::MapFFATheClocktower_CTF = "1";
$Host::MapFFATheFray_CTF = "1";
$Host::MapFFATheFray_sctf = "1";
$Host::MapFFATibbawLak_LakRabbit = "1";
$Host::MapFFATitaniaLak_LakRabbit = "1";
$Host::MapFFATitanV_CTF = "1";
$Host::MapFFATitForTat_CTF = "1";
$Host::MapFFATreasureIslandLak_LakRabbit = "1";
$Host::MapFFATWL2_Bleed_CTF = "1";
$Host::MapFFATWL2_BlueMoon_CTF = "1";
$Host::MapFFATWL2_CanyonCrusadeDeluxe_CTF = "1";
$Host::MapFFATWL2_CanyonCrusadeDeluxeLT_sctf = "1";
$Host::MapFFATWL2_Celerity_CTF = "1";
$Host::MapFFATWL2_Celerity_sctf = "1";
$Host::MapFFATWL2_Crevice_CTF = "1";
$Host::MapFFATWL2_Crevice_sctf = "1";
$Host::MapFFATWL2_FrozenGlory_CTF = "1";
$Host::MapFFATWL2_FrozenHope_CTF = "1";
$Host::MapFFATWL2_FrozenHopeLT_sctf = "1";
$Host::MapFFATWL2_Hildebrand_CTF = "1";
$Host::MapFFATWL2_HildebrandLT_sctf = "1";
$Host::MapFFATWL2_IceDagger_CTF = "1";
$Host::MapFFATWL2_JaggedClaw_CTF = "1";
$Host::MapFFATWL2_JaggedClawLT_sctf = "1";
$Host::MapFFATWL2_Magnum_CTF = "1";
$Host::MapFFATWL2_MidnightMayhemDeluxe_CTF = "1";
$Host::MapFFATWL2_MidnightMayhemDeluxe_sctf = "1";
$Host::MapFFATWL2_MuddySwamp_CTF = "1";
$Host::MapFFATWL2_Ocular_CTF = "1";
$Host::MapFFATWL2_Ocular_sctf = "1";
$Host::MapFFATWL2_RoughLand_CTF = "1";
$Host::MapFFATWL2_Ruined_CTF = "1";
$Host::MapFFATWL2_Skylight_CTF = "1";
$Host::MapFFATWL2_SkylightLT_sctf = "1";
$Host::MapFFATWL_BeachBlitz_CTF = "1";
$Host::MapFFATWL_BeachBlitzLak_LakRabbit = "1";
$Host::MapFFATWL_BeachBlitzLT_sctf = "1";
$Host::MapFFATWL_Chokepoint_CTF = "1";
$Host::MapFFATWL_Cinereous_CTF = "1";
$Host::MapFFATWL_Cinereous_sctf = "1";
$Host::MapFFATWL_Crossfire_CTF = "1";
$Host::MapFFATWL_Damnation_CTF = "1";
$Host::MapFFATWL_Damnation_sctf = "1";
$Host::MapFFATWL_DangerousCrossing_CTF = "1";
$Host::MapFFATWL_DangerousCrossing_sctf = "1";
$Host::MapFFATWL_DeadlyBirdsSong_CTF = "1";
$Host::MapFFATWL_Deserted_sctf = "1";
$Host::MapFFATWL_Feign_CTF = "1";
$Host::MapFFATWL_FeignLT_sctf = "1";
$Host::MapFFATWL_Frozen_CTF = "1";
$Host::MapFFATWL_Harvester_CTF = "1";
$Host::MapFFATWL_Katabatic_CTF = "1";
$Host::MapFFATWL_OsIris_CTF = "1";
$Host::MapFFATWL_OsIris_sctf = "1";
$Host::MapFFATWL_RollercoasterLT_sctf = "1";
$Host::MapFFATWL_Snowblind_CTF = "1";
$Host::MapFFATWL_Starfallen_CTF = "1";
$Host::MapFFATWL_Stonehenge_CTF = "1";
$Host::MapFFATWL_StonehengeLT_sctf = "1";
$Host::MapFFATWL_SubZero_CTF = "1";
$Host::MapFFATWL_Titan_CTF = "1";
$Host::MapFFATWL_Titan_sctf = "1";
$Host::MapFFATWL_WilderZone_CTF = "1";
$Host::MapFFATWL_WilderZoneLT_sctf = "1";
$Host::MapFFAVauban_CTF = "1";
$Host::MapFFAVaubanLak_LakRabbit = "1";
$Host::MapFFAVulcansWrathDM_DM = "1";
$Host::MapFFAWindyGap_CTF = "1";
$Host::MapPlayerLimitsAcidRain_CTF = "12 32";
$Host::MapPlayerLimitsArchipelago_CTF = "14 32";
$Host::MapPlayerLimitsArenaDome_CTF = "-1 10";
$Host::MapPlayerLimitsArenaDome_sctf = "-1 32";
$Host::MapPlayerLimitsArenaDomeDM_DM = "-1 32";
$Host::MapPlayerLimitsArrakis_LakRabbit = "-1 32";
$Host::MapPlayerLimitsBastardForgeLT_sctf = "-1 32";
$Host::MapPlayerLimitsBeggarsRun_CTF = "8 32";
$Host::MapPlayerLimitsBeggarsRunLT_sctf = "-1 32";
$Host::MapPlayerLimitsberlard_CTF = "8 32";
$Host::MapPlayerLimitsberlard_sctf = "-1 32";
$Host::MapPlayerLimitsBerylBasin_CTF = "14 32";
$Host::MapPlayerLimitsBlastside_nef_CTF = "10 32";
$Host::MapPlayerLimitsBlink_CTF = "8 32";
$Host::MapPlayerLimitsBlink_sctf = "-1 32";
$Host::MapPlayerLimitsBoxLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsBulwark_CTF = "8 32";
$Host::MapPlayerLimitsBulwark_sctf = "-1 32";
$Host::MapPlayerLimitsCankerLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsChoke_CTF = "12 32";
$Host::MapPlayerLimitsCircleofstones_CTF = "14 32";
$Host::MapPlayerLimitsCirclesEdge_CTF = "8 32";
$Host::MapPlayerLimitsCirclesEdgeLT_sctf = "-1 32";
$Host::MapPlayerLimitsConfusco_CTF = "10 32";
$Host::MapPlayerLimitsConstructionYard_CTF = "12 32";
$Host::MapPlayerLimitsCoppersky_CTF = "10 32";
$Host::MapPlayerLimitsCrater71Lak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsCrossfiredLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsDangerousCrossing_nef_CTF = "8 32";
$Host::MapPlayerLimitsDangerousCrossingLT_sctf = "-1 32";
$Host::MapPlayerLimitsDesertofDeathLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsDire_CTF = "8 32";
$Host::MapPlayerLimitsDireLT_sctf = "-1 32";
$Host::MapPlayerLimitsDiscord_CTF = "8 32";
$Host::MapPlayerLimitsDiscord_sctf = "-1 32";
$Host::MapPlayerLimitsDisjointed_CTF = "8 32";
$Host::MapPlayerLimitsDustRunLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsEntombedDM_DM = "-1 32";
$Host::MapPlayerLimitsEquinoxLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsFallout_CTF = "10 32";
$Host::MapPlayerLimitsFenix_CTF = "14 32";
$Host::MapPlayerLimitsFilteredDust_CTF = "12 32";
$Host::MapPlayerLimitsFirestorm_CTF = "-1 18";
$Host::MapPlayerLimitsFirestormLT_sctf = "-1 32";
$Host::MapPlayerLimitsFourSquareDM_DM = "-1 32";
$Host::MapPlayerLimitsFrozenFuryLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsFullCircle_CTF = "12 32";
$Host::MapPlayerLimitsGlade_CTF = "12 32";
$Host::MapPlayerLimitsGodsRiftLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsHarvestDance_CTF = "12 32";
$Host::MapPlayerLimitsHavenLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsHeadstone_CTF = "8 32";
$Host::MapPlayerLimitsHeadstone_sctf = "-1 32";
$Host::MapPlayerLimitsHighAnxiety_CTF = "8 32";
$Host::MapPlayerLimitsHighOctane_CTF = "8 32";
$Host::MapPlayerLimitsHillside_CTF = "14 32";
$Host::MapPlayerLimitsHillTopHop_sctf = "-1 32";
$Host::MapPlayerLimitsHoofToeDM_DM = "-1 32";
$Host::MapPlayerLimitsHostileLoch_CTF = "12 32";
$Host::MapPlayerLimitsIceDomeDM_DM = "-1 32";
$Host::MapPlayerLimitsIceRidge_nef_CTF = "8 32";
$Host::MapPlayerLimitsInfernus_CTF = "10 32";
$Host::MapPlayerLimitsInfernusLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsIsland_CTF = "-1 18";
$Host::MapPlayerLimitsJadeValley_CTF = "10 32";
$Host::MapPlayerLimitsJadeValley_sctf = "-1 32";
$Host::MapPlayerLimitsks_braistv_CTF = "12 32";
$Host::MapPlayerLimitsLakefront_CTF = "12 32";
$Host::MapPlayerLimitsLandingParty_CTF = "12 32";
$Host::MapPlayerLimitsLiveBaitDM_DM = "-1 32";
$Host::MapPlayerLimitsLogans_Run_CTF = "12 32";
$Host::MapPlayerLimitsLushLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsMac_FlagArena_CTF = "-1 12";
$Host::MapPlayerLimitsMachineeggs_CTF = "-1 10";
$Host::MapPlayerLimitsMiniSunDried_LakRabbit = "-1 32";
$Host::MapPlayerLimitsMinotaur_CTF = "-1 18";
$Host::MapPlayerLimitsMirage_CTF = "8 32";
$Host::MapPlayerLimitsMirage_sctf = "-1 32";
$Host::MapPlayerLimitsMoonDance_CTF = "12 32";
$Host::MapPlayerLimitsNatureMagic_CTF = "10 32";
$Host::MapPlayerLimitsNightdance_CTF = "10 32";
$Host::MapPlayerLimitsoasisintensity_CTF = "-1 12";
$Host::MapPlayerLimitsoasisintensity_sctf = "-1 32";
$Host::MapPlayerLimitsPantheon_CTF = "14 32";
$Host::MapPlayerLimitsPariah_CTF = "8 32";
$Host::MapPlayerLimitsPhasmaDustLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsPrismatic_CTF = "8 32";
$Host::MapPlayerLimitsRaindance_nef_CTF = "12 32";
$Host::MapPlayerLimitsRaindance_nefLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsRaindanceLT_sctf = "-1 32";
$Host::MapPlayerLimitsRamparts_CTF = "10 32";
$Host::MapPlayerLimitsRampartsDM_DM = "-1 32";
$Host::MapPlayerLimitsRaspDM_DM = "-1 32";
$Host::MapPlayerLimitsRollercoaster_nef_CTF = "12 32";
$Host::MapPlayerLimitsRoundTheMountain_CTF = "-1 18";
$Host::MapPlayerLimitsRoundTheMountainLT_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Centaur_CTF = "8 32";
$Host::MapPlayerLimitsS5_Damnation_CTF = "8 32";
$Host::MapPlayerLimitsS5_DamnationLT_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Drache_CTF = "10 32";
$Host::MapPlayerLimitsS5_HawkingHeat_CTF = "10 32";
$Host::MapPlayerLimitsS5_HawkingHeat_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Icedance_CTF = "8 32";
$Host::MapPlayerLimitsS5_Icedance_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Massive_CTF = "8 32";
$Host::MapPlayerLimitsS5_MassiveLT_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Mimicry_CTF = "8 32";
$Host::MapPlayerLimitsS5_Mimicry_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Mordacity_CTF = "8 32";
$Host::MapPlayerLimitsS5_Mordacity_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Reynard_CTF = "10 32";
$Host::MapPlayerLimitsS5_Sherman_CTF = "10 32";
$Host::MapPlayerLimitsS5_Silenus_CTF = "10 32";
$Host::MapPlayerLimitsS5_SilenusLT_sctf = "-1 32";
$Host::MapPlayerLimitsS5_Woodymyrk_CTF = "8 32";
$Host::MapPlayerLimitsS5_Woodymyrk_sctf = "-1 32";
$Host::MapPlayerLimitsS8_Cardiac_CTF = "8 32";
$Host::MapPlayerLimitsS8_Cardiac_sctf = "-1 32";
$Host::MapPlayerLimitsS8_Geothermal_CTF = "12 32";
$Host::MapPlayerLimitsS8_GeothermalLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsS8_Opus_CTF = "8 32";
$Host::MapPlayerLimitsS8_Opus_sctf = "-1 32";
$Host::MapPlayerLimitsSaddiesHill_LakRabbit = "-1 32";
$Host::MapPlayerLimitsSandOcean_CTF = "12 32";
$Host::MapPlayerLimitsSangre_de_Grado_CTF = "14 32";
$Host::MapPlayerLimitsShockRidge_CTF = "12 32";
$Host::MapPlayerLimitsShortFall_CTF = "8 32";
$Host::MapPlayerLimitsShrineDM_DM = "-1 32";
$Host::MapPlayerLimitsSignal_CTF = "8 32";
$Host::MapPlayerLimitsSignalLT_sctf = "-1 32";
$Host::MapPlayerLimitsSkinnyDipLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsSlapdash_CTF = "14 32";
$Host::MapPlayerLimitsSmallCrossing_CTF = "-1 18";
$Host::MapPlayerLimitsSmallCrossingLT_sctf = "-1 32";
$Host::MapPlayerLimitsSmallMelee_CTF = "-1 12";
$Host::MapPlayerLimitsSmallTimeCTF_CTF = "-1 18";
$Host::MapPlayerLimitsSmallTimeLT_sctf = "-1 32";
$Host::MapPlayerLimitsSnowcone_CTF = "10 32";
$Host::MapPlayerLimitsSolsDescentLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsSoylentGreen_CTF = "10 32";
$Host::MapPlayerLimitsStarFallLT_sctf = "-1 32";
$Host::MapPlayerLimitsStarIce_CTF = "12 32";
$Host::MapPlayerLimitsSubZeroV_CTF = "12 32";
$Host::MapPlayerLimitsSulfide_LakRabbit = "-1 32";
$Host::MapPlayerLimitsSundance_LakRabbit = "-1 32";
$Host::MapPlayerLimitsSunDriedLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsSuperHappyBouncyFunTime_CTF = "-1 10";
$Host::MapPlayerLimitsSurreal_CTF = "10 32";
$Host::MapPlayerLimitsSurro_CTF = "12 32";
$Host::MapPlayerLimitsTenebrousCTF_CTF = "8 32";
$Host::MapPlayerLimitsTenebrousCTF_sctf = "-1 32";
$Host::MapPlayerLimitsTheClocktower_CTF = "10 32";
$Host::MapPlayerLimitsTheFray_CTF = "8 32";
$Host::MapPlayerLimitsTheFray_sctf = "-1 32";
$Host::MapPlayerLimitsTibbawLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsTitaniaLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsTitanV_CTF = "12 32";
$Host::MapPlayerLimitsTitForTat_CTF = "-1 18";
$Host::MapPlayerLimitsTreasureIslandLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsTWL2_Bleed_CTF = "14 32";
$Host::MapPlayerLimitsTWL2_BlueMoon_CTF = "12 32";
$Host::MapPlayerLimitsTWL2_CanyonCrusadeDeluxe_CTF = "-1 18";
$Host::MapPlayerLimitsTWL2_CanyonCrusadeDeluxeLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_Celerity_CTF = "10 32";
$Host::MapPlayerLimitsTWL2_Celerity_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_Crevice_CTF = "10 32";
$Host::MapPlayerLimitsTWL2_Crevice_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_FrozenGlory_CTF = "12 32";
$Host::MapPlayerLimitsTWL2_FrozenHope_CTF = "10 32";
$Host::MapPlayerLimitsTWL2_FrozenHopeLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_Hildebrand_CTF = "-1 18";
$Host::MapPlayerLimitsTWL2_HildebrandLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_IceDagger_CTF = "10 32";
$Host::MapPlayerLimitsTWL2_JaggedClaw_CTF = "8 32";
$Host::MapPlayerLimitsTWL2_JaggedClawLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_Magnum_CTF = "12 32";
$Host::MapPlayerLimitsTWL2_MidnightMayhemDeluxe_CTF = "10 32";
$Host::MapPlayerLimitsTWL2_MidnightMayhemDeluxe_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_MuddySwamp_CTF = "8 32";
$Host::MapPlayerLimitsTWL2_Ocular_CTF = "8 32";
$Host::MapPlayerLimitsTWL2_Ocular_sctf = "-1 32";
$Host::MapPlayerLimitsTWL2_RoughLand_CTF = "12 32";
$Host::MapPlayerLimitsTWL2_Ruined_CTF = "12 32";
$Host::MapPlayerLimitsTWL2_Skylight_CTF = "8 32";
$Host::MapPlayerLimitsTWL2_SkylightLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_BeachBlitz_CTF = "12 32";
$Host::MapPlayerLimitsTWL_BeachBlitzLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsTWL_BeachBlitzLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_Chokepoint_CTF = "12 32";
$Host::MapPlayerLimitsTWL_Cinereous_CTF = "10 32";
$Host::MapPlayerLimitsTWL_Cinereous_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_Crossfire_CTF = "12 32";
$Host::MapPlayerLimitsTWL_Damnation_CTF = "10 32";
$Host::MapPlayerLimitsTWL_Damnation_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_DangerousCrossing_CTF = "10 32";
$Host::MapPlayerLimitsTWL_DangerousCrossing_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_DeadlyBirdsSong_CTF = "10 32";
$Host::MapPlayerLimitsTWL_Deserted_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_Feign_CTF = "8 32";
$Host::MapPlayerLimitsTWL_FeignLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_Frozen_CTF = "14 32";
$Host::MapPlayerLimitsTWL_Harvester_CTF = "14 32";
$Host::MapPlayerLimitsTWL_Katabatic_CTF = "12 32";
$Host::MapPlayerLimitsTWL_Magamatic_CTF = "12 32";
$Host::MapPlayerLimitsTWL_OsIris_CTF = "10 32";
$Host::MapPlayerLimitsTWL_OsIris_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_RollercoasterLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_Snowblind_CTF = "8 32";
$Host::MapPlayerLimitsTWL_Starfallen_CTF = "12 32";
$Host::MapPlayerLimitsTWL_Stonehenge_CTF = "8 32";
$Host::MapPlayerLimitsTWL_StonehengeLT_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_SubZero_CTF = "10 32";
$Host::MapPlayerLimitsTWL_Titan_CTF = "10 32";
$Host::MapPlayerLimitsTWL_Titan_sctf = "-1 32";
$Host::MapPlayerLimitsTWL_WilderZone_CTF = "8 32";
$Host::MapPlayerLimitsTWL_WilderZoneLT_sctf = "-1 32";
$Host::MapPlayerLimitsVauban_CTF = "12 32";
$Host::MapPlayerLimitsVaubanLak_LakRabbit = "-1 32";
$Host::MapPlayerLimitsVulcansWrathDM_DM = "-1 32";
$Host::MapPlayerLimitsWindyGap_CTF = "12 32";
$Host::MarkDnDObjectives = 1; $Host::MarkDnDObjectives = 1;
$Host::MaxBotDifficulty = 0.75; $Host::MaxBotDifficulty = 0;
$Host::MaxMessageLen = 120; $Host::MaxMessageLen = 120;
$Host::MaxPlayers = 24; $Host::MaxPlayers = 30;
$Host::MinBotDifficulty = 0.5; $Host::MinBotDifficulty = 0;
$Host::MinFlagRecordPlayerCount = 6;
$Host::MissionType = "LakRabbit"; $Host::MissionType = "LakRabbit";
$Host::NoBaseRapeEnabled = 1;
$Host::NoBaseRapePlayerCount = 14;
$Host::NoSmurfs = 0; $Host::NoSmurfs = 0;
$Host::Password = "pickup";
$Host::PlayerRespawnTimeout = 60; $Host::PlayerRespawnTimeout = 60;
$Host::Port = 28000; $Host::Port = "28000";
$Host::PUGautoPassword = 0; $Host::PUGautoPassword = 0;
$Host::PUGPassword = "pickup"; $Host::PUGPassword = "pickup";
$Host::PUGpasswordAlwaysOn = 0; $Host::PUGpasswordAlwaysOn = 0;
$Host::PureServer = 0; $Host::PureServer = 0;
$Host::SCtFProMode = 0; $Host::SCtFProMode = 0;
$Host::ServerRules1 = "\c2if\c4(\c3%client.fun == \c5true \c4&& \c3%client.Llama_Grabs \c4< \c51\c4)";
$Host::ServerRules2 = " \c1Be_Courteous\c4(\c2%client, %game\c4);";
$Host::ServerRules3 = "\c2else if\c4(\c3%client.attitude \c4!$ = \c5%client.fun\c4)";
$Host::ServerRules4 = " \c1Try_2_Have_Fun\c4(\c2%client, %attitude\c4);";
$Host::ShowEndingPlayerScores = 1; $Host::ShowEndingPlayerScores = 1;
$Host::ShowIngamePlayerScores = 1; $Host::ShowIngamePlayerScores = 1;
$Host::Siege::Halftime = 20000; $Host::Siege::Halftime = 20000;
$Host::TeamDamageOn = 1; $Host::TeamDamageOn = "1";
$Host::TeamName0 = "Unassigned"; $Host::TeamName0 = "Unassigned";
$Host::TeamName1 = "Storm"; $Host::TeamName1 = "Storm";
$Host::TeamName2 = "Inferno"; $Host::TeamName2 = "Inferno";
@ -900,5 +167,5 @@ $Host::TournamentMode = 0;
$Host::useCustomSkins = 1; $Host::useCustomSkins = 1;
$Host::VotePassPercent = 60; $Host::VotePassPercent = 60;
$Host::VoteSpread = 20; $Host::VoteSpread = 20;
$Host::VoteTime = 45; $Host::VoteTime = "45";
$Host::warmupTime = 15; $Host::warmupTime = "15";

View file

@ -448,6 +448,23 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag)
%client = %player.client; %client = %player.client;
%player.holdingFlag = %flag; //%player has this flag %player.holdingFlag = %flag; //%player has this flag
%flag.carrier = %player; //this %flag is carried by %player %flag.carrier = %player; //this %flag is carried by %player
// attach the camera to the flag.carrier
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, %player.client, 2, %flag.team);
}
%player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team));
%game.playerGotFlagTarget(%player);
//only cancel the return timer if the player is in bounds...
if(!%client.outOfBounds)
{
cancel($FlagReturnTimer[%flag]);
$FlagReturnTimer[%flag] = "";
}
%player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team)); %player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team));
@ -473,7 +490,32 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag)
if (%startStalemate) if (%startStalemate)
%game.stalemateSchedule = %game.schedule(%game.stalemateTimeMS, beginStalemate); %game.stalemateSchedule = %game.schedule(%game.stalemateTimeMS, beginStalemate);
if($Host::ClassicEvoStats && !$Host::TournamentMode)
{
$stats::grabs[%client]++;
if($stats::grabs[%client] > $stats::grabs_counter)
{
$stats::grabs_counter = $stats::grabs[%client];
$stats::grabs_client = getTaggedString(%client.name);
}
}
if($Host::ClassicEvoStats)
%game.totalFlagHeldTime[%flag] = getSimTime();
} }
if($Host::ClassicEvoStats && !%player.flagStatsWait && !$Host::TournamentMode)
{
%grabspeed = mFloor(VectorLen(setWord(%player.getVelocity(), 2, 0)) * 3.6);
if(%grabspeed > $stats::MaxGrabSpeed || ($stats::MaxGrabSpeed $= ""))
{
$stats::MaxGrabSpeed = %grabspeed;
$stats::Grabber = getTaggedString(%client.name);
}
}
%flag.hide(true); %flag.hide(true);
%flag.startFade(0, 0, false); %flag.startFade(0, 0, false);
%flag.isHome = false; %flag.isHome = false;
@ -486,7 +528,7 @@ function CTFGame::playerTouchEnemyFlag(%game, %player, %flag)
messageTeam(%flag.team, 'MsgCTFFlagTaken', '\c2Your flag has been taken by %1!~wfx/misc/flag_taken.wav',%client.name, 0, %flag.team, %client.nameBase); messageTeam(%flag.team, 'MsgCTFFlagTaken', '\c2Your flag has been taken by %1!~wfx/misc/flag_taken.wav',%client.name, 0, %flag.team, %client.nameBase);
messageTeam(0, 'MsgCTFFlagTaken', '\c2%1 took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase); messageTeam(0, 'MsgCTFFlagTaken', '\c2%1 took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase);
messageClient(%client, 'MsgCTFFlagTaken', '\c2You took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase); messageClient(%client, 'MsgCTFFlagTaken', '\c2You took the %2 flag.~wfx/misc/flag_snatch.wav', %client.name, %teamName, %flag.team, %client.nameBase);
logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") took team "@%flag.team@" flag"); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") took team "@%flag.team@" flag ("@%grabspeed@")"); // MP: 6/15/2011 added grabspeed.
//call the AI function //call the AI function
%game.AIplayerTouchEnemyFlag(%player, %flag); %game.AIplayerTouchEnemyFlag(%player, %flag);
@ -531,13 +573,23 @@ function CTFGame::playerDroppedFlag(%game, %player)
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag? %held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
%game.playerLostFlagTarget(%player); %game.playerLostFlagTarget(%player);
if($Host::ClassicEvoStats)
%game.totalFlagHeldTime[%flag] = 0;
%player.holdingFlag = ""; //player isn't holding a flag anymore %player.holdingFlag = ""; //player isn't holding a flag anymore
%flag.carrier = ""; //flag isn't held anymore %flag.carrier = ""; //flag isn't held anymore
$flagStatus[%flag.team] = "<In the Field>"; $flagStatus[%flag.team] = "<In the Field>";
// attach the camera again to the flag
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
}
%player.unMountImage($FlagSlot); %player.unMountImage($FlagSlot);
%flag.hide(false); //Does the throwItem function handle this? %flag.hide(false); //Does the throwItem function handle this?
%teamName = %game.getTeamName(%flag.team); %teamName = %game.getTeamName(%flag.team);
messageTeamExcept(%client, 'MsgCTFFlagDropped', '\c2Teammate %1 dropped the %2 flag. (Held: %4)~wfx/misc/flag_drop.wav', %client.name, %teamName, %flag.team, %held); // z0dd - ZOD, 8/15/02. How long flag was held messageTeamExcept(%client, 'MsgCTFFlagDropped', '\c2Teammate %1 dropped the %2 flag. (Held: %4)~wfx/misc/flag_drop.wav', %client.name, %teamName, %flag.team, %held); // z0dd - ZOD, 8/15/02. How long flag was held
@ -563,8 +615,74 @@ function CTFGame::flagCap(%game, %player)
%flag.carrier = ""; %flag.carrier = "";
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag? %held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
%game.playerLostFlagTarget(%player); %game.playerLostFlagTarget(%player);
if($Host::ClassicEvoStats)
{
%held2 = getSimTime() - %game.totalFlagHeldTime[%flag];
%realtime = %game.formatTime(%held2, true);
%record = false;
if(%game.totalFlagHeldTime[%flag])
{
if(%client.team == 1)
{
if((%held2 < $flagstats::heldTeam1) || $flagstats::heldTeam1 == 0)
{
if($HostGamePlayerCount >= $Host::MinFlagRecordPlayerCount)
{
$flagstats::heldTeam1 = %held2;
$flagstats::realTeam1 = %realTime;
$flagstats::nickTeam1 = %client.nameBase;
}
%record = true;
}
}
else if(%client.team == 2)
{
if((%held2 < $flagstats::heldTeam2) || $flagstats::heldTeam2 == 0)
{
if($HostGamePlayerCount >= $Host::MinFlagRecordPlayerCount)
{
$flagstats::heldTeam2 = %held2;
$flagstats::realTeam2 = %realTime;
$flagstats::nickTeam2 = %client.nameBase;
}
%record = true;
}
}
if(%record == true)
{
if($HostGamePlayerCount >= $Host::MinFlagRecordPlayerCount)
{
%fileOut = "stats/maps/classic/" @ $CurrentMissionType @ "/" @ $CurrentMission @ ".txt";
export("$flagstats::*", %fileOut, false);
schedule(4000, 0, "messageAll", 'MsgCTFNewRecord', "\c2It's a new record! Time: \c3"@%realtime@"\c2.~wfx/misc/hunters_horde.wav");
}
else
schedule(4000, 0, "messageClient", %client, '', "\c2Minimum of" SPC $Host::MinFlagRecordPlayerCount SPC "Players to set a new flag record.");
}
}
if(!$Host::TournamentMode)
bottomprint(%client, "You captured the flag in " @ %realTime @ " seconds", 3);
$stats::caps[%client]++;
if($stats::caps[%client] > $stats::caps_counter)
{
$stats::caps_counter = $stats::caps[%client];
$stats::caps_client = getTaggedString(%client.name);
}
if(%held2 < $stats::fastestCap || !$stats::fastestCap)
{
$stats::fastestCap = %held2;
$stats::fastcap_time = %realTime;
$stats::fastcap_client = getTaggedString(%client.name);
}
}
//award points to player and team //award points to player and team
%teamName = %game.getTeamName(%flag.team); %teamName = %game.getTeamName(%flag.team);
messageTeamExcept(%client, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held); messageTeamExcept(%client, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held);
@ -572,7 +690,7 @@ function CTFGame::flagCap(%game, %player)
messageTeam(0, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held); messageTeam(0, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held);
messageClient(%client, 'MsgCTFFlagCapped', '\c2You captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held); // Yogi, 8/18/02. 3rd param changed 0 -> %client.name messageClient(%client, 'MsgCTFFlagCapped', '\c2You captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held); // Yogi, 8/18/02. 3rd param changed 0 -> %client.name
logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") capped team "@%client.team@" flag"@" (Held: "@%held@")"); logEcho(%client.nameBase@" (pl "@%player@"/cl "@%client@") capped team "@%client.team@" flag"@" (Held: "@%held@")"); // MP: 6/14/2011 The team is wrong, but the stats program auto-corrects it, so just leave as is
%player.holdingFlag = ""; //no longer holding it. %player.holdingFlag = ""; //no longer holding it.
%player.unMountImage($FlagSlot); %player.unMountImage($FlagSlot);
%game.awardScoreFlagCap(%client, %flag); %game.awardScoreFlagCap(%client, %flag);
@ -581,21 +699,42 @@ function CTFGame::flagCap(%game, %player)
//call the AI function //call the AI function
%game.AIflagCap(%player, %flag); %game.AIflagCap(%player, %flag);
//if this cap didn't end the game, play the announcer... //Determine score status
if ($missionRunning) %caplimit = MissionGroup.CTF_scoreLimit;
%otherteam = ( %client.team == 1 ) ? 2 : 1;
//Find out caps from score
%clientteamcaps = mFloor($TeamScore[%client.team] / %game.SCORE_PER_TEAM_FLAG_CAP);
%otherteamcaps = mFloor($TeamScore[%otherteam] / %game.SCORE_PER_TEAM_FLAG_CAP);
//Determine Gamepoint
if(%clientteamcaps >= (%caplimit - 1))
{ {
if (%game.getTeamName(%client.team) $= 'Inferno') if(%clientteamcaps == %otherteamcaps)
messageAll("", '~wvoice/announcer/ann.infscores.wav'); %scorestatus = "tied";
else if (%game.getTeamName(%client.team) $= 'Storm') else
messageAll("", '~wvoice/announcer/ann.stoscores.wav'); %scorestatus = "gamepoint";
else if (%game.getTeamName(%client.team) $= 'Phoenix') }
messageAll("", '~wvoice/announcer/ann.pxscore.wav'); else
else if (%game.getTeamName(%client.team) $= 'Blood Eagle') %scorestatus = "normal";
messageAll("", '~wvoice/announcer/ann.bescore.wav');
else if (%game.getTeamName(%client.team) $= 'Diamond Sword') //if this cap didn't end the game, play the announcer...
messageAll("", '~wvoice/announcer/ann.dsscore.wav'); if($missionRunning)
else if (%game.getTeamName(%client.team) $= 'Starwolf') {
messageAll("", '~wvoice/announcer/ann.swscore.wav'); switch$(%scorestatus)
{
case normal:
//classic uses only storm/inferno
if(%game.getTeamName(%client.team) $= 'Inferno')
messageAll("", '~wvoice/announcer/ann.infscores.wav');
else if(%game.getTeamName(%client.team) $= 'Storm')
messageAll("", '~wvoice/announcer/ann.stoscores.wav');
case tied:
//Announce tied message
messageAll("", '~wvoice/announcer/ann.closegame_03.wav');
case gamepoint:
//Announce gamepoint
messageAll("", '~wvoice/announcer/ann.gamepoint_imminent.wav');
}
} }
} }
@ -619,6 +758,23 @@ function CTFGame::flagReturn(%game, %flag, %player)
else else
%otherTeam = 1; %otherTeam = 1;
%teamName = %game.getTeamName(%flag.team); %teamName = %game.getTeamName(%flag.team);
// when the flag return, stop observing the flag, and go in observerFly mode
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
{
%cl.camera.mode = "observerFly";
%cl.camera.setFlyMode();
updateObserverFlyHud(%cl);
%cl.observingFlag = false;
%cl.flagObserved = "";
%cl.flagObsTeam = "";
}
}
if (%player !$= "") if (%player !$= "")
{ {
//a player returned it //a player returned it
@ -710,8 +866,9 @@ function CTFGame::beginStalemate(%game)
// z0dd - ZOD, 5/27/03. Added anti-turtling, return flags after x minutes // z0dd - ZOD, 5/27/03. Added anti-turtling, return flags after x minutes
if(!$Host::TournamentMode) if(!$Host::TournamentMode)
{ {
messageAll( 'MsgStalemate', '\c3Anti turtle initialized. Flags will be returned to bases in %1 minutes.', $Host::ClassicAntiTurtleTime); messageAll( 'MsgStalemate', "\c3Anti turtle initialized. Flags will be returned to bases in " @ $Host::ClassicAntiTurtleTime @ " minutes.");
%game.turtleSchedule = %game.schedule($Host::ClassicAntiTurtleTime * 60000, 'antiTurtle'); %game.turtleSchedule = %game.schedule($Host::ClassicAntiTurtleTime * 60000, "antiTurtle");
error(formatTimeString("HH:nn:ss") SPC "Anti-Turtle thread beginning now - ID:" SPC %game.turtleSchedule);
} }
} }
@ -720,19 +877,28 @@ function CTFGame::endStalemate(%game)
%game.stalemate = false; %game.stalemate = false;
%game.hideStalemateTargets(); %game.hideStalemateTargets();
cancel(%game.stalemateSchedule); cancel(%game.stalemateSchedule);
cancel(%game.turtleSchedule);
} }
// z0dd - ZOD, 5/27/03. Anti-turtle function
function CTFGame::antiTurtle(%game) function CTFGame::antiTurtle(%game)
{ {
if(isEventPending(%game.turtleSchedule)) if(isEventPending(%game.turtleSchedule))
cancel(%game.turtleSchedule); cancel(%game.turtleSchedule);
for (%i = 1; %i <= 2; %i++) if(%game.turtleSchedule > 0)
{ %game.turtleSchedule = 0;
if(isEventPending(%game.stalemateSchedule))
cancel(%game.stalemateSchedule);
if(%game.stalemateSchedule > 0)
%game.stalemateSchedule = 0;
for (%i = 1; %i <= Game.numTeams; %i++)
Game.flagReturn($TeamFlag[%i]); Game.flagReturn($TeamFlag[%i]);
messageAll( 'MsgCTFFlagReturned', '\c3Both flags returned to bases to break stalemate.~wfx/misc/flag_return.wav', 0, 0, %i);
} messageAll( "", "\c3Both flags returned to bases to break stalemate.~wfx/misc/flag_return.wav");
error(formatTimeString("HH:nn:ss") SPC "Anti-Turtle thread ended");
} }
function CTFGame::flagReset(%game, %flag) function CTFGame::flagReset(%game, %flag)
@ -740,7 +906,7 @@ function CTFGame::flagReset(%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
//any time a flag is reset, kill the stalemate schedule //any time a flag is reset, kill the stalemate schedule
%game.endStalemate(); %game.endStalemate(%game);
//make sure if there's a player carrying it (probably one out of bounds...), it is stripped first //make sure if there's a player carrying it (probably one out of bounds...), it is stripped first
if (isObject(%flag.carrier)) if (isObject(%flag.carrier))
@ -1623,6 +1789,9 @@ function CTFGame::boundaryLoseFlag(%game, %player)
%flag.setCollisionTimeout(%player); %flag.setCollisionTimeout(%player);
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag? %held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
if($Host::ClassicEvoStats)
%game.totalFlagHeldTime[%flag] = 0;
%game.playerDroppedFlag(%player); %game.playerDroppedFlag(%player);

2181
Classic/scripts/GameGui.cs Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
//------------------------------------------------------------------- //-------------------------------------------------------------------
// Team Rabbit script // Lak Rabbit script
// ------------------------------------------------------------------- // -------------------------------------------------------------------
// DisplayName = LakRabbit // DisplayName = LakRabbit
@ -19,6 +19,7 @@
// //
// v3.36 Dec 2019 // v3.36 Dec 2019
// Boundary bounce speed limit // Boundary bounce speed limit
// Unified Lakrabbit Vars
// //
// v3.35 April 2019 // v3.35 April 2019
// Added Not enough players flag message delay // Added Not enough players flag message delay
@ -124,7 +125,7 @@
// v1 - See game rules. // v1 - See game rules.
// Vars: // Vars:
// $Host::ShowFlagIcon // $Host::LakRabbitShowFlagIcon
// 0 - Don't show any // 0 - Don't show any
// 1 - Show flag icon when flag dropped only // 1 - Show flag icon when flag dropped only
// 2 - Show flag icon on rabbit // 2 - Show flag icon on rabbit
@ -138,14 +139,14 @@
// 1 - Enable Duel Mode // 1 - Enable Duel Mode
// //
// $Host::LakRabbitNoSplashDamage // $Host::LakRabbitNoSplashDamage
// 0 - Disable No Splash Dame // 0 - Disable No Splash Damage
// 1 - Enable No Splash Damage // 1 - Enable No Splash Damage
// //
// $Host::ShowFlagTask // $Host::LakRabbitShowFlagTask
// 0 - Do not show flag task // 0 - Do not show flag task
// 1 - Show the flag when dropped as a task // 1 - Show the flag when dropped as a task
// //
// $Host::EnableLakUnlimitedDJ // $Host::LakRabbitUnlimitedDJ
// 0 - Players only get one DiscJump // 0 - Players only get one DiscJump
// 1 - Players get 999 or unlimited DiscJumps // 1 - Players get 999 or unlimited DiscJumps
// //
@ -162,7 +163,7 @@ function Flag::objectiveInit(%data, %flag)
%flag.rotate = true; %flag.rotate = true;
// ilys -- add the icon to the flag // ilys -- add the icon to the flag
if( $Host::ShowFlagIcon == 1 || $Host::ShowFlagIcon == 2 ) if( $Host::LakRabbitShowFlagIcon == 1 || $Host::LakRabbitShowFlagIcon == 2 )
{ {
%flag.scopeWhenSensorVisible(true); %flag.scopeWhenSensorVisible(true);
setTargetSensorGroup(%flag.getTarget(), $NonRabbitTeam); setTargetSensorGroup(%flag.getTarget(), $NonRabbitTeam);
@ -171,7 +172,7 @@ function Flag::objectiveInit(%data, %flag)
} }
// create a waypoint to the flag's starting place // create a waypoint to the flag's starting place
if( $Host::ShowFlagIcon == 0 ) if( $Host::LakRabbitShowFlagIcon == 0 )
{ {
%flagWaypoint = new WayPoint() %flagWaypoint = new WayPoint()
{ {
@ -1468,7 +1469,7 @@ function LakRabbitGame::playerSpawned(%game, %player)
//now set a waypoint just for that client... //now set a waypoint just for that client...
// ilys -- show client waypoint if not showing flag icon // ilys -- show client waypoint if not showing flag icon
if($Host::ShowFlagIcon == 0 && $Host::ShowFlagTask) if($Host::LakRabbitShowFlagIcon == 0 && $Host::LakRabbitShowFlagTask)
{ {
cancel(%player.client.waypointSchedule); cancel(%player.client.waypointSchedule);
if (isObject(%clRabbit) && !%player.client.isAIControlled()) if (isObject(%clRabbit) && !%player.client.isAIControlled())
@ -1498,7 +1499,7 @@ function LakRabbitGame::playerSpawned(%game, %player)
%player.schedule(250,"selectWeaponSlot", 0); %player.schedule(250,"selectWeaponSlot", 0);
%player.setEnergyLevel(%player.getDatablock().maxEnergy); %player.setEnergyLevel(%player.getDatablock().maxEnergy);
if($Host::EnableLakUnlimitedDJ == 1) if($Host::LakRabbitUnlimitedDJ == 1)
%player.freeDJ = 999; // free diskjump %player.freeDJ = 999; // free diskjump
else else
%player.freeDJ = 1; // free diskjump %player.freeDJ = 1; // free diskjump
@ -1655,7 +1656,7 @@ function LakRabbitGame::playerDroppedFlag(%game, %player)
%player.unmountImage($FlagSlot); %player.unmountImage($FlagSlot);
%flag.hide(false); %flag.hide(false);
// ilys -- remove flag icon from player // ilys -- remove flag icon from player
if($Host::ShowFlagIcon == 1 || $Host::ShowFlagIcon == 2) if($Host::LakRabbitShowFlagIcon == 1 || $Host::LakRabbitShowFlagIcon == 2)
{ {
setTargetSensorGroup(%flag.getTarget(), $Observer); setTargetSensorGroup(%flag.getTarget(), $Observer);
%player.scopeWhenSensorVisible(true); %player.scopeWhenSensorVisible(true);
@ -1665,9 +1666,9 @@ function LakRabbitGame::playerDroppedFlag(%game, %player)
} }
//just always true //just always true
//if( $Host::ShowFlagIcon == 1 ) //if( $Host::LakRabbitShowFlagIcon == 1 )
//%flag.scopeWhenSensorVisible(true); //%flag.scopeWhenSensorVisible(true);
//else if($Host::ShowFlagIcon == 2) //else if($Host::LakRabbitShowFlagIcon == 2)
//%flag.scopeWhenSensorVisible(false); //%flag.scopeWhenSensorVisible(false);
// borlak -- throw the flag, don't just drop it like dead weight // borlak -- throw the flag, don't just drop it like dead weight
@ -1691,7 +1692,7 @@ function LakRabbitGame::playerDroppedFlag(%game, %player)
%flag.setCollisionTimeout(%player); %flag.setCollisionTimeout(%player);
// ilys -- hide waypoint if not showing flag icon // ilys -- hide waypoint if not showing flag icon
if($Host::ShowFlagIcon == 0 && $Host::ShowFlagTask) if($Host::LakRabbitShowFlagIcon == 0 && $Host::LakRabbitShowFlagTask)
{ {
cancel(%game.waypointSchedule); cancel(%game.waypointSchedule);
%game.hideRabbitWaypoint(%player.client); %game.hideRabbitWaypoint(%player.client);
@ -1828,7 +1829,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag)
cancel(%flag.returnThread); cancel(%flag.returnThread);
%flag.hide(true); %flag.hide(true);
// ilys -- add flag icon to player // ilys -- add flag icon to player
if( $Host::ShowFlagIcon == 2 ) if( $Host::LakRabbitShowFlagIcon == 2 )
{ {
setTargetSensorGroup(%flag.getTarget(), $RabbitTeam); setTargetSensorGroup(%flag.getTarget(), $RabbitTeam);
%player.scopeWhenSensorVisible(true); %player.scopeWhenSensorVisible(true);
@ -1869,7 +1870,7 @@ function LakRabbitGame::playerTouchFlag(%game, %player, %flag)
//show the rabbit waypoint //show the rabbit waypoint
%game.rabbitDamageTime = 0; %game.rabbitDamageTime = 0;
// ilys -- waypoint if not showing flag icon // ilys -- waypoint if not showing flag icon
if($Host::ShowFlagIcon == 0 && $Host::ShowFlagTask) if($Host::LakRabbitShowFlagIcon == 0 && $Host::LakRabbitShowFlagTask)
{ {
cancel(%game.waypointSchedule); cancel(%game.waypointSchedule);
%game.showRabbitWaypoint(%player.client); %game.showRabbitWaypoint(%player.client);
@ -1922,7 +1923,7 @@ function LakRabbitGame::resetFlag(%game, %flag)
%flag.hide(false); %flag.hide(false);
//so flag turns back green //so flag turns back green
if($Host::ShowFlagIcon == 1 || $Host::ShowFlagIcon == 2) if($Host::LakRabbitShowFlagIcon == 1 || $Host::LakRabbitShowFlagIcon == 2)
{ {
setTargetSensorGroup(%flag.getTarget(), $NonRabbitTeam); setTargetSensorGroup(%flag.getTarget(), $NonRabbitTeam);
} }
@ -1978,13 +1979,13 @@ function LakRabbitGame::gameOver(%game)
%client = ClientGroup.getObject(%i); %client = ClientGroup.getObject(%i);
%game.resetScore(%client); %game.resetScore(%client);
// ilys -- cancel waypoint if not showing flag icon // ilys -- cancel waypoint if not showing flag icon
if($Host::ShowFlagIcon == 0 && $Host::ShowFlagTask) if($Host::LakRabbitShowFlagIcon == 0 && $Host::LakRabbitShowFlagTask)
cancel(%client.waypointSchedule); cancel(%client.waypointSchedule);
cancel(%client.duelTimer); cancel(%client.duelTimer);
} }
// ilys -- cancel waypoint if not showing flag icon // ilys -- cancel waypoint if not showing flag icon
if($Host::ShowFlagIcon == 0 && $Host::ShowFlagTask) if($Host::LakRabbitShowFlagIcon == 0 && $Host::LakRabbitShowFlagTask)
cancel(%game.waypointSchedule); cancel(%game.waypointSchedule);
// borlak -- delete variables // borlak -- delete variables

View file

@ -750,9 +750,16 @@ function SCtFGame::playerTouchEnemyFlag(%game, %player, %flag)
%player.holdingFlag = %flag; //%player has this flag %player.holdingFlag = %flag; //%player has this flag
%flag.carrier = %player; //this %flag is carried by %player %flag.carrier = %player; //this %flag is carried by %player
// attach the camera to the flag.carrier
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, %player.client, 2, %flag.team);
}
%player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team)); %player.mountImage(FlagImage, $FlagSlot, true, %game.getTeamSkin(%flag.team));
%game.playerGotFlagTarget(%player); %game.playerGotFlagTarget(%player);
//only cancel the return timer if the player is in bounds... //only cancel the return timer if the player is in bounds...
if (!%client.outOfBounds) if (!%client.outOfBounds)
{ {
@ -774,8 +781,32 @@ function SCtFGame::playerTouchEnemyFlag(%game, %player, %flag)
if (%startStalemate) if (%startStalemate)
%game.stalemateSchedule = %game.schedule(%game.stalemateTimeMS, beginStalemate); %game.stalemateSchedule = %game.schedule(%game.stalemateTimeMS, beginStalemate);
if($Host::ClassicEvoStats && !$Host::TournamentMode)
{
$stats::grabs[%client]++;
if($stats::grabs[%client] > $stats::grabs_counter)
{
$stats::grabs_counter = $stats::grabs[%client];
$stats::grabs_client = getTaggedString(%client.name);
}
}
if($Host::ClassicEvoStats)
%game.totalFlagHeldTime[%flag] = getSimTime();
} }
if($Host::ClassicEvoStats && !%player.flagStatsWait && !$Host::TournamentMode)
{
%grabspeed = mFloor(VectorLen(setWord(%player.getVelocity(), 2, 0)) * 3.6);
if(%grabspeed > $stats::MaxGrabSpeed || ($stats::MaxGrabSpeed $= ""))
{
$stats::MaxGrabSpeed = %grabspeed;
$stats::Grabber = getTaggedString(%client.name);
}
}
%flag.hide(true); %flag.hide(true);
%flag.startFade(0, 0, false); %flag.startFade(0, 0, false);
%flag.isHome = false; %flag.isHome = false;
@ -832,13 +863,23 @@ function SCtFGame::playerDroppedFlag(%game, %player)
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag? %held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
%game.playerLostFlagTarget(%player); %game.playerLostFlagTarget(%player);
if($Host::ClassicEvoStats)
%game.totalFlagHeldTime[%flag] = 0;
%player.holdingFlag = ""; //player isn't holding a flag anymore %player.holdingFlag = ""; //player isn't holding a flag anymore
%flag.carrier = ""; //flag isn't held anymore %flag.carrier = ""; //flag isn't held anymore
$flagStatus[%flag.team] = "<In the Field>"; $flagStatus[%flag.team] = "<In the Field>";
// attach the camera again to the flag
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
observeFlag(%cl, $TeamFlag[%flag.team], 1, %flag.team);
}
%player.unMountImage($FlagSlot); %player.unMountImage($FlagSlot);
%flag.hide(false); //Does the throwItem function handle this? %flag.hide(false); //Does the throwItem function handle this?
%teamName = %game.getTeamName(%flag.team); %teamName = %game.getTeamName(%flag.team);
messageTeamExcept(%client, 'MsgCTFFlagDropped', '\c2Teammate %1 dropped the %2 flag. (Held: %4)~wfx/misc/flag_drop.wav', %client.name, %teamName, %flag.team, %held); // z0dd - ZOD, 8/15/02. How long flag was held messageTeamExcept(%client, 'MsgCTFFlagDropped', '\c2Teammate %1 dropped the %2 flag. (Held: %4)~wfx/misc/flag_drop.wav', %client.name, %teamName, %flag.team, %held); // z0dd - ZOD, 8/15/02. How long flag was held
@ -866,6 +907,72 @@ function SCtFGame::flagCap(%game, %player)
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag? %held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
%game.playerLostFlagTarget(%player); %game.playerLostFlagTarget(%player);
if($Host::ClassicEvoStats)
{
%held2 = getSimTime() - %game.totalFlagHeldTime[%flag];
%realtime = %game.formatTime(%held2, true);
%record = false;
if(%game.totalFlagHeldTime[%flag])
{
if(%client.team == 1)
{
if((%held2 < $flagstats::heldTeam1) || $flagstats::heldTeam1 == 0)
{
if($HostGamePlayerCount >= $Host::MinFlagRecordPlayerCount)
{
$flagstats::heldTeam1 = %held2;
$flagstats::realTeam1 = %realTime;
$flagstats::nickTeam1 = %client.nameBase;
}
%record = true;
}
}
else if(%client.team == 2)
{
if((%held2 < $flagstats::heldTeam2) || $flagstats::heldTeam2 == 0)
{
if($HostGamePlayerCount >= $Host::MinFlagRecordPlayerCount)
{
$flagstats::heldTeam2 = %held2;
$flagstats::realTeam2 = %realTime;
$flagstats::nickTeam2 = %client.nameBase;
}
%record = true;
}
}
if(%record == true)
{
if($HostGamePlayerCount >= $Host::MinFlagRecordPlayerCount)
{
%fileOut = "stats/maps/classic/" @ $CurrentMissionType @ "/" @ $CurrentMission @ ".txt";
export("$flagstats::*", %fileOut, false);
schedule(4000, 0, "messageAll", 'MsgCTFNewRecord', "\c2It's a new record! Time: \c3"@%realtime@"\c2.~wfx/misc/hunters_horde.wav");
}
else
schedule(4000, 0, "messageClient", %client, '', "\c2Minimum of" SPC $Host::MinFlagRecordPlayerCount SPC "Players to set a new flag record.");
}
}
if(!$Host::TournamentMode)
bottomprint(%client, "You captured the flag in " @ %realTime @ " seconds", 3);
$stats::caps[%client]++;
if($stats::caps[%client] > $stats::caps_counter)
{
$stats::caps_counter = $stats::caps[%client];
$stats::caps_client = getTaggedString(%client.name);
}
if(%held2 < $stats::fastestCap || !$stats::fastestCap)
{
$stats::fastestCap = %held2;
$stats::fastcap_time = %realTime;
$stats::fastcap_client = getTaggedString(%client.name);
}
}
//award points to player and team //award points to player and team
%teamName = %game.getTeamName(%flag.team); %teamName = %game.getTeamName(%flag.team);
messageTeamExcept(%client, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held); messageTeamExcept(%client, 'MsgCTFFlagCapped', '\c2%1 captured the %2 flag! (Held: %5)~wfx/misc/flag_capture.wav', %client.name, %teamName, %flag.team, %client.team, %held);
@ -916,6 +1023,23 @@ function SCtFGame::flagReturn(%game, %flag, %player)
else else
%otherTeam = 1; %otherTeam = 1;
%teamName = %game.getTeamName(%flag.team); %teamName = %game.getTeamName(%flag.team);
// when the flag return, stop observing the flag, and go in observerFly mode
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%cl = ClientGroup.getObject(%i);
if(%cl.team <= 0 && %cl.observingFlag && %cl.flagObsTeam == %flag.team)
{
%cl.camera.mode = "observerFly";
%cl.camera.setFlyMode();
updateObserverFlyHud(%cl);
%cl.observingFlag = false;
%cl.flagObserved = "";
%cl.flagObsTeam = "";
}
}
if (%player !$= "") if (%player !$= "")
{ {
//a player returned it //a player returned it
@ -1814,7 +1938,10 @@ function SCtFGame::boundaryLoseFlag(%game, %player)
%flag.setCollisionTimeout(%player); %flag.setCollisionTimeout(%player);
%held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag? %held = %game.formatTime(getSimTime() - %game.flagHeldTime[%flag], false); // z0dd - ZOD, 8/15/02. How long did player hold flag?
if($Host::ClassicEvoStats)
%game.totalFlagHeldTime[%flag] = 0;
%game.playerDroppedFlag(%player); %game.playerDroppedFlag(%player);
// now for the tricky part -- throwing the flag back into the mission area // now for the tricky part -- throwing the flag back into the mission area

View file

@ -23,7 +23,7 @@ $VoteMessage["VoteArmorLimits", 1] = "disable armor limiting";
$VoteMessage["VoteAntiTurtleTime"] = "change the anti turtle time to"; $VoteMessage["VoteAntiTurtleTime"] = "change the anti turtle time to";
$VoteMessage["VoteArmorClass"] = "change the armor class to"; $VoteMessage["VoteArmorClass"] = "change the armor class to";
$VoteMessage["VoteClearServer"] = "clear server for match"; $VoteMessage["VoteClearServer"] = "clear server for match";
$VoteMessage["VoteSkipMission"] = "skip the mission to"; $VoteMessage["VoteSkipMission"] = "skip the mission";
function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote) function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %playerVote)
{ {
@ -146,6 +146,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
%clientsVoting++; %clientsVoting++;
} }
} }
%VoteSoundRandom = getRandom(1,100);
$VoteSoundRandom = %VoteSoundRandom;
$VoteSoundSchedule = schedule(10000, 0, "VoteSound", %game, %typename, %arg1, %arg2, %VoteSoundRandom);
} }
else else
{ {
@ -158,6 +161,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
%clientsVoting++; %clientsVoting++;
} }
} }
%VoteSoundRandom = getRandom(1,100);
$VoteSoundRandom = %VoteSoundRandom;
$VoteSoundSchedule = schedule(10000, 0, "VoteSound", %game, %typename, %arg1, %arg2, %VoteSoundRandom);
} }
} }
else else
@ -173,6 +179,21 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
} }
} }
} }
else if ( %typeName $= "VoteSkipMission" )
{
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, %arg1.name);
%clientsVoting++;
}
}
%VoteSoundRandom = getRandom(1,100);
$VoteSoundRandom = %VoteSoundRandom;
$VoteSoundSchedule = schedule(10000, 0, "VoteSound", %game, %typename, %arg1, %arg2, %VoteSoundRandom);
}
else if ( %typeName $= "VoteChangeMission" ) else if ( %typeName $= "VoteChangeMission" )
{ {
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ ) for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
@ -184,6 +205,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
%clientsVoting++; %clientsVoting++;
} }
} }
%VoteSoundRandom = getRandom(1,100);
$VoteSoundRandom = %VoteSoundRandom;
$VoteSoundSchedule = schedule(10000, 0, "VoteSound", %game, %typename, %arg1, %arg2, %VoteSoundRandom);
} }
else if (%arg1 !$= 0) else if (%arg1 !$= 0)
{ {
@ -203,6 +227,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
%clientsVoting++; %clientsVoting++;
} }
} }
%VoteSoundRandom = getRandom(1,100);
$VoteSoundRandom = %VoteSoundRandom;
$VoteSoundSchedule = schedule(10000, 0, "VoteSound", %game, %typename, %arg1, %arg2, %VoteSoundRandom);
} }
else else
{ {
@ -225,7 +252,10 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
} }
else else
{ {
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ ) if( %arg1 == 999 )
%arg1 = "unlimited";
for ( %idx = 0; %idx < ClientGroup.getCount(); %idx++ )
{ {
%cl = ClientGroup.getObject( %idx ); %cl = ClientGroup.getObject( %idx );
if ( !%cl.isAIControlled() ) if ( !%cl.isAIControlled() )
@ -234,6 +264,9 @@ function serverCmdStartNewVote(%client, %typeName, %arg1, %arg2, %arg3, %arg4, %
%clientsVoting++; %clientsVoting++;
} }
} }
%VoteSoundRandom = getRandom(1,100);
$VoteSoundRandom = %VoteSoundRandom;
$VoteSoundSchedule = schedule(10000, 0, "VoteSound", %game, %typename, %arg1, %arg2, %VoteSoundRandom);
} }
} }
else else

View file

@ -0,0 +1,489 @@
//Taco October 2018
//removed alot of things that were already included in the classic code
//and checked if evo wasnt double overriding functions
package AntiLouExploitFixes
{
// MPB INSTANT ENERGY FIX
// VehicleData::onRemove(%this, %obj)
// Info: this is called after the MPB is destroyed. Reset the variable
function VehicleData::onRemove(%this, %obj)
{
if(%obj.station.isDestroyed)
%obj.station.isDestroyed = 0;
parent::onRemove(%this, %obj);
}
// stationTrigger::onEnterTrigger(%data, %obj, %colObj)
// Info: If the MPB is destroyed, don't allow players to use the inv
function stationTrigger::onEnterTrigger(%data, %obj, %colObj)
{
//make sure it's a player object, and that that object is still alive
if(%colObj.getDataBlock().className !$= "Armor" || %colObj.getState() $= "Dead")
return;
// Part of hack to keep people from mounting vehicles in disallowed armors.
if(%obj.station.getDataBlock().getName() !$= "StationVehicle")
%colObj.client.inInv = true;
%colObj.inStation = true;
commandToClient(%colObj.client,'setStationKeys', true);
if(Game.stationOnEnterTrigger(%data, %obj, %colObj))
{
//verify station.team is team associated and isn't on player's team
if((%obj.mainObj.team != %colObj.client.team) && (%obj.mainObj.team != 0))
{
messageClient(%colObj.client, 'msgStationDenied', '\c2Access Denied -- Wrong team.~wfx/powered/station_denied.wav');
}
else if(%obj.disableObj.isDisabled())
{
messageClient(%colObj.client, 'msgStationDisabled', '\c2Station is disabled.');
}
else if(!%obj.mainObj.isPowered())
{
messageClient(%colObj.client, 'msgStationNoPower', '\c2Station is not powered.');
}
else if(%obj.station.notDeployed)
{
messageClient(%colObj.client, 'msgStationNotDeployed', '\c2Station is not deployed.');
}
else if(%obj.station.isDestroyed)
{
messageClient(%colObj.client, 'msgStationDestroyed', '\c2Station is destroyed.');
}
else if(%obj.station.triggeredBy $= "")
{
if(%obj.station.getDataBlock().setPlayersPosition(%obj.station, %obj, %colObj))
{
messageClient(%colObj.client, 'CloseHud', "", 'inventoryScreen');
commandToClient(%colObj.client, 'TogglePlayHuds', true);
%obj.station.triggeredBy = %colObj;
%obj.station.getDataBlock().stationTriggered(%obj.station, 1);
%colObj.station = %obj.station;
%colObj.lastWeapon = ( %colObj.getMountedImage($WeaponSlot) == 0 ) ? "" : %colObj.getMountedImage($WeaponSlot).getName().item;
%colObj.unmountImage($WeaponSlot);
}
}
}
}
// END MPB INSTANT ENERGY FIX
// VEHICLE STATION SPAM FIX
// serverCmdBuyVehicle(%client, %blockName)
// Info: Fix an exploit that makes the server lag.
function serverCmdBuyVehicle(%client, %blockName)
{
// if the client has already created a vehicle, don't execute the function
if(%client.cantBuyVehicle)
return;
%team = %client.getSensorGroup();
if(vehicleCheck(%blockName, %team))
{
%station = %client.player.station.pad;
if((%station.ready) && (%station.station.vehicle[%blockName]))
{
%trans = %station.getTransform();
%pos = getWords(%trans, 0, 2);
%matrix = VectorOrthoBasis(getWords(%trans, 3, 6));
%yrot = getWords(%matrix, 3, 5);
%p = vectorAdd(%pos,vectorScale(%yrot, -3));
%p = getWords(%p, 0, 1) @ " " @ getWord(%p, 2) + 4;
%p = vectorAdd(%p, %blockName.spawnOffset);
%rot = getWords(%trans, 3, 5);
%angle = getWord(%trans, 6) + 3.14;
%mask = $TypeMasks::VehicleObjectType | $TypeMasks::PlayerObjectType | $TypeMasks::StationObjectType | $TypeMasks::TurretObjectType;
InitContainerRadiusSearch(%p, %blockName.checkRadius, %mask);
%clear = 1;
for(%x = 0; (%obj = containerSearchNext()) != 0; %x++)
{
if((%obj.getType() & $TypeMasks::VehicleObjectType) && (%obj.getDataBlock().checkIfPlayersMounted(%obj)))
{
%clear = 0;
break;
}
else
%removeObjects[%x] = %obj;
}
if(%clear)
{
%fadeTime = 0;
for(%i = 0; %i < %x; %i++)
{
if(%removeObjects[%i].getType() & $TypeMasks::PlayerObjectType)
{
%pData = %removeObjects[%i].getDataBlock();
%pData.damageObject(%removeObjects[%i], 0, "0 0 0", 1000, $DamageType::VehicleSpawn);
}
else
{
%removeObjects[%i].mountable = 0;
%removeObjects[%i].startFade(1000, 0, true);
%removeObjects[%i].schedule(1001, "delete");
%fadeTime = 1500;
}
}
// client has buyed a vehicle
%client.cantBuyVehicle = 1;
schedule(%fadeTime, 0, "createVehicle", %client, %station, %blockName, %team , %p, %rot, %angle);
// wait 6,5 seconds (time a vehicle needs to be created) before buying another vehicle
schedule(6500, 0, "resetBuyVehicle", %client);
}
else
MessageClient(%client, "", 'Can\'t create vehicle. A player is on the creation pad.');
}
else
messageClient(%client, "", "~wfx/misc/misc.error.wav");
}
else
messageClient(%client, "", "~wfx/misc/misc.error.wav");
}
// resetBuyVehicle(%client)
// Info: delete the variable, so client can buy another vehicle
function resetBuyVehicle(%client)
{
%client.cantBuyVehicle = "";
}
// END VEHICLE STATION SPAM FIX
// ShapeBase::throwObject(%this,%obj)
// Info: Delay on calculating flag stats
function ShapeBase::throwObject(%this,%obj)
{
// z0dd - ZOD, 4/15/02. Allow respawn switching during tourney wait.
if(!$MatchStarted)
return;
// z0dd - ZOD, 5/26/02. Remove anti-hover so flag can be thrown properly
if(%obj.getDataBlock().getName() $= "Flag")
{
%obj.static = false;
// z0dd - ZOD - SquirrelOfDeath, 10/02/02. Hack for flag collision bug.
if(Game.Class $= CTFGame || Game.Class $= PracticeCTFGame)
%obj.searchSchedule = Game.schedule(10, "startFlagCollisionSearch", %obj);
}
%srcCorpse = (%this.getState() $= "Dead"); // z0dd - ZOD, 4/14/02. Flag tossed from corpse
//if the object is being thrown by a corpse, use a random vector
if (%srcCorpse && %obj.getDataBlock().getName() !$= "Flag") // z0dd - ZOD, 4/14/02. Except for flags..
{
%vec = (-1.0 + getRandom() * 2.0) SPC (-1.0 + getRandom() * 2.0) SPC getRandom();
%vec = vectorScale(%vec, 10);
}
else // else Initial vel based on the dir the player is looking
{
%eye = %this.getEyeVector();
%vec = vectorScale(%eye, 20);
}
// Add a vertical component to give the item a better arc
%dot = vectorDot("0 0 1",%eye);
if (%dot < 0)
%dot = -%dot;
%vec = vectorAdd(%vec,vectorScale("0 0 12",1 - %dot)); // z0dd - ZOD, 9/10/02. 10 was 8
// Add player's velocity
%vec = vectorAdd(%vec,%this.getVelocity());
%pos = getBoxCenter(%this.getWorldBox());
//since flags have a huge mass (so when you shoot them, they don't bounce too far)
//we need to up the %vec so that you can still throw them...
if (%obj.getDataBlock().getName() $= "Flag")
{
%vec = vectorScale(%vec, (%srcCorpse ? 40 : 75)); // z0dd - ZOD, 4/14/02. Throw flag force. Value was 40
// z0dd - ZOD, 9/27/02. Delay on grabbing flag after tossing it
%this.flagTossWait = true;
%this.schedule(1000, resetFlagTossWait);
// Delay on calculating stats
%this.flagStatsWait = true;
%this.schedule(5000, resetFlagStatsWait);
}
//
%obj.setTransform(%pos);
%obj.applyImpulse(%pos,%vec);
%obj.setCollisionTimeout(%this);
%data = %obj.getDatablock();
%data.onThrow(%obj, %this);
//call the AI hook
AIThrowObject(%obj);
}
// Player::resetFlagStatsWait(%this)
// Info: Delay on calculating the stats
function Player::resetFlagStatsWait(%this)
{
%this.flagStatsWait = false;
}
// Fix for observer vehicle bug, where observers are drawn to
// a vehicle no matter whether they are observing the client or not
// Thanks to MT for pointing out.
function resetObserveFollow( %client, %dismount )
{
if( %dismount )
{
if( !isObject( %client.player ) )
return;
for( %i = 0; %i < %client.observeCount; %i++ )
{
// Check if data in %client.observers[%i] is correct at all
if ( %client.observers[%i].clientObserve != %client )
{
continue;
}
%client.observers[%i].camera.setOrbitMode( %client.player, %client.player.getTransform(), 0.5, 4.5, 4.5);
}
}
else
{
if( !%client.player.isMounted() )
return;
// grab the vehicle...
%mount = %client.player.getObjectMount();
if( %mount.getDataBlock().observeParameters $= "" )
%params = %client.player.getTransform();
else
%params = %mount.getDataBlock().observeParameters;
for( %i = 0; %i < %client.observeCount; %i++ )
{
// Check if data in %client.observers[%i] is correct at all
if ( %client.observers[%i].clientObserve != %client )
{
continue;
}
%client.observers[%i].camera.setOrbitMode(%mount, %mount.getTransform(), getWord( %params, 0 ), getWord( %params, 1 ), getWord( %params, 2 ));
}
}
}
// ilys - Start checkSpeed schedule on MPB
function MobileBaseVehicle::onAdd(%this, %obj)
{
Parent::onAdd(%this, %obj);
%obj.schedule(5000, "checkSpeed", %obj);
}
// ilys - checkSpeed function. Kill the driver and MPB if going too fast.
function WheeledVehicle::checkSpeed(%data, %obj)
{
if(VectorLen(%obj.getVelocity()) > 200)
{
if(%obj.getMountNodeObject(0)) %obj.getMountNodeObject(0).scriptKill(36);
%obj.setDamagelevel(4);
}
%obj.schedule(5000, "checkSpeed", %data, %obj);
}
// ilys - No lava, please.
function StationVehiclePad::createStationVehicle(%data, %obj)
{
%group = %obj.getGroup();
%xform = %obj.getSlotTransform(0);
%position = getWords(%xform, 0, 2);
%rotation = getWords(%xform, 3, 5);
%angle = (getWord(%xform, 6) * 180) / 3.14159;
if(%obj.stationPos $= "" || %obj.stationRot $= "")
{
%pos = %position;
%rot = %rotation @ " " @ %angle;
}
else
{
%pos = %obj.stationPos;
%rot = %obj.stationRot;
}
%sv = new StaticShape() {
scale = "1 1 1";
dataBlock = "StationVehicle";
lockCount = "0";
homingCount = "0";
team = %obj.team;
position = %pos;
rotation = %rot;
};
%group.add(%sv);
%sv.setPersistent(false);
%sv.getDataBlock().gainPower(%sv);
%sv.getDataBlock().createTrigger(%sv);
%sv.pad = %obj;
%obj.station = %sv;
%sv.trigger.mainObj = %obj;
%sv.trigger.disableObj = %sv;
if(%sv.getTarget() != -1)
setTargetSensorGroup(%sv.getTarget(), %obj.team);
if(%obj.scoutVehicle !$= "Removed")
%sv.vehicle[scoutvehicle] = true;
if(%obj.assaultVehicle !$= "Removed")
%sv.vehicle[assaultVehicle] = true;
if(%obj.mobileBaseVehicle !$= "Removed")
{
// ilys - Removed lava waterblock code from here
%sv.vehicle[mobileBasevehicle] = true;
%sv.getDataBlock().createTeleporter(%sv, %group);
}
if(%obj.scoutFlyer !$= "Removed")
%sv.vehicle[scoutFlyer] = true;
if(%obj.bomberFlyer !$= "Removed")
%sv.vehicle[bomberFlyer] = true;
if(%obj.hapcFlyer !$= "Removed")
%sv.vehicle[hapcFlyer] = true;
}
// ilys - We dont do anything here now
function serverCmdClientTeamChange( %client )
{
// Don't do it, man. DON'T DO IT!
}
// ilys - Only allow the client to force play when the match has started
function serverCmdClientJoinGame(%client)
{
if(!$MatchStarted) return;
parent::serverCmdClientJoinGame(%client);
}
function serverCmdPlayAnim(%client, %anim)
{
// Not used in Classic
}
// ilys - Do not allow animations inside a forcefield.
// ilys - Unmount the mortar and grenade launcher on animation.
function PlayAnim(%client, %anim)
{
if( %anim $= "Death1" || %anim $= "Death2" || %anim $= "Death3" || %anim $= "Death4" || %anim $= "Death5" ||
%anim $= "Death6" || %anim $= "Death7" || %anim $= "Death8" || %anim $= "Death9" || %anim $= "Death10" ||
%anim $= "Death11" || %anim $= "sitting" || %anim $= "scoutRoot" || %anim $= "look" || %anim $= "lookms" ||
%anim $= "looknw" || %anim $= "head" || %anim $= "headSide" || %anim $= "ski" || %anim $= "light_recoil")
return;
%player = %client.player;
if(!isObject(%player))
return;
if(%player.isMounted() || %player.isInForceField())
return;
%weapon = ( %player.getMountedImage($WeaponSlot) == 0 ) ? "" : %player.getMountedImage($WeaponSlot).getName().item;
if(%weapon $= "MissileLauncher" || %weapon $= "GrenadeLauncher" || %weapon $= "SniperRifle" || %weapon $= "Mortar")
{
%player.animResetWeapon = true;
%player.lastWeapon = %weapon;
%player.unmountImage($WeaponSlot);
%player.setArmThread(look);
}
%player.setActionThread(%anim);
}
// ilys - Fix for the Standing Pilot bug
function Armor::onMount(%this,%obj,%vehicle,%node)
{
if (%node == 0)
{
%obj.setTransform("0 0 0 0 0 1 0");
%obj.setActionThread(%vehicle.getDatablock().mountPose[%node],true,true);
%obj.schedule(300,"setActionThread",%vehicle.getDatablock().mountPose[%node],true,true);
if(!%obj.inStation) %obj.lastWeapon = (%obj.getMountedImage($WeaponSlot) == 0 ) ? "" : %obj.getMountedImage($WeaponSlot).item;
%obj.unmountImage($WeaponSlot);
if(!%obj.client.isAIControlled())
{
%obj.setControlObject(%vehicle);
%obj.client.setObjectActiveImage(%vehicle, 2);
}
if(%obj == %obj.lastVehicle.lastPilot && %obj.lastVehicle != %vehicle)
{
schedule(15000, %obj.lastVehicle,"vehicleAbandonTimeOut", %obj.lastVehicle);
%obj.lastVehicle.lastPilot = "";
}
if(%vehicle.lastPilot !$= "" && %vehicle == %vehicle.lastPilot.lastVehicle) %vehicle.lastPilot.lastVehicle = "";
%vehicle.abandon = false;
%vehicle.lastPilot = %obj;
%obj.lastVehicle = %vehicle;
if((%vehicle.getTarget() != -1) && %vehicle.getDatablock().cantTeamSwitch $= "")
{
setTargetSensorGroup(%vehicle.getTarget(), %obj.client.getSensorGroup());
if( %vehicle.turretObject > 0 ) setTargetSensorGroup(%vehicle.turretObject.getTarget(), %obj.client.getSensorGroup());
}
commandToClient( %obj.client, 'VehicleMount' );
}
else
{
if(%vehicle.getDataBlock().mountPose[%node] !$= "") %obj.setActionThread(%vehicle.getDatablock().mountPose[%node]);
else %obj.setActionThread("root", true);
}
if(%vehicle.getDatablock().numMountPoints > 1)
{
%nodeName = findNodeName(%vehicle, %node); // function in vehicle.cs
for(%i = 0; %i < %vehicle.getDatablock().numMountPoints; %i++)
{
if (%vehicle.getMountNodeObject(%i) > 0)
{
if(%vehicle.getMountNodeObject(%i).client != %obj.client)
{
%team = (%obj.team == %vehicle.getMountNodeObject(%i).client.team ? 'Teammate' : 'Enemy');
messageClient( %vehicle.getMountNodeObject(%i).client, 'MsgShowPassenger', '\c2%3: \c3%1\c2 has boarded in the \c3%2\c2 position.', %obj.client.name, %nodeName, %team );
}
commandToClient( %vehicle.getMountNodeObject(%i).client, 'showPassenger', %node, true);
}
}
}
if ( %obj.getImageTrigger( $BackpackSlot ) ) %obj.setImageTrigger( $BackpackSlot, false );
%obj.client.vehicleMounted = %vehicle;
AIVehicleMounted(%vehicle);
if(%obj.client.isAIControlled()) %this.AIonMount(%obj, %vehicle, %node);
}
// TracerDX/ilys - Server crash exploit fix
function serverCmdTeamMessageSent(%client, %text)
{
if((%client.voice $= "") && (strstr(%text, "~w") != -1) && (getSubStr(%text, (strlen(%text) - 4), 4) !$= ".wav")) return;
parent::serverCmdTeamMessageSent(%client, %text);
}
function serverCmdMessageSent(%client, %text)
{
if((%client.voice $= "") && (strstr(%text, "~w") != -1) && (getSubStr(%text, (strlen(%text) - 4), 4) !$= ".wav")) return;
parent::serverCmdMessageSent(%client, %text);
}
// Fix a problem with the package system
// dropping the first package when a non-active
// package is deactivated
function DeactivatePackage(%this)
{
if(!isActivePackage(%this)) return;
parent::DeactivatePackage(%this);
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(AntiLouExploitFixes))
activatePackage(AntiLouExploitFixes);

View file

@ -27,26 +27,13 @@ function Autobalance( %game, %AutobalanceSafetynetTrys )
//Reset //Reset
%lastclient1 = ""; %lastclient1 = "";
%lastclient2 = ""; %lastclient2 = "";
//Team Count code by Keen
$PlayerCount[0] = 0;
$PlayerCount[1] = 0;
$PlayerCount[2] = 0;
for(%i = 0; %i < ClientGroup.getCount(); %i++)
{
%client = ClientGroup.getObject(%i);
//if(!%client.isAIControlled())
$PlayerCount[%client.team]++;
}
//Difference Variables //Difference Variables
%team1difference = $PlayerCount[1] - $PlayerCount[2]; %team1difference = $TeamRank[1, count] - $TeamRank[2, count];
%team2difference = $PlayerCount[2] - $PlayerCount[1]; %team2difference = $TeamRank[2, count] - $TeamRank[1, count];
//If even, stop. //If even, stop.
if( %team1difference == 1 || %team2difference == 1 || $PlayerCount[1] == $PlayerCount[2] ) if( %team1difference == 1 || %team2difference == 1 || $TeamRank[1, count] == $TeamRank[2, count] )
{ {
//Reset TBN //Reset TBN
ResetTBNStatus(); ResetTBNStatus();
@ -112,7 +99,8 @@ function Autobalance( %game, %AutobalanceSafetynetTrys )
// Fire Autobalance // Fire Autobalance
Game.clientChangeTeam( %client, %otherTeam, 0 ); Game.clientChangeTeam( %client, %otherTeam, 0 );
messageAll('MsgTeamBalanceNotify', '~wfx/powered/vehicle_screen_on.wav'); messageClient(%client, 'MsgTeamBalanceNotify', "\c0You were switched to the other team for balancing.~wfx/powered/vehicle_screen_on.wav");
messageAllExcept(%client, -1, 'MsgTeamBalanceNotify', "~wfx/powered/vehicle_screen_on.wav");
//Trigger GetCounts //Trigger GetCounts
ResetGetCountsStatus(); ResetGetCountsStatus();

View file

@ -0,0 +1,61 @@
$Host::ClassicAdminLog = 1;
$Host::ClassicConnectLog = 1;
//exec("scripts/autoexec/EnableLogs.cs");
//Enable Logs
setlogmode(1);
// adminLog(%client, %msg)
// Info: Logs the admin events
function adminLog(%client, %msg)
{
if(%client.isAdmin && $Host::ClassicAdminLog)
{
// get the client info
%authInfo = %client.getAuthInfo();
%ip = getField(strreplace(%client.getAddress(),":","\t"),1);
// this is the info that will be logged
$AdminLog = formatTimeString("M-d") SPC formatTimeString("[HH:nn]") SPC %client.nameBase @ " (" @ getField(%authInfo, 0) @ ", " @ %ip @ ", " @ %client.guid @ ", " @ %client.getAddress() @ ")" @ %msg SPC "[" @ $CurrentMission @ "]";
%logpath = $Host::ClassicAdminLogPath;
export("$AdminLog", %logpath, true);
logEcho($AdminLog);
echo($AdminLog);
}
}
// connectLog(%client, %realname, %tag)
// Info: Logs the connections
function connectLog(%client, %isDisconnect)
{
if($Host::ClassicConnectLog && !%client.isAIControlled())
{
// get the client info
%authInfo = %client.getAuthInfo();
%ip = getField(strreplace(%client.getAddress(),":","\t"),1);
// net tournament client present?
if (!%client.t2csri_sentComCertDone)
%ntc = "N";
else
%ntc = "Y";
if(%isDisconnect)
%inout = "[Drop]";
else
%inout = "[Join]";
if(%client.isSmurf)
%name = stripChars( detag( getTaggedString( %client.name ) ), "\cp\co\c6\c7\c8\c9" );
else
%name = %client.nameBase;
$ConnectLog = %inout SPC "#P[" @ $HostGamePlayerCount @ "]" SPC formatTimeString("M-d") SPC formatTimeString("[HH:nn]") SPC %name SPC "(" @ getField(%authInfo, 0) @ "," SPC %client.guid @ "," SPC %ip @ ")" SPC "[" @ $CurrentMission @ "]" SPC "NTC[" @ %ntc @ "]";
%logpath = $Host::ClassicConnLogPath;
export("$ConnectLog", %logpath, true);
logEcho($ConnectLog);
echo($ConnectLog);
}
}

View file

@ -0,0 +1,431 @@
// Eolk - People like evo's stats a lot... so that's what we'll give them...
$weap_message[1] = "Blaster master";
$weap_message[2] = "Plasma roaster";
$weap_message[3] = "Chainwh0re";
$weap_message[4] = "Disc-O-maniac";
$weap_message[5] = "Grenade puppy";
$weap_message[6] = "Laser turret";
$weap_message[8] = "Mortar maniac";
$weap_message[9] = "Missile lamer";
$weap_message[10] = "Shocklance bee";
$weap_message[11] = "Mine mayhem";
$weap_message[13] = "Road killer";
// Extra Stats
$weap_message[31] = "Demoman";
$weap_message[21] = "Clamp Farmer";
$weap_message[22] = "Spike Farmer";
$weap_message[26] = "Shrike Gunner";
$weap_message[27] = "Tailgunner";
$weap_message[28] = "Bombardier";
$weap_message[29] = "Tank Gunner (chain)";
$weap_message[30] = "Tank Gunner (mortar)";
$weap_message[31] = "Satchel Punk";
$weap_message[50] = "Combo King (mine+disc)";
// Handlers
package EvoStatHandles
{
function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC)
{
Parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC);
// call the function
if(!$Host::TournamentMode)
handleDamageStat(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC);
}
function DefaultGame::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLocation)
{
Parent::onClientKilled(%game, %clVictim, %clKiller, %damageType, %implement, %damageLocation);
// call the function
if(!$Host::TournamentMode)
handleKillStat(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC);
}
function ProjectileData::onCollision(%data, %projectile, %targetObject, %modifier, %position, %normal)
{
if(isObject(%targetObject)) // Console spam fix.
{
// call the function
if(!$Host::TournamentMode)
handleMAStat(%data, %projectile, %targetObject, %modifier, %position, %normal);
}
Parent::onCollision( %data, %projectile, %targetObject, %modifier, %position, %normal );
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(EvoStatHandles))
activatePackage(EvoStatHandles);
// handleDamageStat(%targetObject, %sourceObject, %position, %amount, %damageType)
// Info: Calcs: Damage and SnipeShot detection.
function handleDamageStat(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC)
{
// Reject damage that is not player initiated.
if(%damageType == 7 || %damageType == 12 || %damageType == 14 || %damageType == 24 || %damageType == 25 || %damageType == 33 || %damageType == 35 || %damageType == 36 || %damageType == 98 || %damageType == 99)
return;
// failsafe
if(!isObject(%sourceObject) || %sourceObject $= "" || !isObject(%targetObject) || %targetObject $= "")
return;
// don't count damage done to vehicles
if(%targetObject.isMounted())
return;
// Vehicle Impacts.
if(%damageType == 13){ // run down by vehicle
if(!(%attacker = %sourceObject.getControllingClient()) > 0){
return;
}
}
// Turrets.
else if(%sourceObject.getClassName() $= "Turret" || %sourceObject.getClassName() $= "VehicleTurret" || %sourceObject.getClassName() $= "FlyingVehicle" || %sourceObject.getClassName() $= "HoverVehicle"){
// Controlled
%attacker = %sourceObject.getControllingClient(); //is turret being controlled?
if(%attacker == 0){ // Not controlled.
// Owned
if(isObject(%sourceObject.owner)){
%attacker = %sourceObject.owner;
}
// Automated & no-owner.
else{
return;
}
}
} else { // Pretty much anything else.
%attacker = %sourceObject.client;
}
%victim = %targetObject.client;
// failsafe
if(%attacker $= "" || %victim $= "" || %attacker $= %victim)
return;
// check if it's a tk
if(Game.numTeams > 1 && %attacker.team $= %victim.team)
return;
// store the damage
if($Host::ClassicStatsType == 2)
{
// Teratos: Going to add mine+disc as a category...
// Teratos: Tracking only gets the second batch of damage, but we add 85% of that to make up for the first batch of damage (just a dumb estimate so damage numbers look realistic in post-game).
if(%victim.mineDisc) {
//$stats::weapon_damage[%attacker, 50] += %amount + (%amount * (%damageType == 11 ? 0.87 : 1.41)); // Mine accounts for more than disc.
$stats::weapon_damage[%attacker, 50] += %amount + $stats::last_minedisc[%attacker];
if($stats::weapon_damage[%attacker, 50] > $stats::weap_table[50])
{
$stats::weap_table[50] = $stats::weapon_damage[%attacker, 50];
$stats::client_weap_table[50] = getTaggedString(%attacker.name);
}
}
$stats::last_minedisc[%attacker] = %amount; // Track the last amount of damage so we can add it to the mine+disc.
// Teratos: END Mine+Disc Support.
$stats::weapon_damage[%attacker, %damageType] += %amount;
if($stats::weapon_damage[%attacker, %damageType] > $stats::weap_table[%damageType])
{
$stats::weap_table[%damageType] = $stats::weapon_damage[%attacker, %damageType];
$stats::client_weap_table[%damageType] = getTaggedString(%attacker.name);
}
}
// is it a laser damage?
if(%damageType == 6)
{
// i will consider only shots that have been fired with 60% of total energy
if(%sourceObject.getEnergyLevel() / %sourceObject.getDataBlock().maxEnergy < 0.6)
return;
%distance = mFloor(VectorDist(%position, %sourceObject.getWorldBoxCenter()));
// max distance for sniper (this is the only fix i could find)
// if(%distance > 1000)
// %distance = 1000;
// is it an headshot?
if(%victim.headshot)
{
%attacker.hs++;
if( ( %attacker.showMA $= "" ) || ( %attacker.showMA == 1 ) )
bottomPrint(%attacker, "HEADSHOT (" @ %attacker.hs @ ")! Distance is " @ %distance @ " meters.", 3);
logEcho(%attacker.nameBase @" (pl "@%attacker.player@"/cl "@%attacker@") headshot ("@%distance@")");
if(%attacker.hs > $stats::snipe_counter)
{
$stats::snipe_counter = %attacker.hs;
$stats::snipe_client = getTaggedString(%attacker.name);
}
if(%distance > $stats::snipe_maxdistance)
{
$stats::snipe_maxdistance = %distance;
$stats::snipe_maxdistanceclient = getTaggedString(%attacker.name);
}
}
else // no
{
if(%attacker.showMA $= "" || %attacker.showMA)
bottomPrint(%attacker, "HIT! Distance is " @ %distance @ " meters.", 3);
if(%distance > $stats::snipe_maxdistance)
{
$stats::snipe_maxdistance = %distance;
$stats::snipe_maxdistanceclient = getTaggedString(%attacker.name);
}
}
// this callback will allow players to autoscreenshot the shot
messageClient(%attacker, 'MsgSnipeShot', "", %distance);
}
}
// handleKillStat(%clVictim, %clKiller, %damageType, %implement)
// Info: Calcs: Kills, TeamKills, FC kills
function handleKillStat(%game, %clVictim, %clKiller, %damageType, %implement, %damageLocation)
{
if(%damageType == 13) // is a roadkill
%clKiller = %implement.getControllingClient();
if ( !isObject( %clVictim ) || !isObject( %clKiller ) )
return;
// failsafe
if(%clKiller $= "" || %clVictim $= "" || %clKiller $= %clVictim)
return;
// is it a tk?
if(%game.numTeams > 1 && %clKiller.team $= %clVictim.team)
{
$stats::tk[%clKiller]++;
if($stats::tk[%clKiller] > $stats::tk_counter)
{
$stats::tk_counter = $stats::tk[%clKiller];
$stats::tk_client = getTaggedString(%clKiller.name);
}
}
else // no
{
if($Host::ClassicStatsType == 1)
{
$stats::weapon_kills[%clKiller, %damageType]++;
if($stats::weapon_kills[%clKiller, %damageType] > $stats::weap_table[%damageType])
{
$stats::weap_table[%damageType] = $stats::weapon_kills[%clKiller, %damageType];
$stats::client_weap_table[%damageType] = getTaggedString(%clKiller.name);
}
}
// was the victim a fc?
if(%clVictim.plyrDiedHoldingFlag)
{
$stats::fckiller[%clKiller]++;
if($stats::fckiller[%clKiller] > $stats::fckiller_counter)
{
$stats::fckiller_counter = $stats::fckiller[%clKiller];
$stats::fckiller_client = getTaggedString(%clKiller.name);
}
}
}
}
// handleMAStat(%projectile, %targetObject, %position)
// Info: MA detection
function handleMAStat(%data, %projectile, %targetObject, %modifier, %position, %normal)
{
// failsafe
if(!isObject(%targetObject) || %targetObject $= "")
return;
// failsafe
if(!isObject(%projectile.sourceObject) || %projectile.sourceObject $= "")
return;
%victim = %targetObject.client;
%killer = %projectile.sourceObject.client;
// // Altair's method
// %distance = mFloor(VectorDist(%position, %projectile.sourceObject.getWorldBoxCenter()));
// // Evolution Method
%distance = mFloor(VectorDist(%position, %projectile.initialPosition));
// failsafe
if(%victim $= "" || %killer $= "")
return;
%projectileType = %data.getName() !$= "TR2DiscProjectile" ? %data.getName() : "DiscProjectile";
// only disc, plasma, or blaster
if(%projectileType !$= "DiscProjectile" && %projectileType !$= "PlasmaBolt" && %projectileType !$= "EnergyBolt")
return;
// is it a tk?
if(Game.numTeams > 1 && %killer.team $= %victim.team)
return;
// Eolk - changes to MA code
%position = %targetObject.getPosition();
%raycast = containerRaycast(%position, vectorAdd(%position, "0 0 -10"), $TypeMasks::ForceFieldObjectType | $TypeMasks::InteriorObjectType | $TypeMasks::PlayerObjectType | $TypeMasks::StaticObjectType | $TypeMasks::TerrainObjectType | $TypeMasks::VehicleObjectType, %targetObject);
if(!isObject(firstWord(%raycast))) // We've got something...
{
if(%projectileType $= "DiscProjectile")
{
%killer.midairs++;
if( ( %killer.showMA $= "" ) || ( %killer.showMA == 1 ) )
bottomPrint(%killer, "Midair Disk (" @ %killer.midairs @ ")! Distance is " @ %distance @ " meters.", 3);
// this callback will allow players to autoscreenshot the MA
messageClient(%killer, 'MsgMidAir', "", %distance);
logEcho(%killer.nameBase @" (pl "@%killer.player@"/cl "@%killer@") hit a midair disc shot ("@%distance@")");
if(%killer.midairs > $stats::ma_counter)
{
$stats::ma_counter = %killer.midairs;
$stats::ma_client = getTaggedString(%killer.name);
}
if(%distance > $stats::ma_maxdistance)
{
$stats::ma_maxdistance = %distance;
$stats::ma_maxdistanceclient = getTaggedString(%killer.name);
}
}
else if(%projectileType $= "PlasmaBolt")
{
%killer.PlaMA++;
if ( ( %killer.showMA $= "" ) || ( %killer.showMA == 1 ) )
bottomPrint(%killer, "Midair Plasma (" @ %killer.PlaMA @ ")! Distance is " @ %distance @ " meters.", 3);
// this callback will allow players to autoscreenshot the MA
messageClient(%killer, 'MsgPlasmaMidAir', "", %distance);
logEcho(%killer.nameBase @" (pl "@%killer.player@"/cl "@%killer@") hit a midair plasma shot ("@%distance@")");
if(%killer.PlaMA > $stats::PlaMA_counter)
{
$stats::PlaMA_counter = %killer.PlaMA;
$stats::PlaMA_client = getTaggedString(%killer.name);
}
if(%distance > $stats::PlaMA_maxdistance)
{
$stats::PlaMA_maxdistance = %distance;
$stats::PlaMA_maxdistanceclient = getTaggedString(%killer.name);
}
}
else if(%projectileType $= "EnergyBolt")
{
%killer.blaMA++;
if( ( %killer.showMA $= "" ) || ( %killer.showMA == 1 ) )
bottomPrint(%killer, "Midair Blaster (" @ %killer.blaMA @ ")! Distance is " @ %distance @ " meters.", 3);
// this callback will allow players to autoscreenshot the MA
messageClient(%killer, 'MsgBlasterMidAir', "", %distance);
logEcho(%killer.nameBase @" (pl "@%killer.player@"/cl "@%killer@") hit a midair blaster shot ("@%distance@")");
if(%killer.blaMA > $stats::BlaMA_counter)
{
$stats::BlaMA_counter = %killer.BlaMA;
$stats::BlaMA_client = getTaggedString(%killer.name);
}
if(%distance > $stats::BlaMA_maxdistance)
{
$stats::BlaMA_maxdistance = %distance;
$stats::BlaMA_maxdistanceclient = getTaggedString(%killer.name);
}
}
}
}
// sendEvoDebriefing(%client)
// Info: Send Evo stats to the debriefing page
function sendEvoDebriefing(%client)
{
// Eolk - Remove redundant checks
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00>%1 - %2<spop>', $MissionDisplayName, $MissionTypeDisplayName);
if($stats::MaxGrabSpeed || $stats::grabs_counter || $stats::fckiller_counter || $stats::caps_counter || $stats::fastestCap)
{
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>FLAG STATS<spop>');
if($stats::fastestCap)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Fastest Cap</clip><lmargin%%:30><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip><spop>', $stats::fastcap_client, $stats::fastcap_time);
if($stats::MaxGrabSpeed)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Flaming Ass</clip><lmargin%%:30><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2 Kph!</clip><spop>', $stats::Grabber, $stats::MaxGrabSpeed);
if($stats::caps_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Cap Mastah</clip><lmargin%%:30><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip><spop>', $stats::caps_client, $stats::caps_counter);
if($stats::grabs_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Grabz0r</clip><lmargin%%:30><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip><spop>', $stats::grabs_client, $stats::grabs_counter);
if($stats::fckiller_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> FC killer</clip><lmargin%%:30><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip><spop>', $stats::fckiller_client, $stats::fckiller_counter);
}
if($stats::BlaMA_counter || $stats::ma_counter || $stats::PlaMA_counter)
{
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>MID AIR<lmargin%%:30>CHAMPION<lmargin%%:60>DISTANCE<spop>');
if($stats::ma_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Disk</clip><lmargin%%:30><clip%%:60> %1 (%2)</clip><lmargin%%:60><clip%%:60> %3 (%4 mt)</clip><spop>', $stats::ma_client, $stats::ma_counter, $stats::ma_maxdistanceclient, $stats::ma_maxdistance);
if($stats::PlaMA_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Plasma</clip><lmargin%%:30><clip%%:60> %1 (%2)</clip><lmargin%%:60><clip%%:60> %3 (%4 mt)</clip><spop>', $stats::PlaMA_client, $stats::PlaMA_counter, $stats::PlaMA_maxdistanceclient, $stats::PlaMA_maxdistance);
if($stats::BlaMA_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> Blaster</clip><lmargin%%:30><clip%%:60> %1 (%2)</clip><lmargin%%:60><clip%%:60> %3 (%4 mt)</clip><spop>', $stats::BlaMA_client, $stats::BlaMA_counter, $stats::BlaMA_maxdistanceclient, $stats::BlaMA_maxdistance);
}
if($stats::snipe_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>Headhunter<lmargin%%:30> %1 (%2)!<spop>', $stats::snipe_client, $stats::snipe_counter);
if($stats::snipe_maxdistance)
{
%x = $stats::snipe_counter ? "" : "\n";
messageClient(%client, 'MsgDebriefAddLine', "", '%3<lmargin:0><spush><color:00dc00><font:univers condensed:18>Longest Snipeshot is %1 meters by %2<spop>', $stats::snipe_maxdistance, $stats::snipe_maxdistanceclient, %x);
}
for(%damageType = 1; %damageType < 51; %damageType++)
{
if(%damageType == 7 || %damageType == 12 || (%damageType > 13 && %damageType < 21) || %damageType == 23 || %damageType == 24 || %damageType == 25) {
continue;
}
if(%damageType > 31 && %damageType < 50) {
continue;
}
if($stats::weap_table[%damageType] > 0)
{
if($Host::ClassicStatsType == 2)
{
if(!%message)
{
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>TYPE<lmargin%%:30>PLAYER<lmargin%%:60>TOTAL DAMAGE<spop>');
%message = 1;
}
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> %1</clip><lmargin%%:30><clip%%:60> %2</clip><lmargin%%:60><clip%%:40> %3</clip><spop>', $weap_message[%damageType], $stats::client_weap_table[%damageType], mFormatFloat($stats::weap_table[%damageType], "%.2f"));
}
else if($Host::ClassicStatsType == 1)
{
if(!%message)
{
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>TYPE<lmargin%%:30>PLAYER<lmargin%%:60>KILLS<spop>');
%message = 1;
}
messageClient(%client, 'MsgDebriefAddLine', "", '<lmargin:0><spush><color:00dc00><clip%%:40><font:univers condensed:18> %1</clip><lmargin%%:30><clip%%:60> %2</clip><lmargin%%:60><clip%%:40> %3</clip><spop>', $weap_message[%damageType], $stats::client_weap_table[%damageType], $stats::weap_table[%damageType]);
}
}
}
if($stats::tk_counter)
messageClient(%client, 'MsgDebriefAddLine', "", '\n<lmargin:0><spush><color:00dc00><font:univers condensed:18>And the best teamkiller award goes to... %1 (%2)!<spop>', $stats::tk_client, $stats::tk_counter);
}

View file

@ -1,131 +0,0 @@
// Get Random Maps Script
//
// Used by the Set Next Mission feature
//
// Random Set Next Mission maps
// Runs for SetNextMisssion (Random) and Map Repetition Checker
// Randomizes the maps available in the admin menu
//
// This file is present
$GetRandomMapsLoaded = true;
// getRandomMap - returns a random map without duplicates until all have been played.
// Script BY: DarkTiger
// set this to 1 to save rng list to continue where the server left off in case of server reset
$rngListSave = 1;
$rngDebug = 1;//show echos for testing
function getRandomMap(){
// builds valid map list to pick from
for(%i = 0; %i < $HostMissionCount; %i++){
%map = $HostMissionFile[%i];
%FFA = $Host::MapFFA[%map, $CurrentMissionType];
%Cycle =$Host::MapCycle[%map, $CurrentMissionType];
%bot = $BotEnabled[%i];
if(%FFA && %Cycle){
if($Host::BotsEnabled){
if(%bot)
%map[%c++] = %map;
}
else{
%map[%c++] = %map;
}
}
}
%rng = getRSGN(1,%c,$CurrentMissionType); // use gameType as the id
if($rngDebug){error(%map[%rng] SPC %rng);}
return %map[%rng];
}
function getRSGN(%min,%max,%id){
// This funciton is kind of like a random sequence generator but its done on the fly
// returns you a unique random number every time until max is reached
// id value is so it can be used in more then one place
// the id value can be function name that its used in or a number
// lastly it only for numbers between -1000 to 1000 see down below;
if($rngListSave && isFile("rngLists/" @ %id @ ".cs") && !$rngIsLoaded[%id]){
exec("rngLists/" @ %id @ ".cs");
$rngIsLoaded[%id] = 1;
if($rngDebug){error("Loading Map RNG List =" SPC "rngLists/" @ %id @ ".cs");}
}
if(%id $= ""){
error("getRSG function call does not have an id value");
return getRandom(%min,%max);
}
%c = %min - 1; // skip counter
if(((%max - %min) - ($rng::Count[%id] - 1)) < 1) // reset if we cycled though all possable
{
$rng::Count[%id] = 1; // we dont reset to 0 becuae of the last number used
// change these numbers to expand range
for(%a = %min; %a <= %max; %a++) // this resets a wide range incase min max change for what ever reasion
{
$rng::List[%id,%a] = 0; // reset number list back to 0
}
$rng::List[%id,$rng::Last[%id]] = 1; // mark the last number used as in used after reset
}
%rng = getRandom(%min,%max - $rng::Count[%id] ); // find random number - the total number we have done
for(%i = %min; %i <= %max; %i++) // loop cycle though all possable numbers
{
if($rng::List[%id,%i]) // skip over ones that we have all ready used
{
continue;
}
%c++; // skip counter
if(%rng == %c) // onces the skip counter matches the rng number we have landed on a valid number that we havent used yet
{
break; // kill the loop
}
}
$rng::List[%id,%i] = 1;// this marks said number as used
$rng::Count[%id]++;// up are total used numbers
$rng::Last[%id] = %i; // for when the list resets it wont pick the same number twice
if(%i > %max || %i < %min)
{ // fail safe
return %max;
}
if($rngListSave){
export( "$rng::*", "rngLists/" @ %id @ ".cs", false );
}
return %i; // return the one we stoped on
}
// Return random maps list for SetNextMission
// Primarily used in admin menus
function SetNextMapGetRandoms( %client )
{
%cyclecount = 1;
for(%i = 0; %i < 8; %i++)
{
$SetNextMissionMapSlot[%cyclecount] = getRandomMap();
%cyclecount++;
}
}
// Reset SetNextMission every map change
package ResetSetNextMission
{
function DefaultGame::gameOver(%game)
{
Parent::gameOver(%game);
//Reset SetNextMission Restore
$SetNextMissionRestore = "";
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(ResetSetNextMission))
activatePackage(ResetSetNextMission);

View file

@ -1,119 +0,0 @@
// Map Repetition Checker Script
//
// To help decrease the chances of a repeated map in the map rotation by correcting repeated maps thru script
//
// Runs at the beginning of every map change
// Keeps track of maps played (Last [$MRC::PastMapsDepth] Maps)
// If any are repeating it picks a new map
//
// $EvoCachedNextMission = "RoundTheMountain";
// $EvoCachedNextMission = "Arrakis";
// $EvoCachedNextMission = "RoundTheMountainLT";
// $EvoCachedNextMission = "ArenaDomeDM";
// How many previous maps you want to compare TheNextCached Map to
$MRC::PastMapsDepth = 6;
for(%x = 1; %x <= $MRC::PastMapsDepth; %x++)
{
$MRC::PrevMap[%x] = "";
//echo("PM" @ %x @ ": " @ $MRC::PrevMap[%x]);
}
//Ran in MissionTypeOptions.cs
function MapRepetitionChecker( %game )
{
//Debug
//%MapRepetitionCheckerDebug = true;
if(isEventPending($MapRepetitionSchedule))
cancel($MapRepetitionSchedule);
//Make sure GetRandomMaps.cs is present
if(!$GetRandomMapsLoaded)
return;
if($EvoCachedNextMission $= "")
return;
if(!$Host::TournamentMode && $Host::EnableMapRepetitionChecker)
{
//Do work
for(%x = 1; %x <= $MRC::PastMapsDepth; %x++)
{
if( $MRC::PrevMap[%x] !$= "" && $MRC::PrevMap[%x] $= $EvoCachedNextMission || $CurrentMission $= $EvoCachedNextMission )
MapRepetitionCheckerFindRandom();
}
//Set vars
for(%x = $MRC::PastMapsDepth; %x >= 1; %x = %x - 1)
{
if(%x > 1)
{
if($MRC::PrevMap[%x - 1] !$= "")
$MRC::PrevMap[%x] = $MRC::PrevMap[%x - 1];
}
else if(%x $= 1)
$MRC::PrevMap[%x] = $CurrentMission;
}
//Debug
if(%MapRepetitionCheckerDebug)
{
for(%x = 1; %x <= $MRC::PastMapsDepth; %x++)
{
if( $MRC::PrevMap[%x] !$= "" )
echo("PM" @ %x @ ": " @ $MRC::PrevMap[%x]);
}
}
}
}
function MapRepetitionCheckerFindRandom(%redone)
{
//Make sure GetRandomMaps.cs is present
if(!$GetRandomMapsLoaded)
return;
//Backup
if(%redone $="")
$SetNextMissionRestore = $EvoCachedNextMission;
//Do work
//getRandomMap() is in GetRandomMaps.cs
$EvoCachedNextMission = getRandomMap();
//Make sure new map still complies
%redo = 0;
for(%x = 1; %x <= $MRC::PastMapsDepth; %x++)
{
if($MRC::PrevMap[%x] !$= "" && $MRC::PrevMap[%x] $= $EvoCachedNextMission)
%redo = 1;
}
//Make sure its within maplimits
%newmaplimits = $Host::MapPlayerLimits[$EvoCachedNextMission, $CurrentMissionType];
%min = getWord(%newmaplimits,0);
%max = getWord(%newmaplimits,1);
if((%min > $AllPlayerCount || $AllPlayerCount > %max) && $AllPlayerCount > 2 )
%redo = 1;
if( %redo && %redone < 3 )
{
%redone++;
MapRepetitionCheckerFindRandom(%redone);
}
else
{
error(formatTimeString("HH:nn:ss") SPC "Map Repetition Corrected from" SPC $SetNextMissionRestore SPC "to" SPC $EvoCachedNextMission @ "." );
//Admin Message Only
for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
{
%cl = ClientGroup.getObject(%idx);
if(%cl.isAdmin)
messageClient(%cl, 'MsgMapRepCorrection', '\crMap Repetition Corrected: Next mission set from %1 to %2.', $SetNextMissionRestore, $EvoCachedNextMission);
}
}
}

View file

@ -43,21 +43,11 @@ function loadMissionStage2()
$Host::HiVisibility = "0"; //always SPEED $Host::HiVisibility = "0"; //always SPEED
} }
if(isEventPending($MapRepetitionSchedule))
cancel($MapRepetitionSchedule);
//Start MapRepetitionChecker
$MapRepetitionSchedule = schedule(20000, 0, "MapRepetitionChecker", %game);
//Siege NoBaseRape Fix //Siege NoBaseRape Fix
if( $CurrentMissionType $= "Siege" ) if( $CurrentMissionType $= "Siege" )
$Host::EvoNoBaseRapeEnabled = 0; $Host::NoBaseRapeEnabled = 0;
else else
$Host::EvoNoBaseRapeEnabled = 1; $Host::NoBaseRapeEnabled = 1;
//Fix for Lak to CTF transition (Uneven Teams)
if(Game.numTeams > 1 && ($TeamRank[1, count] > $TeamRank[2, count] + 2) && $previousMissionType $= "LakRabbit")
Game.setupClientTeams();
parent::loadMissionStage2(); parent::loadMissionStage2();
} }

View file

@ -0,0 +1,42 @@
package NoBaseRape
{
//From Evolution MOD
//Modified for our needs
function StaticShapeData::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType)
{
//echo( %targetObject.getDataBlock().getClassName() );
//echo( %targetObject.getDataBlock().getName() );
%targetname = %targetObject.getDataBlock().getName();
//Used on some maps to make invs invincible
if( $CurrentMission $= "SmallCrossing" || $CurrentMission $= "Bulwark")
{
if( %targetObject.invincible && %targetname $= "StationInventory" )
{
//NBRAssetSound( %game, %sourceObject );
return;
}
}
else if(!$Host::TournamentMode && $Host::NoBaseRapeEnabled && $Host::NoBaseRapePlayerCount > $TotalTeamPlayerCount)
{
if( %targetname $= "GeneratorLarge" || %targetname $= "StationInventory" || %targetname $= "SolarPanel" )
{
//Notify only if asset is on other team
if( %targetObject.team !$= %sourceObject.team )
{
NBRAssetSound( %game, %sourceObject );
}
return;
}
}
parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType);
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(NoBaseRape))
activatePackage(NoBaseRape);

View file

@ -9,10 +9,10 @@
// Called in GetTeamCounts.cs // Called in GetTeamCounts.cs
function NBRStatusNotify( %game ) function NBRStatusNotify( %game )
{ {
if( $CurrentMissionType $= "CTF" && $Host::EnableNoBaseRapeNotify && !$Host::TournamentMode && $Host::EvoNoBaseRapeEnabled ) if( $CurrentMissionType $= "CTF" && $Host::EnableNoBaseRapeNotify && !$Host::TournamentMode && $Host::NoBaseRapeEnabled )
{ {
//On //On
if( $Host::EvoNoBaseRapeClassicPlayerCount > $TotalTeamPlayerCount ) if( $Host::NoBaseRapePlayerCount > $TotalTeamPlayerCount )
{ {
if( $NBRStatus !$= "PLAYEDON" ) if( $NBRStatus !$= "PLAYEDON" )
$NBRStatus = "ON"; $NBRStatus = "ON";
@ -64,9 +64,9 @@ if (!isActivePackage(ResetNBRNotify))
function NBRAssetSound( %game, %sourceObject ) function NBRAssetSound( %game, %sourceObject )
{ {
//Wont play again until the schedule is done //Wont play again until the schedule is done
if(!isEventPending(%sourceObject.NBRAssetSoundSchedule) && $CurrentMissionType $= "CTF" && $Host::EnableNoBaseRapeNotify && !$Host::TournamentMode && $Host::EvoNoBaseRapeEnabled ) if(!isEventPending(%sourceObject.NBRAssetSoundSchedule) && $CurrentMissionType $= "CTF" && $Host::EnableNoBaseRapeNotify && !$Host::TournamentMode && $Host::NoBaseRapeEnabled )
{ {
messageClient(%sourceObject.client, 'MsgNoBaseRapeNotify', '\c2No Base Rape is enabled until %1 players.', $Host::EvoNoBaseRapeClassicPlayerCount ); messageClient(%sourceObject.client, 'MsgNoBaseRapeNotify', '\c2No Base Rape is enabled until %1 players.', $Host::NoBaseRapePlayerCount );
%sourceObject.NBRAssetSoundSchedule = schedule(10000, 0, "ResetNBRAssetSound", %sourceObject ); %sourceObject.NBRAssetSoundSchedule = schedule(10000, 0, "ResetNBRAssetSound", %sourceObject );
} }
} }

View file

@ -0,0 +1,265 @@
package PizzaThings
{
// function OptionsDlg::onWake(%this)
// {
// if(!$observeFlagBind)
// {
// $ObsRemapName[$ObsRemapCount] = "Obs First Flag";
// $ObsRemapCmd[$ObsRemapCount] = "observeFirstFlag";
// $ObsRemapCount++;
// $ObsRemapName[$ObsRemapCount] = "Obs Second Flag";
// $ObsRemapCmd[$ObsRemapCount] = "observeSecondFlag";
// $ObsRemapCount++;
// $observeFlagBind = true;
// }
// parent::onWake(%this);
// }
// For Observe Flag
// From Evo
function Observer::onTrigger(%data, %obj, %trigger, %state)
{
if (%state == 0 || %trigger > 5)
return;
//first, give the game the opportunity to prevent the observer action
if (!Game.ObserverOnTrigger(%data, %obj, %trigger, %state))
return;
%client = %obj.getControllingClient();
if (%client == 0)
return;
switch$(%obj.mode)
{
case "followFlag":
if(!%client.observingFlag)
return;
if(%trigger == 0) // press FIRE, switch to the other flag
{
if(%client.flagObserved == $TeamFlag[1])
{
%otherFlag = $TeamFlag[2];
%otherFlagTeam = 2;
}
else if(%client.flagObserved == $TeamFlag[2])
{
%otherFlag = $TeamFlag[1];
%otherFlagTeam = 1;
}
else
return;
// the flag isn't carried
if(%otherFlag.carrier $= "")
observeFlag(%client, %otherFlag, 1, %otherFlagTeam);
else if(isObject(%otherFlag.carrier.client))
observeFlag(%client, %otherFlag.carrier.client, 2, %otherFlagTeam);
}
else if(%trigger == 3) // press JET, switch to the other flag
{
if(%client.flagObserved == $TeamFlag[1])
{
%otherFlag = $TeamFlag[2];
%otherFlagTeam = 2;
}
else if(%client.flagObserved == $TeamFlag[2])
{
%otherFlag = $TeamFlag[1];
%otherFlagTeam = 1;
}
else
return;
// the flag isn't carried
if(%otherFlag.carrier $= "")
observeFlag(%client, %otherFlag, 1, %otherFlagTeam);
else if(isObject(%otherFlag.carrier.client))
observeFlag(%client, %otherFlag.carrier.client, 2, %otherFlagTeam);
}
else if(%trigger == 2) //press JUMP, stop observing flag
{
if(%client.observeClient != -1)
{
observerFollowUpdate(%client, -1, false);
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
%client.observeClient = -1;
}
%obj.mode = "observerFly";
%obj.setFlyMode();
updateObserverFlyHud(%client);
%client.observingFlag = false;
%client.flagObserved = "";
%client.flagObsTeam = "";
}
default:
Parent::onTrigger(%data, %obj, %trigger, %state);
}
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(PizzaThings))
activatePackage(PizzaThings);
function serverCmdObserveFirstFlag(%client)
{
// works only for CTF
if(Game.class !$= CTFGame)
return;
// client must be an observer
if(%client.team > 0)
return;
// check if the flag is carried by someone
%player = $TeamFlag[1].carrier;
if($TeamFlag[1].isHome || %player $= "")
observeFlag(%client, $TeamFlag[1], 1, 1);
else
observeFlag(%client, %player.client, 2, 1);
}
function serverCmdObserveSecondFlag(%client)
{
// works only for CTF
if(Game.class !$= CTFGame)
return;
// client must be an observer
if(%client.team > 0)
return;
// check if the flag is carried by someone
%player = $TeamFlag[2].carrier;
if($TeamFlag[2].isHome || %player $= "")
observeFlag(%client, $TeamFlag[2], 1, 2);
else
observeFlag(%client, %player.client, 2, 2);
}
function observeFlag(%client, %target, %type, %flagTeam)
{
if(!isObject(%client) || !isObject(%target) || !isObject(%client.camera))
return;
if(Game.class !$= CTFGame)
return;
if(%client.team > 0)
return;
// cancel any scheduled update
if(isEventPending(%client.obsHudSchedule))
cancel(%client.obsHudSchedule);
// must be an observer when observing other clients
if(%client.getControlObject() != %client.camera)
return;
//can't observer yourself
if(%client == %target)
return;
%count = ClientGroup.getCount();
//can't go into observer mode if you're the only client
if(%count <= 1 && %type != 1)
return;
if(%type == 1) // Flag
{
if(isObject(%client.player))
%client.player.scriptKill(0); // the player is still playing (this shouldn't be happen)
%client.camera.getDataBlock().setMode(%client.camera, "followFlag", $TeamFlag[%flagTeam]);
%client.setControlObject(%client.camera);
clearBottomPrint(%client);
// was the client observing a player before?
if(%client.observeClient != -1)
{
observerFollowUpdate(%client, -1, false);
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
%client.observeClient = -1;
}
}
else // Player
{
// make sure the target actually exists
if(%target > 0)
{
%found = false;
for(%i = 0; %i < %count; %i++)
{
if(ClientGroup.getObject(%i) == %target)
{
%found = true;
break;
}
}
if(!%found)
return;
}
if(isObject(%client.player))
%client.player.scriptKill(0); // the player is still playing (this shouldn't be happen)
observerFollowUpdate(%client, %target, true);
displayObserverHud(%client, %target);
messageClient(%target, 'Observer', '\c1%1 is now observing you.', %client.name);
// was the client observing a player before?
if(%client.observeClient != -1)
messageClient(%client.observeClient, 'ObserverEnd', '\c1%1 is no longer observing you.', %client.name);
%client.camera.getDataBlock().setMode(%client.camera, "observerFollow", %target.player);
%client.setControlObject(%client.camera);
%client.observeClient = %target;
}
//clear the observer fly mode var...
%client.observeFlyClient = -1;
%client.observingFlag = true;
%client.flagObserved = $TeamFlag[%flagTeam];
%client.flagObsTeam = %flagTeam;
}
// function observeFirstFlag()
// {
// commandToServer('ObserveFirstFlag');
// }
// function observeSecondFlag()
// {
// commandToServer('ObserveSecondFlag');
// }
// function sendPizzaHudUpdate(%game, %client, %msg)
// {
// %pizzaOptMask = 0;
// if($RandomTeams == 1) %pizzaOptMask += 1;
// if($Host::ClassicFairTeams == 1) %pizzaOptMask += 2;
// if($Host::ClassicAutoPWEnabled == 1) %pizzaOptMask += 4;
// if($Host::EvoFullServerPWEnabled == 1) %pizzaOptMask += 8;
// if($Host::EvoNoBaseRapeEnabled == 1) %pizzaOptMask += 16;
// if($PizzaHudRestartVar == 1) %pizzaOptMask += 32;
// messageClient(%client, 'UpdatePizzaHud', %msg, %pizzaOptMask, %client.isAdmin + %client.isSuperAdmin);
// }
// function serverCmdRegisterPizzaClient(%client)
// {
// if(!%client.pizza)
// {
// %client.pizza = true;
// %msg = "\c2Pizza Client registered.";
// sendPizzaHudUpdate(%game, %client, %msg);
// }
// }

View file

@ -103,22 +103,6 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
Parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC); Parent::damageObject(%data, %targetObject, %sourceObject, %position, %amount, %damageType, %momVec, %mineSC);
} }
//Admin Next Mission Message at beginning of matches
function DefaultGame::startMatch(%game)
{
Parent::startMatch(%game);
for(%idx = 0; %idx < ClientGroup.getCount(); %idx++)
{
%cl = ClientGroup.getObject(%idx);
if(%cl.isAdmin)
{
messageClient( %cl, 'MsgNotifyEvoNextMission', '\crNext Mission: %1', $EvoCachedNextMission);
}
}
}
}; };
// Prevent package from being activated if it is already // Prevent package from being activated if it is already

View file

@ -14,7 +14,7 @@
// Called in GetTeamCounts.cs // Called in GetTeamCounts.cs
function TeamBalanceNotify( %game, %team1difference, %team2difference ) function TeamBalanceNotify( %game, %team1difference, %team2difference )
{ {
if( ($CurrentMissionType $= "CTF" || $CurrentMissionType $= "sctf") && $TotalTeamPlayerCount !$= 0 && !$Host::TournamentMode ) if( Game.numTeams > 1 && $TotalTeamPlayerCount !$= 0 && !$Host::TournamentMode )
{ {
//echo ("%Team1Difference " @ %Team1Difference); //echo ("%Team1Difference " @ %Team1Difference);
//echo ("%Team2Difference " @ %Team2Difference); //echo ("%Team2Difference " @ %Team2Difference);

File diff suppressed because it is too large Load diff

View file

@ -20,8 +20,8 @@ function VoteSound( %game, %typename, %arg1, %arg2, %VoteSoundRandom )
messageAll('', '\c1Vote in Progress: \c0To change the mission to %1 (%2). %3~wgui/objective_notification.wav', %arg1, %arg2, %votemsg ); messageAll('', '\c1Vote in Progress: \c0To change the mission to %1 (%2). %3~wgui/objective_notification.wav', %arg1, %arg2, %votemsg );
echo("Vote in Progress: To change the mission to" SPC %arg1 SPC "(" @ %arg2 @ ")."); echo("Vote in Progress: To change the mission to" SPC %arg1 SPC "(" @ %arg2 @ ").");
case "VoteSkipMission": case "VoteSkipMission":
messageAll('', '\c1Vote in Progress: \c0To skip the mission to %1. %2~wgui/objective_notification.wav', $EvoCachedNextMission, %votemsg ); messageAll('', '\c1Vote in Progress: \c0To skip the mission. %1~wgui/objective_notification.wav', %votemsg );
echo("Vote in Progress: To skip the mission to" SPC $EvoCachedNextMission @ "."); echo("Vote in Progress: To skip the mission.");
case "VoteChangeTimeLimit": case "VoteChangeTimeLimit":
if(%arg1 $= "999") %arg1 = "unlimited"; if(%arg1 $= "999") %arg1 = "unlimited";
messageAll('', '\c1Vote in Progress: \c0To change the time limit to %1. %2~wgui/objective_notification.wav', %arg1, %votemsg ); messageAll('', '\c1Vote in Progress: \c0To change the time limit to %1. %2~wgui/objective_notification.wav', %arg1, %votemsg );
@ -47,11 +47,14 @@ function VoteSound( %game, %typename, %arg1, %arg2, %VoteSoundRandom )
} }
} }
else //Is observer else //Is observer
messageAll('', '\c1Vote in Progress: \c0To kick player %1. %3~wgui/objective_notification.wav', %arg1.name, %votemsg ); messageAll('', '\c1Vote in Progress: \c0To kick player %1. %2~wgui/objective_notification.wav', %arg1.nameBase, %votemsg );
echo("Vote in Progress: To kick player" SPC %arg1.name @ "."); echo("Vote in Progress: To kick player" SPC %arg1.nameBase SPC "(" @ %arg1.guid @ ").");
case "VoteTournamentMode": case "VoteTournamentMode":
messageAll('', '\c1Vote in Progress: \c0To change the mission to Tournament Mode (%1). %3~wgui/objective_notification.wav', %arg1, %arg2, %votemsg ); messageAll('', '\c1Vote in Progress: \c0To change the mission to Tournament Mode (%1). %3~wgui/objective_notification.wav', %arg1, %arg2, %votemsg );
echo("Vote in Progress: To change the mission to Tournament Mode" SPC "(" @ %arg1 @ ")."); echo("Vote in Progress: To change the mission to Tournament Mode" SPC "(" @ %arg1 @ ").");
default:
messageAll('', '\c1Vote in Progress: \c0To %1. %2~wgui/objective_notification.wav', %arg1, %votemsg );
echo("Vote in Progress: To" SPC %arg1);
} }
if(isEventPending($VoteSoundSchedule)) if(isEventPending($VoteSoundSchedule))

View file

@ -28,7 +28,7 @@
function checkVer_showBanner(%client) function checkVer_showBanner(%client)
{ {
// customize me // customize me
commandToClient(%client, 'CenterPrint', "<font:Sui Generis:22><color:3cb4b4>Version Check Failed!\n<font:Univers:16><color:3cb4b4>You need the latest TribesNext patch and TourneyNetClient2 to play.\n Download it from t2discord.tk and drop it into your GameData/Base folder.", 10, 3); commandToClient(%client, 'CenterPrint', "<font:Sui Generis:22><color:3cb4b4>Version Check Failed!\n<font:Univers:16><color:3cb4b4>You need the latest TribesNext patch and TourneyNetClient2 to play.\n Download it from playt2.com and drop it into your GameData/Base folder.", 10, 3);
} }
package checkver package checkver

View file

@ -1236,7 +1236,7 @@ package dtStats{
parent::missionLoadDone(%game); parent::missionLoadDone(%game);
//check to see if we are running evo or not, if not then lets just enable these //check to see if we are running evo or not, if not then lets just enable these
if(!isFile("scripts/autoexec/evolution.cs")){ if(!isFile("scripts/autoexec/evolution.cs")){
$Host::EvoAveragePings = $Host::ShowIngamePlayerScores = 1; $Host::AveragePings = $Host::ShowIngamePlayerScores = 1;
} }
} }
function serverCmdShowHud(%client, %tag){ // to refresh screen when client opens it up function serverCmdShowHud(%client, %tag){ // to refresh screen when client opens it up
@ -2503,7 +2503,7 @@ function LakRabbitHud(%game, %client, %tag){
$TeamRank[2, count] = 0; $TeamRank[2, count] = 0;
} }
if ( $Host::EvoAveragePings ) if ( $Host::AveragePings )
{ {
for ( %count = 0; %count <= Game.numteams; %count++ ) for ( %count = 0; %count <= Game.numteams; %count++ )
{ {

View file

@ -168,7 +168,7 @@ function ALTsendModInfoToClient(%client)
if($Host::TimeLimit $= "999" || $Host::TimeLimit $= "unlimited") %timeloadingvar = "Unlimited"; else %timeloadingvar = $Host::TimeLimit; if($Host::TimeLimit $= "999" || $Host::TimeLimit $= "unlimited") %timeloadingvar = "Unlimited"; else %timeloadingvar = $Host::TimeLimit;
if($Host::EvoKickObservers $= 0) %obskickvar = "Off"; else %obskickvar = ($Host::EvoKickObservers / 60) @ " Minutes"; if($Host::KickObserverTimeout $= 0) %obskickvar = "Off"; else %obskickvar = ($Host::KickObserverTimeout / 60) @ " Minutes";
%time = "<color:" @ $Host::LoadScreenColor1 @ ">Time limit: <color:" @ $Host::LoadScreenColor2 @ ">" @ %timeloadingvar; %time = "<color:" @ $Host::LoadScreenColor1 @ ">Time limit: <color:" @ $Host::LoadScreenColor2 @ ">" @ %timeloadingvar;
%max = "<color:" @ $Host::LoadScreenColor1 @ ">Max players: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::MaxPlayers; %max = "<color:" @ $Host::LoadScreenColor1 @ ">Max players: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::MaxPlayers;
@ -183,30 +183,14 @@ function ALTsendModInfoToClient(%client)
//%crc = "<color:" @ $Host::LoadScreenColor1 @ ">CRC checking: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::CRCTextures ? "On" : "Off"); //%crc = "<color:" @ $Host::LoadScreenColor1 @ ">CRC checking: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::CRCTextures ? "On" : "Off");
//%pure = "<color:" @ $Host::LoadScreenColor1 @ ">Pure server: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::PureServer ? "On" : "Off"); //%pure = "<color:" @ $Host::LoadScreenColor1 @ ">Pure server: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::PureServer ? "On" : "Off");
if($Host::EvoNoBaseRapeEnabled) if($Host::NoBaseRapeEnabled)
%rapeppl = "<color:" @ $Host::LoadScreenColor1 @ ">Min No Base Rape: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::EvoNoBaseRapeClassicPlayerCount; %rapeppl = "<color:" @ $Host::LoadScreenColor1 @ ">Min No Base Rape: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::NoBaseRapePlayerCount;
%turrets = "<color:" @ $Host::LoadScreenColor1 @ ">Min Turrets: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::EnableTurretPlayerCount; %turrets = "<color:" @ $Host::LoadScreenColor1 @ ">Min Turrets: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::EnableTurretPlayerCount;
if($Host::EvoStats && (!$Host::TournamentMode || ($Host::TournamentMode && $Host::EvoStatsTourney)) && $Host::EvoStatsType != 0) if($Host::ClassicEvoStats && $Host::ClassicStatsType > 0)
%stats = "<color:" @ $Host::LoadScreenColor1 @ ">Stats based on: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::EvoStatsType == 1 ? "Kills" : "Damage"); %stats = "<color:" @ $Host::LoadScreenColor1 @ ">Stats based on: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::ClassicStatsType == 1 ? "Kills" : "Damage");
if($Evo::ETMMode && $ETMmode::CurrentMap <= $ETMmode::Counter)
{
%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $ETMmode::MapDisplayName[$ETMmode::CurrentMap];
}
else
{
%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ findNextCycleMission();
if ( $Host::ClassicRandomMissions )
{
%nmis = %nmis SPC "(Random)";
}
if($Host::EvoTourneySameMap && $Host::TournamentMode)
{
%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $CurrentMission @ " (Same)";
}
}
%currentmis = "<color:" @ $Host::LoadScreenColor1 @ ">Current mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $MissionDisplayName @ " (" @ $MissionTypeDisplayName @ ")"; %currentmis = "<color:" @ $Host::LoadScreenColor1 @ ">Current mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $MissionDisplayName @ " (" @ $MissionTypeDisplayName @ ")";
@ -300,7 +284,7 @@ function ALTsendModInfoToClient(%client)
$dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %turrets; $dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %turrets;
$dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %obskick; $dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %obskick;
$dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %stats; $dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %stats;
$dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %nmis; $dtLoadingScreen::LoadScreenMessage[$dmlP++] = "<lmargin:24><Font:univers:18><bitmap:bullet_2>" @ %currentmis;
$dtLoadingScreen::LoadScreenMessage[$dmlP++] = " "; $dtLoadingScreen::LoadScreenMessage[$dmlP++] = " ";
//$dtLoadingScreen::LoadScreenMessage[$dmlP++] = %rape; //$dtLoadingScreen::LoadScreenMessage[$dmlP++] = %rape;
@ -396,30 +380,30 @@ function NORMALsendModInfoToClient(%client)
//%pure = "<color:" @ $Host::LoadScreenColor1 @ ">Pure server: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::PureServer ? "On" : "Off"); //%pure = "<color:" @ $Host::LoadScreenColor1 @ ">Pure server: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::PureServer ? "On" : "Off");
if($Host::EvoNoBaseRapeEnabled) if($Host::NoBaseRapeEnabled)
%rapeppl = "<color:" @ $Host::LoadScreenColor1 @ ">Min No Base Rape: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::EvoNoBaseRapeClassicPlayerCount; %rapeppl = "<color:" @ $Host::LoadScreenColor1 @ ">Min No Base Rape: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::NoBaseRapePlayerCount;
%turrets = "<color:" @ $Host::LoadScreenColor1 @ ">Min Turrets: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::EnableTurretPlayerCount; %turrets = "<color:" @ $Host::LoadScreenColor1 @ ">Min Turrets: <color:" @ $Host::LoadScreenColor2 @ ">" @ $Host::EnableTurretPlayerCount;
if($Host::EvoStats && (!$Host::TournamentMode || ($Host::TournamentMode && $Host::EvoStatsTourney)) && $Host::EvoStatsType != 0) if($Host::ClassicEvoStats && $Host::ClassicStatsType > 0)
%stats = "<color:" @ $Host::LoadScreenColor1 @ ">Stats based on: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::EvoStatsType == 1 ? "Kills" : "Damage"); %stats = "<color:" @ $Host::LoadScreenColor1 @ ">Stats based on: <color:" @ $Host::LoadScreenColor2 @ ">" @ ($Host::ClassicStatsType == 1 ? "Kills" : "Damage");
if($Evo::ETMMode && $ETMmode::CurrentMap <= $ETMmode::Counter) //if($Evo::ETMMode && $ETMmode::CurrentMap <= $ETMmode::Counter)
{ //{
%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $ETMmode::MapDisplayName[$ETMmode::CurrentMap]; // %nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $ETMmode::MapDisplayName[$ETMmode::CurrentMap];
} //}
else //else
{ //{
%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ findNextCycleMission(); //%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ findNextCycleMission();
if ( $Host::ClassicRandomMissions ) //if ( $Host::ClassicRandomMissions )
{ //{
%nmis = %nmis SPC "(Random)"; //%nmis = %nmis SPC "(Random)";
} //}
if($Host::EvoTourneySameMap && $Host::TournamentMode) //if($Host::EvoTourneySameMap && $Host::TournamentMode)
{ //{
%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $CurrentMission @ " (Same)"; //%nmis = "<color:" @ $Host::LoadScreenColor1 @ ">Next mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $CurrentMission @ " (Same)";
} //}
} //}
%currentmis = "<color:" @ $Host::LoadScreenColor1 @ ">Current mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $MissionDisplayName @ " (" @ $MissionTypeDisplayName @ ")"; %currentmis = "<color:" @ $Host::LoadScreenColor1 @ ">Current mission: <color:" @ $Host::LoadScreenColor2 @ ">" @ $MissionDisplayName @ " (" @ $MissionTypeDisplayName @ ")";
@ -449,7 +433,7 @@ function NORMALsendModInfoToClient(%client)
%ServerTextLine[4] = %rapeppl; %ServerTextLine[4] = %rapeppl;
%ServerTextLine[5] = %turrets; %ServerTextLine[5] = %turrets;
%ServerTextLine[6] = %stats; %ServerTextLine[6] = %stats;
%ServerTextLine[7] = %nmis; %ServerTextLine[7] = %currentmis;
//%serverTextLine[2] = %td; //%serverTextLine[2] = %td;
//%serverTextLine[3] = %crc; //%serverTextLine[3] = %crc;

View file

@ -0,0 +1,196 @@
//**********************************************************
// CREDITS
//
// Eolks - I think he wrote most (probably all) of the mine+disc support.
//**********************************************************
$DamageTypeText[50] = 'Mine+Disc'; // Teratos: Pseudo-damage type
// Eolk - Mine disc messages // Teratos - betterized.
$DeathMessageMineDiscCount = 4;
$DeathMessageMineDisc[0] = '\c0%4 kills %1 with a mine+disc.';
$DeathMessageMineDisc[1] = '\c0%4 unleashes a world of hurt on %1 with a mine+disc.';
$DeathMessageMineDisc[2] = '\c0%4 shows %1 the power of a spinfusor+mine combo!';
$DeathMessageMineDisc[3] = '\c0%1 never saw that mine+disc coming from %4.';
// Teratos: Guessing this was Eolk?
function resetMineDiscCheck(%cl)
{
%cl.minediscCheck = 0;
}
package StatsMineDisc
{
function DefaultGame::displayDeathMessages(%game, %clVictim, %clKiller, %damageType, %implement)
{
// ----------------------------------------------------------------------------------
// z0dd - ZOD, 6/18/02. From Panama Jack, send the damageTypeText as the last varible
// in each death message so client knows what weapon it was that killed them.
%victimGender = (%clVictim.sex $= "Male" ? 'him' : 'her');
%victimPoss = (%clVictim.sex $= "Male" ? 'his' : 'her');
%killerGender = (%clKiller.sex $= "Male" ? 'him' : 'her');
%killerPoss = (%clKiller.sex $= "Male" ? 'his' : 'her');
%victimName = %clVictim.name;
%killerName = %clKiller.name;
//error("DamageType = " @ %damageType @ ", implement = " @ %implement @ ", implement class = " @ %implement.getClassName() @ ", is controlled = " @ %implement.getControllingClient());
if(%damageType == $DamageType::Explosion)
{
messageAll('msgExplosionKill', $DeathMessageExplosion[mFloor(getRandom() * $DeathMessageExplosionCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%damageType == $DamageType::Suicide) //player presses ctrl-k
{
messageAll('msgSuicide', $DeathMessageSuicide[mFloor(getRandom() * $DeathMessageSuicideCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%damageType == $DamageType::VehicleSpawn)
{
messageAll('msgVehicleSpawnKill', $DeathMessageVehPad[mFloor(getRandom() * $DeathMessageVehPadCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%damageType == $DamageType::ForceFieldPowerup)
{
messageAll('msgVehicleSpawnKill', $DeathMessageFFPowerup[mFloor(getRandom() * $DeathMessageFFPowerupCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%damageType == $DamageType::Crash)
{
messageAll('msgVehicleCrash', $DeathMessageVehicleCrash[%damageType, mFloor(getRandom() * $DeathMessageVehicleCrashCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%damageType == $DamageType::Impact) // run down by vehicle
{
if( ( %controller = %implement.getControllingClient() ) > 0)
{
%killerGender = (%controller.sex $= "Male" ? 'him' : 'her');
%killerPoss = (%controller.sex $= "Male" ? 'his' : 'her');
%killerName = %controller.name;
if(%controller.team != %clVictim.team)
{
messageAll('msgVehicleKill', $DeathMessageVehicle[mFloor(getRandom() * $DeathMessageVehicleCount)], %victimName, %victimGender, %victimPoss, %killerName ,%killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else
{
messageAll('msgTeamKill', $DeathMessageTeamKill[%damageType, mFloor(getRandom() * $DeathMessageTeamKillCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
}
else
{
messageAll('msgVehicleKill', $DeathMessageVehicleUnmanned[mFloor(getRandom() * $DeathMessageVehicleUnmannedCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
}
// ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
// z0dd - ZOD, 5/15/02. Added Hover Vehicle so we get proper
// death messages when killed with Wildcat chaingun
//else if (isObject(%implement) && (%implement.getClassName() $= "Turret" || %implement.getClassName() $= "VehicleTurret" || %implement.getClassName() $= "FlyingVehicle")) //player killed by a turret
else if (isObject(%implement) && (%implement.getClassName() $= "Turret" || %implement.getClassName() $= "VehicleTurret" || %implement.getClassName() $= "FlyingVehicle" || %implement.getClassName() $= "HoverVehicle"))
{
if (%implement.getControllingClient() != 0) //is turret being controlled?
{
%controller = %implement.getControllingClient();
%killerGender = (%controller.sex $= "Male" ? 'him' : 'her');
%killerPoss = (%controller.sex $= "Male" ? 'his' : 'her');
%killerName = %controller.name;
if (%controller == %clVictim)
{
messageAll('msgTurretSelfKill', $DeathMessageTurretSelfKill[mFloor(getRandom() * $DeathMessageTurretSelfKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if (%controller.team == %clVictim.team) //controller TK'd a friendly
{
messageAll('msgCTurretKill', $DeathMessageCTurretTeamKill[%damageType, mFloor(getRandom() * $DeathMessageCTurretTeamKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else //controller killed an enemy
{
messageAll('msgCTurretKill', $DeathMessageCTurretKill[%damageType, mFloor(getRandom() * $DeathMessageCTurretKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
}
// use the handle associated with the deployed object to verify valid owner
else if (isObject(%implement.owner))
{
%owner = %implement.owner;
//error("Owner is " @ %owner @ " Handle is " @ %implement.ownerHandle);
//error("Turret is still owned");
//turret is uncontrolled, but is owned - treat the same as controlled.
%killerGender = (%owner.sex $= "Male" ? 'him' : 'her');
%killerPoss = (%owner.sex $= "Male" ? 'his' : 'her');
%killerName = %owner.name;
if (%owner.team == %clVictim.team) //player got in the way of a teammates deployed but uncontrolled turret.
{
messageAll('msgCTurretKill', $DeathMessageCTurretAccdtlKill[%damageType,mFloor(getRandom() * $DeathMessageCTurretAccdtlKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else //deployed, uncontrolled turret killed an enemy
{
messageAll('msgCTurretKill', $DeathMessageCTurretKill[%damageType,mFloor(getRandom() * $DeathMessageCTurretKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
}
else //turret is not a placed (owned) turret (or owner is no longer on it's team), and is not being controlled
{
if(%implement.team == %clVictim.team) // was it a teamkill?
{
messageAll('msgTurretKill', $DeathMessageCTurretAccdtlKill[%damageType,mFloor(getRandom() * $DeathMessageCTurretAccdtlKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else // it was not a teamkill
{
messageAll('msgTurretKill', $DeathMessageTurretKill[%damageType,mFloor(getRandom() * $DeathMessageTurretKillCount)],%victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
}
}
// END TURRET MESSAGES
else if((%clKiller == %clVictim) || (%damageType == $DamageType::Ground)) //player killed himself or fell to death
{
messageAll('msgSelfKill', $DeathMessageSelfKill[%damageType,mFloor(getRandom() * $DeathMessageSelfKillCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if (%damageType == $DamageType::OutOfBounds) //killer died due to Out-of-Bounds damage
{
messageAll('msgOOBKill', $DeathMessageOOB[mFloor(getRandom() * $DeathMessageOOBCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if (%damageType == $DamageType::NexusCamping) //Victim died from camping near the nexus...
{
messageAll('msgCampKill', $DeathMessageCamping[mFloor(getRandom() * $DeathMessageCampingCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%clKiller.team == %clVictim.team) //was a TK
{
messageAll('msgTeamKill', $DeathMessageTeamKill[%damageType, mFloor(getRandom() * $DeathMessageTeamKillCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if (%damageType == $DamageType::Lava) //player died by falling in lava
{
messageAll('msgLavaKill', $DeathMessageLava[mFloor(getRandom() * $DeathMessageLavaCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if ( %damageType == $DamageType::Lightning ) // player was struck by lightning
{
messageAll('msgLightningKill', $DeathMessageLightning[mFloor(getRandom() * $DeathMessageLightningCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if ( %damageType == $DamageType::Mine && !isObject(%clKiller) )
{
messageAll('MsgRogueMineKill', $DeathMessageRogueMine[%damageType, mFloor(getRandom() * $DeathMessageRogueMineCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else //was a legitimate enemy kill
{
if((%damageType == $DamageType::Mine || %damageType == $DamageType::Disc) && %clVictim.mineDisc)
{
// mine disc just occurred
messageAll('MsgMineDiscKill', $DeathMessageMineDisc[mFloor(getRandom() * $DeathMessageMineDiscCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
else if(%damageType == 6 && (%clVictim.headShot))
{
// laser headshot just occurred
messageAll('MsgHeadshotKill', $DeathMessageHeadshot[%damageType, mFloor(getRandom() * $DeathMessageHeadshotCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
// ----------------------------------------------------
// z0dd - ZOD, 8/25/02. Rear Lance hits
else if (%damageType == 10 && (%clVictim.rearshot))
{
// shocklance rearshot just occurred
messageAll('MsgRearshotKill', $DeathMessageRearshot[%damageType, mFloor(getRandom() * $DeathMessageRearshotCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
// ----------------------------------------------------
else
{
messageAll('MsgLegitKill', $DeathMessage[%damageType, mFloor(getRandom() * $DeathMessageCount)], %victimName, %victimGender, %victimPoss, %killerName, %killerGender, %killerPoss, %damageType, $DamageTypeText[%damageType]);
}
}
}
};
// Prevent package from being activated if it is already
if (!isActivePackage(StatsMineDisc))
activatePackage(StatsMineDisc);

View file

@ -574,6 +574,20 @@ function DefaultGame::startMatch(%game)
function DefaultGame::gameOver( %game ) function DefaultGame::gameOver( %game )
{ {
listPlayers(); // MP: 6/17/2011 - Prints score, team, status
// Eolk - Prevent those annoying last-minute map changes that totally throw things off
if(%game.scheduleVote !$= "")
{
messageAll('closeVoteHud', "");
cancel(Game.scheduleVote);
Game.scheduleVote = "";
Game.kickClient = "";
clearVotes();
messageAll('MsgVoteFailed', "");
}
//set the bool //set the bool
$missionRunning = false; $missionRunning = false;
@ -617,6 +631,14 @@ function DefaultGame::gameOver( %game )
// Default game does nothing... except lets the AI know the mission is over // Default game does nothing... except lets the AI know the mission is over
AIMissionEnd(); AIMissionEnd();
// Eolk - reset vehicle maxes after each round.
$VehicleRespawnTime = 15000;
$Vehiclemax[ScoutVehicle] = 4;
$VehicleMax[AssaultVehicle] = 3;
$VehicleMax[MobileBaseVehicle] = 1;
$VehicleMax[ScoutFlyer] = 4;
$VehicleMax[BomberFlyer] = 2;
$VehicleMax[HAPCFlyer] = 2;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
@ -710,7 +732,6 @@ function DefaultGame::sendDebriefing( %game, %client )
%score = %cl.score $= "" ? 0 : %cl.score; %score = %cl.score $= "" ? 0 : %cl.score;
%kills = %cl.kills $= "" ? 0 : %cl.kills; %kills = %cl.kills $= "" ? 0 : %cl.kills;
messageClient( %client, 'MsgDebriefAddLine', "", '<lmargin:0><clip%%:40> %1</clip><lmargin%%:40><clip%%:30> %2</clip><lmargin%%:70><clip%%:17> %3</clip><lmargin%%:87><clip%%:13> %4</clip>', %cl.name, %game.getTeamName(%cl.team), %score, %kills ); messageClient( %client, 'MsgDebriefAddLine', "", '<lmargin:0><clip%%:40> %1</clip><lmargin%%:40><clip%%:30> %2</clip><lmargin%%:70><clip%%:17> %3</clip><lmargin%%:87><clip%%:13> %4</clip>', %cl.name, %game.getTeamName(%cl.team), %score, %kills );
%count[%highTeam]++; %count[%highTeam]++;
%notDone = false; %notDone = false;
for ( %team = 1; %team - 1 < %game.numTeams; %team++ ) for ( %team = 1; %team - 1 < %game.numTeams; %team++ )
@ -744,8 +765,13 @@ function DefaultGame::sendDebriefing( %game, %client )
messageClient( %client, 'MsgDebriefAddLine', "", '<lmargin:0><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip>', %cl.name, %score); messageClient( %client, 'MsgDebriefAddLine', "", '<lmargin:0><clip%%:60> %1</clip><lmargin%%:60><clip%%:40> %2</clip>', %cl.name, %score);
} }
} }
if($Host::ClassicEvoStats)
sendEvoDebriefing(%client);
} }
//------------------------------------------------------------ //------------------------------------------------------------
function DefaultGame::clearDeployableMaxes(%game) function DefaultGame::clearDeployableMaxes(%game)
{ {
@ -1093,6 +1119,7 @@ function DefaultGame::forceObserver( %game, %client, %reason )
messageClient(%client, 'MsgClientJoinTeam', '\c2You have become an observer.', %client.name, %game.getTeamName(0), %client, 0 ); messageClient(%client, 'MsgClientJoinTeam', '\c2You have become an observer.', %client.name, %game.getTeamName(0), %client, 0 );
logEcho(%client.nameBase@" (cl "@%client@") entered observer mode"); logEcho(%client.nameBase@" (cl "@%client@") entered observer mode");
%client.lastTeam = %client.team; %client.lastTeam = %client.team;
%scheduleAutoKick = true;
case "AdminForce": case "AdminForce":
%client.camera.getDataBlock().setMode( %client.camera, "observerFly" ); %client.camera.getDataBlock().setMode( %client.camera, "observerFly" );
@ -1124,6 +1151,18 @@ function DefaultGame::forceObserver( %game, %client, %reason )
logEcho(%client.nameBase@" (cl "@%client@") was placed in observer mode due to spawn delay"); logEcho(%client.nameBase@" (cl "@%client@") was placed in observer mode due to spawn delay");
// save the team the player was on - only if this was a delay in respawning // save the team the player was on - only if this was a delay in respawning
%client.lastTeam = %client.team; %client.lastTeam = %client.team;
%scheduleAutoKick = true;
}
if (%scheduleAutoKick && !%client.isAdmin && !$Host::TournamentMode && $Host::KickObserverTimeout )
{
%minutes = $Host::KickObserverTimeout / 60;
messageClient(%client, 'MsgNoObservers', '\c2You have %1 minutes to join the game or you will be kicked.', %minutes);
%key = mFloor(getRandom() * 1000);
%client.okkey = %key;
schedule(($Host::KickObserverTimeout * 1000), 0, "cmdAutoKickObserver", %client, %key);
} }
// switch client to team 0 (observer) // switch client to team 0 (observer)
@ -1154,6 +1193,26 @@ function DefaultGame::forceObserver( %game, %client, %reason )
} }
// cmdAutoKickObserver(%client)
// Info: Will kick the player if he/she is still in observer.
function cmdAutoKickObserver(%client, %key) // Edit GG
{
if (($Host::TournamentMode) || (!$MissionRunning) || (%client.isAdmin) || (%client.team != 0) || (!%client.okkey) || (%client.okkey != %key))
return;
%client.okkey = "";
if( isObject( %client.player ) )
%client.player.scriptKill(0);
if ( isObject( %client ) )
{
messageAll('MsgAdminForce', '\c2%1 has left the game. (Observer Timeout)', %client.nameBase);
%client.setDisconnectReason( "Observer Timeout" );
%client.schedule(700, "delete");
}
}
function DefaultGame::displayDeathMessages(%game, %clVictim, %clKiller, %damageType, %implement) function DefaultGame::displayDeathMessages(%game, %clVictim, %clKiller, %damageType, %implement)
{ {
// ---------------------------------------------------------------------------------- // ----------------------------------------------------------------------------------
@ -1663,7 +1722,10 @@ function DefaultGame::clientMissionDropReady(%game, %client)
commandToClient(%client, 'setHudMode', 'Observer'); commandToClient(%client, 'setHudMode', 'Observer');
%client.setControlObject( %client.camera ); %client.setControlObject( %client.camera );
//displayObserverHud( %client, 0 ); //displayObserverHud( %client, 0 );
updateObserverFlyHud(%client); // Eolk - flag stats stuff
//updateObserverFlyHud(%client);
if($Host::ClassicEvoStats && $CurrentMissionType $= "CTF")
schedule(10000, %client, updateObserverFlyHud, %client);
} }
if( !%observer ) if( !%observer )
@ -1683,7 +1745,18 @@ function DefaultGame::clientMissionDropReady(%game, %client)
commandToClient(%client, 'setHudMode', 'Standard'); // the game has already started commandToClient(%client, 'setHudMode', 'Standard'); // the game has already started
%client.setControlObject( %client.player ); %client.setControlObject( %client.player );
} }
} }
if( $Host::ClassicEvoStats && ($CurrentMissionType $= "CTF" || $CurrentMissionType $= "SCtF") )
{
%nickTeam1 = ($flagstats::heldTeam1 ? $flagstats::nickTeam1 : "N/A");
%realTeam1 = ($flagstats::heldTeam1 ? $flagstats::realTeam1 : "N/A");
%nickTeam2 = ($flagstats::heldTeam2 ? $flagstats::nickTeam2 : "N/A");
%realTeam2 = ($flagstats::heldTeam2 ? $flagstats::realTeam2 : "N/A");
BottomPrint(%client, "Best caps on " @ $CurrentMission @ ":\n" @ getTaggedString(%game.getTeamName(1)) @ ":" SPC %nickTeam1 @ " in " @ %realTeam1 @ " seconds\n" @ getTaggedString(%game.getTeamName(2)) @ ":" SPC %nickTeam2 @ " in " @ %realTeam2 @ " seconds", 10, 3);
}
} }
else else
{ {
@ -1719,6 +1792,12 @@ function DefaultGame::clientMissionDropReady(%game, %client)
echo("Client" SPC %client SPC "is ready."); echo("Client" SPC %client SPC "is ready.");
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here // z0dd - ZOD, 9/29/02. Removed T2 demo code from here
$stats::tk[%client] = "";
%client.midairs = 0;
%client.PlaMA = 0;
%client.hs = "";
for(%i = 1; %i <= 13; %i++)
$stats::weapon_damage[%client, %i] = "";
} }
function DefaultGame::sendClientTeamList(%game, %client) function DefaultGame::sendClientTeamList(%game, %client)
@ -2759,40 +2838,41 @@ function DefaultGame::sendGameVoteMenu( %game, %client, %key )
{ {
// Actual vote options: // Actual vote options:
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission' ); messageClient( %client, 'MsgVoteItem', "", %key, 'VoteChangeMission', 'change the mission to', 'Vote to Change the Mission' );
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteChangeTimeLimit', 'change the time limit', 'Vote to Change the Time Limit');
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' ); messageClient( %client, 'MsgVoteItem', "", %key, 'VoteSkipMission', 'skip the mission to', 'Vote to Skip Mission' );
if( $Host::TournamentMode ) //if( $Host::TournamentMode )
{ //{
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Vote Free For All Mode' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFFAMode', 'Change server to Free For All.', 'Vote Free For All Mode' );
//
if(!$MatchStarted && !$CountdownStarted) // if(!$MatchStarted && !$CountdownStarted)
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteMatchStart', 'Start Match', 'Vote to Start the Match' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteMatchStart', 'Start Match', 'Vote to Start the Match' );
} //}
else //else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTournamentMode', 'Change server to Tournament.', 'Vote Tournament Mode' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTournamentMode', 'Change server to Tournament.', 'Vote Tournament Mode' );
if ( %multipleTeams ) if ( %multipleTeams )
{ {
if(!$MatchStarted && !$Host::TournamentMode) if(!$MatchStarted && !$Host::TournamentMode)
messageClient( %client, 'MsgVoteItem', "", %key, 'ChooseTeam', "", 'Change your Team' ); messageClient( %client, 'MsgVoteItem', "", %key, 'ChooseTeam', "", 'Change your Team' );
if ( $teamDamage ) //if ( $teamDamage )
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Vote to Disable Team Damage' );
else //else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Vote to Enable Team Damage' );
if($CurrentMissionType !$= TR2) // z0dd - ZOD, 5/23/03. Added vote for Random and Fair teams //if($CurrentMissionType !$= TR2) // z0dd - ZOD, 5/23/03. Added vote for Random and Fair teams
{ //{
if ( $RandomTeams ) //if ( $RandomTeams )
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'disable random teams', 'Vote to Disable Random Teams' ); //messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'disable random teams', 'Vote to Disable Random Teams' );
else //else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'enable random teams', 'Vote to Enable Random Teams' ); //messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'enable random teams', 'Vote to Enable Random Teams' );
if ( $FairTeams ) //if ( $FairTeams )
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'disable fair teams', 'Vote to Disable Fair Teams' ); //messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'disable fair teams', 'Vote to Disable Fair Teams' );
else //else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'enable fair teams', 'Vote to Enable Fair Teams' ); //messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'enable fair teams', 'Vote to Enable Fair Teams' );
} //}
} }
} }
else else
@ -2816,23 +2896,23 @@ function DefaultGame::sendGameVoteMenu( %game, %client, %key )
if(!$MatchStarted) if(!$MatchStarted)
messageClient( %client, 'MsgVoteItem', "", %key, 'ChooseTeam', "", 'Choose Team' ); messageClient( %client, 'MsgVoteItem', "", %key, 'ChooseTeam', "", 'Choose Team' );
if ( $teamDamage ) //if ( $teamDamage )
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'disable team damage', 'Disable Team Damage' );
else //else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteTeamDamage', 'enable team damage', 'Enable Team Damage' );
if($CurrentMissionType !$= TR2) // z0dd - ZOD, 5/23/03. Added vote for Random and Fair teams //if($CurrentMissionType !$= TR2) // z0dd - ZOD, 5/23/03. Added vote for Random and Fair teams
{ //{
if ( $RandomTeams ) // if ( $RandomTeams )
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'disable random teams', 'Disable Random Teams' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'disable random teams', 'Disable Random Teams' );
else // else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'enable random teams', 'Enable Random Teams' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteRandomTeams', 'enable random teams', 'Enable Random Teams' );
if ( $FairTeams ) // if ( $FairTeams )
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'disable fair teams', 'Disable Fair Teams' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'disable fair teams', 'Disable Fair Teams' );
else // else
messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'enable fair teams', 'Enable Fair Teams' ); // messageClient( %client, 'MsgVoteItem', "", %key, 'VoteFairTeams', 'enable fair teams', 'Enable Fair Teams' );
} //}
} }
} }
} }
@ -2969,7 +3049,7 @@ function DefaultGame::voteChangeMission(%game, %admin, %missionDisplayName, %typ
else else
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The mission was changed to %1 (%2) by vote.', %missionDisplayName, %typeDisplayName ); messageAll('MsgVotePassed', '\c2The mission was changed to %1 (%2) by vote.', %missionDisplayName, %typeDisplayName );
logEcho("mission changed to "@%missionDisplayName@"/"@%typeDisplayName@" (vote)"); logEcho("mission changed to "@%missionDisplayName@"/"@%typeDisplayName@" (vote)");
@ -3062,7 +3142,7 @@ function DefaultGame::voteTournamentMode( %game, %admin, %missionDisplayName, %t
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2Server switched to Tournament mode by vote (%1): %2 percent.', %missionDisplayName, mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVotePassed', '\c2Server switched to Tournament mode by vote (%1): %2 percent.', %missionDisplayName, mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
setModeTournament( %mission, %missionType ); setModeTournament( %mission, %missionType );
@ -3106,8 +3186,8 @@ function DefaultGame::voteMatchStart( %game, %admin)
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The match has been started by vote: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100)); messageAll('MsgVotePassed', '\c2The match has been started by vote: %1 percent.', mFloor(%game.totalVotesFor/(ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone) * 100));
startTourneyCountdown(); startTourneyCountdown();
} }
@ -3136,7 +3216,7 @@ function DefaultGame::voteFFAMode( %game, %admin, %client )
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2Server switched to Free For All mode by vote.', %client); messageAll('MsgVotePassed', '\c2Server switched to Free For All mode by vote.', %client);
setModeFFA($CurrentMission, $CurrentMissionType); setModeFFA($CurrentMission, $CurrentMissionType);
@ -3168,7 +3248,7 @@ function DefaultGame::voteChangeTimeLimit( %game, %admin, %newLimit )
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The mission 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;
@ -3212,7 +3292,7 @@ function DefaultGame::voteResetServer( %game, %admin, %client )
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgVotePassed', '\c2The Server has been reset by vote.' ); messageAll('MsgVotePassed', '\c2The Server has been reset by vote.' );
resetServerDefaults(); resetServerDefaults();
@ -3295,7 +3375,7 @@ function DefaultGame::voteAdminPlayer(%game, %admin, %client)
{ {
%totalVotes = %game.totalVotesFor + %game.totalVotesAgainst; %totalVotes = %game.totalVotesFor + %game.totalVotesAgainst;
// Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD // Added people who dont vote into the equation, now if you do not vote, it doesn't count as a no. - z0dd - ZOD
if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100)) if(%totalVotes > 0 && (%game.totalVotesFor / (ClientGroup.getCount() - $HostGameBotCount - %game.totalVotesNone)) > ($Host::VotePasspercent / 100))
{ {
messageAll('MsgAdminPlayer', '\c2%2 was made an admin by vote.', %client, %client.name); messageAll('MsgAdminPlayer', '\c2%2 was made an admin by vote.', %client, %client.name);
%client.isAdmin = 1; %client.isAdmin = 1;
@ -3751,9 +3831,6 @@ function notifyMatchEnd(%time)
if (%seconds > 1) { if (%seconds > 1) {
MessageAll('MsgMissionEnd', '\c2Match ends in %1 seconds.~wfx/misc/hunters_%1.wav', %seconds); MessageAll('MsgMissionEnd', '\c2Match ends in %1 seconds.~wfx/misc/hunters_%1.wav', %seconds);
if (%seconds == 60) {
MessageAll('MsgNotifyEvoNextMission', '\c2Next Mission: \c1%1', $EvoCachedNextMission);
}
} }
else if (%seconds == 1) else if (%seconds == 1)
MessageAll('MsgMissionEnd', '\c2Match ends in 1 second.~wfx/misc/hunters_1.wav'); MessageAll('MsgMissionEnd', '\c2Match ends in 1 second.~wfx/misc/hunters_1.wav');

View file

@ -2831,7 +2831,7 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
%targetClient.lastDamagedBy = %damagingClient; %targetClient.lastDamagedBy = %damagingClient;
%targetClient.lastDamaged = getSimTime(); %targetClient.lastDamaged = getSimTime();
//now call the "onKilled" function if the client was... you know... //now call the "onKilled" function if the client was... you know...
if(%targetObject.getState() $= "Dead") if(%targetObject.getState() $= "Dead")
{ {

View file

@ -305,7 +305,7 @@ function getValidMap(%misType)
function findNextCycleMission(%type) function findNextCycleMission(%type)
{ {
%numPlayers = ClientGroup.getCount(); %numPlayers = 1;
if($Host::ClassicCycleMisTypes || $Host::ClassicRandomMisTypes) if($Host::ClassicCycleMisTypes || $Host::ClassicRandomMisTypes)
{ {
%tempMission = getValidMap(%type); %tempMission = getValidMap(%type);
@ -323,6 +323,11 @@ function findNextCycleMission(%type)
{ {
%nextMissionIndex = getNextMission(%tempMission, %type); %nextMissionIndex = getNextMission(%tempMission, %type);
%nextPotentialMission = $HostMissionFile[%nextMissionIndex]; %nextPotentialMission = $HostMissionFile[%nextMissionIndex];
// Eolk
$MapPlayed[%nextPotentialMission] = 1;
$MapPlayedCount++;
// error("SH: "@%type@", "@%nextPotentialMission);
// error("POT MAP: "@%nextPotentialMission);
//just cycle to the next if we've gone all the way around... //just cycle to the next if we've gone all the way around...
if (%nextPotentialMission $= $CurrentMission || %failsafe >= 1000) if (%nextPotentialMission $= $CurrentMission || %failsafe >= 1000)
@ -332,20 +337,18 @@ function findNextCycleMission(%type)
return $HostMissionFile[%nextMissionIndex]; return $HostMissionFile[%nextMissionIndex];
} }
//get the player count limits for this mission %numPlayers = ClientGroup.getCount();
%limits = $Host::MapPlayerLimits[%nextPotentialMission, %type]; %minPlayers = $MapCycleMinPlayers[%type, %nextPotentialMission];
if (%limits $= "") %maxPlayers = $MapCycleMaxPlayers[%type, %nextPotentialMission];
return %nextPotentialMission; // error("MINPLAYERS: "@%minPlayers@", MAXPLAYERS: "@%maxPlayers);
else if(%minPlayers $= "" || %maxPlayers $= "")
{ return;
%minPlayers = getWord(%limits, 0);
%maxPlayers = getWord(%limits, 1);
if ((%minPlayers < 0 || %minPlayers == -1 || %numPlayers >= %minPlayers) && (%maxPlayers < 0 || %maxPlayers == -1 || %numPlayers <= %maxPlayers)) if ((%minPlayers < 0 || %minPlayers == -1 || %numPlayers >= %minPlayers) && (%maxPlayers < 0 || %maxPlayers == -1 || %numPlayers <= %maxPlayers))
return %nextPotentialMission; return %nextPotentialMission;
}
//since we didn't return the mission, we must not have an acceptable number of players - check the next //since we didn't return the mission, we must not have an acceptable number of players - check the next
error("SKIPPING MAP, player count unacceptable");
%tempMission = %nextPotentialMission; %tempMission = %nextPotentialMission;
%failsafe++; %failsafe++;
} }
@ -353,6 +356,9 @@ function findNextCycleMission(%type)
function CycleMissions() function CycleMissions()
{ {
if(Game.scheduleVote !$= "") // a vote is still running, stop it
stopCurrentVote();
echo( "cycling mission. " @ ClientGroup.getCount() @ " clients in game." ); echo( "cycling mission. " @ ClientGroup.getCount() @ " clients in game." );
if($Host::ClassicCycleMisTypes && !$Host::ClassicRandomMisTypes) if($Host::ClassicCycleMisTypes && !$Host::ClassicRandomMisTypes)
{ {
@ -899,22 +905,9 @@ function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice,
$HostGamePlayerCount++; $HostGamePlayerCount++;
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here // z0dd - ZOD, 9/29/02. Removed T2 demo code from here
// Eolk - Fix logging.
if( $Host::ClassicConnectLog ) if( $Host::ClassicConnectLog )
{ connectLog(%client, 0);
// z0dd - ZOD, 5/07/04. New logging method based on AurLogging by Aureole
%file = $Host::ClassicConnLogPath @"/"@ formatTimeString("mm.dd.yy") @ "Connect.csv";
%conn = new FileObject();
%conn.openForAppend(%file);
%conn.writeLine("\"" @ formatTimeString("mm.dd.yy - h:nn:ss A") @ "\"," @ %client.nameBase @ "\"," @ %client.guid @ "," @ getSubStr(%client.getAddress(), 3, strlen(%client.getAddress())));
%conn.close();
%conn.delete();
echo( "exporting client info to connect.csv..." );
// z0dd - ZOD - Founder, 5/25/03. Connect log
//$conn::new[$ConnectCount++] = "Player: " @ %client.nameBase @ " Real Name: " @ %realName @ " Guid: " @ %client.guid @ " Connected from: " @ %client.getAddress();
//%file = formatTimeString("mm.dd.yy") @ "Connect.log";
//export("$conn::*", $Host::ClassicConnLogPath @"/"@ %file, true);
}
// z0dd - ZOD 4/29/02. Activate the clients Classic Huds // z0dd - ZOD 4/29/02. Activate the clients Classic Huds
// and start off with 0 SAD access attempts. // and start off with 0 SAD access attempts.
@ -953,6 +946,84 @@ function GameConnection::onConnect( %client, %name, %raceGender, %skin, %voice,
} }
} }
} }
if($Host::EmptyServerReset && isEventPending($EmptyServerResetSchedule))
{
error(formatTimeString("HH:nn:ss") SPC "Previous Timed Server Reset schedule cancelled..." );
cancel($EmptyServerResetSchedule);
}
if($Host::GuidCheck)
{
// If we don't have a GUID try to find one somewhere.
if(! %client.guid || %client.guid $= "")
{
%client.guid = getField(%client.getAuthInfo(),3);
}
// If we don't have a name, try to get one.
if(!%name || %name $= "")
{
%name = getField(%client.getAuthInfo(),0);
%client.nameBase = %name;
}
// If we still don't have a GUID or name, time to boot the player (unless a local game).
if(getIPAddress(%client) !$= "Local" && (!%client.guid $= "" || %name $= ""))
{
//statEchoInfo("No name/GUID kick for CID (" @ %client @ ") with IP (" @ getIPAddress(%client) @ ")");
KickByCID(%client, "You joined the server with a blank name and/or GUID. Try rejoining.",2);
return;
}
}
}
// From Eolks
// Minor improvement by Teratos
function getIPAddress(%client)
{
%port = nextToken(nextToken(%client.getAddress(), "ip", ":"), "addr", ":");
if(%client.isAIControlled()) {
%addr = "bot";
}
return (%addr $= "" ? "Local" : %addr);
}
// From Eolks
// We are not an admin MOD but this comes in handy when name is missing on races.
function KickByCID(%client, %reason, %time)
{
if(!isObject(%client))
return;
// AI handler
if(%client.isAIControlled())
{
%client.drop();
$HostGameBotCount--;
if($HostGameBotCount < 0)
$HostGameBotCount = 0;
return;
}
if (%reason $= "")
%reason = "You have been kicked from the server.";
// Perhaps we don't want time done.
//if (%time < 0 || %time $= "")
// %time = $Host::KickBanTime;
// Send proper messages
messageClient(%client, 'onClientKicked', "");
messageAllExcept(%client, -1, 'MsgClientDrop', "", %client.name, %client);
// Remove their player, if one exists
if (isObject(%client.player))
%client.player.scriptKill(0);
// Set reason, schedule removal
%client.setDisconnectReason(%reason);
%client.schedule(500, "delete");
// Keep them out
// if(%time != 0)
// BanList::add(%client.guid, %client.getAddress(), %time);
} }
function GameConnection::onDrop(%client, %reason) function GameConnection::onDrop(%client, %reason)
@ -960,6 +1031,10 @@ function GameConnection::onDrop(%client, %reason)
if(isObject(Game)) if(isObject(Game))
Game.onClientLeaveGame(%client); Game.onClientLeaveGame(%client);
// Eolk - Fix logging.
if( $Host::ClassicConnectLog )
connectLog(%client, 1);
// make sure that tagged string of player name is not used // make sure that tagged string of player name is not used
if ( $CurrentMissionType $= "SinglePlayer" ) if ( $CurrentMissionType $= "SinglePlayer" )
messageAllExcept(%client, -1, 'MsgClientDrop', "", getTaggedString(%client.name), %client); messageAllExcept(%client, -1, 'MsgClientDrop', "", getTaggedString(%client.name), %client);
@ -981,6 +1056,8 @@ function GameConnection::onDrop(%client, %reason)
echo("CDROP: " @ %client @ " " @ %client.getAddress()); echo("CDROP: " @ %client @ " " @ %client.getAddress());
$HostGamePlayerCount--; $HostGamePlayerCount--;
// schedule(1000, 0, "updateAdminModHud"); // Have to delay this a bit so it actually updates correctly, since the client isn't deleted in this function.
// z0dd - ZOD, 5/05/04. Add a bot for every client drop if balanced bots are set // z0dd - ZOD, 5/05/04. Add a bot for every client drop if balanced bots are set
if( $Host::BotsEnabled ) if( $Host::BotsEnabled )
{ {
@ -1006,22 +1083,90 @@ function GameConnection::onDrop(%client, %reason)
AutoPWServer(0); AutoPWServer(0);
} }
// reset the server if everyone has left the game // reset the server if everyone has left the game
//if( $HostGamePlayerCount - $HostGameBotCount == 0 && $Host::Dedicated && !$resettingServer && !$LoadingMission ) if( $HostGamePlayerCount - $HostGameBotCount == 0 && $Host::EmptyServerReset && !$resettingServer && !$LoadingMission && $CurrentMissionType !$= $Host::MissionType )
// schedule(0, 0, "resetServerDefaults"); {
// Timed Server Reset: $Host::EmptyServerReset = 1; --- Time in Minutes $Host::EmptyServerResetTime = 120;
// ------------------------------------------------------------------------------------------------------------ if(isEventPending($EmptyServerResetSchedule))
// z0dd - ZOD, 5/12/02. Reset the server if everyone has left the game and set this mission as startup mission. {
// This helps with $Host::ClassicRandomMissions to keep the random more random. error(formatTimeString("HH:nn:ss") SPC "Previous Timed Server Reset schedule cancelled..." );
if( $HostGamePlayerCount - $HostGameBotCount == 0 && $Host::Dedicated && !$resettingServer && !$LoadingMission ) cancel($EmptyServerResetSchedule);
{ }
$Host::Map = $CurrentMission;
export("$Host::*", $serverprefs, false); %resettime = $Host::EmptyServerResetTime * 60000;
$Host::MissionType = $CurrentMissionType; if(%resettime <= 0) %resettime = 1;
export("$Host::*", $serverprefs, false); $EmptyServerResetSchedule = schedule(%resettime, 0, "ResetServerTimed");
schedule(10, 0, "resetServerDefaults"); error(formatTimeString("HH:nn:ss") SPC "Timed Server Reset schedule started..." );
} }
// ------------------------------------------------------------------------------------------------------------ }
function ResetServerTimed()
{
if( $HostGamePlayerCount - $HostGameBotCount == 0 && $Host::EmptyServerReset && !$resettingServer && !$LoadingMission )
schedule(10, 0, "resetServerDefaults");
// Instead of simply resetting the defaults, reinitialize the
// entire server...
// ReallyQuit();
else
error(formatTimeString("HH:nn:ss") SPC "Timed Server Reset schedule cancelled (Someone on server)..." );
}
// resetServerDefaults()
// Info: Re-load the current server prefs and reset some variables
function resetServerDefaults()
{
$resettingServer = true;
echo( "Resetting server defaults..." );
if( isObject( Game ) )
Game.gameOver();
// Override server defaults with prefs:
exec( "scripts/ServerDefaults.cs" );
exec( $serverprefs );
$MaxPlayers = $Host::MaxPlayers;
$BackupPassword = $Host::Password;
$Host::TimeLimit = $DefaultTimeLimit;
$NoBaseRape = 1;
$Host::TournamentMode = 0;
// ---------------------------------------------------
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here
//convert the team skin and name vars to tags...
%index = 0;
while ($Host::TeamSkin[%index] !$= "")
{
$TeamSkin[%index] = addTaggedString($Host::TeamSkin[%index]);
%index++;
}
%index = 0;
while ($Host::TeamName[%index] !$= "")
{
$TeamName[%index] = addTaggedString($Host::TeamName[%index]);
%index++;
}
// Get the hologram names from the prefs...
%index = 1;
while ( $Host::holoName[%index] !$= "" )
{
$holoName[%index] = $Host::holoName[%index];
%index++;
}
// ---------------------------------------------------
// kick all bots...
removeAllBots();
// add bots back if they were there before..
if( $Host::botsEnabled ) // z0dd - ZOD, 9/29/02. Removed T2 demo code from here
initGameBots( $Host::Map, $Host::MissionType );
// load the missions
loadMission( $Host::Map, $Host::MissionType );
$resettingServer = false;
echo( "Server reset complete." );
} }
function dismountPlayers() function dismountPlayers()
@ -1044,10 +1189,10 @@ function loadMission( %missionName, %missionType, %firstMission )
if ($AutoRestart) // z0dd - ZOD, 3/26/02. Auto restart server after a specified time. if ($AutoRestart) // z0dd - ZOD, 3/26/02. Auto restart server after a specified time.
{ {
$AutoRestart = 0; $AutoRestart = 0;
messageAll( 'MsgServerRestart', '\c2SERVER IS AUTO REBOOTING! COME BACK IN 5 MINUTES.~wfx/misc/red_alert.wav'); messageAll( 'MsgServerRestart', '\c2SERVER IS NOW AUTO RESTARTING!.~wfx/misc/red_alert.wav');
logEcho("Auto server restart commencing."); logEcho("Auto server restart commencing.");
//schedule(10000, 0, "CreateServer", %missionName, %missionType); // this wasn't working as a cure for servers with NULLs //schedule(10000, 0, "CreateServer", %missionName, %missionType); // this wasn't working as a cure for servers with NULLs
schedule(10000, 0, quit ); schedule(5000, 0, quit );
} }
// z0dd - ZOD, 9/29/02. Removed T2 demo code from here // z0dd - ZOD, 9/29/02. Removed T2 demo code from here
@ -1088,6 +1233,47 @@ function loadMission( %missionName, %missionType, %firstMission )
sendLoadInfoToClient( %client ); sendLoadInfoToClient( %client );
} }
if($Host::ClassicEvoStats)
{
deleteVariables("$*stats::*");
if(%missionType $= "CTF" || %missionType $= "SCtF")
{
%fileIn = "stats/maps/classic/" @ %missionType @ "/" @ %missionName @ ".txt";
// Initialize the file if not exist
if(!isFile(%fileIn))
{
$flagstats::heldTeam1 = 0;
$flagstats::realTeam1 = 0;
$flagstats::nickTeam1 = 0;
$flagstats::heldTeam2 = 0;
$flagstats::realTeam2 = 0;
$flagstats::nickTeam2 = 0;
export("$flagstats::*", %fileIn, false);
}
exec(%fileIn);
}
}
// Eolk - Testing new stuff to make map rotation less stale.
if($CurrentMissionType !$= %missionType && !%firstMission)
deleteVariables("$MapPlayed*");
// reset the default time limit if changed
if($TimeLimitChanged)
{
$Host::TimeLimit = $DefaultTimeLimit;
$TimeLimitChanged = 0;
}
if(!$MapPlayed[%missionName] && $ReverseMapCycle[%missionName])
{
$MapPlayed[%missionName] = 1;
$MapPlayedCount++;
}
// allow load condition to exit out // allow load condition to exit out
schedule(0,ServerGroup,loadMissionStage1,%missionName,%missionType,%firstMission); schedule(0,ServerGroup,loadMissionStage1,%missionName,%missionType,%firstMission);
} }
@ -1379,6 +1565,12 @@ function serverCmdMissionStartPhase3Done(%client, %seq)
%client.isReady = true; %client.isReady = true;
Game.clientMissionDropReady(%client); Game.clientMissionDropReady(%client);
if(!%client.seenMOTD && $Host::ClassicMOTD !$= "")
{
centerPrint(%client, $Host::ClassicMOTD, $Host::ClassicMOTDTime, $Host::ClassicMOTDLines);
%client.seenMOTD = true;
}
} }
function serverSetClientTeamState( %client ) function serverSetClientTeamState( %client )
@ -1556,7 +1748,7 @@ function serverCmdSAD(%client, %password)
%client.isAdmin = true; %client.isAdmin = true;
%client.isSuperAdmin = true; %client.isSuperAdmin = true;
MessageAll( 'MsgSuperAdminPlayer', '\c2%2 has become a Super Admin by force.', %client, %name); MessageAll( 'MsgSuperAdminPlayer', '\c2%2 has become a Super Admin by force.', %client, %name);
logEcho(%client.nameBase @ " has become a Super Admin by force."); ClassicAdminLog("SAD", %client.nameBase @ " has become a Super Admin by force.");
} }
case $Host::AdminPassword: case $Host::AdminPassword:
@ -1570,7 +1762,7 @@ function serverCmdSAD(%client, %password)
%client.isAdmin = true; %client.isAdmin = true;
%client.isSuperAdmin = false; %client.isSuperAdmin = false;
MessageAll( 'MsgAdminForce', '\c2%2 has become a Admin by force.', %client, %name); MessageAll( 'MsgAdminForce', '\c2%2 has become a Admin by force.', %client, %name);
logEcho(%client.nameBase @ " has become an Admin by force."); ClassicAdminLog("AD", %client.nameBase @ " has become an Admin by force.");
} }
default: default:
messageClient(%client, 'MsgPasswordFailed', '\c2Illegal SAD PW.'); messageClient(%client, 'MsgPasswordFailed', '\c2Illegal SAD PW.');
@ -1589,7 +1781,7 @@ function serverCmdSAD(%client, %password)
%client.setDisconnectReason( 'For attempting to exploit SAD to gain unauthorized Admin by entering\ntoo many passwords, you are being Banned.' ); %client.setDisconnectReason( 'For attempting to exploit SAD to gain unauthorized Admin by entering\ntoo many passwords, you are being Banned.' );
%client.schedule(700, "delete"); %client.schedule(700, "delete");
BanList::add(%client.guid, %client.getAddress(), $Host::BanTime); BanList::add(%client.guid, %client.getAddress(), $Host::BanTime);
logEcho(%client.nameBase @ " " @ %client.guid @ " has been banned for excessive use of SAD"); ClassicAdminLog("BAN", %client.nameBase@" has been banned for attempting to exploit the SAD password.");
} }
} }
} }
@ -3185,4 +3377,4 @@ function serverCmdcanUpdateClanTag(%client, %tag)
function GameConnection::ResetTagSwitchWait(%this) function GameConnection::ResetTagSwitchWait(%this)
{ {
%this.isTagWaiting = false; %this.isTagWaiting = false;
} }

View file

@ -1,4 +1,4 @@
$Host::useCustomSkins = 0; $Host::useCustomSkins = 1;
$Host::teamSkin[0] = "blank"; $Host::teamSkin[0] = "blank";
$Host::teamSkin[1] = "base"; $Host::teamSkin[1] = "base";
@ -26,10 +26,11 @@ $Host::holoName[6] = "Harbinger";
// ----------------------------------------- // -----------------------------------------
// z0dd - ZOD, 9/29/02. Removed T2 demo code // z0dd - ZOD, 9/29/02. Removed T2 demo code
$Host::GameName = "Tribes 2 Classic Server"; $Host::GameName = "Tribes 2 Test";
$Host::Info = "This is a Tribes 2 Classic Server."; $Host::Info = " ";
$Host::Map = "Katabatic"; $Host::Map = "VaubanLak";
$Host::MaxPlayers = 64; $Host::MaxPlayers = 30;
$Host::MissionType = "LakRabbit";
// ----------------------------------------- // -----------------------------------------
// ------------------------------------------------ // ------------------------------------------------
@ -77,6 +78,7 @@ $Host::ClassicLoadBlasterChanges = 0; // Blaster shoots 6 projec
$Host::ClassicLoadPlayerChanges = 0; // Load up new gameplay changes allowing players to be shot while in vehicles. $Host::ClassicLoadPlayerChanges = 0; // Load up new gameplay changes allowing players to be shot while in vehicles.
$Host::ClassicLoadMineChanges = 0; // Enable/Disable mine disc. $Host::ClassicLoadMineChanges = 0; // Enable/Disable mine disc.
$Host::ClassicLoadVRamChanges = 0; // Vehicles take damage when ramming players. $Host::ClassicLoadVRamChanges = 0; // Vehicles take damage when ramming players.
// ------------------------------------------------ // ------------------------------------------------
$Host::AdminList = ""; // all players that will be automatically an admin upon joining server $Host::AdminList = ""; // all players that will be automatically an admin upon joining server
@ -84,15 +86,14 @@ $Host::SuperAdminList = ""; // all players that will be automatically a super a
$Host::BindAddress = ""; // set to an ip address if the server wants to specify which NIC/IP to use $Host::BindAddress = ""; // set to an ip address if the server wants to specify which NIC/IP to use
$Host::Port = 28000; $Host::Port = 28000;
$Host::Password = ""; $Host::Password = "";
$Host::PureServer = 1; $Host::PureServer = 0;
$Host::Dedicated = 0; $Host::Dedicated = 0;
$Host::MissionType = "CTF"; $Host::TimeLimit = 45;
$Host::TimeLimit = 30; $Host::BotCount = 0;
$Host::BotCount = 2;
$Host::BotsEnabled = 0; $Host::BotsEnabled = 0;
$Host::MinBotDifficulty = 0.5; $Host::MinBotDifficulty = 0.5;
$Host::MaxBotDifficulty = 0.75; $Host::MaxBotDifficulty = 0.75;
$Host::NoSmurfs = 0; $Host::NoSmurfs = 1;
$Host::VoteTime = 30; // amount of time before votes are calculated $Host::VoteTime = 30; // amount of time before votes are calculated
$Host::VotePassPercent = 60; // percent needed to pass a vote $Host::VotePassPercent = 60; // percent needed to pass a vote
$Host::KickBanTime = 300; // specified in seconds $Host::KickBanTime = 300; // specified in seconds
@ -100,11 +101,11 @@ $Host::BanTime = 1800; // specified in seconds
$Host::PlayerRespawnTimeout = 60; // time before a dead player is forced into observer mode $Host::PlayerRespawnTimeout = 60; // time before a dead player is forced into observer mode
$Host::warmupTime = 20; $Host::warmupTime = 20;
$Host::TournamentMode = 0; $Host::TournamentMode = 0;
$Host::allowAdminPlayerVotes = 1; $Host::allowAdminPlayerVotes = 0;
$Host::FloodProtectionEnabled = 1; $Host::FloodProtectionEnabled = 1;
$Host::MaxMessageLen = 120; $Host::MaxMessageLen = 120;
$Host::VoteSpread = 20; $Host::VoteSpread = 20;
$Host::TeamDamageOn = 0; $Host::TeamDamageOn = 1;
$Host::Siege::Halftime = 20000; $Host::Siege::Halftime = 20000;
$Host::CRCTextures = 0; $Host::CRCTextures = 0;
@ -119,11 +120,9 @@ $Audio::maxVoiceChannels = 2;
$Host::EmptyServerReset = 1; //To control whether the server auto resets when empty $Host::EmptyServerReset = 1; //To control whether the server auto resets when empty
$Host::EmptyServerResetTime = 120; //Time in Minutes to reset an empty server $Host::EmptyServerResetTime = 120; //Time in Minutes to reset an empty server
$Host::EnableAutobalance = 1; //Will autobalance when teams are uneven. $Host::EnableAutobalance = 1; //Will autobalance when teams are uneven.
$Host::EnableMapRepetitionChecker = 1; //Enable or Disable the Map Repetition Checker
$Host::EnableMortarTurret = 0; //Enable or Disable Mortar Turret $Host::EnableMortarTurret = 0; //Enable or Disable Mortar Turret
$Host::EnableNetTourneyClient = 1; //Enable or Disable Tourney Net Client checking $Host::EnableNetTourneyClient = 0; //Enable or Disable Tourney Net Client checking
$Host::EnableNoBaseRapeNotify = 1; //Get a base rape notification $Host::EnableNoBaseRapeNotify = 1; //Get a base rape notification
$Host::EnableSetNextMission = 1; //Let admins set the next mission thru the vote menu
$Host::EnableTeamBalanceNotify = 1; //Get a teambalance notification $Host::EnableTeamBalanceNotify = 1; //Get a teambalance notification
$Host::EnableTurretPlayerCount = 10; //How many to enable turrets $Host::EnableTurretPlayerCount = 10; //How many to enable turrets
$Host::EnableVoteSound = 1; //If you want a sound chime during voting $Host::EnableVoteSound = 1; //If you want a sound chime during voting
@ -132,10 +131,9 @@ $Host::AntiCloakPlayerCount = 6; //How many to enable Cloak
$Host::PUGautoPassword = 0; //Auto enable a password in tournament mode $Host::PUGautoPassword = 0; //Auto enable a password in tournament mode
$Host::PUGPassword = "pickup"; //PUG password, Auto or enable/disable thru admin menu $Host::PUGPassword = "pickup"; //PUG password, Auto or enable/disable thru admin menu
$Host::PUGpasswordAlwaysOn = 0; //If you want the pug password Always on $Host::PUGpasswordAlwaysOn = 0; //If you want the pug password Always on
$Host::EmptyServerReset = 1; //Whether or not you want the server to reset when its empty
$Host::DMSLOnlyMode = 0; //Shocklance Only Mode for Deathmatch $Host::DMSLOnlyMode = 0; //Shocklance Only Mode for Deathmatch
$Host::SCtFProMode = 0; //Pro mode for LCTF $Host::SCtFProMode = 0; //Pro mode for LCTF
$Host::LoadingScreenUseDebrief = 0; //Enable Debrief Style Loading screen; Gives you more lines and MOTD $Host::LoadingScreenUseDebrief = 1; //Enable Debrief Style Loading screen; Gives you more lines and MOTD
$Host::LoadScreenColor1 = "05edad"; //Loading Screen color; First Column $Host::LoadScreenColor1 = "05edad"; //Loading Screen color; First Column
$Host::LoadScreenColor2 = "29DEE7"; //Loading Screen color; Second Column $Host::LoadScreenColor2 = "29DEE7"; //Loading Screen color; Second Column
$Host::LoadScreenColor3 = "33CCCC"; //Loading Screen color; Accents $Host::LoadScreenColor3 = "33CCCC"; //Loading Screen color; Accents
@ -155,9 +153,38 @@ $Host::LoadScreenMOTD1 = "Blaster is here to stay!"; //MOTD or Events Lin
$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)
$Host::EvoAdminSwitchTeams = 1; //Enable or Disable an admins ability to switch other players teams. $Host::ClassicAdminLog = 1;
$Host::EvoCustomMapLimitsFile = "prefs/SetMapLimits.cs"; //Exec custom limits file $Host::ClassicAdminLogPath = "logs/Admin/log.txt";
$Host::ClassicConnectLog = 1;
$Host::ClassicConnLogPath = "logs/Connect/log.txt";
$Host::ClassicMOTD = "<color:3cb4b4><font:Sui Generis:22>Discord PUB\n<color:3cb4b4><font:Univers:16>Server Hosted/Provided by Branzone/Ravin\n<color:3cb4b4><font:Univers:16>Get Mappacks at https://playt2.com/";
$Host::ClassicMOTDLines = 3;
$Host::ClassicMOTDTime = 6;
$Host::ClassicRotationCustom = 1;
$Host::ClassicRotationFile = "prefs/mapRotation.cs";
$Host::ClassicEvoStats = 1;
$Host::ClassicStatsType = 2;
$Host::ServerRules1 = "\c2if\c4(\c3%client.fun == \c5true \c4&& \c3%client.Llama_Grabs \c4< \c51\c4)";
$Host::ServerRules2 = " \c1Be_Courteous\c4(\c2%client, %game\c4);";
$Host::ServerRules3 = "\c2else if\c4(\c3%client.attitude \c4!$ = \c5%client.fun\c4)";
$Host::ServerRules4 = " \c1Try_2_Have_Fun\c4(\c2%client, %attitude\c4);";
$Host::AnimateWithTransitions = 1;
$Host::AllowAdmin2Admin = 0;
$Host::AllowAdminBan = 0;
$Host::AllowAdminPassVote = 1;
$Host::AllowAdminStopVotes = 1;
$Host::AllowAdminVotes = 1;
$Host::AllowPlayerVoteChangeMission = 1;
$Host::AllowPlayerVoteSkipMission = 1;
$Host::AllowPlayerVoteTimeLimit = 1;
$Host::AllowPlayerVoteTournamentMode = 0;
$Host::NoBaseRapeEnabled = 1;
$Host::NoBaseRapePlayerCount = 14;
$Host::AveragePings = 1;
$Host::GuidCheck = 1;
$Host::MinFlagRecordPlayerCount = 6;
//LakRabbit //LakRabbit
$Host::EnableLakUnlimitedDJ = 1; //Unlimited disc-jumps if enabled $Host::LakRabbitUnlimitedDJ = 1; //Unlimited disc-jumps if enabled
$Host::LakRabbitNoSplashDamage = 0; //Splash Damage enabled or not $Host::LakRabbitNoSplashDamage = 1; //Splash Damage disabled or not
$Host::ShowFlagIcon = 1; //Show flag Icon in lak $Host::LakRabbitShowFlagIcon = 1; //Show flag Icon in lak

Binary file not shown.

View file

@ -10,8 +10,8 @@ Discord: [Tribes 2 Discord](https://discord.gg/Y4muNvF)
### Features ### Features
- Improved NoBaseRape asset handling - Improved NoBaseRape Asset handling
- An independant team population counter - An Independant Team Population Counter
- Team-balance notifys - Team-balance notifys
- NoBaseRape notifys - NoBaseRape notifys
- Team Autobalancing - Team Autobalancing
@ -45,15 +45,12 @@ Discord: [Tribes 2 Discord](https://discord.gg/Y4muNvF)
### Prerequisites ### Prerequisites
- Classic 1.5.2 - Classic 1.5.2
- Evolution Admin Mod Classic Version
### Setup ### Setup
- Meant to be installed on top of Classic 1.5.2 - Meant to be installed on top of Classic 1.5.2
- If the file isnt on this github it is unmodified in Classic 1.5.2 - If the file isnt on this github it is unmodified in Classic 1.5.2
- Place github server files in Classic folder - Place github server files in Classic folder
- Place github evo files in Evo admin mod .vl2
- Place Evo .vl2 in Classic folder
- Run once to create Serverprefs - Run once to create Serverprefs
- Open Classic/Pref/Serverpref.cs and modify to your wishes - Open Classic/Pref/Serverpref.cs and modify to your wishes
- Run using Classic_dedicated_server.bat - Run using Classic_dedicated_server.bat