#using scripts\codescripts\struct; #using scripts\shared\compass; #using scripts\shared\util_shared; #using scripts\mp\_load; #using scripts\mp\_util; #using scripts\mp\mp_ethiopia_fx; #using scripts\mp\mp_ethiopia_sound; #precache( "model", "p7_eth_bridge_signs" ); #precache( "model", "p7_light_sconce" ); #precache( "model", "p7_bag_duffel_military" ); #precache( "model", "p7_trophy_taxidermy_boarhead" ); #precache( "model", "p7_trophy_taxidermy_head_antelope_kudu_ph" ); #precache( "model", "p7_cai_basket_reed_b_painted" ); #precache( "model", "p7_cai_apt_couch_ottoman" ); #precache( "model", "p7_box_cardboard_b_closed" ); #precache( "model", "p7_crate_lab_plastic_locking_lid" ); #precache( "model", "p7_eth_trash_can_ph" ); #precache( "model", "p7_eth_kiosk_01" ); #precache( "model", "p7_trashcan_metal_modern_glass" ); #precache( "model", "p7_trophy_taxidermy_wildcat" ); #precache( "model", "p7_cabinet_wood_rustic" ); #precache( "model", "p7_barrel_vintage_wood" ); #precache( "model", "p7_column_organic_wood" ); #precache( "model", "p7_eth_rock_boulder_medium_02_grime" ); #precache( "model", "p7_zm_der_lab_cage" ); #precache( "model", "p7_eth_patio_awning_ph" ); #precache( "model", "p7_foliage_plant_giant_lobelia_04_ph" ); #precache( "model", "p7_eth_cave_columns_large_ph" ); #precache( "model", "p7_foliage_tree_heath_02_ph" ); #precache( "model", "p7_eth_sign_guide" ); #precache( "model", "p7_eth_rock_boulder_large_01_grime" ); #precache( "model", "collision_clip_256x256x256" ); #precache( "model", "collision_nosight_wall_512x512x10" ); #precache( "model", "collision_clip_128x128x128" ); #precache( "model", "collision_clip_wall_64x64x10" ); function main() { precache(); mp_ethiopia_fx::main(); mp_ethiopia_sound::main(); level.add_raps_drop_locations = &add_raps_drop_locations; load::main(); //compass map function, uncomment when adding the minimap compass::setupMiniMap("compass_map_mp_ethiopia"); SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass //Spawning clip over waterfall spawncollision("collision_clip_256x256x256","collider",( -129.888 , -1884.61 , 661.629 ), ( 0, -7, 0)); spawncollision("collision_clip_256x256x256","collider",( -129.888 , -1875.59 , 827.62 ), ( 0, -7, 0)); spawncollision("collision_clip_256x256x256","collider",( 193 , -1635 , 611.5 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 193 , -1635 , 733.5 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 193 , -1635 , 857 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 193 , -1635 , 979 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 132.5 , -1635 , 611.5 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 132.5 , -1635 , 733.5 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 132.5 , -1635 , 857 ), ( 0, 0, 0)); spawncollision("collision_clip_256x256x256","collider",( 132.5 , -1635 , 979 ), ( 0, 0, 0)); //Spawning nosight over glass wall run wall facing lower start spawn to prevent AI from shooting through walls into lodge spawncollision("collision_nosight_wall_512x512x10","collider",( 1953.84 , -762.342 , 16 ), ( 0, 12, 0)); //Spawning clip over log outside of meeshaa building near cave to prevent mantling into geo spawncollision("collision_clip_wall_64x64x10","collider",( -1040 , -1338.5 , 73.5 ), ( 4 , 10 , 0 )); // Keeps the bots from trying the big jump up from the bridge setDvar( "bot_maxmantleheight", 135 ); // Stockpile hub points level.cleanDepositPoints = Array ( ( 301.869 , 278.255 , -218.677 ), ( 241.91 , -1226.31 , 37.6831 ), ( 1353.01 , -116.183 , -66.9346 ), ( -294.319 , -2288.04 , 10.5979 )); level spawnKillTrigger(); } function precache() { // DO ALL PRECACHING HERE } function add_raps_drop_locations( &drop_candidate_array ) { if ( !isdefined( drop_candidate_array ) ) drop_candidate_array = []; else if ( !IsArray( drop_candidate_array ) ) drop_candidate_array = array( drop_candidate_array ); drop_candidate_array[drop_candidate_array.size]=( 350, 650, -222 );; // on the west side of the big bridge if ( !isdefined( drop_candidate_array ) ) drop_candidate_array = []; else if ( !IsArray( drop_candidate_array ) ) drop_candidate_array = array( drop_candidate_array ); drop_candidate_array[drop_candidate_array.size]=( -100, 420, -223 );; // on the east side of the big bridge if ( !isdefined( drop_candidate_array ) ) drop_candidate_array = []; else if ( !IsArray( drop_candidate_array ) ) drop_candidate_array = array( drop_candidate_array ); drop_candidate_array[drop_candidate_array.size]=( 2900, -140, -23 );; // far west patio if ( !isdefined( drop_candidate_array ) ) drop_candidate_array = []; else if ( !IsArray( drop_candidate_array ) ) drop_candidate_array = array( drop_candidate_array ); drop_candidate_array[drop_candidate_array.size]=( -690, -850, 26 );; // near bird exhibit (two trees); just west of it } function spawnKillTrigger() { trigger = spawn( "trigger_radius", ( -993.5 , -1327.5 , 0.5 ), 0, 50, 300 ); trigger thread watchKillTrigger(); // Killtriggers for wallbreach backward mantle from bridge railing into main building Devtrack issue 156450 trigger = spawn( "trigger_radius", ( 1824.000 , -250.000 , -236.000 ), 0, 32, 496 ); trigger thread watchKillTrigger(); trigger = spawn( "trigger_radius", ( 1742.000 , -346.000 , -236.000 ), 0, 128, 496 ); trigger thread watchKillTrigger(); } function watchKillTrigger() { level endon( "game_ended" ); trigger = self; while(1) { trigger waittill( "trigger", player ); player DoDamage(1000, trigger.origin + (0, 0, 0), trigger, trigger, "none", "MOD_SUICIDE", 0 ); } }