#using scripts\codescripts\struct; #using scripts\shared\_oob; #using scripts\shared\compass; #using scripts\shared\util_shared; #using scripts\mp\_load; #using scripts\mp\_util; #using scripts\mp\mp_sector_fx; #using scripts\mp\mp_sector_sound; #precache( "model", "p7_boots_safehouse_01" ); #precache( "model", "p7_foliage_cactus_barrel_round_flower_ph" ); #precache( "model", "p7_foliage_bamboo_planter_cluster_sway" ); #precache( "model", "p7_pottery_terracotta_d_orange_soil" ); #precache( "model", "p7_consumer_grade_pc_tower" ); #precache( "model", "p7_light_fixture_led_wall_01" ); #precache( "model", "p7_bio_scanner_01_ph" ); #precache( "model", "p7_wheel_barrow_street_vendor" ); #precache( "model", "p7_cai_monitor_wall_large" ); #precache( "model", "p7_luggage_hardshell_handle_up_white" ); #precache( "model", "p7_tank_nitrogen_metal_grey" ); #precache( "model", "p7_crate_plastic_tech_01" ); #precache( "model", "p7_crate_plastic_tech_02" ); #precache( "model", "p7_barrel_plastic_green" ); #precache( "model", "p7_water_container_plastic_large_level_04" ); #precache( "model", "p7_trashcan_metal_modern_glass" ); #precache( "model", "p7_barricade_concrete_modular_01" ); #precache( "model", "p7_recliner_leather" ); #precache( "model", "p7_couch_cloth_modern_01" ); #precache( "model", "p7_foliage_palm_doum_set_medium_sway_ph" ); #precache( "model", "p7_door_metal_industrial_02_left_white" ); #precache( "model", "p7_cai_rock_park_02" ); #precache( "model", "p7_foliage_tree_albizia_tall_full_sway_ph" ); #precache( "model", "collision_clip_wall_128x128x10" ); function main() { precache(); trigger = spawn( "trigger_radius_out_of_bounds", ( 687.5 , 2679 , -356.5 ), 0, 300, 400 ); trigger thread oob::run_oob_trigger(); mp_sector_fx::main(); mp_sector_sound::main(); level.add_raps_omit_locations = &add_raps_omit_locations; level.add_raps_drop_locations = &add_raps_drop_locations; level.remotemissile_kill_z = -680; load::main(); SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass compass::setupMiniMap("compass_map_mp_sector"); link_traversals( "under_bridge", "targetname", true ); //Spawning clip on roof near wall run side to prevent players from sitting on roof and shooting over middle bridge spawncollision("collision_clip_wall_128x128x10","collider",( 597.185 , -523.817 , 584.206 ), ( -5 , 90 , 0)); level spawnKillTrigger(); // Stockpile hub points level.cleanDepositPoints = Array ( ( -1.72432 , 176.047 , 172.125 ), ( 715.139 , 1279.47 , 158.417 ), ( -825.34 , 171.066 , 106.517 ), ( -108.124 , -751.785 , 154.839 ) ); } function link_traversals( str_value, str_key, b_enable ) { a_nodes = GetNodeArray( str_value, str_key ); foreach ( node in a_nodes ) { if ( b_enable ) { LinkTraversal( node ); } else { UnlinkTraversal( node ); } } } 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]=( 32, 710, 189 );; // omitting any points near west side of center bridge; there is a bad physics triangle blocking raps if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( -960, 1020, 168 );; // omitting auto generated point near the entrance near "ZONE 2" sign, adding a better one below } 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]=( -1100, 860, 145 );; // near big "ZONE 2" sign, by a green top machine 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]=( 0, 520, 163 );; // west of the center bridge } function spawnKillTrigger() { trigger = spawn( "trigger_radius", ( -480.116 , 3217.5 , 119.108 ), 0, 150, 200 ); trigger thread watchKillTrigger(); trigger = spawn( "trigger_radius", ( -480.115 , 3309.66 , 119.108 ), 0, 150, 200 ); 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 ); } }