//========================================================================================== // // heli_m2_b1.gm // // Who When What //------------------------------------------------------------------------------------------ // ^4Tardis 25 June 2014 Initial Script // Just cleaned up the goals file and a few waypoints from the downloaded zip (Wolffiles) // WARNING use fixed Game script - // you can download at - www.dbjonescomputers.co.uk/et/mapscripts/heli_m2_b1.script // or the pk3 fix www.dbjonescomputers.co.uk/et/z_heli_m2_b1_fix.pk3 // Lots of Work TO DO but playable ~ 26 June 2014 //========================================================================================== // global Map = { Debug = 0, // please set to zero before distributing your script ShowMovers = false, Allied_CP_Dyno = 0, constructible_control_Dyno = 0, controlul_portilor_Dyno = 0, door = false, //door is down at start no_control = false, // Movers = { "MOVER_tank", "MOVER_master_mover", "MOVER_mover_shell", }, Allied_CP_Built = function( trigger ) { if ( TestMap ) { return; } SetAvailableMapGoals( TEAM.AXIS, true , "PLANT_Allied_CP" ); Util.MapDebugPrint( "Command Post constructed/Spawn changed^1!!!" ); }, Door_Controls_Built = function( trigger ) { if ( TestMap ) { return; } //once built can not destroy - DisableGoal //SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Door_Controls" ); //Enable Switch for Door Controls SetAvailableMapGoals( TEAM.AXIS, true , "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, true , "SWITCH_apasa" ); Util.MapDebugPrint( "Door_Controls_Built" ); }, Tank_Built = function( trigger ) { if ( TestMap ) { return; } //Disable Ride , Switch for Heli & Gun SetAvailableMapGoals( TEAM.ALLIES, false, "RIDE_heli" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_butono" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_bh" ); //Gun Switch still active for Axis SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_butak" ); Util.MapDebugPrint( "^5The tank has been repaired" ); }, Tank_Damaged = function( trigger ) { if ( TestMap ) { return; } //if sate needed due to Game script call function wm_announce "The tank has been damaged^1!!!" if ( Map.no_control == true ) //Main tank door is open - thanks to Gun { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_esc1" ); SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_butak" ); } else if ( Map.no_control == false ) //Main tank door is closed - no thanks to Gun { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_esc1" ); SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_butak" ); } Util.MapDebugPrint( "The tank has been damaged^1!!!" ); }, constructible_control_Built = function( trigger ) { if ( TestMap ) { return; } // Enable Switch for Gun SetAvailableMapGoals( TEAM.ALLIES, true, "SWITCH_butono" ); SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_butak" ); // Disable the Gun as you can not plant after its built SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_constructible_control" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_constructible_control" ); Util.MapDebugPrint( "constructible_control_Built" ); }, Allied_CP_Planted = function( trigger ) { if ( TestMap ) { return; } Map.Allied_CP_Dyno += 1; Util.MapDebugPrint( "Allied_CP_Planted" ); }, constructible_control_Planted = function( trigger ) { if ( TestMap ) { return; } Map.constructible_control_Dyno += 1; Util.MapDebugPrint( "constructible_control_Planted" ); }, controlul_portilor_Planted = function( trigger ) { if ( TestMap ) { return; } Map.controlul_portilor_Dyno += 1; Util.MapDebugPrint( "controlul_portilor_Planted" ); }, Allied_CP_Defused = function( trigger ) { if ( TestMap ) { return; } Map.Allied_CP_Dyno -= 1; Util.MapDebugPrint( "Allied_CP_Defused" ); }, constructible_control_Defused = function( trigger ) { if ( TestMap ) { return; } Map.constructible_control_Dyno -= 1; Util.MapDebugPrint( "constructible_control_Defused" ); }, controlul_portilor_Defused = function( trigger ) { if ( TestMap ) { return; } Map.controlul_portilor_Dyno -= 1; Util.MapDebugPrint( "controlul_portilor_Defused" ); }, Allied_CP_Destroyed = function( trigger ) { if ( TestMap ) { return; } Map.Allied_CP_Dyno = 0; Util.MapDebugPrint( "Command Post destroyed^1!!!" ); }, constructible_control_Destroyed = function( trigger ) { if ( TestMap ) { return; } Map.constructible_control_Dyno = 0; Util.MapDebugPrint( "constructible_control_Destroyed" ); }, controlul_portilor_Destroyed = function( trigger ) { if ( TestMap ) { return; } Map.controlul_portilor_Dyno = 0; //Enable CP , Door_Controls & FLAG (Objective) SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Allied_CP" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Door_Controls" ); SetAvailableMapGoals( TEAM.ALLIES, true, "FLAG_.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "FLAG_.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_apa"); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_apdyno"); Util.MapDebugPrint( "Door control is destroyed^1!!!" ); }, allied_gold_Taken = function( trigger ) { if ( TestMap ) { return; } //make sure bots press the Switch on Door_Controls - should be covered on door_up & door_down if ( Map.door == 1 ) //door is open { SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_a1" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_a2" ); } else if ( Map.door == 0 ) //door is closed { SetAvailableMapGoals( TEAM.ALLIES, true, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_a1" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_a2" ); } Util.MapDebugPrint( "Allies stolen the First Gold^1!!" ); }, allied_goldtwo_Taken = function( trigger ) { if ( TestMap ) { return; } //make sure bots press the Switch on Door_Controls - should be covered on door_up & door_down if ( Map.door == 1 ) //door is open { SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_a1" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_a2" ); } else if ( Map.door == 0 ) //door is closed { SetAvailableMapGoals( TEAM.ALLIES, true, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_a1" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_a2" ); } Util.MapDebugPrint( "Allied captured the Second Gold^1!!" ); }, allied_gold_Returned = function( trigger ) { if ( TestMap ) { return; } Util.MapDebugPrint( "Axis have retrieved the gold" ); }, allied_goldtwo_Returned = function( trigger ) { if ( TestMap ) { return; } Util.MapDebugPrint( "Axis returned the gold^1!!" ); }, allied_gold_Secured = function( trigger ) { if ( TestMap ) { return; } Util.MapDebugPrint( "Allied secured the First Gold^1!!" ); }, allied_goldtwo_Secured = function( trigger ) { if ( TestMap ) { return; } Util.MapDebugPrint( "Allied captured the Second Gold^1!!" ); }, no_control = function( trigger ) { if ( TestMap ) { return; } Map.no_control = 1; //once the gun for the tank is has fired once you can no longer destroy the gun control SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_constructible_control.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_esc1" ); Util.MapDebugPrint( "no_control" ); }, no_tank = function( trigger ) { if ( TestMap ) { return; } //once the tank has fired all Objectives SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_constructible_control" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_butono" ); SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_butak" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_controlul_portilor" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_esc1" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_apdyno"); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_apar"); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_107"); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_108"); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_109"); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_374"); SetAvailableMapGoals( TEAM.ALLIES, false, "ATTACK_719"); SetAvailableMapGoals( TEAM.AXIS, false, "SNIPE_.*"); SetAvailableMapGoals( TEAM.ALLIES, false, "SNIPE_.*"); Util.MapDebugPrint( "no_tank" ); }, door_up = function( trigger ) { if ( TestMap ) { return; } Map.door = 1; //once the tank has fired all Objectives SetAvailableMapGoals( TEAM.ALLIES, false, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.AXIS, true, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_a1" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_a2" ); Util.MapDebugPrint( "door_up" ); }, door_down = function( trigger ) { if ( TestMap ) { return; } Map.door = 0; //once the tank has fired all Objectives SetAvailableMapGoals( TEAM.ALLIES, true, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.AXIS, false, "SWITCH_apasa" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_a1" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_a2" ); Util.MapDebugPrint( "door_down" ); }, }; global OnMapLoad = function() { if ( TestMapOn ) { Util.AutoTestMap(); } // Register callback functions OnTrigger( "Command Post constructed/Spawn changed^1!!!", Map.Allied_CP_Built ); OnTrigger( "Gate Controls have been constructed.", Map.Door_Controls_Built ); OnTrigger( "^5The tank has been repaired", Map.Tank_Built ); OnTrigger( "The tank has been damaged^1!!!", Map.Tank_Damaged ); OnTrigger( "Gun control constructed^1!!!", Map.constructible_control_Built ); OnTrigger( "Planted at the Allied_CP.", Map.Allied_CP_Planted ); OnTrigger( "Planted at the constructible_control.", Map.constructible_control_Planted ); OnTrigger( "Planted at the controlul_portilor.", Map.controlul_portilor_Planted ); OnTrigger( "Defused at the Allied_CP.", Map.Allied_CP_Defused ); OnTrigger( "Defused at the constructible_control.", Map.constructible_control_Defused ); OnTrigger( "Defused at the controlul_portilor.", Map.controlul_portilor_Defused ); OnTrigger( "Command Post destroyed^1!!!", Map.Allied_CP_Destroyed ); OnTrigger( "The Allied gun control has been destroyed^1!!", Map.constructible_control_Destroyed ); OnTrigger( "Door control is destroyed^1!!!", Map.controlul_portilor_Destroyed ); OnTrigger( "Allies stolen the First Gold^1!!", Map.allied_gold_Taken ); OnTrigger( "Allies stolen the Second Gold^1!!", Map.allied_goldtwo_Taken ); OnTrigger( "Axis have retrieved the gold", Map.allied_gold_Returned ); OnTrigger( "Axis returned the gold^1!!", Map.allied_goldtwo_Returned ); OnTrigger( "Allied secured the First Gold^1!!", Map.allied_gold_Secured ); OnTrigger( "Allied captured the Second Gold^1!!", Map.allied_goldtwo_Secured ); OnTrigger( "Get The Tank^1!!!!", Map.no_control ); //WARNING use fixed Game script OnTrigger( "Third entrance destroyed^1!!!", Map.no_tank ); OnTrigger( "The Loading Doors are Opening!", Map.door_up ); OnTrigger( "The Loading Doors are Closing!", Map.door_down ); Util.DisableGoal( ".*", true ); // all but routes Util.DisableGoal( "PLANT_Door_Controls.*", true ); //Not used //~SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_.*" ); //~SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "RIDE_heli" ); SetAvailableMapGoals( TEAM.ALLIES, true, "SWITCH_bh" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_constructible_control" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_constructible_control" ); //Defend SetAvailableMapGoals( TEAM.AXIS, true, "SNIPE_.*"); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_107"); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_109"); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_374"); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_apar"); //Attack SetAvailableMapGoals( TEAM.ALLIES, true, "SNIPE_.*"); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_107"); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_108"); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_109"); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_374"); SetAvailableMapGoals( TEAM.ALLIES, true, "ATTACK_719"); // Max users per goal Util.SetMaxUsers( 1, "DEFEND_.*" ); Util.SetMaxUsers( 1, "ATTACK_.*" ); Util.SetMaxUsers( 1, "SNIPE_.*" ); Util.SetMaxUsers( 1, "MOUNTMG42_.*" ); // Camp times SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=15, MaxCampTime=90} ); SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=10, MaxCampTime=60} ); // Dyno and Build old way Util.AddUseWp("PLANT_constructible_control", "plcon"); Util.AddUseWp("BUILD_constructible_control", "plcon"); Util.AddUseWp("BUILD_Door_Controls", "doorcon"); //Util.SetGoalOffset Dyno and Build new way Util.SetGoalOffset( 50, 0, -70, "PLANT_constructible_control" ); Util.SetGoalOffset( 80, 0, -50, "BUILD_constructible_control" ); Util.SetGoalOffset( -50, 0, -50, "BUILD_Door_Controls" ); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." + "WARNING use fixed Game script"); }; global OnBotJoin = function( bot ) { // Uncomment for shootable breakables bot.TargetBreakableDist = 90.0; // Only set MaxViewDistance on maps with limited sight (e.g. fog) bot.MaxViewDistance = 2400; }; global InitializeRoutes = function() { MapRoutes = { BUILD_fabuton = { }, PLANT_dooru = { }, BUILD_Tank = { }, BUILD_Door_Controls = { }, PLANT_Door_Controls = { }, FLAG_allied_gold = { }, FLAG_allied_goldtwo = { }, PLANT_controlul_portilor = { }, BUILD_Allied_CP = { }, PLANT_Allied_CP = { }, BUILD_constructible_control = { }, PLANT_constructible_control = { }, }; Util.Routes(MapRoutes); };