#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_infection_fx; #using scripts\mp\mp_infection_sound; #precache( "model", "p7_can_milk_vintage_metal_painted_white" ); #precache( "model", "p7_ven_old_wood_bucket_01" ); #precache( "model", "p7_phone_vintage_wood_01" ); #precache( "model", "p7_can_milk_vintage_metal_painted_white" ); #precache( "model", "p7_log_wood_pile_01" ); #precache( "model", "p7_crate_wood_vintage" ); #precache( "model", "p7_gramophone" ); #precache( "model", "p7_inf_barn_windows_bottom_shutter_left" ); #precache( "model", "p7_wheel_barrow_street_vendor" ); #precache( "model", "p7_sandbag_stack_32_middle_snow" ); #precache( "model", "p7_clothes_hanging_01_dress" ); #precache( "model", "p7_cemetery_gravestone_02_snow" ); #precache( "model", "p7_bookcase_wood_3_shelves" ); #precache( "model", "p7_crate_wood_02_iron_cross" ); #precache( "model", "p7_zm_der_pallet_wood_01" ); #precache( "model", "p7_wood_beam_safehouse" ); #precache( "model", "p7_farm_hay_sack_upright_plain" ); #precache( "model", "p7_inf_foy_boarding_shutter_rt_01a" ); #precache( "model", "p7_hay_bale" ); #precache( "model", "p7_hedgehog_metal" ); #precache( "model", "p7_inf_church_walls_post_03_ph" ); #precache( "model", "p7_piano_vintage_wood_worn" ); #precache( "model", "p7_foliage_tree_ponderosa_pine_tall_snow_ph" ); #precache( "model", "p7_pole_telephone_whole" ); #precache( "model", "p7_mp_inf_boulder4_granite_test_grime" ); #precache( "model", "p7_mp_inf_boulder2_granite_test_grime" ); #precache( "model", "collision_clip_wall_128x128x10" ); #precache( "model", "collision_bullet_wall_512x512x10" ); #precache( "model", "collision_clip_wall_64x64x10" ); #precache( "model", "collision_clip_64x64x64" ); #precache( "model", "p7_can_milk_vintage_metal_painted_white" ); function main() { precache(); level.cuav_map_percentage = 0.5; level.rotator_x_offset = 3500; level.counter_uav_position_z_offset = 3700; level.cuav_map_x_offset = 3700; level.uav_z_offset = 4500; level.satellite_spawn_from_angle_min = 10; level.satellite_spawn_from_angle_max = 11; level.add_raps_omit_locations = &add_raps_omit_locations; level.add_raps_drop_locations = &add_raps_drop_locations; level.remotemissile_kill_z = -800; mp_infection_fx::main(); mp_infection_sound::main(); load::main(); //compass map function, uncomment when adding the minimap compass::setupMiniMap("compass_map_mp_infection"); SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass // Spawn a radius trigger to disable escorting robot from upstairs level.levelescortDisable = []; //level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", position, 0, radius, height ); level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (-245.331 , -1770.34 , 0), 0, 256, 128 ); level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (-252.651 , -1588.34 , 0), 0, 256, 300 ); //Spawning clip on on awning of magasin de vetements building to prevent players from sitting on lip of roof overlooking middle spawncollision("collision_clip_wall_128x128x10","collider",( -625.308 , -790.359 , 354.424 ), ( 349 , 270 , 0)); //Spawning missile clip on infection wall between barn and center building for grenades spawncollision("collision_bullet_wall_512x512x10","collider",( -1242.65 , 109.098 , 761.723 ), ( 356 , 0 , 0)); spawncollision("collision_bullet_wall_512x512x10","collider",( -1242.65 , 609.142 , 761.723 ), ( 356 , 0 , 0)); spawncollision("collision_bullet_wall_512x512x10","collider",( -1238 , 109.098 , 272.099 ), ( 356 , 0 , 0)); spawncollision("collision_bullet_wall_512x512x10","collider",( -1238 , 609.142 , 272.099 ), ( 356 , 0 , 0)); spawncollision("collision_bullet_wall_512x512x10","collider",( -1245.61 , -2067.75 , 318.535 ), ( 0 , 0 , 0)); //Spawning player clip along roof of library spawncollision("collision_clip_wall_128x128x10","collider",( -571.326 , -415.472 , 367.515 ), ( 345 , 0 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -571.326 , -303.315 , 367.515 ), ( 345 , 0 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -571.326 , -184.21 , 367.515 ), ( 345 , 0 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -642.488 , -123.974 , 367.515 ), ( 345 , 90 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -769.848 , -123.974 , 367.515 ), ( 345 , 90 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -894.232 , -123.974 , 367.515 ), ( 345 , 90 , 0)); spawncollision("collision_clip_64x64x64","collider",( -598.008 , -146.947 , 318.623 ), ( 334 , 354 , 20)); spawncollision("collision_clip_wall_64x64x10","collider",( -945.816 , -112.197 , 583.912 ), ( 23 , 270 , 0)); //Spawning player clip on small clip lip wall run side between library and barn spawncollision("collision_clip_wall_64x64x10","collider",( -1227.86 , -95.2294 , 280.48 ), ( 343 , 0 , 0)); //Spawning player over arches between church and barn spawncollision("collision_clip_wall_64x64x10","collider",( -256.59 , 887.807 , 251.596 ), ( 343 , 122 , 0 )); spawncollision("collision_clip_wall_64x64x10","collider",( -354.033 , 825.138 , 250.086 ), ( 343 , 122 , 0 )); //Spawning player clip over stables roof spawncollision("collision_clip_wall_128x128x10","collider",( -654.575 , 2124.26 , 339.559 ), ( 355 , 270 , 0 )); spawncollision("collision_clip_wall_128x128x10","collider",( -529.115 , 2124.26 , 339.559 ), ( 355 , 270 , 0 )); spawncollision("collision_clip_wall_128x128x10","collider",( -409.251 , 2124.26 , 339.559 ), ( 355 , 270 , 0 )); spawncollision("collision_clip_wall_128x128x10","collider",( -286.924 , 2124.26 , 339.559 ), ( 355 , 270 , 0 )); spawncollision("collision_clip_wall_128x128x10","collider",( -224.629 , 2187.71 , 339.639 ), ( 342 , 0 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -230.815 , 2242.7 , 383.569 ), ( 342 , 0 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -230.216 , 2272.01 , 409.437 ), ( 342 , 0 , 0)); spawncollision("collision_clip_wall_128x128x10","collider",( -229.071 , 2309.13 , 429.67 ), ( 342 , 0 , 0)); //Spawning player clip over church curtain partition spawncollision("collision_clip_wall_64x64x10","collider",( 41.7616 , 1105.1 , 461.663 ), ( 355 , 270 , 0 )); spawncollision("collision_clip_wall_64x64x10","collider",( 105.742 , 1105.1 , 461.663 ), ( 355 , 270 , 0)); spawncollision("collision_clip_wall_64x64x10","collider",( 168.71 , 1105.1 , 461.663 ), ( 355 , 270 , 0)); spawncollision("collision_clip_wall_64x64x10","collider",( 206.395 , 1105.1 , 461.663 ), ( 355 , 270 , 0)); //Spawning player clip between B bomb building and hotel cliffside spawncollision("collision_clip_wall_128x128x10","collider",( 715.131 , -670.427 , 328.242 ), ( 345 , 0 , 0)); //Spawning player clip on backside of hotel spawncollision("collision_clip_wall_64x64x10","collider",( 821.711 , -1403.91 , 174.29 ), ( 352 , 0 , 0)); //Spawning player clip on back rock island spawncollision("collision_clip_wall_64x64x10","collider",( 942.562 , -2830.5 , -98.2362 ), ( 328 , 184 , -5 )); spawncollision("collision_clip_wall_64x64x10","collider",( 957.495 , -2877.33 , -93.3206 ), ( 328 , 200 , 1 )); spawncollision("collision_clip_wall_64x64x10","collider",( 978.797 , -2917.56 , -92.7345 ), ( 322 , 223 , 4)); // Spawn milk jug in front of woodpile peeky hole board1 = spawn("script_model",( -1098.37 , 807.149 , 77.9892 )); board1.angles = (0 , 232 , 0); board1 SetModel("p7_can_milk_vintage_metal_painted_white"); // Stockpile hub points level.cleanDepositPoints = Array ( ( -353.721 , -175.155 , 9 ), ( 563.775 , -119.256 , 84.125 ), ( -654.231 , -1578.36 , -5.74457 ), ( -1059.83 , 1145.25 , 80 ) ); } function precache() { // DO ALL PRECACHING HERE } function add_raps_omit_locations( &omit_locations ) { if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( -990, 80, 72 );; // omitting any points near the "librarie" by the ascending ground if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( -640, 1020, 93 );; // omitting any points near the stables across from the church by the ascending ground if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( 1810, -517, 243 );; // omitting any points on the cliffside main island if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( 1139, -2779, -20);; // omitting any points on the island near grandma's start spawn } 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, 1050, 60 );; // a better point near the stables/church courtyard by the ascending ground 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]=( -230, 1910, 130 );; // a better point near the church by bales of hay }