108 lines
10 KiB
Plaintext
108 lines
10 KiB
Plaintext
#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 );
|
|
}
|
|
} |