//========================================================================================== // // lapland3.gm // // Who When What //------------------------------------------------------------------------------------------ // ^4Tardis 09 November 2010 Initial Script // //========================================================================================== // Thanks MickyP for Waypoints global Map = { Debug = 0, // please set to zero before distributing your script Allied_Command_Post_Dyno = 0, Axis_Command_Post_Dyno = 0, tank_barrier_one_Dyno = 0, tank_barrier_two_Dyno = 0, tank_barrier_one_Built = false, tank_barrier_two_Built = false, barrieroneTrigger = false, barriertwoTrigger = false, Tank_Built = true, Navigation = { jump = { navigate = function( _this ) { _this.Bot.PressButton( BTN.JUMP ); _this.Bot.HoldButton( BTN.FORWARD, 2 ); _this.Bot.HoldButton( BTN.SPRINT, 2 ); sleep( 2 ); }, }, // /bot waypoint_setproperty paththrough Navigation_PT:jump }, Movers = { "MOVER_tank", }, //Telleport warpTrigger = { TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Wp.SetWaypointFlag("warp","closed", true ); Util.MapDebugPrint( "Tank Entered Warp Zone" ); }, OnExit = function(ent) { Wp.SetWaypointFlag("warp","closed", false ); SetAvailableMapGoals( TEAM.AXIS, true, "MOUNT_axis_tank" ); Util.MapDebugPrint( "Tank Exited Warp Zone" ); }, }, //tank at barrier one barrieroneTrigger = { TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Map.barrieroneTrigger = true; if ( Map.tank_barrier_one_Built == true && Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_one" ); } if ( Map.tank_barrier_one_Built == false && Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_tank_barrier_one" ); } if ( Map.tank_barrier_one_Built == true && Tank_Built == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_one" ); } SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_Barrier1.*" ); Util.MapDebugPrint( "Tank Entered Barrier One" ); }, OnExit = function(ent) { Map.barrieroneTrigger = false; SetAvailableMapGoals( TEAM.ALLIES, false, { "ATTACK_flag.*", "SNIPE_mg", }); SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, "SMOKEBOMB_mg" ); SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_Barrier1.*", "BUILD_tank_barrier_one", "CHECKPOINT_.*", "REPAIRMG42_BunkerMG", "REPAIRMG42_FlagBunkerMG", "MOUNTMG42_BunkerMG", "MOUNTMG42_FlagBunkerMG", }); Util.MapDebugPrint( "Tank Exited Barrier One" ); }, }, //tank at barrier two barriertwoTrigger = { TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Map.barriertwoTrigger = true; if ( Map.tank_barrier_two_Built == true && Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_two" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_tank" ); } if ( Map.tank_barrier_two_Built == false && Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, { "PLANT_tank_barrier_two", "ESCORT_tank", }); } if ( Map.tank_barrier_two_Built == true && Tank_Built == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_two" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_tank" ); } SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_Barrier2.*", "REPAIRMG42_Gate", "MOUNTMG42_Gate", }); Util.MapDebugPrint( "Tank Entered Barrier Two" ); }, OnExit = function(ent) { Map.barriertwoTrigger = false; SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_Barrier2.*", "BUILD_tank_barrier_two", }); SetAvailableMapGoals( TEAM.ALLIES, true, "ESCORT_tank" ); Util.MapDebugPrint( "Tank Exited Barrier Two" ); }, }, Tank_Built = function( trigger ) { Map.Tank_Built = true; Util.MapDebugPrint( "Tank_Built" ); }, Tank_Destroyed = function( trigger ) { Map.Tank_Built = false; SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_tank" ); Util.MapDebugPrint( "Tank_Destroyed" ); }, tank_barrier_one_Built = function( trigger ) { Map.tank_barrier_one_Built = true; if ( Map.tank_barrier_one_Built == true && Map.Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_one" ); } if ( Map.tank_barrier_one_Built == false && Map.Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_tank_barrier_one" ); } if ( Map.tank_barrier_one_Built == true && Map.Tank_Built == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_one" ); } if ( Map.barrieroneTrigger == false ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_tank" ); } Util.MapDebugPrint( "tank_barrier_one_Built" ); }, tank_barrier_one_Planted = function( trigger ) { Map.tank_barrier_one_Dyno += 1; SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); Util.MapDebugPrint( "tank_barrier_one_Planted" ); }, tank_barrier_one_Defused = function( trigger ) { Map.tank_barrier_one_Dyno -= 1; Util.MapDebugPrint( "tank_barrier_one_Defused" ); }, tank_barrier_one_Destroyed = function( trigger ) { Map.tank_barrier_one_Dyno = 0; Map.tank_barrier_one_Built = false; SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_tank_barrier_two" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFEND_assault.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Allied_Command_Post" ); Util.MapDebugPrint( "tank_barrier_one_Destroyed" ); }, tank_barrier_two_Built = function( trigger ) { Map.tank_barrier_two_Built = true; if ( Map.tank_barrier_two_Built == true && Map.Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_two" ); } if ( Map.tank_barrier_two_Built == false && Map.Tank_Built == false ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_tank_barrier_two" ); } if ( Map.tank_barrier_two_Built == true && Map.Tank_Built == true ) { SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_tank_barrier_two" ); } if ( Map.barriertwoTrigger == false ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_tank" ); } Util.MapDebugPrint( "tank_barrier_two_Built" ); }, tank_barrier_two_Planted = function( trigger ) { Map.tank_barrier_two_Dyno += 1; SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Tank" ); Util.MapDebugPrint( "tank_barrier_two_Planted" ); }, tank_barrier_two_Defused = function( trigger ) { Map.tank_barrier_two_Dyno -= 1; Util.MapDebugPrint( "tank_barrier_two_Defused" ); }, tank_barrier_two_Destroyed = function( trigger ) { Map.tank_barrier_two_Dyno = 0; Map.tank_barrier_two_Built = false; Util.MapDebugPrint( "tank_barrier_two_Destroyed" ); }, Allied_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Built" ); }, Allied_Command_Post_Planted = function( trigger ) { Map.Allied_Command_Post_Dyno += 1; Util.MapDebugPrint( "Allied_Command_Post_Planted" ); }, Allied_Command_Post_Defused = function( trigger ) { Map.Allied_Command_Post_Dyno -= 1; Util.MapDebugPrint( "Allied_Command_Post_Defused" ); }, Allied_Command_Post_Destroyed = function( trigger ) { Util.MapDebugPrint( "Allied_Command_Post_Destroyed" ); }, Axis_Command_Post_Built = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Built" ); }, Axis_Command_Post_Planted = function( trigger ) { Map.Axis_Command_Post_Dyno += 1; Util.MapDebugPrint( "Axis_Command_Post_Planted" ); }, Axis_Command_Post_Defused = function( trigger ) { Map.Axis_Command_Post_Dyno -= 1; Util.MapDebugPrint( "Axis_Command_Post_Defused" ); }, Axis_Command_Post_Destroyed = function( trigger ) { Util.MapDebugPrint( "Axis_Command_Post_Destroyed" ); }, axis_gold1_Taken = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_obj.*", "MOBILEMG42_obj", }); SetAvailableMapGoals( TEAM.ALLIES, false, { "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "axis_gold1_Taken" ); }, axis_gold2_Taken = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_obj.*", "MOBILEMG42_obj", }); SetAvailableMapGoals( TEAM.ALLIES, false, { "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "axis_gold2_Taken" ); }, axis_gold3_Taken = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, { "DEFEND_obj.*", "MOBILEMG42_obj", }); SetAvailableMapGoals( TEAM.ALLIES, false, { "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "axis_gold3_Taken" ); }, axis_gold1_Returned = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_obj.*", "MOBILEMG42_obj", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "axis_gold1_Returned" ); }, axis_gold2_Returned = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_obj.*", "MOBILEMG42_obj", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "axis_gold2_Returned" ); }, axis_gold3_Returned = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, { "DEFEND_obj.*", "MOBILEMG42_obj", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "axis_gold3_Returned" ); }, axis_gold1_Secured = function( trigger ) { Util.MapDebugPrint( "axis_gold1_Secured" ); }, axis_gold2_Secured = function( trigger ) { Util.MapDebugPrint( "axis_gold2_Secured" ); }, axis_gold3_Secured = function( trigger ) { //Game Over SetAvailableMapGoals( TEAM.ALLIES, false, ".*" ); SetAvailableMapGoals( TEAM.AXIS, false, ".*" ); ETUtil.WinningChat( TEAM.ALLIES ); ETUtil.LosingChat( TEAM.AXIS ); Util.MapDebugPrint( "axis_gold3_Secured" ); }, barracks_spawn_Axis_Captured = function( trigger ) { Util.MapDebugPrint( "barracks_spawn_Axis_Captured" ); }, barracks_spawn_Allies_Captured = function( trigger ) { Util.MapDebugPrint( "barracks_spawn_Allies_Captured" ); }, axis_base_gate = function( trigger ) { Util.EnableGoal( "FLAG.*" ); Util.EnableGoal( "CAPPOINT_.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "REPAIRMG42_Prez"); SetAvailableMapGoals( TEAM.AXIS, false, { "REPAIRMG42_Gate", "MOUNTMG42_Gate", "MOUNT_axis_tank", }); SetAvailableMapGoals( TEAM.AXIS, true, "DEFEND_Prez.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ESCORT_tank" ); SetAvailableMapGoals( TEAM.ALLIES, true, { "MOUNT_tank", "MOBILEMORTAR_MG.*", "ARTILLERY_S_MG", "CALLARTILLERY_MG", }); Util.MapDebugPrint( "Gate_Destroyed" ); }, }; global OnMapLoad = function() { // Register callback functions OnTrigger( "Axis team have built tank barrier one!", Map.tank_barrier_one_Built ); OnTrigger( "Axis team have built tank barrier two!", Map.tank_barrier_two_Built ); OnTrigger( "Allied Command Post constructed. Charge speed increased!", Map.Allied_Command_Post_Built ); OnTrigger( "The Tank has been repaired!", Map.Tank_Built ); OnTrigger( "The Tank has been damaged!", Map.Tank_Destroyed ); OnTrigger( "Axis Command Post constructed. Charge speed increased!", Map.Axis_Command_Post_Built ); OnTrigger( "Planted at the Allied Command Post.", Map.Allied_Command_Post_Planted ); OnTrigger( "Planted at the Axis Command Post.", Map.Axis_Command_Post_Planted ); OnTrigger( "Planted at the tank barrier one.", Map.tank_barrier_one_Planted ); OnTrigger( "Planted at the tank barrier two.", Map.tank_barrier_two_Planted ); OnTrigger( "Defused at the Allied Command Post.", Map.Allied_Command_Post_Defused ); OnTrigger( "Defused at the Axis Command Post.", Map.Axis_Command_Post_Defused ); OnTrigger( "Defused at the tank barrier one.", Map.tank_barrier_one_Defused ); OnTrigger( "Defused at the tank barrier two.", Map.tank_barrier_two_Defused ); 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( "Allies have destroyed tank barrier one!", Map.tank_barrier_one_Destroyed ); OnTrigger( "Allies have destroyed tank barrier two!", Map.tank_barrier_two_Destroyed ); OnTrigger( "First present has been stolen!", Map.axis_gold1_Taken ); OnTrigger( "Second present has been stolen!", Map.axis_gold2_Taken ); OnTrigger( "Third present has been stolen!", Map.axis_gold3_Taken ); OnTrigger( "First present has been returned!", Map.axis_gold1_Returned ); OnTrigger( "Second present has been returned!", Map.axis_gold2_Returned ); OnTrigger( "Third present has been returned!", Map.axis_gold3_Returned ); OnTrigger( "First present has been secured!", Map.axis_gold1_Secured ); OnTrigger( "Second present has been secured!", Map.axis_gold2_Secured ); OnTrigger( "Third present has been secured!", Map.axis_gold3_Secured ); OnTrigger( "Axis have re-captured the barracks!", Map.barracks_spawn_Axis_Captured ); OnTrigger( "Allies have captured the barracks!", Map.barracks_spawn_Allies_Captured ); OnTrigger( "Allied team has destroyed the axis base gate!", Map.axis_base_gate ); warp1 = OnTriggerRegion(AABB(-2575.770,-839.417,600.544,-2253.711,-107.056,780.649),Map.warpTrigger); barrierone = OnTriggerRegion(AABB(-831.848,2178.386,837.507,-306.440,2527.268,985.495),Map.barrieroneTrigger); barriertwo = OnTriggerRegion(AABB(498.207,280.402,922.125,1188.951,636.945,1079.682),Map.barriertwoTrigger); //Prioritys SetGoalPriority( "BUILD_tank_barrier_one", 0.82, TEAM.AXIS, CLASS.ENGINEER, true ); SetGoalPriority( "BUILD_tank_barrier_two", 0.81, TEAM.AXIS, CLASS.ENGINEER, true ); SetGoalPriority( "MOUNTMG42_.*", 0.0, 0, CLASS.MEDIC, CLASS.ENGINEER ); //Add Use Wp Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneA"); Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneB"); Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneC"); Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneD"); Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneE"); Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneF"); Util.AddUseWp("PLANT_tank_barrier_one", "BarrieroneG"); Util.AddUseWp("PLANT_tank_barrier_two", "BarriertwoA"); Util.AddUseWp("PLANT_tank_barrier_two", "BarriertwoB"); Util.AddUseWp("PLANT_tank_barrier_two", "BarriertwoC"); Util.AddUseWp("PLANT_tank_barrier_two", "BarriertwoD"); Util.AddUseWp("PLANT_tank_barrier_two", "BarriertwoE"); Util.AddUseWp("PLANT_tank_barrier_two", "BarriertwoF"); //Active Goals Util.DisableGoal( ".*", true ); // all but routes Util.EnableGoal( "CHECKPOINT_.*" ); SetAvailableMapGoals( TEAM.AXIS, true, { "REPAIRMG42_BunkerMG", "REPAIRMG42_FlagBunkerMG", "MOUNTMG42_BunkerMG", "MOUNTMG42_FlagBunkerMG", "BUILD_tank_barrier_one", "BUILD_Axis_Command_Post", "DEFEND_assault.*", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "BUILD_tank", "MOUNT_tank", "ATTACK_flag.*", "SNIPE_mg", "SMOKEBOMB_mg", }); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Axis_Command_Post" ); // Max users per goal Util.SetMaxUsers( 1, "DEFEND_.*" ); Util.SetMaxUsers( 1, "GRENADE_.*" ); Util.SetMaxUsers( 1, "MOUNTMG42_.*" ); Util.SetMaxUsers( 3, "CHECKPOINT_.*" ); Util.SetMaxUsers( 2, "PLANT_.*" ); Util.SetMaxUsers( 2, "ESCORT_.*" ); Util.SetMaxUsers( 1, "BUILD_.*" ); // Camp times SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=15, MaxCampTime=90} ); SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=10, MaxCampTime=60} ); SetMapGoalProperties( "ATTACK_.*", {mincamptime=30, maxcamptime=45}); SetMapGoalProperties( "DEFEND_.*", {mincamptime=60, maxcamptime=120}); //Map Routes MapRoutes = { CAPPOINT_Prez = { ROUTE_obj = { ROUTE_obj_1 = { ROUTE_obj_2 = { ROUTE_objsplit = { ROUTE_objNt = { ROUTE_objNt_1 = { ROUTE_objNt_2 = { ROUTE_objNt_3 = { ROUTE_objmain = { ROUTE_objmain_1 = { ROUTE_objmain_2 = { ROUTE_objmain_3 = { ROUTE_objmain_4 = { ROUTE_obj_3 = { ROUTE_obj_4 = { ROUTE_obj_5 = { ROUTE_obj_6 = { ROUTE_obj_7 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_obj_3 = { ROUTE_obj_4 = { ROUTE_obj_5 = { ROUTE_obj_6 = { ROUTE_obj_7 = { }, }, }, }, }, ROUTE_objEa = { ROUTE_objEa_1 = { ROUTE_objEa_2 = { ROUTE_objEa_3 = { ROUTE_objEa_4 = { ROUTE_objEa_5 = { ROUTE_objmain = { ROUTE_objmain_1 = { ROUTE_objmain_2 = { ROUTE_objmain_3 = { ROUTE_objmain_4 = { ROUTE_obj_3 = { ROUTE_obj_4 = { ROUTE_obj_5 = { ROUTE_obj_6 = { ROUTE_obj_7 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, FLAG_axis_gold1 = { ROUTE_AlliesSpawn = { ROUTE_objEa_3 = { ROUTE_objmain_4 = { ROUTE_objmain_3 = { ROUTE_objmain_2 = { ROUTE_objmain_1 = { ROUTE_objmain = { ROUTE_objEa_5 = { ROUTE_objEa_4 = { ROUTE_objEa_3 = { ROUTE_objEa_2 = { ROUTE_objEa_1 = { ROUTE_objEa = { ROUTE_objsplit = { ROUTE_obj_2 = { ROUTE_obj_1 = { ROUTE_obj = { }, }, }, }, }, }, }, }, }, }, ROUTE_objNt_3 = { ROUTE_objNt_2 = { ROUTE_objNt_1 = { ROUTE_objNt = { ROUTE_objsplit = { ROUTE_obj_2 = { ROUTE_obj_1 = { ROUTE_obj = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_Flag = { ROUTE_objmain = { ROUTE_objNt_3 = { ROUTE_objNt_2 = { ROUTE_objNt_1 = { ROUTE_objNt = { ROUTE_objsplit = { ROUTE_obj_2 = { ROUTE_obj_1 = { ROUTE_obj = { }, }, }, }, }, }, }, }, ROUTE_objEa_5 = { ROUTE_objEa_4 = { ROUTE_objEa_3 = { ROUTE_objEa_2 = { ROUTE_objEa_1 = { ROUTE_objEa = { ROUTE_objsplit = { ROUTE_obj_2 = { ROUTE_obj_1 = { ROUTE_obj = { }, }, }, }, }, }, }, }, }, }, }, }, }, }; Util.Routes(MapRoutes); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; global OnBotJoin = function( bot ) { bot.TargetBreakableDist = 90.0; bot.MaxViewDistance = 2000; };