Jump to content

vargatom

Members
  • Posts

    14
  • Joined

  • Last visited

Everything posted by vargatom

  1. Hi! I think the content of this zip file is very useful. I look forward to further expansion. Thanks!
  2. I have tested warbell.gm file but unfortunately the botToKill.ExecCommand("kill"); executed by allies only. Can it be solved that the enginer who covers the planted dinamyte does not have to die?
  3. You're right. The delay is important, we don't have to kill the bots immediately, because there will be a player who doesn't escort the object, but waits for the person carrying it to die and he be the first to pick it up at the FLAG_book goal. Crouch there on the table in the Secret Room. What do you mean delay bots respawn for 1 second? Why is bot.GetReinforceTime() needed? If Map.BookReturned = true; it means object is in original place.
  4. This map is Warbell. And the bots have to die so you don't have to wait until they get back to the object because they spawn there. So it's fastest to kill themselves and start from where The Death of Book is.
  5. Scripts that return some data or value are always very useful. I'm sorry that the content of the old forum was lost because it was a treasure trove, but in my case it is necessary that when a player drop the object, a query from the bot table is run for the current position and name of the bots. The name would be necessary for the test. After that, a comparison between the position of the bots and the original position of the pick-up object (pick-up point) Then the bots with the two smallest values execute the bot.ExecCommand("kill"); command.
  6. "FLAGRETURN.* generated is not where player have dropped object? Is distance? "
  7. It works nicely. Thank you very much palota! When there's a short amount of time between dropping the object and picking it up, maybe it's counting the dead player as well?
  8. Good Evening! I would like to solve in a script that when an Axis player or a bot picks up the objective, compare every bot and players position (who hold an objective) distance to a Vector3 point position. After that, it is also necessary, when he throws the object, which Axis bot is closest to the objective. foreach(bot in BotTable) { if( GetEntTeam(ent) == TEAM.AXIS && GetEntFlags( ent, ENTFLAG.CARRYINGGOAL ) ) { if(DistanceBetween(b.GetGameEntity(player), Vector3(-1824, 2115, 4)) <= 100 ) { Util.MapDebugPrint("<= 100"); } else { Util.MapDebugPrint("> 100"); } } } In this exampleI got following error message: ENTFLAG.CARRYINGGOAL works only in triggerregions?
  9. //========================================================================================== // // ETL Warbell - etl_warbell.gm // // Who When What //------------------------------------------------------------------------------------------ // Original Warbell Waypoints and Script by Red Dwarf // Updated and edited for Omni-Bot 0.71 and 0.8 by :)BOK(: Naerling // cs: formatting and bugfixes // Mateos: ETL port // // Mateos 17th August 2014 Added use points & cover spots for the destructible objectives // Moved routing scripting to its own table, and moved few nodes // Fixed bot stuckage at Monastery with crates // Script clearing // ^4Tardis 23/08/14 - fixes - stuck bots, disable bell plant after ring toll bell, cover spots added //========================================================================================== // /**************************************************** Path mapping and script both updated by Mateos Correspondant WAY file size: - Last update: 18th December 2022 ****************************************************/ /* * TODO: * - Manage Allied spawning (spawn at the CP if possible when the Forward Spawn gets captured by Axis, ...) */ global Map = { Debug = false, Quiet = true, Talk = true, // Set Talk to false if you don't want the bots talking ingame GM_Version = 3, BellTolled = false, Book = false, BookTaken = false, BookDelivered = false, Mechanism = false, GardenGate = true, Generator = true, GuardHouseGate = true, AxisCP = false, AlliesCP = false, Message = false, // ************************************************************************* LowerGeneratorDoor_1_Status = 0, LowerGeneratorDoor_2_Status = 0, // Door is closed initially UpperGeneratorDoor_Status = 0, // Door is closed initially MiddleGeneratorDoor_Status = 0, DepotDoor_Status = 0, Switches = { // Allow Allies to get back to the first part of the map if the Forward Spawn is lost // /bot waypoint_setproperty paththrough UseSwitch_PT:lower_generator_door lower_generator_door_switch = { Enabled = true, Priority = 0, // Always set to 0 when using path through WaypointName = "lower_generator_door_switch", LimitTeam = (1<<TEAM.ALLIES), Timeout = 2700, AimPosition = Vec3(-2277.726, -517.125, 294.006), // Use /bot aim_pos to get aim vector. Replaces the unreliable waypoint facing Wait = function() // Optional. Used to have the bot wait a bit for slow moving doors / elevators { return Map.LowerGeneratorDoor_2_Status == 2; // Return true to finish the path through and go through the door }, }, lower_generator_door_in_switch = { Enabled = true, Priority = 0, // Always set to 0 when using path through WaypointName = "lower_generator_door_in_switch", LimitTeam = (1<<TEAM.ALLIES), Timeout = 2700, AimPosition = Vec3(-2410.875, -414.318, 294.477), // Use /bot aim_pos to get aim vector. Replaces the unreliable waypoint facing Wait = function() // Optional. Used to have the bot wait a bit for slow moving doors / elevators { return Map.LowerGeneratorDoor_2_Status == 2; // Return true to finish the path through and go through the door }, }, // Allow Allies to build the CP and plant landmines beyond the Guard House Gate on map load // /bot waypoint_setproperty paththrough UseSwitch_PT:upper_generator_door upper_generator_door_switch = { Enabled = true, Priority = 0, // Always set to 0 when using path through WaypointName = "upper_generator_door_switch", LimitTeam = (1<<TEAM.ALLIES), Timeout = 2700, AimPosition = Vec3(-2408, -414, 485), // Use /bot aim_pos to get aim vector. Replaces the unreliable waypoint facing Wait = function() // Optional. Used to have the bot wait a bit for slow moving doors / elevators { return Map.UpperGeneratorDoor_Status == 2; // Return true to finish the path through and go through the door }, }, depot_door_in_switch = { Enabled = true, Priority = 0, WaypointName = "depot_door_in_switch", LimitTeam = (1<<TEAM.ALLIES), Timeout = 2700, AimPosition = Vec3(325.125, -1701.526, -89.701), Wait = function() { return Map.DepotDoor_Status == 2; }, }, depot_door_out_switch = { Enabled = true, Priority = 0, WaypointName = "depot_door_out_switch", LimitTeam = (1<<TEAM.ALLIES), Timeout = 2700, AimPosition = Vec3(282.875, -1706.134, -89.632), Wait = function() { return Map.DepotDoor_Status == 2; }, }, }, Upper_Generator_Door_GoTo = function( trigger ) { Map.Switches.upper_generator_door_switch.Enabled = false; vel = ToVector(trigger.Action); if ( vel.z > 0 ) { Map.UpperGeneratorDoor_Status = 1; sleep(2.76); Map.UpperGeneratorDoor_Status = 2; } else if ( vel.z < 0 ) { Map.UpperGeneratorDoor_Status = 1; sleep(2.76); Map.DepotDoor_Status = 0; Map.Switches.upper_generator_door_switch.Enabled = true; } }, Middle_Generator_Door_GoTo = function( trigger ) { vel = ToVector(trigger.Action); if ( vel.z > 0 ) { Map.MiddleGeneratorDoor_Status = 1; sleep(6.96); Map.MidleGeneratorDoorStatus = 2; if(Map.LowerGeneratorDoor_2_Status == 2) { Wp.SetWaypointFlag( "door_2_inside", "closed", true ); Wp.SetWaypointFlag( "door_2_outside", "closed", true ); Wp.SetWaypointFlag( "bottom_door_inside", "closed", false ); Wp.SetWaypointFlag( "bottom_door_outside", "closed", false ); } else { Wp.SetWaypointFlag( "door_2_inside", "closed", false ); Wp.SetWaypointFlag( "door_2_outside", "closed", false ); Wp.SetWaypointFlag( "bottom_door_inside", "closed", true ); Wp.SetWaypointFlag( "bottom_door_outside", "closed", true ); } Map.Switches.lower_generator_door_in_switch.Enabled = false; Map.Switches.lower_generator_door_switch.Enabled = false; Map.Switches.upper_generator_door_switch.Enabled = false; } }, DepotDoor_GoTo = function( trigger ) { Map.Switches.depot_door_in_switch.Enabled = false; Map.Switches.depot_door_out_switch.Enabled = false; vel = ToVector(trigger.Action); if ( vel.z > 0 ) { Map.DepotDoor_Status = 1; sleep(2.76); Map.DepotDoor_Status = 2; } else if ( vel.z < 0 ) { Map.DepotDoor_Status = 1; sleep(2.76); Map.DepotDoor_Status = 0; Map.Switches.depot_door_in_switch.Enabled = true; Map.Switches.depot_door_out_switch.Enabled = true; } }, LowerGeneratorDoor1_goto = function( trigger ) { vel = ToVector(trigger.Action); if ( vel.z > 0 ) { LowerGeneratorDoor_1_Status = 1; sleep(2.2); LowerGeneratorDoor_1_Status = 2; Wp.SetWaypointFlag( "bottom_door_inside", "closed", false ); Wp.SetWaypointFlag( "bottom_door_outside", "closed", false ); Wp.SetWaypointFlag( "door_2_outside", "closed", false ); Wp.SetWaypointFlag( "door_2_inside", "closed", false ); sleep(0.56); } else if ( vel.z < 0 ) { LowerGeneratorDoor_1_Status = 1; sleep(0.56); Wp.SetWaypointFlag( "bottom_door_inside", "closed", true ); Wp.SetWaypointFlag( "bottom_door_outside", "closed", true ); Wp.SetWaypointFlag( "door_2_inside", "closed", true ); Wp.SetWaypointFlag( "door_2_outside", "closed", true ); sleep(2.2); LowerGeneratorDoor_1_Status = 0; } }, LowerGeneratorDoor2_goto = function( trigger ) { Map.Switches.lower_generator_door_in_switch.Enabled = false; Map.Switches.lower_generator_door_switch.Enabled = false; vel = ToVector(trigger.Action); if ( vel.z > 0 ) { Map.LowerGeneratorDoor_2_Status = 1; sleep(1.36); Map.LowerGeneratorDoor_2_Status = 2; } else if ( vel.z < 0 ) { Map.LowerGeneratorDoor_2_Status = 1; sleep(1.36); Map.LowerGeneratorDoor_2_Status = 0; Map.Switches.lower_generator_door_in_switch.Enabled = true; Map.Switches.lower_generator_door_switch.Enabled = true; } }, GhspawnTrigger = { name = "GhspawnTrigger", TriggerOnClass = CLASS.ANYPLAYER, OnEnter = function(ent) { if(GetEntTeam(ent) == TEAM.AXIS) { mg = GetGoal("PLANT_Garden_Gate"); if(mg.IsAvailable(TEAM.AXIS)) { Util.MapDebugPrint("Garden Gate Is True"); } else { Map.GardenGate = false; if(!Map.Message) { DeleteTriggerRegion("GhspawnTrigger"); Util.MapDebugPrint("Garden Gate is false"); Util.MapDebugPrint("Map.GardenGate = "+Map.GardenGate+""); Map.Message = true; } } } }, }, // ======================================================================== // First stage // ======================================================================== forward_spawn_flag_Axis_Captured = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, { "ATTACK_First_stage.*", "PLANTMINE_First_FX.*", "MOBILEMG42_First.*", "SNIPE_First.*", }); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT_forward_spawn_flag" ); SetAvailableMapGoals( TEAM.AXIS, false, "CHECKPOINT_forward_spawn_flag" ); SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_First_stage.*" ); Util.MapDebugPrint( "forward_spawn_flag_Axis_Captured" ); }, forward_spawn_flag_Allies_Captured = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "CHECKPOINT_forward_spawn_flag" ); SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_First_stage.*", "PLANTMINE_First_FX.*", "MOBILEMG42_First.*", "SNIPE_First.*", }); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_First_stage.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT_forward_spawn_flag" ); if ( Map.BookTaken ) { SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_BookAttack", "DEFEND_Abbey_6", }); } Util.MapDebugPrint( "forward_spawn_flag_Allies_Captured" ); }, Generator_Planted = function( trigger ) { Util.MapDebugPrint( "Generator planted" ); }, Generator_Destroyed = function( trigger ) { Map.Generator = false; SetAvailableMapGoals( TEAM.AXIS, true, "GRENADE_bookcase" ); SetAvailableMapGoals(TEAM.ALLIES, false, "DEFUSE_Generator_.*"); SetAvailableMapGoals(TEAM.AXIS, false, { "ATTACK_Generator_.*", "PLANT_Generator", "MOBILEMG42_First_FX_4", }); if(Map.GuardHouseGate) { SetAvailableMapGoals(TEAM.AXIS, true, "ATTACK_GH_Gate_.*"); } else { SetAvailableMapGoals(TEAM.AXIS, true, { "BUILD_Command_Post", "PLANT_Abbey_Main_Gate", "ATTACK_a_Abbey_Main_Gate_.*", }); SetAvailableMapGoals(TEAM.ALLIES, true, { "MOBILEMG42_SEcond_FX_7", "MOBILEMG42_Second_FX_8", }); } Util.MapDebugPrint("Generator Destroyed"); }, Bookcase_Exploded = function() { SetAvailableMapGoals( TEAM.AXIS, true, { "FLAG_book", "CAPPOINT_BOOKOFDEATHPLACE", }); SetAvailableMapGoals(TEAM.AXIS, false, "GRENADE_bookcase"); Util.MapDebugPrint( "Bookcase_Exploded" ); }, book_Taken = function( trigger ) { Map.BookTaken = true; SetGoalPriority("DEFEND_d_.*", 1.0, TEAM.ALLIES); SetGoalPriority("MOBILEMG42_Second_FX_10", 1.1, TEAM.ALLIES); SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_BookAttack", "DEFEND_d_.*", "DEFEND_Abbey_8", "DEFEND_Abbey_1", "MOBILEMG42_Second_FX_10", }); SetAvailableMapGoals( TEAM.AXIS, true, { "ATTACK_BookAttack", "DEFEND_Abbey_6", }); if(ETUtil.CountClass(TEAM.ALLIES, CLASS.SOLDIER) > 1) { SetAvailableMapGoals(TEAM.ALLIES , true, "MOBILEMG42_Second_FX_6"); } Util.MapDebugPrint( "book_Taken" ); sleep(20); SetAvailableMapGoals(TEAM.ALLIES, true, "DEFEND_Book_Place_.*"); }, Book_Dropped = function( trigger ) { SetGoalPriority( "FLAGRETURN_book_dropped", 1.2, TEAM.ALLIES ); Util.MapDebugPrint( "book Dropped" ); }, book_Returned = function( trigger ) { BookTaken = false; SetGoalPriority("DEFEND_d_.*", 0.6, TEAM.ALLIES); SetAvailableMapGoals( TEAM.ALLIES, false, { "ATTACK_BookAttack", "DEFEND_Abbey_6", "MOBILEMG42_Second_FX_6", "MOBILEMG42_Second_FX_10", "DEFEND_Book_Place_.*", }); SetAvailableMapGoals( TEAM.AXIS, false, { "ATTACK_BookAttack", "DEFEND_Abbey_6", }); Util.MapDebugPrint( "book_Returned" ); }, Guard_House_Planted = function( trigger ) { Util.MapDebugPrint( "Planted_at_the_Guard_House_Gate" ); }, Guard_House_Gate_Destroyed = function( trigger ) { Map.GuardHouseGate = false; SetAvailableMapGoals( TEAM.ALLIES, false, { "CHECKPOINT_forward_spawn_flag", "ATTACK_First_stage.*", "PLANTMINE_First_FX.*", "MOBILEMG42_First.*", "SNIPE_First.*", "ATTACK_GH_Gate_.*", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_secondStage.*", "DEFEND_BellMechanism_5", "SNIPE_secondStage.*", "SNIPE_Second_.*", "CALLARTILLERY_Second.*", "ARTILLERY_S_Second_.*", "PLANTMINE_Second_.*", "BUILD_Command_Post", "MOBILEMG42_Second_FX_8", "MOBILEMG42_SEcond_FX_7", }); SetAvailableMapGoals( TEAM.AXIS, false, { "ATTACK_GH_Gate_.*", "ATTACK_First_stage.*", "CHECKPOINT_forward_spawn_flag", "MOBILEMG42_First_FX_1", "PLANT_Guard_House_Gate", }); SetAvailableMapGoals( TEAM.AXIS, true, { // "ATTACK_a_Abbey_Main_Gate_.*", // "BUILD_Command_Post", "PLANT_Generator", // "PLANT_Abbey_Main_Gate", }); if ( Map.Talk && MAP_TALK ) { foreach ( id and bot in BotTable ) { if ( !axisAnnounce && bot.GetTeam() == TEAM.AXIS ) { r = RandRange(0,10); if( r < 2 ) { axisAnnounce = true; bot.ExecCommand("vsay_team FTFollowMe"); } else if( r > 8 ) { axisAnnounce = true; bot.SayVoice(VOICE.REINFORCE_OFF); } } if ( !alliesAnnounce && bot.GetTeam() == TEAM.ALLIES ) { r = RandRange(0,10); if( r < 2 ) { alliesAnnounce = true; bot.SayVoice(VOICE.DEFEND_OBJECTIVE); } else if( r > 8 ) { alliesAnnounce = true; bot.ExecCommand("vsay_team FTFallBack"); } } } } if(Map.Generator) { SetAvailableMapGoals(TEAM.AXIS, true, "ATTACK_Generator_.*"); SetAvailableMapGoals(TEAM.AXIS, true, "MOBILEMG42_First_FX_4"); } else { SetAvailableMapGoals(TEAM.AXIS, true, { "ATTACK_a_Abbey_Main_Gate_.*", "PLANT_Abbey_Main_Gate", "PLANT_Command_Post", "MOBILEMG42_Second_FX_6", }); SetAvailableMapGoals(TEAM.ALLIES, true, { "MOBILEMG42_SEcond_FX_7", "MOBILEMG42_Second_FX_8", }); } Util.MapDebugPrint( "Guard_House_Gate_Destroyed" ); }, // ======================================================================== // Second stage // ======================================================================== Abbey_Main_Gate_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "ROUTE_abbeygate_destroyed" ); Util.MapDebugPrint( "Abbey_Main_Gate_Destroyed" ); Wp.SetWaypointFlag( "depot_door_in", "allies", false ); Wp.SetWaypointFlag( "depot_door_out", "allies", false ); Wp.SetWaypointFlag( "ddout", "allies", false ); SetAvailableMapGoals( TEAM.ALLIES, false, { "ATTACK_secondStage_9", "ATTACK_secondStage_10", "MOBILEMG42_SEcond_FX_7", "MOBILEMG42_Second_FX_8", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "DEFEND_BellMechanism.*", "MOBILEMG42_Second_FX_11", "DEFEND_Abbey_.*", "DEFEND_d_ab_.*", }); SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_a_Abbey_Main_Gate_.*" ); SetAvailableMapGoals(TEAM.AXIS, false, { "PLANT_Abbey_Main_Gate", "MOBILEMG42_Second_FX_6", }); SetAvailableMapGoals( TEAM.AXIS, true, { "BUILD_Bell_Mechanism", "PLANT_Garden_Gate", "PLANT_Crypt_Gate", "DEFEND_d_ab_.*", "DEFEND_BellMechanism_5", }); if ( Map.Talk && MAP_TALK ) { foreach ( id and bot in BotTable ) { if ( !axisAnnounce && bot.GetTeam() == TEAM.AXIS ) { r = RandRange(0,10); if( r < 2 ) { axisAnnounce = true; bot.ExecCommand("vsay_team FTFollowMe"); } else if( r > 8 ) { axisAnnounce = true; bot.SayVoice(VOICE.REINFORCE_OFF); } } if ( !alliesAnnounce && bot.GetTeam() == TEAM.ALLIES ) { r = RandRange(0,10); if( r < 2 ) { alliesAnnounce = true; bot.SayVoice(VOICE.DEFEND_OBJECTIVE); } else if( r > 8 ) { alliesAnnounce = true; bot.ExecCommand("vsay_team FTFallBack"); } } } } sleep(4.0); Map.DepotDoor_Status = 1; //opened Map.Switches.depot_door_in_switch.Enabled = false; Map.Switches.depot_door_out_switch.Enabled = false; Util.MapDebugPrint( "depot_door_in_switch Disabled" ); Util.MapDebugPrint( "depot_door_out_switch Disabled" ); if(!Map.GardenGate) { DeleteTriggerRegion("flagspawn"); } }, Bell_Mechanism_Built = function( trigger ) { Map.Mechanism = true; SetAvailableMapGoals( TEAM.ALLIES, false, "DEFEND_BellMechanism.*" ); SetAvailableMapGoals(TEAM.AXIS, false, "BUILD_Bell_Mechanism"); SetAvailableMapGoals( TEAM.ALLIES, true, { "PLANT_Bell_Mechanism", "DEFEND_BellMechanism_5", }); if(Server.NumBots < 3 ) { SetAvailableMapGoals( TEAM.AXIS, false, "DEFUSE_Bell_Mechanism_.*" ); } SetAvailableMapGoals( TEAM.ALLIES, !Map.BookDelivered, { "ATTACK_GardenGate", "ATTACK_AbbeyGate", "ATTACK_Cryptgate", }); Map.Manage_Bell_Tolling(); Util.MapDebugPrint( "Bell_Mechanism_Built" ); }, Bell_Mechanism_Planted = function( trigger ) { if(Map.BellTolled) { SetAvailableMapGoals(TEAM.AXIS, false, "DEFUSE_Bell_Mechanism_.*"); } else { SetAvailableMapGoals(TEAM.AXIS, true, "DEFUSE_Bell_Mechanism_.*"); } Util.MapDebugPrint("Planted_at_Mechanism"); }, Bell_Mechanism_Destroyed = function( trigger ) { Map.Mechanism = false; Map.Manage_Bell_Tolling(); SetAvailableMapGoals( TEAM.ALLIES, true, "DEFEND_BellMechanism.*" ); SetAvailableMapGoals(TEAM.ALLIES, false, "PLANT_Bell_Mechanism"); if(Map.BellTolled) { SetAvailableMapGoals(TEAM.AXIS, false, "BUILD_Bell_Mechanism"); SetAvailableMapGoals(TEAM.AXIS, false, "DEFUSE_Bell_Mechanism_.*"); SetAvailableMapGoals(TEAM.ALLIES, false, "DEFEND_BellMechanism_.*"); } Util.MapDebugPrint( "Bell_Mechanism_Destroyed" ); }, First_Sacrifice = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Pentagramm_1" ); Util.MapDebugPrint( "First_Sacrifice" ); }, First_Sacrifice_Performed = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Pentagramm_1" ); Util.MapDebugPrint( "First_Sacrifice_Performed" ); }, Second_Sacrifice = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Pentagramm_2" ); Util.MapDebugPrint( "Second_Sacrifice" ); }, Second_Sacrifice_Performed = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, false, "ATTACK_Pentagramm_2" ); Util.MapDebugPrint( "Second_Sacrifice_Performed" ); }, Third_Sacrifice = function( trigger ) { SetAvailableMapGoals( TEAM.ALLIES, false, "PLANT_Bell_Mechanism" ); SetAvailableMapGoals( TEAM.AXIS, true, "ATTACK_Pentagramm_3" ); Util.MapDebugPrint( "Third_Sacrifice" ); }, Crypt_Gate_Destroyed = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "ROUTE_crypt" ); SetAvailableMapGoals(TEAM.AXIS, false, "PLANT_Crypt_Gate"); SetAvailableMapGoals(TEAM.AXIS, false, "DEFUSE_Crypt_Gate_.*"); Util.MapDebugPrint( "Crypt_Gate_Destroyed" ); if(!Map.GardenGate) { DeleteTriggerRegion("flagspawn"); } }, Garden_Gate_Destroyed = function( trigger ) { Map.GardenGate = false; SetAvailableMapGoals( TEAM.AXIS, true, "ROUTE_gardengate" ); Util.MapDebugPrint( "Garden_Gate_Destroyed" ); }, BOOKOFDEATHPLACE_Captured = function( trigger ) { Map.BookDelivered = true; SetGoalPriority("DEFEND_d_.*", 0.6, TEAM.ALLIES); SetAvailableMapGoals(TEAM.ALLIES, false, "MOBILEMG42_Second_FX_10"); SetAvailableMapGoals(TEAM.ALLIES, false, "DEFEND_Book_Place_.*"); SetAvailableMapGoals(TEAM.AXIS, false, "FLAG_book"); SetAvailableMapGoals(TEAM.AXIS, false, "CAPPOINT_BOOKOFDEATHPLACE"); SetAvailableMapGoals( TEAM.ALLIES, !Map.Mechanism, { "ATTACK_GardenGate", "ATTACK_AbbeyGate", "ATTACK_Cryptgate", }); Map.Manage_Bell_Tolling(); Util.MapDebugPrint( "BOOKOFDEATHPLACE_Captured" ); }, Axis_Win = function( trigger ) { ETUtil.WinningChat( TEAM.AXIS ); ETUtil.LosingChat( TEAM.ALLIES ); Util.MapDebugPrint( "Axis_Win", true ); }, Axis_CP_Build = function( trigger ) { Map.AxisCP = true; SetAvailableMapGoals(TEAM.AXIS, false, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.ALLIES, false, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.ALLIES, true, "PLANT_Command_Post"); Util.MapDebugPrint( "Axis_CP_Build", true ); }, Axis_CP_Destroyed = function( trigger ) { Map.AxisCP = false; SetAvailableMapGoals(TEAM.ALLIES, true, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.AXIS, true, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.ALLIES, false, "PLANT_Command_Post"); Util.MapDebugPrint("Axis_CP_Destroyed", true); }, Allies_CP_Build = function( trigger ) { Map.AlliesCP = true; SetAvailableMapGoals(TEAM.ALLIES, false, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.AXIS, false, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.AXIS, true, "PLANT_Command_Post"); Util.MapDebugPrint("Allies_CP_Build", true); }, Allies_CP_Destroyed = function( trigger ) { Map.AlliesCP = false; SetAvailableMapGoals(TEAM.AXIS, true, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.ALLIES, true, "BUILD_Command_Post"); SetAvailableMapGoals(TEAM.AXIS, false, "PLANT_Command_Post"); Util.MapDebugPrint("Allies_CP_Destroyed", true); }, Bell_Tolled = function( trigger ) { if ( trigger.Action == "axis_complete" ) { Map.BellTolled = true; Map.Manage_Bell_Tolling(); Util.MapDebugPrint( "Bell_Tolled" ); } SetAvailableMapGoals(TEAM.ALLIES, false, "PLANT_Bell_Mechanism"); SetAvailableMapGoals(TEAM.AXIS, false, "DEFUSE_Bell_Mechanism_.*"); SetAvailableMapGoals(TEAM.ALLIES, false, "DEFEND_BellMechanism_.*"); SetAvailableMapGoals(TEAM.ALLIES, false, "DEFEND_d_ab_8"); SetAvailableMapGoals(TEAM.AXIS, false, "DEFEND_BellMechanism_.*"); SetAvailableMapGoals(TEAM.AXIS, true, "DEFEND_Abbey_6"); }, Manage_Bell_Tolling = function() { SetAvailableMapGoals( TEAM.AXIS, !Map.BellTolled && Map.BookDelivered && Map.Mechanism, "SWITCH_BellRope" ); } }; global OnMapLoad = function() { // Triggers OnTrigger( "^1The Axis repaired the Bell Mechanism!", Map.Bell_Mechanism_Built ); OnTrigger( "Planted at the Bell Mechanism.", Map.Bell_Mechanism_Planted ); OnTrigger( "Planted at the Guard House Gate.", Map.Guard_House_Planted ); OnTrigger( "Planted at the Generator.", Map.Generator_Planted ); OnTrigger( "^1The Axis have destroyed the Abbey Main Gate!", Map.Abbey_Main_Gate_Destroyed ); OnTrigger( "^1Allies have destroyed the Bell Mechanism!", Map.Bell_Mechanism_Destroyed ); OnTrigger( "^1Heinrich awaits his first Sacrifice!", Map.First_Sacrifice ); OnTrigger( "^1First Sacrifice performed!", Map.First_Sacrifice_Performed ); OnTrigger( "^1Heinrich awaits his second Sacrifice!", Map.Second_Sacrifice ); OnTrigger( "^1Second Sacrifice performed!", Map.Second_Sacrifice_Performed ); OnTrigger( "^1Heinrich awaits his third Sacrifice!", Map.Third_Sacrifice ); OnTrigger( "^1The Axis have destroyed the Crypt Gate!", Map.Crypt_Gate_Destroyed ); OnTrigger( "^1The Axis have destroyed the Garden Gate!", Map.Garden_Gate_Destroyed ); OnTrigger( "^1The Axis have destroyed the Guardhouse Gate!", Map.Guard_House_Gate_Destroyed ); OnTrigger( "^1The Axis have destroyed the Generator!", Map.Generator_Destroyed ); OnTrigger( "Axis have stolen the Book of Death!", Map.book_Taken ); OnTrigger( "Flag returned book!", Map.book_Returned ); OnTrigger( "^1Axis have delivered the Book of Death!", Map.BOOKOFDEATHPLACE_Captured ); OnTrigger( "^1The Axis have captured the Guardhouse Flag!", Map.forward_spawn_flag_Axis_Captured ); OnTrigger( "allies_capture_forward_spawn_flag", Map.forward_spawn_flag_Allies_Captured ); OnTrigger( "^1Third Sacrifice performed!", Map.Axis_Win ); OnTrigger( "^1Axis Command Post constructed. Charge speed increased!", Map.Axis_CP_Build ); OnTrigger( "^5The Allies have destroyed the Axis Command Post!", Map.Axis_CP_Destroyed ); OnTrigger( "^5Allied Command Post constructed. Charge speed increased!", Map.Allies_CP_Build ); OnTrigger( "^1The Axis have destroyed the Allied Command Post!", Map.Allies_CP_Destroyed ); OnTrigger( "GRENADE_bookcase Exploded.", Map.Bookcase_Exploded); OnTrigger( "bell_rope", Map.Bell_Tolled); OnTrigger( "middle_generator_door_goto", Map.Middle_Generator_Door_GoTo ); OnTrigger( "upper_generator_door_goto", Map.Upper_Generator_Door_GoTo ); OnTrigger( "depot_door_goto", Map.DepotDoor_GoTo ); OnTrigger( "lower_generator_door2_goto", Map.LowerGeneratorDoor2_goto); OnTrigger( "lower_generator_door1_goto", Map.LowerGeneratorDoor1_goto); OnTrigger( "Flag dropped book!", Map.Book_Dropped ); OnTriggerRegion(AABB(-2940.027,-317.677,449.125,-2468.400,-28.116,523.126), Map.GhspawnTrigger); // Disable goals Util.DisableGoal( ".*", true ); // All but routes // Disable some routes SetAvailableMapGoals( TEAM.AXIS, false, { "ROUTE_abbeygate_destroyed", "ROUTE_gardengate", "ROUTE_crypt", }); // Fix as some mod's breaking Util.AddUseWp("PLANT_Generator", "hidden"); // Some goal use points & offsets Util.AddUsePoint("PLANT_Abbey_Main_Gate", {Vec3(585, -2255, -125), Vec3(611.616, -2032.145, -119.809)}); Util.AddUsePoint("PLANT_Garden_Gate", {Vec3(2315, -2885, -135), Vec3(2300.109, -2768.660, -111.453)}); Util.AddUsePoint("PLANT_Generator", Vec3(-2900, -300, 475) ); Util.AddUsePoint("PLANT_Guard_House_Gate", {Vec3(-2550, -430, 25), Vec3(-2737.751, -589.237, 24.125)}); Util.AddUsePoint("PLANT_Crypt_Gate", {Vec3(948.060, -1118.774, -215.875), Vec3(985.765, -1258.244, -215.875)}); Wp.SetWaypointFlag( "depot_door_in", "allies", true ); Wp.SetWaypointFlag( "depot_door_out", "allies", true ); Wp.SetWaypointFlag( "bottom_door_outside", "closed", true ); Wp.SetWaypointFlag( "bottom_door_inside", "closed", true ); Wp.SetWaypointFlag( "door_2_inside", "closed", true ); Wp.SetWaypointFlag( "door_2_outside", "closed", true ); Wp.SetWaypointFlag( "ddout", "allies", true ); Util.SetGoalOffset( -20, 0, 0, "PLANT_Bell_Mechanism" ); // Some goal properties SetMapGoalProperties( "ATTACK_.*", {MinCampTime=15, MaxCampTime=30} ); SetMapGoalProperties( "DEFEND_.*", {MinCampTime=15, MaxCampTime=30} ); SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=60, MaxCampTime=120} ); SetMapGoalProperties( "SNIPE_.*", {MinCampTime=30, MaxCampTime=60} ); Util.SetMaxUsersInProgress( 1, "BUILD_Command_Post" ); Util.SetMaxUsersInProgress( 2, "PLANT.*" ); Util.SetMaxUsersInProgress( 3, "FLAG.*" ); Util.SetMaxUsersInProgress( 1, "DEFEND_.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_a_.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_second.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_Ga.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_F.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_C.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_Book.*" ); Util.SetMaxUsersInProgress( 1, "ATTACK_Bell" ); Util.SetMaxUsers( 8, "SWITCH_BellRope" ); Util.SetMaxUsers( 8, "ATTACK_Pentagramm_.*" ); SetGoalPriority( "PLANT_Command_Post", 0.7, 0, CLASS.ENGINEER ); SetGoalPriority( "BUILD_Command_Post", 0.81 ); //0.75 SetGoalPriority( "BUILD_Bell_Mechanism", 0.8 ); SetGoalPriority( "PLANT_Guard_House_Gate", 0.95 ); SetGoalPriority( "PLANT_Generator", 0.9 ); SetGoalPriority( "GRENADE_bookcase", 0.89, TEAM.AXIS, 0 ); SetGoalPriority( "PLANT_Abbey_Main_Gate", 0.85 ); SetGoalPriority( "PLANT_Garden_Gate", 0.9, TEAM.AXIS, CLASS.COVERTOPS ); SetGoalPriority( "PLANT_Garden_Gate", 0.75, TEAM.AXIS, CLASS.ENGINEER ); SetGoalPriority( "ATTACK_secondStage_4", 0.52 ); SetGoalPriority( "ATTACK_secondStage_6", 0.52 ); SetGoalPriority( "ATTACK_secondStage_9", 0.52 ); SetGoalPriority( "ATTACK_a_Abbey_.*", 0.52 ); SetGoalPriority( "ATTACK_Pentagramm_.*", 0.7 ); SetGoalPriority( "ATTACK_BookAttack", 0.52 ); SetGoalPriority( "SWITCH_BellRope", 0.6 ); SetGoalPriority( "DEFEND_Abbey_6", 0.52 ); SetGoalPriority( "DEFEND_BellMechanism_5", 0.52 ); SetGoalPriority( "DEFEND_Book_Place_.*", 1.3, TEAM.ALLIES, 0 ); SetGoalPriority( "DEFUSE_Bell_Mechanism_.*", 1.10, TEAM.AXIS, CLASS.ENGINEER, true ); SetGoalPriority( "FLAGRETURN_book_dropped", 1.2, TEAM.ALLIES, 0, true ); SetGoalPriority( "DEFUSE_Guard_House_Gate_.*", 1.10, TEAM.ALLIES, CLASS.ENGINEER, true ); SetGoalPriority( "DEFUSE_Generator_.*", 1.15, TEAM.ALLIES, CLASS.ENGINEER, true ); SetGoalPriority( "DEFUSE_Garden_Gate_.*", 1.20, TEAM.ALLIES, CLASS.ENGINEER, true ); SetGoalPriority( "DEFUSE_Crypt_Gate_.*", 1.20, TEAM.ALLIES, CLASS.ENGINEER, true ); SetGoalPriority( "DEFUSE_Abbey_Main_Gate_.*", 1.25, TEAM.ALLIES, CLASS.ENGINEER, true ); SetGoalPriority( "DEFUSE_Command_Post_.*", 0.8, TEAM.AXIS, CLASS.ENGINEER, true ); // Available map goals at start SetAvailableMapGoals( TEAM.AXIS, true, { "ATTACK_GH_Gate_.*", "PLANT_Guard_House_Gate", "PLANT_Generator", "PLANT_Garden_Gate", "MOBILEMG42_First_FX_1", "CHECKPOINT_forward_spawn_flag", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "ATTACK_First_stage.*", "PLANTMINE_First_FX.*", "MOBILEMG42_First_FX_2", "MOBILEMG42_First_FX_3", "MOBILEMG42_First_FX_5", "SNIPE_First.*", "ATTACK_GH_Gate_1", "ATTACK_GH_Gate_2", "ATTACK_GH_Gate_3", }); Util.UpdateSwitchData(); Util.MapDebugPrint( "Omni-bot 0.8x map script for "+ GetMapName() +" v"+ Map.GM_Version +" executed." ); }; global OnBotJoin = function( bot ) { bot.TargetBreakableDist = 100.0; }; global InitializeRoutes = function() { MapRoutes = { PLANT_Guard_House_Gate = { ROUTE_ax_spawn1 = { ROUTE_hill1 = {}, ROUTE_cave1 = {}, ROUTE_road1 = { ROUTE_road2 = {}, }, }, }, PLANT_Garden_Gate = { ROUTE_ax_spawn1 = { ROUTE_road1 = { ROUTE_road2 = { ROUTE_abbeyroad = { ROUTE_garden = {}, }, }, }, ROUTE_cave1 = { ROUTE_cave2 = { ROUTE_abbeygate = { ROUTE_gardengate = {}, }, }, }, }, ROUTE_flagspawn = { ROUTE_tower = { ROUTE_cave2 = { ROUTE_abbeygate = { ROUTE_gardengate = {}, }, }, ROUTE_abbeyroad = { ROUTE_garden = {}, }, }, }, }, CHECKPOINT_forward_spawn_flag = { ROUTE_ax_spawn1 = { ROUTE_hill1 = { ROUTE_beds = {}, ROUTE_beds = { ROUTE_hall = {}, }, }, ROUTE_cave1 = { ROUTE_beds = {}, ROUTE_beds = { ROUTE_hall = {}, }, }, ROUTE_road1 = { ROUTE_road2 = { ROUTE_beds = {}, ROUTE_beds = { ROUTE_hall = {}, }, }, }, }, }, CAPPOINT_BOOKOFDEATHPLACE = { ROUTE_book = { ROUTE_abbeyroad = { ROUTE_abbeygate_destroyed = {} }, ROUTE_garden = { ROUTE_gardengate = {}, ROUTE_gardengate = { ROUTE_abbey = {}, }, }, ROUTE_tower = { ROUTE_cave2 = { ROUTE_crypt = {}, ROUTE_abbeygate = {}, }, }, }, }, }; // Copy some routes MapRoutes.BUILD_Bell_Mechanism = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.ATTACK_BookAttack = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.SWITCH_BellRope = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.ATTACK_Pentagramm_1 = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.ATTACK_Pentagramm_2 = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.ATTACK_Pentagramm_3 = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.DEFEND_Abbey_6 = MapRoutes.CAPPOINT_BOOKOFDEATHPLACE; MapRoutes.PLANT_Generator = MapRoutes.CHECKPOINT_forward_spawn_flag; Util.Routes(MapRoutes); };
  10. Hi EveryOne Again! Has anyone encountered this error? If so, what causes it? How can it be fixed? The trigger works, but it cannot be deleted (DeleteTriggerRegion), because only a 0 is displayed instead of the name.
×
×
  • Create New...