//========================================================================================== // // ctf_maat_final.gm // // Who When What //------------------------------------------------------------------------------------------ // ^1[UJE]^3Captain 21 March 2017 Initial Script // ^1[UJE]^3Captain 26 March 2018 Add Rôles/clean // //========================================================================================== // global Map = { Debug = 0, // please set to zero before distributing your script Roles = { AXIS = { AllBots = true, // each bot is considered for a role INFILTRATOR = // Plant CP { numbots = 1, crucialClass = CLASS.COVERTOPS, }, }, ALLIES = { AllBots = true, // default: every other bot INFILTRATOR = // Plant CP { numbots = 1, crucialClass = CLASS.COVERTOPS, }, }, }, Axis_Command_Post_Built = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_Command_Post" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_Command_Post" ); SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Command_Post" ); Util.MapDebugPrint( "Axis_Command_Post_Built" ); }, Axis_Command_Post_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Command_Post" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Command_Post" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Command_Post" ); Util.MapDebugPrint( "Axis_Command_Post_Destroyed" ); }, Allied_Command_Post_Built = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Command_Post" ); SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_Command_Post" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_Command_Post" ); Util.MapDebugPrint( "Allied_Command_Post_Built" ); }, Allied_Command_Post_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Command_Post" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Command_Post" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Command_Post" ); Util.MapDebugPrint( "Allied_Command_Post_Destroyed" ); }, allied_flag_Taken = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "FLAG_allied_flag" ); SetAvailableMapGoals( TEAM.AXIS, true, "CAPPOINT_Allies_flag" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_cp.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_axis.*" ); Util.MapDebugPrint( "allied_flag_Taken" ); }, axis_flag_Taken = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "FLAG_axis_flag" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAPPOINT_Axis_flag" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_cp.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_allies.*" ); Util.MapDebugPrint( "axis_flag_Taken" ); }, allied_flag_Returned = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "FLAG_allied_flag" ); SetAvailableMapGoals( TEAM.AXIS, false, "CAPPOINT_Allies_flag" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_cp.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_axis.*" ); Util.MapDebugPrint( "allied_flag_Returned" ); }, axis_flag_Returned = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, "FLAG_axis_flag" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_Axis_flag" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_cp.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_allies.*" ); Util.MapDebugPrint( "axis_flag_Returned" ); }, allied_flag_Secured = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "FLAG_allied_flag" ); SetAvailableMapGoals( TEAM.AXIS, false, "CAPPOINT_Allies_flag" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_cp.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_axis.*" ); Util.MapDebugPrint( "allied_flag_Secured" ); }, axis_flag_Secured = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, true, "FLAG_axis_flag" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAPPOINT_Axis_flag" ); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_cp.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_allies.*" ); Util.MapDebugPrint( "axis_flag_Secured" ); }, }; global OnMapLoad = function() { // Register callback functions OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "Axis team has destroyed the Allied Command Post!", Map.Allied_Command_Post_Destroyed ); OnTrigger( "Allied team has destroyed the Axis Command Post!", Map.Axis_Command_Post_Destroyed ); OnTrigger( "Allied Command Post constructed. Charge speed increased!", Map.Allied_Command_Post_Built ); OnTrigger( "^4Blue flag taken!", Map.allied_flag_Taken ); OnTrigger( "^1Red flag taken!", Map.axis_flag_Taken ); OnTrigger( "^4Blue flag returned!", Map.allied_flag_Returned ); OnTrigger( "^1Red flag returned!", Map.axis_flag_Returned ); OnTrigger( "^1The Axis have Captured the Flag!!!", Map.allied_flag_Secured ); OnTrigger( "^4The Allies have Captured the Flag!!!", Map.axis_flag_Secured ); // all but routes Util.DisableGoal( ".*", true ); //activation ALLIES SetAvailableMapGoals( TEAM.ALLIES, true, { "FLAG_axis_flag", "DEFEND_cp.*", "BUILD.*", ".*MG42.*", ".*CAB.*", }); //activation AXIS SetAvailableMapGoals( TEAM.AXIS, true, { "FLAG_allied_flag", "DEFEND_cp.*", "BUILD.*", ".*MG42.*", ".*CAB.*", }); // Max users per goal Util.SetMaxUsers( 1, "DEFEND_.*" ); Util.SetMaxUsers( 1, ".*MG42.*" ); Util.SetMaxUsers( 2, "FLAG.*" ); Util.SetMaxUsers( 1, "CAPPOINT.*" ); Util.SetMaxUsers( 1, "PLANT.*" ); Util.SetMaxUsers( 1, "BUILD.*" ); // Camp times SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=15, MaxCampTime=90} ); SetMapGoalProperties( "DEFEND.*", {MinCampTime=30, MaxCampTime=90} ); // Goal Priority SetGoalPriority( "DEFEND.*", 0.91 ); SetGoalPriority( "FLAG.*", 0.93 ); SetGoalPriority( "CAPPOINT.*", 0.93 ); SetGoalPriority( ".*MG42.*", 0.91 ); SetGoalPriority( "BUILD.*", 0.92 ); SetGoalPriority( "PLANT.*", 0.94 ); // *** ROLES *** SetGoalRole("PLANT_Command_Post", ROLE.INFILTRATOR); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; 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_Command_Post = { }, PLANT_Command_Post = { }, FLAG_axis_flag = { ROUTE_allies_spawn = { ROUTE_split_cp_back = { ROUTE_cata_front = { ROUTE_stair_right = { }, ROUTE_stair_left = { }, }, }, ROUTE_split_cp_right = { ROUTE_cata_front = { ROUTE_stair_left = { }, ROUTE_stair_right = { }, ROUTE_cata_front_left = { }, ROUTE_cata_front_right = { }, }, ROUTE_split_back_right = { ROUTE_back_right = { ROUTE_cata_rear_right = { }, ROUTE_cata_front_right = { }, ROUTE_stair_right = { }, }, ROUTE_back_middle_right = { ROUTE_cata_front_right = { }, ROUTE_cata_rear_right = { }, ROUTE_stair_right = { }, }, }, }, ROUTE_teleport_allies = { ROUTE_back_right = {Weight = 2, ROUTE_cata_rear_right = { }, ROUTE_cata_front_right = { }, ROUTE_stair_right = { }, }, }, }, }, FLAG_allied_flag = { ROUTE_axis_spawn = { ROUTE_split_cp_back = { ROUTE_cata_front = { ROUTE_stair_left = { }, ROUTE_stair_right = { }, ROUTE_cata_front_right = { }, ROUTE_cata_front_left = { }, }, }, ROUTE_split_cp_left = { ROUTE_cata_front = { ROUTE_stair_right = { }, ROUTE_stair_left = { }, ROUTE_cata_front_left = { }, ROUTE_cata_front_right = { }, }, ROUTE_split_back_left = { ROUTE_back_left = { ROUTE_cata_rear_left = { }, ROUTE_cata_front_left = { }, ROUTE_stair_left = { }, }, ROUTE_back_middle_left = { ROUTE_cata_front_left = { }, ROUTE_cata_rear_left = { }, ROUTE_stair_left = { }, }, }, }, ROUTE_teleport_axis = { ROUTE_back_left = {Weight = 2, ROUTE_cata_rear_left = { }, ROUTE_cata_front_left = { }, ROUTE_stair_left = { }, }, }, }, }, CAPPOINT_Allies_flag = { ROUTE_flag = { ROUTE_teleport_front = { ROUTE_split_cp_left = { ROUTE_cap_axis = { }, }, ROUTE_split_cp_back = { ROUTE_cap_axis = { }, }, }, ROUTE_stair_left = { ROUTE_back_left = { ROUTE_split_back_left = { ROUTE_cap_axis = { }, ROUTE_split_cp_left = { ROUTE_cap_axis = { }, }, }, }, ROUTE_back_middle_left = { ROUTE_split_back_left = { ROUTE_split_cp_left = { ROUTE_cap_axis = { }, }, ROUTE_cap_axis = { }, }, }, }, }, }, CAPPOINT_Axis_flag = { ROUTE_flag = { ROUTE_teleport_front = { ROUTE_split_cp_right = { ROUTE_cap_allies = { }, }, ROUTE_split_cp_back = { ROUTE_cap_allies = { }, }, }, ROUTE_stair_right = { ROUTE_back_right = { ROUTE_split_back_right = { ROUTE_cap_allies = { }, ROUTE_split_cp_right = { ROUTE_cap_allies = { }, }, }, }, ROUTE_back_middle_right = { ROUTE_split_back_right = { ROUTE_split_cp_right = { ROUTE_cap_allies = { }, }, ROUTE_cap_allies = { }, }, }, }, }, }, }; Util.Routes(MapRoutes); };