//========================================================================================== // // return2goldrush_b1.gm // // Who When What //------------------------------------------------------------------------------------------ // ^4Tardis 15 May 2011 Initial Script // //========================================================================================== // global Map = { Debug = 0, // please set to zero before distributing your script South_Door_Dyno = 0, Axis_Command_Post_Dyno = 0, Allied_Command_Post_Dyno = 0, South_Door = false, Doc = false, Talk = true, //set Talk to false if you don't want the bots to cheer after winning game: Roles = { AXIS = // Team { AllBots = false, // each bot is considered for a role DEFENDER = // the DEFENDER role { spawnpt = 2, // users of this role will choose spawnpt 1 numbots = 5, // maximum of 5 bots }, ATTACKER = { numbots = 2, crucialClass = CLASS.MEDIC, // first bot }, }, ALLIES = { AllBots = false, // default: every other bot ATTACKER = { spawnpt = 1, numbots = 4, crucialClass = CLASS.ENGINEER, // first bot }, }, }, Bank = { Name="Bank", TriggerOnClass = CLASS.ANYPLAYER, OnEnter = function(ent) { if(GetEntTeam(ent) == TEAM.ALLIES) { Util.DisableGoal( "CAMP_flag.*" ); Util.DisableGoal( "CAMP_yard.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, { "CAMP_bank.*", "ARTILLERY_S_bank", "CALLARTILLERY_bank", }); Util.ChangeSpawn(TEAM.AXIS, 2 ); Util.MapDebugPrint(GetEntName(ent) + " Allies Entered Bank Area"); } if ( GetEntFlags(ent,ENTFLAG.CARRYINGGOAL) ) { Util.DisableGoal( "CAMP_flag.*" ); Util.DisableGoal( "CAMP_bank.*" ); Util.DisableGoal( "CAMP_yard.*" ); Util.DisableGoal( "PLANTMINE_bank.*" ); Util.DisableGoal( "CHECKPOINT.*" ); Util.DisableGoal( "ARTILLERY_.*" ); Util.DisableGoal( "CALLARTILLERY_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_doc.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAMP_doc.*" ); Util.RandomSpawn(TEAM.AXIS, 3); Util.MapDebugPrint(GetEntName(ent) + "^8Has Entered Bank Area With The Documents!"); } }, OnExit = function(ent) { if(GetEntTeam(ent) == TEAM.ALLIES) { Util.DisableGoal( "CAMP_flag.*" ); Util.DisableGoal( "CAMP_yard.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, { "CAMP_bank.*", "ARTILLERY_S_bank", "CALLARTILLERY_bank", }); Util.MapDebugPrint(GetEntName(ent) + " Allies Exited Bank Area"); } if ( GetEntFlags(ent,ENTFLAG.CARRYINGGOAL) ) { Util.DisableGoal( "CAMP_flag.*" ); Util.DisableGoal( "CAMP_bank.*" ); Util.DisableGoal( "CAMP_yard.*" ); Util.DisableGoal( "PLANTMINE_bank.*" ); Util.DisableGoal( "CHECKPOINT.*" ); Util.DisableGoal( "ARTILLERY_.*" ); Util.DisableGoal( "CALLARTILLERY_.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_doc.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAMP_doc.*" ); Util.MapDebugPrint(GetEntName(ent) + "^3Has Exited Bank Area With The Documents!"); } }, }, South_Door_Planted = function( trigger ) { Map.South_Door_Dyno += 1; SetAvailableMapGoals( TEAM.ALLIES, true, "PLANTMINE_main.*" ); Util.MapDebugPrint( "South_Door_Planted" ); }, South_Door_Defused = function( trigger ) { Map.South_Door_Dyno -= 1; Util.MapDebugPrint( "South_Door_Defused" ); }, South_Door_Destroyed = function( trigger ) { Map.South_Door_Dyno = 0; Map.South_Door = true; SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_yard.*" ); Util.DisableGoal( "PLANTMINE_main.*" ); Util.MapDebugPrint( "South_Door_Destroyed" ); }, axis_gold1_Taken = function( trigger ) { Doc = true; Util.DisableGoal( "CAMP_flag.*" ); Util.DisableGoal( "CAMP_bank.*" ); Util.DisableGoal( "CAMP_yard.*" ); Util.DisableGoal( "PLANTMINE_bank.*" ); Util.DisableGoal( "CHECKPOINT.*" ); Util.DisableGoal( "ARTILLERY_.*" ); Util.DisableGoal( "CALLARTILLERY_.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_doc.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CAMP_doc.*" ); Util.RandomSpawn(TEAM.AXIS, 3); Util.MapDebugPrint( "axis_gold1_Taken" ); }, axis_gold1_Returned = function( trigger ) { Doc = false; SetAvailableMapGoals( TEAM.AXIS, true, { "CAMP_bank.*", "CAMP_flag.*", }); SetAvailableMapGoals( TEAM.AXIS, false, "CAMP_doc.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "PLANTMINE_bank.*" ); SetAvailableMapGoals( TEAM.ALLIES, false, "CAMP_doc.*" ); SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.ALLIES, true, "CHECKPOINT.*" ); SetAvailableMapGoals( TEAM.AXIS, true, { "ARTILLERY_D_flag", "CALLARTILLERY_flag", "ARTILLERY_S_bank", "CALLARTILLERY_bank", }); Util.RandomSpawn(TEAM.AXIS, 2); Util.MapDebugPrint( "axis_gold1_Returned" ); }, axis_gold1_Secured = function( trigger ) { Util.MapDebugPrint( "axis_gold1_Secured" ); }, westbunker_flag_Axis_Captured = function( trigger ) { if ( Map.South_Door == true ) { SetAvailableMapGoals( TEAM.AXIS, true, "CAMP_yard.*" ); } Util.MapDebugPrint( "westbunker_flag_Axis_Captured" ); }, westbunker_flag_Allies_Captured = function( trigger ) { if ( Map.Doc == false ) { SetAvailableMapGoals( TEAM.AXIS, true, "CHECKPOINT.*" ); } if ( Map.Doc == true ) { SetAvailableMapGoals( TEAM.AXIS, false, "CHECKPOINT.*" ); } Util.MapDebugPrint( "westbunker_flag_Allies_Captured" ); }, Allied_Command_Post_Built = function( trigger ) { SetAvailableMapGoals( TEAM.AXIS, true, "PLANT_Command_Post" ); 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 ) { SetAvailableMapGoals( TEAM.ALLIES, true, "PLANT_Command_Post" ); 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" ); }, AlliedWin = function( trigger ) { //Game Over if ( Map.Talk && MAP_TALK ) { ETUtil.WinningChat( TEAM.ALLIES ); ETUtil.LosingChat( TEAM.AXIS ); } Util.MapDebugPrint( "Allies have Won!" ); }, }; global OnMapLoad = function() { // Register callback functions OnTrigger( "Planted at the Main Door", Map.South_Door_Planted ); OnTrigger( "Defused at the Main Door", Map.South_Door_Defused ); OnTrigger( "Allies have destroyed the Main Door", Map.South_Door_Destroyed ); OnTrigger( "The Allies have stolen the Documents!", Map.axis_gold1_Taken ); OnTrigger( "The Axis have returned the Documents!", Map.axis_gold1_Returned ); OnTrigger( "The Allies have Transmitted the Documents!", Map.axis_gold1_Secured ); OnTrigger( "Axis capture the West Bunker!", Map.westbunker_flag_Axis_Captured ); OnTrigger( "Allies capture the Forward Bunker!", Map.westbunker_flag_Allies_Captured ); OnTrigger( "Allies have Won!", Map.AlliedWin ); bank = OnTriggerRegion(AABB(968.192,-240.875,-414.875,2048.875,-104.199,19.125),Map.Bank); Util.DisableGoal( ".*", true ); // all but routes SetAvailableMapGoals( TEAM.AXIS, true, { "CAMP_flag.*", "PLANTMINE_bank.*", "CHECKPOINT.*", "PLANT_.*", "FLAG.*", "AMMOCAB.*", "HEALTHCAB.*", "ARTILLERY_D_flag", "CALLARTILLERY_flag", }); SetAvailableMapGoals( TEAM.ALLIES, true, { "CHECKPOINT.*", "PLANT_.*", "FLAG.*", "CAPPOINT.*", "AMMOCAB.*", "HEALTHCAB.*", "PLANTMINE_main.*", }); // Max users per goal Util.SetMaxUsers( 1, "DEFEND_.*" ); Util.SetMaxUsers( 1, "GRENADE_.*" ); Util.SetMaxUsers( 1, "MOUNTMG42_.*" ); Util.SetMaxUsers( 3, "CHECKPOINT.*" ); Util.SetMaxUsers( 1, "CAMP_.*" ); //Priority SetGoalPriority( "DEFUSE_South_Door.*", 0.0, TEAM.AXIS, CLASS.ENGINEER, true); SetGoalPriority( "CAMP_bank.*", 0.6, TEAM.AXIS, true); // Camp times SetMapGoalProperties( "MOUNTMG42_.*", {MinCampTime=15, MaxCampTime=90} ); SetMapGoalProperties( "MOBILEMG42_.*", {MinCampTime=10, MaxCampTime=60} ); SetMapGoalProperties( "CAMP_.*", {MinCampTime=30, MaxCampTime=120} ); MapRoutes = { CHECKPOINT_westbunker_flag = { ROUTE_AlliesSpawn = { ROUTE_west = { ROUTE_west_1 = { ROUTE_west_2 = { ROUTE_west_3 = { ROUTE_west_4 = { ROUTE_flag = { }, }, }, }, }, }, ROUTE_south = { ROUTE_southA = { ROUTE_yard = { ROUTE_yard_1 = { ROUTE_flagA = { ROUTE_flag = { }, }, ROUTE_flagB = { ROUTE_flag = { }, }, }, }, ROUTE_south_1 = { ROUTE_south_2 = { ROUTE_south_3 = { ROUTE_south_4 = { ROUTE_stairA = { ROUTE_stairA_1 = { ROUTE_stairA_2 = { ROUTE_flagB = { ROUTE_flag = { }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_AxisSpawn = { ROUTE_axisexitb = { ROUTE_axisexitb_1 = { ROUTE_axisexitb_2 = { ROUTE_stair = { ROUTE_stairA = { ROUTE_stairA_1 = { ROUTE_flagB = { ROUTE_flag = { }, }, }, }, ROUTE_ramp_2 = { ROUTE_ramp_1 = { ROUTE_ramp = { ROUTE_flag = { }, }, }, }, }, }, }, }, ROUTE_AxisexitA = { ROUTE_AxisexitA_1 = { ROUTE_bank1 = { ROUTE_stair_2 = { ROUTE_stair_1 = { ROUTE_stair = { ROUTE_stairA = { ROUTE_stairA_1 = { ROUTE_stairA_2 = { ROUTE_flagB = { ROUTE_flag = { }, }, }, }, }, ROUTE_ramp_2 = { ROUTE_ramp_1 = { ROUTE_ramp = { ROUTE_flag = { }, }, }, }, }, }, ROUTE_yard_3 = { ROUTE_yard_2 = { ROUTE_yard_1 = { ROUTE_flagA = { ROUTE_flag = { }, }, ROUTE_flagB = { ROUTE_flag = { }, }, }, }, }, }, }, }, }, }, }, FLAG_axis_gold1 = { ROUTE_AlliesSpawn = { ROUTE_west = { ROUTE_west_1 = { ROUTE_west_2 = { ROUTE_west_3 = { ROUTE_west_4 = { ROUTE_ramp = { ROUTE_ramp_1 = { ROUTE_ramp_2 = { }, }, }, ROUTE_flag = { ROUTE_flagB = { ROUTE_yard_1 = { ROUTE_yard_2 = { ROUTE_yard_3 = { ROUTE_bankA = { ROUTE_bankB = { ROUTE_bankC = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, ROUTE_stair_2 = { ROUTE_bank1 = { ROUTE_bank2 = { ROUTE_bank3 = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank = { ROUTE_sidebankA = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank_1 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, ROUTE_backbank = { ROUTE_backbank_1 = { ROUTE_backbank_2 = { ROUTE_backbank_3 = { ROUTE_backbank_4 = { ROUTE_backbank_5 = { ROUTE_backbank_6 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_flagA = { ROUTE_yard_1 = { ROUTE_yard_2 = { ROUTE_yard_3 = { ROUTE_bankA = { ROUTE_bankB = { ROUTE_bankC = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, ROUTE_stair_2 = { ROUTE_bank1 = { ROUTE_bank2 = { ROUTE_bank3 = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank = { ROUTE_sidebankA = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank_1 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, ROUTE_backbank = { ROUTE_backbank_1 = { ROUTE_backbank_2 = { ROUTE_backbank_3 = { ROUTE_backbank_4 = { ROUTE_backbank_5 = { ROUTE_backbank_6 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_south = { ROUTE_southA = { ROUTE_south_1 = { ROUTE_south_2 = { ROUTE_south_3 = { ROUTE_south_4 = { ROUTE_stair = { ROUTE_stair_1 = { ROUTE_stair_2 = { ROUTE_bank1 = { ROUTE_bank2 = { ROUTE_bank3 = { ROUTE_sidebank = { ROUTE_sidebankA = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank_1 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, ROUTE_bankA = { ROUTE_bankB = { ROUTE_bankC = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, ROUTE_backbank = { ROUTE_backbank_1 = { ROUTE_backbank_2 = { ROUTE_backbank_3 = { ROUTE_backbank_4 = { ROUTE_backbank_5 = { ROUTE_backbank_6 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_yard = { ROUTE_yard_1 = { ROUTE_yard_2 = { ROUTE_yard_3 = { ROUTE_bankA = { ROUTE_bankB = { ROUTE_bankC = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, ROUTE_backbank = { ROUTE_backbank_1 = { ROUTE_backbank_2 = { ROUTE_backbank_3 = { ROUTE_backbank_4 = { ROUTE_backbank_5 = { ROUTE_backbank_6 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, }, ROUTE_stair_2 = { ROUTE_bank1 = { ROUTE_bank2 = { ROUTE_bank3 = { ROUTE_mainbank = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank = { ROUTE_sidebankA = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, ROUTE_sidebank_1 = { ROUTE_bank = { ROUTE_bank_1 = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, CAPPOINT_Docdrop = { ROUTE_bank_1 = { ROUTE_bank = { ROUTE_mainbank = { }, ROUTE_sidebankA = { ROUTE_sidebank = { ROUTE_bank3 = { ROUTE_bank2 = { ROUTE_bank1 = { ROUTE_stair_2 = { ROUTE_stair_1 = { ROUTE_yard_3 = { ROUTE_yard_2 = { ROUTE_flagB = { ROUTE_stairA_2 = { ROUTE_stairA_1 = { ROUTE_stairA = { ROUTE_ramp_2 = { ROUTE_rampA = { ROUTE_rampA_1 = { ROUTE_rampA_2 = { ROUTE_doc = { }, }, }, ROUTE_rampstair = { ROUTE_rampstair_1 = { ROUTE_doc = { }, }, }, }, }, }, }, ROUTE_stairB = { ROUTE_stairB_1 = { ROUTE_stairB_2 = { ROUTE_rampstair_1 = { ROUTE_doc = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, ROUTE_sidebank_1 = { ROUTE_sidebank = { ROUTE_bank3 = { ROUTE_bank2 = { ROUTE_bank1 = { ROUTE_stair_2 = { ROUTE_stair_1 = { ROUTE_stair = { ROUTE_rampstair = { ROUTE_rampstair_1 = { ROUTE_doc = { }, }, }, }, }, }, }, }, }, }, }, ROUTE_backbank_6 = { ROUTE_backbank_5 = { ROUTE_backbank_4 = { ROUTE_backbank_3 = { ROUTE_backbank_2 = { ROUTE_backbank_1 = { ROUTE_backbank = { ROUTE_stair_2 = { ROUTE_stair_1 = { ROUTE_stair = { ROUTE_rampstair = { ROUTE_rampstair_1 = { ROUTE_doc = { }, }, }, }, }, ROUTE_yard_3 = { ROUTE_yard_2 = { ROUTE_flagB = { ROUTE_stairA_2 = { ROUTE_stairA_1 = { ROUTE_stairA = { ROUTE_ramp_2 = { ROUTE_rampA = { ROUTE_rampA_1 = { ROUTE_rampA_2 = { ROUTE_doc = { }, }, }, }, ROUTE_rampstair = { ROUTE_rampstair_1 = { ROUTE_doc = { }, }, }, }, }, ROUTE_stairB = { ROUTE_stairB_1 = { ROUTE_stairB_2 = { ROUTE_rampstair_1 = { ROUTE_doc = { }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }, }; Util.Routes(MapRoutes); Util.MapDebugPrint( "Omni-bot map script for " + GetMapName() + " executed." ); }; global OnBotJoin = function( bot ) { bot.TargetBreakableDist = 90.0; // default spawn bot.ChangeSpawnPoint(0); };