//========================================================================================== // // uje_valley_escort.gm // // Who When What //------------------------------------------------------------------------------------------ // Qiki 03 May 2015 Initial Script // Native12 02.01.2016 Ready to test // Native12 03.01.2016 Fixed bug - Ambusher goals // Native12 04.01.2016 Fixed bug - disable goal DEFUSE_generator_1_.* // Native12 28.01.2016 The script remade for both versions of maps: "Uje_valley_escort" and "Uje_valley_v1" // // Bugs and suggestions: PM on http://omni-bot.invisionzone.com/index.php?/index //========================================================================================== // global Map = { Debug = 0, ShowMovers = false, Start = true, Tank_At_Barrier = false, Tank_At_Barrier2 = false, Tank_Past_Barrier = false, Tank_Past_Barrier2 = false, UJE_tank = false, Minecart = false, Allied_CP = false, Axis_CP = false, barrier = true, barrier2 = false, generator_1 = true, generator_door = true, GeneratorRoomDoorDestroyed = false, generator_2 = true, tower_door = true, Flag_Axis = false, Flag_Allies = true, Main_Entrance = true, barrier = true, MinecartReady = false, minecartBuilt = false, tower_door_dyno = 0, generator_door_dyno = 0, generator_1_dyno = 0, generator_2_dyno = 0, MinecartIstNearGenerator1 = false, Minecart_In_Section_1 = false, Minecart_In_Section_2 = false, Minecart_In_Section_3 = false, Minecart_In_Section_4 = false, Minecart_In_Section_5 = false, Minecart_In_Section_6 = false, Minecart_In_Section_7 = false, Minecart_In_Section_8 = false, Minecart_In_Section_9 = false, AxisNear_GeneratorDoor = 0, Spawn_Flag_permanently_Axis = false, MinecartLeft = false, New_version = false, Roles = { AXIS = { AllBots = true, // each bot is considered for a role ATTACKER = { numbots = 5, crucialClass = CLASS.ENGINEER, }, ATTACKER1 = { numbots = 5, crucialClass = CLASS.ENGINEER, }, ATTACKER2 = { numbots = 5, crucialClass = CLASS.ENGINEER, }, ATTACKER3 = { numbots = 5, crucialClass = CLASS.ENGINEER, }, }, ALLIES = { AllBots = true, // each bot is considered for a role DEFENDER = { numbots = 5, crucialClass = CLASS.ENGINEER, }, DEFENDER1 = { numbots = 5, crucialClass = CLASS.ENGINEER, }, DEFENDER2 = { numbots = 5, crucialClass = CLASS.ENGINEER, }, DEFENDER3 = { numbots = 5, crucialClass = CLASS.ENGINEER, }, }, }, Movers = { "MOVER_tank", "MOVER_minecart", }, Navigation = { // /bot waypoint_setproperty paththrough Navigation_PT:jump jump = { navigate = function( _this ) { _this.Bot.HoldButton( BTN.JUMP, 0.55 ); sleep( 0.55 ); }, }, // /bot waypoint_setproperty paththrough Navigation_PT:wait wait = { navigate = function( _this ) { _this.Bot.HoldButton( BTN.CROUCH, 1 ); _this.Bot.HoldButton( BTN.BACKWARD, 0.9 ); sleep( 1 ); }, }, }, Allied_CP_Built = function( trigger ) { Map.Allied_CP = true; SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Allied_CP" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_Allied_CP" ); Util.MapDebugPrint( "Allied_CP_Built" ); }, Allied_CP_Planted = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_Allied_CP_.*" ); Util.MapDebugPrint( "Allied_CP_Planted" ); }, Allied_CP_Defused = function( trigger ) { Util.MapDebugPrint( "Allied_CP_Defused" ); }, Allied_CP_Destroyed = function( trigger ) { Map.Allied_CP = false; SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Allied_CP" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Allied_CP" ); Util.MapDebugPrint( "Allied_CP_Destroyed" ); }, Axis_CP_Built = function( trigger ) { Map.Axis_CP = true; SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_Axis_CP" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_Axis_CP" ); Util.MapDebugPrint( "Axis_CP_Built" ); }, Axis_CP_Planted = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "DEFUSE_Axis_CP_.*" ); Util.MapDebugPrint( "Axis_CP_Planted" ); }, Axis_CP_Defused = function( trigger ) { Util.MapDebugPrint( "Axis_CP_Defused" ); }, Axis_CP_Destroyed = function( trigger ) { Map.Axis_CP = false; SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Axis_CP" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Axis_CP" ); Util.MapDebugPrint( "Axis_CP_Destroyed" ); }, UJE_tank_Built = function( trigger ) { Map.UJE_tank = true; SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_UJE_tank" ); if ( Map.Main_Entrance ) { if ( Spawn_Flag_permanently_Axis ) { SetAvailableMapGoals( TEAM.AXIS, true, "ESCORT_UJE_Tank" ); } SetAvailableMapGoals( TEAM.AXIS, true, "MOUNT_UJE_Tank" ); } Util.MapDebugPrint( "UJE_tank_Built" ); }, UJE_tank_Destroyed = function( trigger ) { Map.UJE_tank = false; SetAvailableMapGoals( TEAM.AXIS, false, "ESCORT_UJE_Tank" ); SetAvailableMapGoals( TEAM.AXIS, false, "MOUNT_UJE_Tank" ); if ( Map.Main_Entrance ) { SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_UJE_tank" ); } Util.MapDebugPrint( "UJE_tank_Destroyed" ); }, Axis_captured_Flag = function( trigger ) { Map.Flag_Axis = true; Map.Flag_Allies = false; if ( Map.generator_door and Map.AxisNear_GeneratorDoor == 0 and !Map.minecartBuilt ) { Util.SetRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER3 } ); } else { Util.ClearRoleForGoals("CHECKPOINT_spawnflag", ROLE.DEFENDER3 ); Util.SetRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); } SetAvailableMapGoals( TEAM.AXIS, false, "SMOKEBOMB_Axis_Barrier_01" ); SetAvailableMapGoals( TEAM.AXIS, false, "CHECKPOINT_spawnflag" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT_spawnflag" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_01" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_04" ); SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_Axis_SpawnFlag_.*" ); Util.MapDebugPrint( "Axis_captured_Flag" ); }, Allies_captured_Flag = function( trigger ) { Map.Flag_Axis = false; Map.Flag_Allies = true; Util.ClearRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER3 } ); SetAvailableMapGoals( TEAM.AXIS, false, "CAMP_Axis_SpawnFlag_.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT_spawnflag" ); SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT_spawnflag" ); SetAvailableMapGoals( TEAM.AXIS, true, "SMOKEBOMB_Axis_Barrier_01" ); if ( Map.AxisNear_GeneratorDoor == 0 and Map.generator_door and !Map.minecartBuilt ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Roof1_.*" ); } Util.MapDebugPrint( "Allies_captured_Flag" ); }, barrier_Built = function( trigger ) { Map.barrier = true; Wp.SetWaypointFlag( "barrier_1", "closed", false ); Wp.SetWaypointFlag( "barrier_2", "closed", true ); SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_barrier" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_barrier" ); Util.MapDebugPrint( "barrier_Built" ); }, barrier_Planted = function( trigger ) { Util.MapDebugPrint( "barrier_Planted" ); }, barrier_Defused = function( trigger ) { Util.MapDebugPrint( "barrier_Defused" ); }, barrier_Destroyed = function( trigger ) { Map.barrier = false; Wp.SetWaypointFlag( "barrier_1", "closed", true ); Wp.SetWaypointFlag( "barrier_2", "closed", false ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_barrier" ); Util.MapDebugPrint( "barrier_Destroyed" ); }, TankAtBarrier = { Name = "TankAtBarrier", TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Map.Tank_At_Barrier = true; ETUtil.SetExcludeIndexes( "BUILD_UJE_tank", { 1, 2, 3, 4 } ); Util.MapDebugPrint( "Tank_At_Barrier" ); }, OnExit = function(ent) { }, }, TankPastBarrier = { Name = "TankPastBarrier", TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Map.barrier = false; Map.Tank_At_Barrier = false; Map.Tank_Past_Barrier = true; SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_barrier" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_ValleySpawn_15" ); Util.MapDebugPrint( "Tank_Past_Barrier" ); }, OnExit = function(ent) { }, }, SpawnFlag_permanently_Axis = function( trigger ) { Map.Spawn_Flag_permanently_Axis = true; Map.Flag_Axis = true; Map.Flag_Allies = false; Util.ClearRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER3 } ); SetAvailableMapGoals( 0, false, "CHECKPOINT_spawnflag" ); SetAvailableMapGoals( TEAM.ALLIES, false, "MOUNTMG42_Valley_Spawn" ); SetAvailableMapGoals( TEAM.ALLIES, false, "REPAIRMG42_Valley_Spawn" ); SetAvailableMapGoals( TEAM.ALLIES, false, ".*_Allies_ValleySpawn_.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "SMOKEBOMB_Axis_Barrier_01" ); SetAvailableMapGoals( TEAM.AXIS, false, "CAMP_Axis_SpawnFlag_.*" ); if ( !Map.generator_door ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 if ( Map.generator_1 ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Inside_.*" ); //defender3 } } else { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Roof1_.*" ); //defender3 } SetAvailableMapGoals( TEAM.ALLIES, true, "MOUNTMG42_Main_Entrance" ); SetAvailableMapGoals( TEAM.ALLIES, true, "REPAIRMG42_Main_Entrance" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_MainEntranceOut1_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, ".*_Allies_MainEntranceOut2_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CALLARTILLERY_Allies_MainEntranceOut_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "ARTILLERY_S_Allies_MainEntranceOut_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "PLANTMINE_Allies_Inside_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Allied_CP" ); SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Axis_MainEntrance_.*" ); if ( Map.UJE_tank ) { SetAvailableMapGoals( TEAM.AXIS, true, "ESCORT_UJE_Tank" ); } Util.MapDebugPrint( "SpawnFlag_permanently_Axis" ); }, barrier2_Moving = function( trigger ) { vel = ToVector(trigger.Action); if ( vel[ 2 ] > 0 ) { Map.barrier2 = false; SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Barricade_2" ); if ( !Map.Tank_Past_Barrier2 ) { SetAvailableMapGoals( TEAM.ALLIES, true, "BUILD_Barricade_2" ); } Util.MapDebugPrint( "barrier2_destroyed" ); } if ( vel[ 2 ] < -500 ) { Map.barrier2 = true; SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_Barricade_2" ); Util.MapDebugPrint( "barrier2_build" ); } }, barrier2_Planted = function( trigger ) { Util.SetMaxUsers( 1, "DEFUSE_Barricade_2_.*" ); Util.MapDebugPrint( "barrier2_Planted" ); }, barrier2_Defused = function( trigger ) { Util.MapDebugPrint( "barrier2_Defused" ); }, TankAtBarrier2 = { Name = "TankAtBarrier2", TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Map.Tank_At_Barrier2 = true; Util.MapDebugPrint( "Tank_At_Barrier2" ); }, OnExit = function(ent) { }, }, TankPastBarrier2 = { Name = "TankPastBarrier2", TriggerOnEntity = GetGoal("MOVER_tank").GetEntity(), OnEnter = function(ent) { Map.barrier2 = false; Map.Tank_At_Barrier2 = false; Map.Tank_Past_Barrier2 = true; SetAvailableMapGoals( TEAM.ALLIES, false, "BUILD_Barricade_2" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Barricade_2" ); SetAvailableMapGoals( TEAM.AXIS, false, "DEFUSE_Barricade_2_.*" ); Util.MapDebugPrint( "Tank_Past_Barrier2" ); }, OnExit = function(ent) { }, }, Generator_room_door_destroyed = function( trigger ) { Map.GeneratorRoomDoorDestroyed = true; if ( !Map.generator_door ) { SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_minecart" ); Util.DisableGoal("BUILD_minecart"); if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, false, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, false, "RIDE_Minecart" ); } } else { if ( Map.minecartBuilt ) { if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, true, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, true, "RIDE_Minecart" ); } } } Util.MapDebugPrint( "Generator_room_door_destroyed" ); }, generator_door_Planted = function( trigger ) { Map.generator_door_dyno += 1; if ( Map.tower_door_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_door_.*", { ROLE.DEFENDER2, ROLE.DEFENDER3 } ); Util.SetRoleForGoals("DEFUSE_tower_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); } else { Util.SetRoleForGoals("DEFUSE_generator_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_door_Planted" ); }, generator_door_Defused = function( trigger ) { Map.generator_door_dyno -= 1; if ( Map.generator_door_dyno == 0 and Map.tower_door_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_tower_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_door_Defused" ); }, generator_door_Destroyed = function( trigger ) { if ( Map.generator_door_dyno > 0 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_generator_door_.*" ); } Map.generator_door = false; Map.generator_door_dyno = 0; if ( Map.tower_door_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_tower_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } foreach ( id and bot in BotTable ) { if( bot.HasRole(ROLE.AMBUSHER) ) { bot.ClearRoles(ROLE.AMBUSHER); } } DeleteTriggerRegion("AxisNearGeneratorDoor"); Map.AxisNear_GeneratorDoor = 0; Util.SetRoleForGoals("ATTACK_Axis_MainEntrance_.*", { ROLE.ATTACKER2, ROLE.ATTACKER3 } ); Wp.SetWaypointFlag( "Generator_Door_1", "allies", false ); Wp.SetWaypointFlag( "Generator_Door_1", "door", false ); Wp.SetWaypointFlag( "Generator_Door_2", "allies", false ); Wp.SetWaypointFlag( "Generator_Door_2", "door", false ); Wp.SetWaypointFlag( "GD_1", "closed", false ); DynamicPathsUpdated(); if ( Map.Flag_Axis and !Map.Spawn_Flag_permanently_Axis ) { SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT_spawnflag" ); Util.ClearRoleForGoals("CHECKPOINT_spawnflag", ROLE.DEFENDER3 ); Util.SetRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT_spawnflag" ); } if ( Map.GeneratorRoomDoorDestroyed ) { SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_minecart" ); Util.DisableGoal("BUILD_minecart"); if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, false, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, false, "RIDE_Minecart" ); } } else { if ( Map.minecartBuilt ) { if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, true, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, true, "RIDE_Minecart" ); } } } SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_generator_door" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_Axis_GeneratorDoor_1" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Roof1_.*" ); //defender3 SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Inside_27" ); if ( Map.generator_1 ) { Util.ClearRoleForGoals("DEFEND_Allies_Generator1Hall_.*", ROLE.DEFENDER3 ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_1" ); SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Axis_Generator1_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 SetAvailableMapGoals( TEAM.ALLIES, true, ".*_Allies_Generator1Inside_.*" ); //defender2, defender3 SetAvailableMapGoals( TEAM.ALLIES, true, "MOBILEMG42_Allies_G2Destr_01" ); } else { SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Axis_Ambusher_.*" ); } if ( !Map.generator_2 ) { Util.SetRoleForGoals("PLANT_generator_1", { ROLE.ATTACKER, ROLE.ATTACKER1, ROLE.ATTACKER2, ROLE.ATTACKER3 } ); Util.SetRoleForGoals("ATTACK_Axis_Generator1_.*", { ROLE.ATTACKER, ROLE.ATTACKER1, ROLE.ATTACKER2, ROLE.ATTACKER3 } ); } SetGoalPriority( "MOBILEMG42_Allies_G2Destr_01", 0.98, TEAM.ALLIES, CLASS.SOLDIER ); SetAvailableMapGoals( TEAM.ALLIES, true, "MOBILEMG42_Allies_G2Destr_01" ); if ( !Map.Main_Entrance ) { SetGoalPriority( "MOBILEMG42_Allies_Inside_03", 0.98, TEAM.ALLIES, CLASS.SOLDIER ); } SetAvailableMapGoals( 0, true, "AMMOCAB_.*" ); SetAvailableMapGoals( 0, true, "HEALTHCAB_.*" ); if ( Map.tower_door ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_tower_door" ); } else { if ( Map.generator_2 ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_2" ); } } Util.MapDebugPrint( "generator_door_Destroyed" ); }, generator_1_Planted = function( trigger ) { Map.generator_1_dyno += 1; SetGoalPriority( "DEFUSE_generator_1_.*", 1.1, TEAM.ALLIES, CLASS.ENGINEER ); if ( Map.generator_2_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_1_.*", { ROLE.DEFENDER2, ROLE.DEFENDER3 } ); Util.SetRoleForGoals("DEFUSE_generator_2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); } else { Util.SetRoleForGoals("DEFUSE_generator_1_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_1_Planted" ); }, generator_1_Defused = function( trigger ) { Map.generator_1_dyno -= 1; if ( Map.generator_1_dyno == 0 and Map.generator_2_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_1_Defused" ); }, generator_1_Destroyed = function( trigger ) { if ( Map.generator_1_dyno > 0 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_generator_1_.*" ); } Map.generator_1_dyno = 0; Map.generator_1 = false; if ( Map.generator_2_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } SetAvailableMapGoals( TEAM.ALLIES, false, ".*_Allies_Generator1Inside_.*" ); //defender2, defender3 SetAvailableMapGoals( TEAM.ALLIES, false, "MOBILEMG42_Allies_G2Destr_01" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CALLARTILLERY_Allies_Inside_07" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CALLARTILLERY_Allies_Inside_09" ); SetAvailableMapGoals( TEAM.ALLIES, false, "ARTILLERY_S_Allies_Inside_08" ); if ( !Map.Main_Entrance ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 } SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_generator_1" ); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Axis_Generator1_.*" ); if ( !Map.generator_door ) { SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Axis_Ambusher_.*" ); } if ( Map.generator_2 ) { Util.ClearRoleForGoals("DEFEND_Allies_Generator1Hall_.*", ROLE.DEFENDER2 ); Util.ClearRoleForGoals("DEFEND_Allies_Generator1Inside_.*", ROLE.DEFENDER3 ); Util.SetRoleForGoals("DEFEND_Allies_Generator2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } if ( !Map.GeneratorRoomDoorDestroyed ) { if ( Map.minecartBuilt ) { if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, true, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, true, "RIDE_Minecart" ); } } } Util.MapDebugPrint( "generator_1_Destroyed" ); }, tower_door_Planted = function( trigger ) { Map.tower_door_dyno += 1; if ( Map.generator_2 ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator2_01" ); } if ( Map.generator_door_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_door_.*", { ROLE.DEFENDER2, ROLE.DEFENDER3 } ); Util.SetRoleForGoals("DEFUSE_tower_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); } else { Util.SetRoleForGoals("DEFUSE_tower_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "tower_door_Planted" ); }, tower_door_Defused = function( trigger ) { Map.tower_door_dyno -= 1; if ( Map.tower_door and Map.tower_door_dyno == 0 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator2_01" ); } if ( Map.tower_door_dyno == 0 and Map.generator_door_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "tower_door_Defused" ); }, tower_door_Destroyed = function( trigger ) { if ( Map.tower_door_dyno > 0 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_tower_door_.*" ); } Map.tower_door_dyno = 0; Map.tower_door = false; if ( Map.generator_door_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_door_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_tower_door" ); if ( Map.generator_2 ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_2" ); SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Axis_Generator2_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator2_.*" ); } Util.MapDebugPrint( "tower_door_Destroyed" ); }, generator_2_Planted = function( trigger ) { Map.generator_2_dyno += 1; SetGoalPriority( "DEFUSE_generator_2_.*", 1.1, TEAM.ALLIES, CLASS.ENGINEER ); if ( Map.generator_1_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_1_.*", { ROLE.DEFENDER2, ROLE.DEFENDER3 } ); Util.SetRoleForGoals("DEFUSE_generator_2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); } else { Util.SetRoleForGoals("DEFUSE_generator_2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_2_Planted" ); }, generator_2_Defused = function( trigger ) { Map.generator_2_dyno -= 1; if ( Map.generator_2_dyno == 0 and Map.generator_1_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_1_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_2_Defused" ); }, generator_2_Destroyed = function( trigger ) { if ( Map.generator_2_dyno > 0 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFUSE_generator_2_.*" ); } Map.generator_2_dyno = 0; Map.generator_2 = false; if ( Map.generator_1_dyno > 0 ) { Util.SetRoleForGoals("DEFUSE_generator_1_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator2_.*" ); SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_generator_2" ); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Axis_Generator2_.*" ); if ( Map.generator_1 ) { Util.ClearRoleForGoals("DEFEND_Allies_Generator2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); Util.SetRoleForGoals("DEFEND_Allies_Generator1Hall_.*", { ROLE.DEFENDER1, ROLE.DEFENDER2 } ); Util.SetRoleForGoals("DEFEND_Allies_Generator1Inside_.*", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } Util.MapDebugPrint( "generator_2_Destroyed" ); }, Main_Entrance_Destroyed = function( trigger ) { Map.Main_Entrance = false; Wp.SetWaypointFlag( "Main_Entrance_1", "allies", false ); Wp.SetWaypointFlag( "Main_Entrance_2", "allies", false ); Wp.SetWaypointFlag( "Main_Entrance_3", "allies", false ); Wp.SetWaypointFlag( "Main_Entrance_4", "allies", false ); foreach ( id and bot in BotTable ) { Util.IgnoreTargetGoal( bot, "MOVER_tank", 9999 ); } WeaponTable.SetWeaponTeamAvailability( TEAM.ALLIES, CLASS.SOLDIER, WEAPON.MOBILE_MG42, true ); SetAvailableMapGoals( TEAM.ALLIES, false, ".*_Allies_MainEntranceOut.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Axis_CP" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Roof1_.*" ); //defender3 SetAvailableMapGoals( TEAM.AXIS, false, "ESCORT_UJE_Tank" ); SetAvailableMapGoals( TEAM.AXIS, false, "MOUNT_UJE_Tank" ); SetAvailableMapGoals( TEAM.AXIS, false, "BUILD_UJE_tank" ); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Axis_MainEntrance_.*" ); SetAvailableMapGoals( 0, true, "AMMOCAB_.*" ); SetAvailableMapGoals( 0, true, "HEALTHCAB_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, ".*_Allies_Inside_.*" ); if ( !Map.generator_1 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "CALLARTILLERY_Allies_Inside_07" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CALLARTILLERY_Allies_Inside_09" ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); } SetAvailableMapGoals( TEAM.AXIS, true, ".*_Axis_Inside_.*" ); if ( Map.generator_door ) { Util.SetRoleForGoals("DEFEND_Allies_Generator1Hall_.*", { ROLE.DEFENDER2, ROLE.DEFENDER3 } ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_Axis_GeneratorDoor_1" ); if ( Map.minecartBuilt ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_door" ); } } else { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Inside_27" ); SetGoalPriority( "MOBILEMG42_Allies_Inside_03", 0.98, TEAM.ALLIES, CLASS.SOLDIER ); } if ( Map.tower_door ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_tower_door" ); } else { if ( Map.generator_2 ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_2" ); } else { Util.SetRoleForGoals("PLANT_generator_1", { ROLE.ATTACKER, ROLE.ATTACKER1, ROLE.ATTACKER2, ROLE.ATTACKER3 } ); Util.SetRoleForGoals("ATTACK_Axis_Generator1_.*", { ROLE.ATTACKER, ROLE.ATTACKER1, ROLE.ATTACKER2, ROLE.ATTACKER3 } ); } } Util.MapDebugPrint( "Main_Entrance_Destroyed" ); }, minecart_Built = function( trigger ) { Map.MinecartIstNearGenerator1 = false; Map.MinecartReady = false; Map.minecartBuilt = false; Wp.SetWaypointFlag( "START_WP", "closed", false ); DynamicPathsUpdated(); Util.EnableGoal( "ROUTE_Minecart_way_1" ); Util.EnableGoal( "ROUTE_Minecart_way_2" ); Util.EnableGoal( "ROUTE_Minecart_way_3" ); sleep(0.35); Map.minecartBuilt = true; if ( Map.generator_1 ) { foreach ( id and bot in BotTable ) { if ( bot.HasRole(ROLE.DEFENDER2) or bot.HasRole(ROLE.DEFENDER3) ) { bot.ChangeSpawnPoint(1); //Base } } } if ( !Map.GeneratorRoomDoorDestroyed ) { if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, true, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, true, "RIDE_Minecart" ); } } if ( Map.Flag_Axis and !Map.Spawn_Flag_permanently_Axis ) { SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT_spawnflag" ); Util.ClearRoleForGoals("CHECKPOINT_spawnflag", ROLE.DEFENDER3 ); Util.SetRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT_spawnflag" ); } if ( Map.generator_door ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_door" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 if ( Map.Main_Entrance ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Roof1_.*" ); //defender3 } } else { if ( Map.generator_1 ) { SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Inside_.*" ); //defender3 SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 } } Util.MapDebugPrint( "minecart_Built" ); while( Map.minecartBuilt ) { yield(); } if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, false, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, false, "RIDE_Minecart" ); } sleep(0.1); if ( Map.generator_door and Map.AxisNear_GeneratorDoor == 0 ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Roof1_.*" ); //defender3 SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_generator_door" ); if ( !Map.Flag_Axis ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 } else { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_01" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_04" ); } } Util.MapDebugPrint( "End of minecart_Built" ); }, AxisNearGeneratorDoor = { Name = "AxisNearGeneratorDoor", TriggerOnClass = CLASS.ANYPLAYER, OnEnter = function(ent) { if( GetEntTeam(ent) == TEAM.AXIS ) { Map.AxisNear_GeneratorDoor += 1; SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_generator_door" ); bot = Util.IsBot(ent); if(bot) { bot.SetRoles(ROLE.AMBUSHER); } SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Axis_Ambusher_.*" ); Util.MapDebugPrint( "Axis are near generator1" ); } }, OnExit = function(ent) { if( GetEntTeam(ent) == TEAM.AXIS ) { Map.AxisNear_GeneratorDoor -= 1; bot = Util.IsBot(ent); if(bot) { bot.ClearRoles(ROLE.AMBUSHER); } if ( Map.generator_door and Map.AxisNear_GeneratorDoor == 0 and !Map.minecartBuilt ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Roof1_.*" ); //defender3 if ( !Map.Flag_Axis ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); //defender2 } else { Util.SetRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER3 } ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_01" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_04" ); } SetAvailableMapGoals( TEAM.AXIS, false, "PLANT_generator_door" ); if ( Map.AxisNear_GeneratorDoor == 0 ) { SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Axis_Ambusher_.*" ); Util.MapDebugPrint( "generator1 room is safe" ); } } } } }, MinecartNearGenerator1 = { Name = "MinecartNearGenerator1", TriggerOnEntity = GetGoal("MOVER_minecart").GetEntity(), OnEnter = function(ent) { if ( !Map.New_version ) { SetAvailableMapGoals( TEAM.AXIS, false, "ESCORT_Minecart" ); } else { SetAvailableMapGoals( TEAM.AXIS, false, "RIDE_Minecart" ); } Util.MapDebugPrint( "MinecartNearGenerator1" ); sleep(0.1); Map.MinecartIstNearGenerator1 = true; Map.MinecartReady = false; Map.minecartBuilt = false; Util.DisableGoal( "ROUTE_Minecart_way_1" ); Util.DisableGoal( "ROUTE_Minecart_way_2" ); Util.DisableGoal( "ROUTE_Minecart_way_3" ); }, OnExit = function(ent) { }, }, Minecart_Thread = function() { start = Vector3(-3447.345, -717.437, 28.125); end = Vector3(-3393.805, -644.580, 28.125); Util.MapDebugPrint("Minecart thread started", true); while ( 1 ) { tr = TraceLine( start, end, null, TRACE.FLOODFILLENT, 0, false ); if( tr.fraction < 1 ) { if ( Map.Minecart ) { Map.Minecart = false; //DrawDebugLine(start, end, COLOR.RED, 20); Wp.SetWaypointFlag( "Minecart_1", "closed", true ); Wp.SetWaypointFlag( "Minecart_2", "closed", true ); Wp.SetWaypointFlag( "Minecart_3", "closed", true ); Wp.SetWaypointFlag( "Minecart_3", "closed", true ); Wp.SetWaypointFlag( "START_WP", "closed", false ); DynamicPathsUpdated(); if ( !Map.Start ) { Map.MinecartLeft = false; Util.MapDebugPrint( "Minecart is in the starting position." ); } } } else { if ( !Map.Minecart ) { Map.Minecart = true; //DrawDebugLine(start, end, COLOR.YELLOW, 20); Wp.SetWaypointFlag( "Minecart_1", "closed", false ); Wp.SetWaypointFlag( "Minecart_2", "closed", false ); Wp.SetWaypointFlag( "Minecart_3", "closed", false ); Wp.SetWaypointFlag( "START_WP", "closed", true ); DynamicPathsUpdated(); if ( !Map.Start ) { Util.MapDebugPrint( "Minecart left starting position." ); Map.MinecartReady = true; Map.MinecartLeft = true; Map.Count(); } } } yield(); } }, Count = function() { Util.MapDebugPrint( "Start count" ); x = 0; while ( x < 16.2 and Map.MinecartReady ) { x = x + 0.2; sleep(0.2); Util.MapDebugPrint( "Add + 0.2" ); } sleep(0.1); if ( !Map.MinecartIstNearGenerator1 ) { Map.minecartBuilt = false; Util.MapDebugPrint( "Minecart disappeared." ); sleep(0.1); if ( Map.AxisNear_GeneratorDoor == 0 and Map.generator_door and !Map.minecartBuilt ) { Util.SetRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER3 } ); SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Roof1_.*" ); if ( !Map.Flag_Axis ) { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); Util.ClearRoleForGoals("CHECKPOINT_spawnflag", { ROLE.DEFENDER, ROLE.DEFENDER1, ROLE.DEFENDER2, ROLE.DEFENDER3 } ); } else { SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_Allies_Generator1Hall_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_01" ); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_Allies_Generator1Hall_04" ); } } Map.MinecartIstNearGenerator1 = false; } else { Util.MapDebugPrint( "Minecart near generator1." ); } }, Allies_Win = function( trigger ) { ETUtil.WinningChat( TEAM.ALLIES ); sleep(0.5); ETUtil.LosingChat( TEAM.AXIS ); Util.MapDebugPrint( "Allies_Win" ); }, Axis_Win = function( trigger ) { ETUtil.WinningChat( TEAM.AXIS ); sleep(0.5); ETUtil.LosingChat( TEAM.ALLIES ); Util.MapDebugPrint( "Axis_Win" ); }, MapVersion_Thread = function() { start = Vector3(2570.145, 523.090, 24.125); end = Vector3(2749.803, 534.640, 24.125); tr = TraceLine( start, end, null, TRACE.FLOODFILLENT, 0, false ); if( tr.fraction < 1 ) { Map.New_version = true; Util.MapDebugPrint( "Test version of map: This is the latest version of map named: Uje_valley_v1" ); } else { Map.New_version = false; Util.MapDebugPrint( "Test version of map: This is older version of map named: Uje_valley_escort" ); } }, NewWay = function(close) { for( i = 1; i <= 189; i += 1 ) { Wp.SetWaypointFlag( "New_" + i, "closed", close ); } }, OldWay = function(close) { for( i = 1; i <= 109; i += 1 ) { Wp.SetWaypointFlag( "old_" + i, "closed", close ); } }, }; global OnMapLoad = function() { OnTrigger( "Allies CP constructed.", Map.Allied_CP_Built ); OnTrigger( "Planted at the Allied CP.", Map.Allied_CP_Planted ); OnTrigger( "Planted at Allied CP.", Map.Allied_CP_Planted ); //Nitmod OnTrigger( "Defused at the Allied CP.", Map.Allied_CP_Defused ); OnTrigger( "Defused at Allied CP.", Map.Allied_CP_Defused ); //Nitmod OnTrigger( "Allies CP destroyed.", Map.Allied_CP_Destroyed ); OnTrigger( "Axis CP constructed.", Map.Axis_CP_Built ); OnTrigger( "Planted at the Axis CP.", Map.Axis_CP_Planted ); OnTrigger( "Planted at Axis CP.", Map.Axis_CP_Planted ); //Nitmod OnTrigger( "Defused at the Axis CP.", Map.Axis_CP_Defused ); OnTrigger( "Defused at Axis CP.", Map.Axis_CP_Defused ); //Nitmod OnTrigger( "Axis CP destroyed.", Map.Axis_CP_Destroyed ); OnTrigger( "^5The Tank has been repaired", Map.UJE_tank_Built ); OnTrigger( "^5The Tank has been damaged", Map.UJE_tank_Destroyed ); OnTrigger( "^2The barrier has been constructed.", Map.barrier_Built ); OnTrigger( "Planted at the barrier.", Map.barrier_Planted ); OnTrigger( "Planted at barrier.", Map.barrier_Planted ); //Nitmod OnTrigger( "Defused at the barrier.", Map.barrier_Defused ); OnTrigger( "Defused at barrier.", Map.barrier_Defused ); //Nitmod OnTrigger( "^2The barrier has been destroyed.", Map.barrier_Destroyed ); OnTrigger( "Planted at generator 1.", Map.generator_1_Planted ); OnTrigger( "Defused at generator 1.", Map.generator_1_Defused ); OnTrigger( "^2The 1st generator has been destroyed.", Map.generator_1_Destroyed ); OnTrigger( "Planted at The generator door.", Map.generator_door_Planted ); OnTrigger( "Defused at The generator door.", Map.generator_door_Defused ); OnTrigger( "^2The door at the 1st generator has been destroyed.", Map.generator_door_Destroyed ); OnTrigger( "Planted at the tower door.", Map.tower_door_Planted ); OnTrigger( "Planted at tower door.", Map.tower_door_Planted ); //Nitmod OnTrigger( "Defused at the tower door.", Map.tower_door_Defused ); OnTrigger( "Defused at tower door.", Map.tower_door_Defused ); //Nitmod OnTrigger( "^2The door at the 2nd generator has been destroyed.", Map.tower_door_Destroyed ); OnTrigger( "Planted at generator 2.", Map.generator_2_Planted ); OnTrigger( "Defused at generator 2.", Map.generator_2_Defused ); OnTrigger( "^2The 2nd generator has been destroyed.", Map.generator_2_Destroyed ); OnTrigger( "^2The tank has been escorted to the allied base.", Map.Main_Entrance_Destroyed ); OnTrigger( "uje_axis_hq_const_completed", Map.minecart_Built ); OnTrigger( "^2The Axis have gained access to the 1st generator-room.", Map.Generator_room_door_destroyed ); OnTrigger( "^2The Allies are victorious.", Map.Allies_Win ); OnTrigger( "^2The Axis are victorious.", Map.Axis_Win ); OnTrigger( "^2The Axis have captured the flag.", Map.Axis_captured_Flag ); OnTrigger( "^2The Allies have captured the flag.", Map.Allies_captured_Flag ); OnTrigger( "uje_axis_hq_tank_stop", Map.SpawnFlag_permanently_Axis ); OnTrigger( "Planted at Barricade 2.", Map.barrier2_Planted ); OnTrigger( "Defused at Barricade 2.", Map.barrier2_Defused ); OnTrigger( "rocky7_goto", Map.barrier2_Moving ); thread(Map.Minecart_Thread); thread(Map.MapVersion_Thread); TAB = OnTriggerRegion(AABB(-4804.646,-253.049,4.260,-4765.018,-186.821,78.618), Map.TankAtBarrier); TPB = OnTriggerRegion(AABB(-4796.780,-213.926,4.112,-4758.780,-175.926,78.112), Map.TankPastBarrier); TAB2 = OnTriggerRegion(AABB(-1396.876,945.845,5.544,-1340.982,1002.934,79.642), Map.TankAtBarrier2); TPB2 = OnTriggerRegion(AABB(-1342.903,947.861,6.032,-1299.222,990.819,80.032), Map.TankPastBarrier2); MNG = OnTriggerRegion(AABB(311.016,-451.755,12.125,478.151,-277.140,86.133), Map.MinecartNearGenerator1); ANGD = OnTriggerRegion(AABB(309.125,-600.041,12.125,649.875,-277.125,176.240), Map.AxisNearGeneratorDoor); Util.SetGoalPosition(-8047.822, -1540.730, 473.027, "PLANT_Axis_CP"); Util.SetGoalPosition(328.126, -355.415, 35.125, "PLANT_generator_door"); Util.SetGoalPosition(726.875, -14.125, 59.125, "PLANT_generator_1"); Util.SetGoalPosition(1584.682, 997.095, 199.290, "PLANT_tower_door"); Util.AddUseWp( "PLANT_Axis_CP", "Axis_CP_Plant_WP" ); Util.AddUsePoint( "PLANT_barrier", { Vec3(-4833.663, -595.655, 27.449), Vec3(-4604.118, -183.259, 26.938), Vec3(-4376.704, -171.497, 26.998), }); Wp.SetWaypointFlag( "Minecart_1", "closed", false ); Wp.SetWaypointFlag( "Minecart_2", "closed", false ); Wp.SetWaypointFlag( "Minecart_3", "closed", false ); Wp.SetWaypointFlag( "START_WP", "closed", true ); Wp.SetWaypointFlag( "GD_1", "closed", true ); Wp.SetWaypointFlag( "Generator_Door_1", "allies", true ); Wp.SetWaypointFlag( "Generator_Door_1", "door", true ); Wp.SetWaypointFlag( "Generator_Door_2", "allies", true ); Wp.SetWaypointFlag( "Generator_Door_2", "door", true ); Wp.SetWaypointFlag( "Main_Entrance_1", "allies", true ); Wp.SetWaypointFlag( "Main_Entrance_2", "allies", true ); Wp.SetWaypointFlag( "Main_Entrance_3", "allies", true ); Wp.SetWaypointFlag( "Main_Entrance_4", "allies", true ); Wp.SetWaypointFlag( "barrier_1", "closed", false ); Wp.SetWaypointFlag( "barrier_2", "closed", true ); DynamicPathsUpdated(); Wp.SetWaypointFlag( "old_94", "door", false ); Wp.SetWaypointFlag( "old_95", "door", false ); Util.DisableGoal( ".*", true ); Util.DisableGoal( "ROUTE_Minecart_way_1" ); Util.DisableGoal( "ROUTE_Minecart_way_2" ); Util.DisableGoal( "ROUTE_Minecart_way_3" ); ETUtil.SetCabinets(); // Max users per goal Util.SetMaxUsers( 1, "DEFEND_.*" ); Util.SetMaxUsers( 1, "MOUNTMG42_.*" ); Util.SetMaxUsers( 1, "CALLARTILLERY_.*" ); Util.SetMaxUsers( 2, "REPAIRMG42_.*" ); Util.SetMaxUsers( 1, "BUILD_Axis_CP" ); Util.SetMaxUsers( 1, "BUILD_Allied_CP" ); Util.SetMaxUsers( 2, "PLANT_barrier" ); Util.SetMaxUsers( 2, "BUILD_UJE_tank" ); Util.SetMaxUsers( 2, "ATTACK_Axis_MainEntrance_.*" ); Util.SetMaxUsers( 2, "ESCORT_UJE_Tank" ); Util.SetMaxUsers( 1, "ESCORT_Minecart" ); Util.SetMaxUsers( 1, "RIDE_Minecart" ); SetAvailableMapGoals( TEAM.AXIS, true, "AMMOCAB_west_ammocabinet" ); SetAvailableMapGoals( TEAM.AXIS, true, "HEALTHCAB_west_healthcabinet" ); SetAvailableMapGoals( TEAM.AXIS, true, "AMMOCAB_east_ammocabinet_1" ); SetAvailableMapGoals( TEAM.AXIS, true, "HEALTHCAB_east_healthcabinet_1" ); SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_Axis_CP" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_barrier" ); SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_UJE_tank" ); SetAvailableMapGoals( TEAM.AXIS, true, "BUILD_minecart" ); SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT_spawnflag" ); SetAvailableMapGoals( TEAM.AXIS, true, "SMOKEBOMB_Axis_Barrier_01" ); SetAvailableMapGoals( TEAM.ALLIES, true, "AMMOCAB_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "HEALTHCAB_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "MOUNTMG42_Valley_Spawn" ); SetAvailableMapGoals( TEAM.ALLIES, true, "REPAIRMG42_Valley_Spawn" ); SetAvailableMapGoals( TEAM.ALLIES, true, ".*_Allies_ValleySpawn_.*" ); Util.LimitToClass("PLANT_Axis_CP", TEAM.ALLIES, CLASS.COVERTOPS); Util.LimitToClass("PLANT_Allied_CP", TEAM.AXIS, CLASS.COVERTOPS); Util.LimitToClass("RIDE_Minecart", TEAM.AXIS, CLASS.ENGINEER); SetGoalPriority( "CHECKPOINT_spawnflag", 0.71, 0, 0 ); SetGoalPriority( "BUILD_UJE_tank", 0.91, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( "BUILD_Axis_CP", 0.91, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( "PLANT_barrier", 0.9, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( "BUILD_minecart", 0.89, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( "ATTACK_Axis_Generator2_.*", 0.51, TEAM.AXIS, 0 ); SetGoalPriority( "ATTACK_Axis_Generator1_.*", 0.51, TEAM.AXIS, 0 ); SetGoalPriority( "DEFEND_Allies_Generator1Roof1_.*", 0.51, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_Generator1Hall_.*", 0.52, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_Generator1Hall_05", 0.53, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_Generator1Inside_.*", 0.54, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_Generator2_.*", 0.53, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_ValleySpawn_15", 0.51, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_Inside_27", 0.52, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFEND_Allies_Inside_29", 0.52, TEAM.ALLIES, 0 ); SetGoalPriority( "MOBILEMG42_.*", 0.97, TEAM.ALLIES, CLASS.SOLDIER ); SetGoalPriority( "MOBILEMG42_Allies_Generator1Inside_10", 0.99, TEAM.ALLIES, CLASS.SOLDIER ); Util.SetRoleForGoals("PLANT_.*_CP", ROLE.INFILTRATOR ); Util.SetGoalRange ("AMMOCAB_east_ammocabinet", 3000); Util.SetGoalRange ("HEALTHCAB_east_healthcabinet", 3000); Util.SetGoalRange ("HEALTHCAB_west_healthcabinet", 2000); Util.SetGoalRange ("AMMOCAB_west_ammocabinet", 2000); Util.SetRoleForGoals("BUILD_Allied_CP", ROLE.DEFENDER ); Util.SetRoleForGoals("DEFEND_Allies_MainEntranceOut1_.*", ROLE.DEFENDER ); Util.SetRoleForGoals("DEFEND_Allies_MainEntranceOut2_.*", ROLE.DEFENDER1 ); Util.SetRoleForGoals("MOUNTMG42_Main_Entrance", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); Util.SetRoleForGoals("REPAIRMG42_Main_Entrance", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); Util.SetRoleForGoals("CALLARTILLERY_Allies_MainEntranceOut_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); Util.SetRoleForGoals("SNIPE_Allies_MainEntranceOut2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); Util.SetRoleForGoals("DEFEND_Allies_Generator2_.*", { ROLE.DEFENDER, ROLE.DEFENDER1 } ); Util.SetRoleForGoals("DEFEND_Allies_Generator1Hall_.*", ROLE.DEFENDER2 ); Util.SetRoleForGoals("DEFEND_Allies_Generator1Roof1_.*", ROLE.DEFENDER3 ); Util.SetRoleForGoals("DEFEND_Allies_Generator1Inside_.*", { ROLE.DEFENDER2, ROLE.DEFENDER3 } ); Util.SetRoleForGoals("ATTACK_Axis_Ambusher_.*", ROLE.AMBUSHER ); Util.SetRoleForGoals("BUILD_Axis_CP", ROLE.ATTACKER ); Util.SetRoleForGoals("PLANT_generator_door", { ROLE.ATTACKER, ROLE.ATTACKER1 } ); Util.SetRoleForGoals("BUILD_minecart", { ROLE.ATTACKER, ROLE.ATTACKER1 } ); Util.SetRoleForGoals("PLANT_generator_1", { ROLE.ATTACKER, ROLE.ATTACKER1 } ); Util.SetRoleForGoals("PLANT_Axis_GeneratorDoor_1", { ROLE.ATTACKER, ROLE.ATTACKER1 } ); Util.SetRoleForGoals("PLANT_generator_2", { ROLE.ATTACKER2, ROLE.ATTACKER3 } ); Util.SetRoleForGoals("PLANT_tower_door", { ROLE.ATTACKER2, ROLE.ATTACKER3 } ); Util.SetRoleForGoals("ATTACK_Axis_Generator1_.*", { ROLE.ATTACKER, ROLE.ATTACKER1 } ); Util.RemoveGoal( "BUILD_generator_1" ); Util.RemoveGoal( "BUILD_generator_2" ); Util.RemoveGoal( "BUILD_generator_door" ); Util.RemoveGoal( "BUILD_tower_door" ); foreach ( id and bot in BotTable ) { bot.ChangeSpawnPoint(0); } WeaponTable.SetWeaponAvailability ( CLASS.SOLDIER, WEAPON.FLAMETHROWER, false ); WeaponTable.SetWeaponAvailability ( CLASS.SOLDIER, WEAPON.MOBILE_MG42, false ); WeaponTable.SetWeaponAvailability ( CLASS.SOLDIER, WEAPON.MOBILE_BROWNING, false ); RegionTrigger.Create(AABB(-2880.281,-190.100,297.186,-2782.563,-83.342,371.747), "DisableBotPush", "Allies_ValleySpawn_01"); RegionTrigger.Create(AABB(-2880.281,-190.100,297.186,-2782.563,-83.342,371.747), "DisableCombatMovement", "Allies_ValleySpawn_01"); RegionTrigger.Create(AABB(-3101.873,-631.851,316.665,-2998.309,-522.881,418.876), "DisableBotPush", "Allies_ValleySpawn_05"); RegionTrigger.Create(AABB(-3101.873,-631.851,316.665,-2998.309,-522.881,418.876), "DisableCombatMovement", "Allies_ValleySpawn_05"); RegionTrigger.Create(AABB(-4122.950,-1169.684,478.798,-3900.760,-773.063,573.375), "DisableBotPush", "Allies_ValleySpawn_07"); RegionTrigger.Create(AABB(-4122.950,-1169.684,478.798,-3900.760,-773.063,573.375), "DisableCombatMovement", "Allies_ValleySpawn_07"); RegionTrigger.Create(AABB(540.217,838.305,428.125,620.624,923.396,502.125), "DisableBotPush", "Allies_MainEntranceOut1_05"); RegionTrigger.Create(AABB(540.217,838.305,428.125,620.624,923.396,502.125), "DisableCombatMovement", "Allies_MainEntranceOut1_05"); RegionTrigger.Create(AABB(504.701,-13.495,193.125,584.295,36.875,267.125), "DisableBotPush", "Allies_MainEntranceOut2_04"); RegionTrigger.Create(AABB(504.701,-13.495,193.125,584.295,36.875,267.125), "DisableCombatMovement", "Allies_MainEntranceOut2_04"); RegionTrigger.Create(AABB(732.489,-130.629,193.125,808.668,5.447,283.125), "DisableBotPush", "Allies_Inside_27"); RegionTrigger.Create(AABB(732.489,-130.629,193.125,808.668,5.447,283.125), "DisableCombatMovement", "Allies_Inside_27"); RegionTrigger.Create(AABB(724.262,1251.125,228.919,822.354,1322.274,315.125), "DisableBotPush", "Allies_Inside_28"); RegionTrigger.Create(AABB(724.262,1251.125,228.919,822.354,1322.274,315.125), "DisableCombatMovement", "Allies_Inside_28"); RegionTrigger.Create(AABB(269.559,1238.931,463.125,421.328,1337.395,537.125), "DisableBotPush", "Jump_To_Roof"); RegionTrigger.Create(AABB(269.559,1238.931,463.125,421.328,1337.395,537.125), "DisableCombatMovement", "Jump_To_Roof"); RegionTrigger.Create(AABB(-320.108,-440.134,1.299,218.994,-277.125,86.125), "DisableCombatMovement", "Around_Abyss_1"); RegionTrigger.Create(AABB(152.875,-289.081,1.125,190.875,115.435,75.125), "DisableCombatMovement", "Around_Abyss_2"); RegionTrigger.Create(AABB(152.875,57.125,1.125,538.875,451.086,75.125), "DisableCombatMovement", "Around_Abyss_3"); RegionTrigger.Create(AABB(2860.096,49.875,158.863,2999.596,225.159,471.527), "DisableCombatMovement", "Jump_to_stone"); RegionTrigger.Create(AABB(-5839.313,-396.455,42.033,-5601.465,-90.456,359.943), "DisableCombatMovement", "Jump_down"); RegionTrigger.Create(AABB(683.038,1493.986,241.125,814.870,1539.510,315.134), "DisableCombatMovement", "Inside_23"); RegionTrigger.Create(AABB(1727.901,438.262,409.125,1814.875,743.048,483.130), "DisableCombatMovement", "wooden_footbridge"); RegionTrigger.Create(AABB(-3402.569,-553.319,15.737,-2940.587,-295.184,371.099), "DisableBotPush", "Right_Side_MG42_Hill"); RegionTrigger.Create(AABB(635.316,-652.052,163.857,947.343,-446.964,299.189), "DisableCombatMovement", "Jump"); RegionTrigger.Create(AABB(-4753.094,-901.800,249.125,-4607.261,-26.957,336.355), "DisableCombatMovement", "Wooden_Bridge"); RegionTrigger.Create(AABB(309.125,-600.041,12.125,649.875,-277.125,176.240), "DisableCombatMovement", "Near_Generator_Door"); RegionTrigger.Create(AABB(1540.085,729.424,160.023,1684.913,829.663,242.021), "DisableCombatMovement", "Allies_Inside_04"); RegionTrigger.Create(AABB(1540.085,729.424,160.023,1684.913,829.663,242.021), "DisableBotPush", "Allies_Inside_04"); RegionTrigger.Create(AABB(694.311,-429.290,1.125,751.029,-375.352,75.125), "DisableBotPush", "Allies_G2Destr_01"); print( "^3Omni-bot map script ^3by ^1Q^2i^3k^4i ^3and ^1n^2a^4t^8i^3v^5e12^3 ^3for map: ^7" + GetMapName() ); sleep(2); Map.Start = false; if ( Map.New_version ) { Map.NewWay(false); Map.OldWay(true); Wp.SetWaypointFlag( "old_94", "door", true ); Wp.SetWaypointFlag( "old_95", "door", true ); Wp.SetWaypointFlag( "old_94", "closed", false ); Wp.SetWaypointFlag( "old_95", "closed", false ); Util.SetGoalPosition(-8409.534, -1459.451, 40.125, "AMMOCAB_east_ammocabinet_1"); Util.SetGoalPosition(-8313.485, -1497.055, 40.125, "HEALTHCAB_east_healthcabinet_1"); Util.SetGoalPosition(-1262.052, 985.382, 28.676, "PLANT_Barricade_2"); Util.SetGoalPosition(1753.300, 619.069, 409.125, "CALLARTILLERY_Allies_Inside_07"); Util.SetGoalPosition(1526.146, 495.767, 193.125, "DEFEND_Allies_Inside_20"); GetGoal("DEFEND_Allies_Inside_20").AimVectors = { Vec3(-0.176, 0.930, -0.322), Vec3(0.290, -0.932, 0.217) }; Util.SetGoalPosition(1072.670, 1408.125, 185.125, "DEFEND_Allies_Inside_21"); GetGoal("DEFEND_Allies_Inside_21").AimVectors = { Vec3(-0.273, -0.931, -0.241), Vec3(0.687, -0.726, -0.031) }; Util.SetGoalPosition(1697.875, 494.105, 193.184, "DEFEND_Allies_Inside_22"); GetGoal("DEFEND_Allies_Inside_22").AimVectors = { Vec3(-0.708, 0.692, -0.144), Vec3(-0.201, -0.979, 0.021) }; Util.SetGoalPosition(791.263, 1518.894, 241.125, "DEFEND_Allies_Inside_23"); GetGoal("DEFEND_Allies_Inside_23").AimVectors = { Vec3(0.111, -0.974, -0.198), Vec3(0.835, -0.543, -0.094) }; Util.SetGoalPosition(812.125, 3.174, 1.125, "DEFEND_Allies_Inside_24"); GetGoal("DEFEND_Allies_Inside_24").AimVectors = { Vec3(0.235, 0.972, 0.025), Vec3(0.300, -0.953, 0.046) }; Util.SetGoalPosition(979.615, -126.319, 193.125, "DEFEND_Allies_Inside_25"); GetGoal("DEFEND_Allies_Inside_25").AimVectors = { Vec3(-0.083, 0.958, -0.275), Vec3(-0.564, -0.522, -0.640) }; Util.SetGoalPosition(756.125, 849.875, 1.125, "DEFEND_Allies_Inside_26"); GetGoal("DEFEND_Allies_Inside_26").AimVectors = { Vec3(0.148, -0.989, -0.002), Vec3(0.987, -0.140, 0.083) }; Util.SetGoalPosition(1402.571, 1440.675, 185.125, "DEFEND_Allies_Inside_29"); GetGoal("DEFEND_Allies_Inside_29").AimVectors = { Vec3(0.047, -0.998, -0.038), Vec3(-0.991, -0.110, 0.073) }; Util.SetGoalPosition(1279.485, 902.457, 1.125, "DEFEND_Allies_Inside_30"); GetGoal("DEFEND_Allies_Inside_30").AimVectors = { Vec3(-0.908, -0.416, 0.038), Vec3(-0.403, -0.914, 0.042) }; Util.SetGoalPosition(1553.881, 1215.875, 185.125, "DEFEND_Allies_Inside_35"); GetGoal("DEFEND_Allies_Inside_35").AimVectors = { Vec3(-0.443, -0.881, -0.166), Vec3(-0.994, 0.095, 0.059) }; GetGoal("DEFEND_Allies_Generator1Inside_05").Stance = "stand"; Util.SetGoalPosition(812.125, 61.242, 1.125, "ATTACK_Axis_Inside_03"); GetGoal("ATTACK_Axis_Inside_03").AimVectors = { Vec3(0.461, 0.887, 0.002), Vec3(0.243, -0.970, -0.031) }; Util.SetGoalPosition(940.052, -434.372, 1.126, "ATTACK_Axis_Inside_11"); GetGoal("ATTACK_Axis_Inside_11").AimVectors = { Vec3(-0.068, 0.998, -0.002), Vec3(-0.970, 0.244, -0.004) }; Util.SetGoalPosition(2118.264, 1122.875, 1.176, "ATTACK_Axis_Inside_12"); GetGoal("ATTACK_Axis_Inside_12").AimVectors = { Vec3(0.845, -0.529, 0.079), Vec3(0.095, -0.990, 0.102) }; Util.SetGoalPosition(1087.473, 1472.903, 1.125, "ATTACK_Axis_Inside_14"); GetGoal("ATTACK_Axis_Inside_14").AimVectors = { Vec3(-0.138, -0.990, -0.002), Vec3(0.531, -0.739, 0.415) }; Util.SetGoalPosition(3061.011, 740.376, 1.125, "ATTACK_Axis_Inside_15"); GetGoal("ATTACK_Axis_Inside_15").AimVectors = { Vec3(-0.242, 0.969, 0.046), Vec3(-0.954, -0.297, 0.048) }; GetGoal("PLANT_tower_door").CoverSpots[0].position = Vec3(1555.708, 1212.612, 208.127); GetGoal("PLANT_tower_door").CoverSpots[0].AimVectors = { Vec3(-0.336, -0.936, -0.103), Vec3(-0.996, 0.076, 0.056) }; Util.RemoveGoal( "SNIPE_Allies_MainEntranceOut2_10" ); Util.SetRoleForGoals("PLANT_Barricade_2", { ROLE.ATTACKER2, ROLE.ATTACKER3 } ); } else { Map.OldWay(false); Map.NewWay(true); Wp.SetWaypointFlag( "old_94", "door", false ); Wp.SetWaypointFlag( "old_95", "door", false ); Wp.SetWaypointFlag( "old_94", "closed", false ); Wp.SetWaypointFlag( "old_95", "closed", false ); Util.SetGoalPosition(3572.000, 2477.000, 276.000, "AMMOCAB_east_ammocabinet_1"); Util.SetGoalPosition(3494.000, 2473.000, 272.000, "HEALTHCAB_east_healthcabinet_1"); Util.SetGoalPosition(1862.703, 213.771, 560.584, "SNIPE_Allies_MainEntranceOut2_10"); Util.SetGoalPosition(1400.624, 442.765, 225.125, "CALLARTILLERY_Allies_Inside_07"); Util.SetGoalPosition(1526.019, 415.983, 225.125, "DEFEND_Allies_Inside_20"); GetGoal("DEFEND_Allies_Inside_20").AimVectors = { Vec3(-0.512, 0.768, -0.385), Vec3(-0.952, -0.306, -0.005) }; Util.SetGoalPosition(1378.759, 351.986, 225.125, "DEFEND_Allies_Inside_21"); GetGoal("DEFEND_Allies_Inside_21").AimVectors = { Vec3(-0.926, 0.342, -0.162), Vec3(0.270, 0.955, -0.120), Vec3(-0.615, -0.756, -0.224) }; Util.SetGoalPosition(1323.237, 115.760, 225.125, "DEFEND_Allies_Inside_22"); GetGoal("DEFEND_Allies_Inside_22").AimVectors = { Vec3(-0.790, 0.582, -0.194), Vec3(-0.711, -0.619, -0.333), Vec3(0.288, 0.955, -0.065) }; Util.SetGoalPosition(1274.204, -92.031, 225.125, "DEFEND_Allies_Inside_23"); GetGoal("DEFEND_Allies_Inside_23").AimVectors = { Vec3(-0.828, -0.415, -0.376), Vec3(0.274, 0.960, -0.049), Vec3(-0.622, 0.757, -0.200) }; Util.SetGoalPosition(1179.744, -278.962, 1.126, "DEFEND_Allies_Inside_24"); GetGoal("DEFEND_Allies_Inside_24").AimVectors = { Vec3(-0.986, -0.160, 0.053), Vec3(-0.140, 0.990, 0.037) }; Util.SetGoalPosition(683.125, -588.875, 1.125, "DEFEND_Allies_Inside_25"); GetGoal("DEFEND_Allies_Inside_25").AimVectors = { Vec3(0.437, 0.898, 0.047) }; Util.SetGoalPosition(940.406, -434.128, 1.125, "DEFEND_Allies_Inside_26"); GetGoal("DEFEND_Allies_Inside_26").AimVectors = { Vec3(-0.976, 0.217, 0.014), Vec3(0.120, 0.993, -0.001) }; Util.SetGoalPosition(1438.361, 1427.749, 185.125, "DEFEND_Allies_Inside_29"); GetGoal("DEFEND_Allies_Inside_29").AimVectors = { Vec3(-0.009, -0.999, -0.040), Vec3(-0.999, -0.005, 0.052) }; Util.SetGoalPosition(1224.538, -92.169, 0.125, "DEFEND_Allies_Inside_30"); GetGoal("DEFEND_Allies_Inside_30").AimVectors = { Vec3(-0.311, 0.950, 0.037), Vec3(-0.973, -0.223, 0.063), Vec3(0.386, -0.919, 0.081) }; Util.SetGoalPosition(1539.374, 1271.185, 185.125, "DEFEND_Allies_Inside_35"); GetGoal("DEFEND_Allies_Inside_35").AimVectors = { Vec3(-0.400, -0.910, -0.107), Vec3(-0.982, 0.182, 0.060) }; GetGoal("DEFEND_Allies_Generator1Inside_05").Stance = "crouch"; Util.SetGoalPosition(1320.496, 507.494, 1.125, "ATTACK_Axis_Inside_03"); GetGoal("ATTACK_Axis_Inside_03").AimVectors = { Vec3(0.980, 0.198, -0.004), Vec3(-0.600, -0.800, -0.004), Vec3(-0.393, 0.919, -0.008) }; Util.SetGoalPosition(2476.375, -15.958, 8.125, "ATTACK_Axis_Inside_11"); GetGoal("ATTACK_Axis_Inside_11").AimVectors = { Vec3(-0.616, 0.787, -0.019), Vec3(0.822, -0.568, -0.046) }; Util.SetGoalPosition(2187.875, 909.875, 1.125, "ATTACK_Axis_Inside_12"); GetGoal("ATTACK_Axis_Inside_12").AimVectors = { Vec3(0.514, -0.852, 0.103), Vec3(-0.845, -0.156, 0.512) }; Util.SetGoalPosition(1544.692, 461.693, 1.128, "ATTACK_Axis_Inside_14"); GetGoal("ATTACK_Axis_Inside_14").AimVectors = { Vec3(0.907, 0.422, 0.013), Vec3(-0.689, 0.725, -0.010) }; Util.SetGoalPosition(2659.875, 399.875, 1.128, "ATTACK_Axis_Inside_15"); GetGoal("ATTACK_Axis_Inside_15").AimVectors = { Vec3(-0.625, 0.777, 0.080), Vec3(-0.037, -0.890, 0.455) }; GetGoal("PLANT_tower_door").CoverSpots[0].position = Vec3(1506.173, 1419.690, 208.125); GetGoal("PLANT_tower_door").CoverSpots[0].AimVectors = { Vec3(-0.127, -0.991, -0.032) }; } }; global OnBotJoin = function( bot ) { if ( !Map.Main_Entrance ) { Util.IgnoreTargetGoal( bot, "MOVER_tank", 9999 ); } }; global InitializeRoutes = function() { MapRoutes = { BUILD_UJE_tank = { }, BUILD_barrier = { }, PLANT_barrier = { }, BUILD_minecart = { }, CHECKPOINT_spawnflag = { ROUTE_AxisBackSpawn = { ROUTE_Ladder = { ROUTE_SideWay = { ROUTE_SideWay_1 = { Weight=3, ROUTE_SideWay_2 = { ROUTE_SideWay_3 = { }, }, }, ROUTE_ToSpawn = { }, }, ROUTE_AroundMG42 = { }, }, ROUTE_Barrier = { ROUTE_Tunnel = { }, }, ROUTE_LeftWay_1 = { ROUTE_LeftWay_2 = { ROUTE_LeftWay_3 = { ROUTE_Tunnel = { }, }, }, }, }, ROUTE_AxisCPSpawn = { ROUTE_Ladder = { ROUTE_AroundMG42 = { }, ROUTE_SideWay = { }, }, ROUTE_Barrier = { ROUTE_Tunnel = { }, }, ROUTE_LeftWay_1 = { ROUTE_LeftWay_2 = { ROUTE_LeftWay_3 = { ROUTE_Tunnel = { }, }, }, }, }, }, PLANT_generator_door = { }, PLANT_generator_1 = { ROUTE_MG42_Spawn = { ROUTE_Minecart_way_1 = { ROUTE_Minecart_way_2 = { ROUTE_Minecart_way_3 = { }, }, }, ROUTE_SideWay_1 = { ROUTE_SideWay_2 = { ROUTE_Wooden_Bridge = { }, ROUTE_Around_Tank = { }, }, }, }, }, PLANT_tower_door = { }, PLANT_generator_2 = { }, BUILD_Allied_CP = { }, PLANT_Allied_CP = { }, BUILD_Axis_CP = { }, PLANT_Axis_CP = { }, }; sleep(2); if ( !Map.New_version ) { MapRoutes["DEFEND_Allies_Generator2_.*"] = { ROUTE_Allied_SecondSpawn_1 = { ROUTE_Tunnel_in_Base1 = { ROUTE_Tunnel_in_Base2 = { }, }, ROUTE_Rock = { Weight = 2, ROUTE_Door = { }, }, }, ROUTE_Allied_SecondSpawn_2 = { ROUTE_Tunnel_in_Base1 = { ROUTE_Tunnel_in_Base2 = { }, }, ROUTE_Rock = { Weight = 2, ROUTE_Door = { }, }, }, }; MapRoutes["DEFEND_Allies_Generator1.*"] = { ROUTE_Allied_SecondSpawn_1 = { ROUTE_Tunnel_in_Base1 = { ROUTE_Tunnel_in_Base2 = { }, }, ROUTE_Around_Car = { }, }, ROUTE_Allied_SecondSpawn_2 = { ROUTE_Tunnel_in_Base1 = { ROUTE_Tunnel_in_Base2 = { }, }, ROUTE_Around_Car = { }, }, }; } else { MapRoutes["DEFEND_Allies_Generator2_.*"] = { ROUTE_Allied_SecondSpawn_1 = { ROUTE_Tunnel_in_Base1 = { ROUTE_Tunnel_in_Base2 = { }, }, ROUTE_Rock = { Weight = 2, ROUTE_Door = { }, }, }, ROUTE_Allied_SecondSpawn_2 = { ROUTE_Tunnel_in_Base1 = { ROUTE_Tunnel_in_Base2 = { }, }, ROUTE_Rock = { Weight = 2, ROUTE_Door = { }, }, }, }; MapRoutes["DEFEND_Allies_Generator1.*"] = { ROUTE_Allied_SecondSpawn_1 = { ROUTE_Tunnel_in_Rock_1 = { Weight=2, ROUTE_Tunnel_in_Rock_2 = { ROUTE_Tunnel_in_Rock_3 = { }, }, }, ROUTE_Left_Building_1 = { ROUTE_Left_Building_2 = { ROUTE_Left_Building_3 = { }, }, }, }, ROUTE_Allied_SecondSpawn_2 = { ROUTE_Tunnel_in_Rock_1 = { ROUTE_Tunnel_in_Rock_2 = { ROUTE_Tunnel_in_Rock_3 = { }, }, }, ROUTE_Left_Building_1 = { ROUTE_Left_Building_2 = { ROUTE_Left_Building_3 = { }, }, }, }, }; } Util.Routes(MapRoutes); };