//========================================================================================== // // wolken3_final.gm // // Who When What //------------------------------------------------------------------------------------------ // MickyP 18 April 2010 Initial Script // //========================================================================================== // global Map = { Debug = 0, Command_Post_Dyno = 0, Main_Entrance_Dyno = 0, Side_Entrance_Dyno = 0, documents_safe_Dyno = 0, Main_Entry_Destroyed = false, Fuel_Taken = false, Fuel_Secured = false, Docs_Taken = false, Docs_Secured = false, forwardspawn1_flag_Axis_Captured = function( trigger ) { Util.MapDebugPrint( "forwardspawn1_flag_Axis_Captured" ); }, forwardspawn1_flag_Allies_Captured = function( trigger ) { Util.MapDebugPrint( "forwardspawn1_flag_Allies_Captured" ); }, Main_Entrance_Planted = function( trigger ) { Map.Main_Entrance_Dyno += 1; Util.MapDebugPrint( "Main_Entrance_Planted" ); }, Main_Entrance_Defused = function( trigger ) { Map.Main_Entrance_Dyno -= 1; Util.MapDebugPrint( "Main_Entrance_Defused" ); }, Main_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, { "BUILD_Command_Post", "PLANT_Command_Post", "DEFEND_fuel.*", "DEFEND_Docs.*", "DEFEND_Obj_def.*", }); SetAvailableMapGoals( TEAM.ALLIES, false, { "DEFEND_Main_def.*", "DEFEND_Side_def.*", "CHECKPOINT_forwardspawn1_flag", "AMMOCAB_north_ammocabinet", "HEALTHCAB_north_healthcabinet", "DEFUSE_Main_Entrance.*", }); SetAvailableMapGoals( TEAM.AXIS, false, { "ATTACK_Flag.*", "CHECKPOINT_forwardspawn1_flag", }); sleep(2.1); SetAvailableMapGoals( TEAM.AXIS, true, { "ATTACK_planefuel", "ATTACK_Docs.*", "FLAG_fuel_can", "PLANT_documents_safe", "AMMOCAB_north_ammocabinet", "HEALTHCAB_north_healthcabinet", }); Map.Main_Entrance_Dyno = 0; Map.Main_Entry_Destroyed = true; Util.MapDebugPrint( "Main_Destroyed" ); }, Side_Entrance_Planted = function( trigger ) { Map.Side_Entrance_Dyno += 1; Util.MapDebugPrint( "Side_Entrance_Planted" ); }, Side_Entrance_Defused = function( trigger ) { Map.Side_Entrance_Dyno -= 1; Util.MapDebugPrint( "Side_Entrance_Defused" ); }, Side_Entrance_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, { "BUILD_Command_Post", "PLANT_Command_Post", }); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_Side_Entrance.*" ); sleep(2.1); SetAvailableMapGoals( TEAM.AXIS, true, { "BUILD_Command_Post", "PLANT_Command_Post", }); Util.EnableGoal( "ROUTE_CP_Spawn", true ); Map.Side_Entrance_Dyno = 0; Util.MapDebugPrint( "Side_Entrance_Destroyed" ); }, Allied_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Built" ); }, Axis_Command_Post_Built = function( trigger ) { Util.RandomSpawn(TEAM.AXIS, 2); Util.MapDebugPrint( "Axis_Command_Post_Built" ); }, Command_Post_Planted = function( trigger ) { Map.Command_Post_Dyno += 1; Util.MapDebugPrint( "Command_Post_Planted" ); }, Command_Post_Defused = function( trigger ) { Map.Command_Post_Dyno -= 1; Util.MapDebugPrint( "Command_Post_Defused" ); }, Allied_Command_Post_Destroyed = function( trigger ) { Map.Command_Post_Dyno = 0; Util.MapDebugPrint( "Allied_Command_Post_Destroyed" ); }, Axis_Command_Post_Destroyed = function( trigger ) { Map.Command_Post_Dyno = 0; Util.MapDebugPrint( "Axis_Command_Post_Destroyed" ); }, documents_safe_Planted = function( trigger ) { if ( Map.Docs_Secured == true ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_documents_safe.*" ); } Map.documents_safe_Dyno += 1; Util.MapDebugPrint( "documents_safe_Planted" ); }, documents_safe_Defused = function( trigger ) { Map.documents_safe_Dyno -= 1; Util.MapDebugPrint( "documents_safe_Defused" ); }, documents_safe_Destroyed = function( trigger ) { if ( Map.Docs_Secured == true ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_documents_safe" ); SetAvailableMapGoals( TEAM.AXIS, false, "FLAG_documents" ); } else if ( Map.Docs_Secured == false ) { SetAvailableMapGoals( TEAM.AXIS, true, "FLAG_documents" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_documents_safe" ); } SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_documents_safe.*" ); Map.documents_safe_Dyno = 0; Util.MapDebugPrint( "documents_safe_Destroyed" ); }, documents_safe_Built = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "FLAG_documents" ); Util.MapDebugPrint( "documents_safe_Built" ); }, documents_Taken = function( trigger ) { if ( Map.Fuel_Taken == true || Map.Fuel_Secured == true ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Obj_def.*" ); } SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Docs.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Docs.*" ); Map.Docs_Taken = true; Util.MapDebugPrint( "documents_Taken" ); }, documents_Returned = function( trigger ) { if ( Map.Main_Entry_Destroyed == false ) { if ( Map.Fuel_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active } else if ( Map.Fuel_Taken == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); } } else if ( Map.Main_Entry_Destroyed == true ) { if ( Map.Fuel_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Docs.*" ); } else if ( Map.Fuel_Taken == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, { "DEFEND_Obj_def.*", "DEFEND_Docs.*", }); } } Map.Docs_Taken = false; Util.MapDebugPrint( "documents_Returned" ); }, documents_Secured = function( trigger ) { if ( Map.Main_Entry_Destroyed == false ) { if ( Map.Fuel_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active Util.MapDebugPrint( "documents_Secured1" ); } else if ( Map.Fuel_Taken == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); Util.MapDebugPrint( "documents_Secured2" ); } } else if ( Map.Main_Entry_Destroyed == true ) { if ( Map.Fuel_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active Util.MapDebugPrint( "documents_Secured3" ); } else { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Obj_def.*" ); Util.MapDebugPrint( "documents_Secured4" ); } } SetAvailableMapGoals( TEAM.AXIS, false, { "PLANT_documents_safe", "FLAG_documents", }); SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_documents_safe.*" ); Map.Docs_Taken = false; Map.Docs_Secured = true; Util.MapDebugPrint( "documents_Secured" ); }, fuel_can_Taken = function( trigger ) { if ( Map.Docs_Taken == true || Map.Docs_Secured == true ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Obj_def.*" ); } SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_fuel.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_planefuel" ); Map.Fuel_Taken = true; Util.MapDebugPrint( "fuel_can_Taken" ); }, fuel_can_Returned = function( trigger ) { if ( Map.Main_Entry_Destroyed == false ) { if ( Map.Docs_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active } else { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); } } else if ( Map.Main_Entry_Destroyed == true ) { if ( Map.Docs_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_fuel.*" ); SetAvailableMapGoals( TEAM.AXIS, true, { "ATTACK_planefuel", "FLAG_fuel_can", }); } else { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, { "DEFEND_Obj_def.*", "DEFEND_fuel.*", }); SetAvailableMapGoals( TEAM.AXIS, true, { "ATTACK_planefuel", "FLAG_fuel_can", }); } } Map.Fuel_Taken = false; Util.MapDebugPrint( "fuel_can_Returned" ); }, fuel_can_Secured = function( trigger ) { else if ( Map.Main_Entry_Destroyed == false ) { if ( Map.Docs_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active Util.MapDebugPrint( "fuel_can_Secured1" ); } else if ( Map.Docs_Taken == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); Util.MapDebugPrint( "fuel_can_Secured2" ); } } else if ( Map.Main_Entry_Destroyed == true ) { if ( Map.Docs_Taken == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Plane.*" ); // Keep Active Util.MapDebugPrint( "fuel_can_Secured3" ); } else if ( Map.Docs_Taken == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Plane.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Obj_def.*" ); Util.MapDebugPrint( "fuel_can_Secured4" ); } } SetAvailableMapGoals( TEAM.AXIS, false, "FLAG_fuel_can" ); Map.Fuel_Taken = false; Map.Fuel_Secured = true; Util.MapDebugPrint( "fuel_can_Secured" ); }, }; global OnMapLoad = function() { // Register callback functions OnTrigger( "Axis have captured the Forward Spawn!", Map.forwardspawn1_flag_Axis_Captured ); OnTrigger( "Allies have reclaimed the Forward Spawn!", Map.forwardspawn1_flag_Allies_Captured ); OnTrigger( "Planted at the Main Entrance.", Map.Main_Entrance_Planted ); OnTrigger( "Defused at the Main Entrance!", Map.Main_Entrance_Defused ); OnTrigger( "Allies have destroyed the Main Entrance!", Map.Main_Destroyed ); //~ Error in map script it should be Axis not Allies OnTrigger( "Axis have destroyed the Main Entrance!", Map.Main_Destroyed ); //~ Correction to above if script is corrected OnTrigger( "Planted at the Side Entrance.", Map.Side_Entrance_Planted ); OnTrigger( "Defused at the Side Entrance!", Map.Side_Entrance_Defused ); OnTrigger( "Axis have destroyed the Side Entrance!", Map.Side_Entrance_Destroyed ); OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "Allied Command Post constructed. Charge speed increased!", Map.Allied_Command_Post_Built ); OnTrigger( "Planted at the Command Post.", Map.Command_Post_Planted ); OnTrigger( "Defused at the Command Post.", Map.Command_Post_Defused ); OnTrigger( "Allies team has destroyed the Axis Command Post!", Map.Axis_Command_Post_Destroyed ); OnTrigger( "Axis team has destroyed the Allied Command Post!", Map.Allied_Command_Post_Destroyed ); OnTrigger( "Planted at the document's safe.", Map.documents_safe_Planted ); OnTrigger( "Defused at the document's safe.", Map.documents_safe_Defused ); OnTrigger( "Axis have destroyed the safe!", Map.documents_safe_Destroyed ); OnTrigger( "Allies have rebuilt the safe!", Map.documents_safe_Built ); OnTrigger( "The Axis have stolen the documents!", Map.documents_Taken ); OnTrigger( "The Allies have returned the documents", Map.documents_Returned ); OnTrigger( "The Axis have secured the documents!", Map.documents_Secured ); OnTrigger( "The Axis have stolen the fuel!", Map.fuel_can_Taken ); OnTrigger( "The Allies have returned the fuel!", Map.fuel_can_Returned ); OnTrigger( "The Axis have refueled the plane!", Map.fuel_can_Secured ); Util.DisableGoal( ".*", true ); // all but routes Util.DisableGoal( "ROUTE_CP_Spawn", true ); // Max users per goal Util.SetMaxUsers( 1, "DEFEND_.*" ); Util.SetMaxUsers( 1, "GRENADE_.*" ); Util.SetMaxUsers( 1, "MOUNTMG42_.*" ); // Camp times SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=15, MaxCampTime=90} ); SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=10, MaxCampTime=60} ); SetAvailableMapGoals( TEAM.ALLIES, true, { "DEFEND_Main_def.*", "DEFEND_Side_def.*", "CHECKPOINT_forwardspawn1_flag", }); SetAvailableMapGoals( TEAM.AXIS, true, { "CHECKPOINT_forwardspawn1_flag", "PLANT_Main_Entrance", "PLANT_Side_Entrance", "ATTACK_Flag.*", "CAPPOINT_Plane", }); SetGoalPriority("PLANT_Main_Entrance", 0.84); SetGoalPriority("PLANT_Side_Entrance", 0.83); SetGoalPriority("PLANT_Command_Post", 0.82); SetGoalPriority("BUILD_documents_safe", 0.83); SetGoalPriority("DEFEND_Plane_1", 0.51); // Make sure that at least 2 capoint defence are active SetGoalPriority("DEFEND_Plane_2", 0.51); Util.AddUseWp("PLANT_documents_safe", "safe"); // Fix to rare issue where bots sometimes plant at the ground floor & not the 1st MapRoutes = { CHECKPOINT_forwardspawn1_flag = { ROUTE_AxisSpawn = { ROUTE_AT_Gun = { ROUTE_side = { }, ROUTE_Side_minor = { }, }, ROUTE_Tank = { ROUTE_flag = { }, ROUTE_main = { }, }, ROUTE_Main_long = { ROUTE_flag = { }, ROUTE_main = { }, }, }, ROUTE_Aliies_Spawn_4 = { ROUTE_Slipway = { ROUTE_Main_large = { }, ROUTE_Main_Small = { }, }, ROUTE_Slipway_ladder = { ROUTE_Main_large = { }, ROUTE_Main_Small = { }, }, }, ROUTE_Allies_Spawn_5 = { ROUTE_Slipway = { }, ROUTE_sidedoor = { ROUTE_Main_large = { }, ROUTE_Main_Small = { }, }, }, }, PLANT_documents_safe = { ROUTE_Flag_Spawn = { ROUTE_Main_Small = { ROUTE_Slipway = { ROUTE_House_Entry = { }, ROUTE_Wooden_Ladder = { }, }, ROUTE_Main_Side = { ROUTE_Wooden_Ladder = { }, ROUTE_House_Entry = { ROUTE_Stairs_North = { }, ROUTE_Stairs_South = { }, }, }, }, ROUTE_Main_large = { ROUTE_Slipway = { ROUTE_House_Entry = { ROUTE_Stairs_South = { }, ROUTE_Stairs_North = { }, }, ROUTE_Wooden_Ladder = { }, }, ROUTE_Main_Side = { ROUTE_Wooden_Ladder = { }, ROUTE_House_Entry = { ROUTE_Stairs_North = { }, ROUTE_Stairs_South = { }, }, }, }, ROUTE_CP_Spawn = { ROUTE_House_Entry = { ROUTE_Stairs_South = { }, ROUTE_Stairs_North = { }, }, }, }, ROUTE_CP_Spawn = { ROUTE_House_Entry = { ROUTE_Stairs_North = { }, ROUTE_Stairs_South = { }, }, }, }, FLAG_fuel_can = { ROUTE_Flag_Spawn = { ROUTE_CP_Spawn = { ROUTE_Tower_South = { }, ROUTE_Tower_North = { }, }, ROUTE_Main_large = { ROUTE_Slipway = { ROUTE_Tower_North = { }, ROUTE_Tower_South = { }, }, ROUTE_Main_Side = { ROUTE_Tower_North = { }, ROUTE_Tower_South = { }, }, }, ROUTE_Main_Small = { ROUTE_Slipway = { ROUTE_Tower_North = { }, ROUTE_Tower_South = { }, }, ROUTE_Main_Side = { ROUTE_Tower_North = { }, ROUTE_Tower_South = { }, }, }, }, ROUTE_CP_Spawn = { ROUTE_Tower_North = { }, ROUTE_Tower_South = { }, }, }, CAPPOINT_Plane = { ROUTE_Docs = { ROUTE_Slipway = { ROUTE_Tank = { ROUTE_AT_Gun = { }, }, }, ROUTE_sidedoor = { ROUTE_side = { }, ROUTE_Side_minor = { }, }, }, ROUTE_Fuel = { ROUTE_Tower_North = { ROUTE_sidedoor = { ROUTE_side = { }, ROUTE_Side_minor = { }, }, }, ROUTE_Tower_South = { ROUTE_sidedoor = { ROUTE_side = { }, ROUTE_Side_minor = { }, }, }, }, }, DEFEND_Docs_1 = { ROUTE_Aliies_Spawn_4 = { ROUTE_House_Entry = { ROUTE_Stairs_North = { }, ROUTE_Stairs_South = { }, }, ROUTE_Wooden_Ladder = { }, }, ROUTE_Allies_Spawn_5 = { ROUTE_House_Entry = { ROUTE_Stairs_North = { }, ROUTE_Stairs_South = { }, }, ROUTE_Wooden_Ladder = { }, }, }, PLANT_Main_Entrance = { ROUTE_AxisSpawn = { ROUTE_Main_Small = { }, ROUTE_Main_large = { }, }, ROUTE_CP_Spawn = { ROUTE_Main_large = { }, ROUTE_Main_Small = { }, }, }, }; MapRoutes.ATTACK_Flag_1 = MapRoutes.CHECKPOINT_forwardspawn1_flag; MapRoutes.ATTACK_Flag_2 = MapRoutes.CHECKPOINT_forwardspawn1_flag; MapRoutes.ATTACK_Flag_3 = MapRoutes.CHECKPOINT_forwardspawn1_flag; MapRoutes.ATTACK_Flag_4 = MapRoutes.CHECKPOINT_forwardspawn1_flag; MapRoutes.ATTACK_Flag_5 = MapRoutes.CHECKPOINT_forwardspawn1_flag; MapRoutes.ATTACK_Flag_6 = MapRoutes.CHECKPOINT_forwardspawn1_flag; MapRoutes.ATTACK_Docs_1 = MapRoutes.PLANT_documents_safe; MapRoutes.ATTACK_Docs_2 = MapRoutes.PLANT_documents_safe; MapRoutes.ATTACK_planefuel = MapRoutes.PLANT_documents_safe; Util.Routes(MapRoutes); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; global OnBotJoin = function( bot ) { };