230 lines
20 KiB
Plaintext
230 lines
20 KiB
Plaintext
#using scripts\codescripts\struct;
|
|
|
|
|
|
|
|
|
|
#using scripts\mp\gametypes\_spawning;
|
|
|
|
#using scripts\shared\clientfield_shared;
|
|
#using scripts\shared\compass;
|
|
#using scripts\shared\exploder_shared;
|
|
|
|
|
|
#using scripts\mp\_load;
|
|
#using scripts\mp\_util;
|
|
|
|
#using scripts\mp\mp_spire_amb;
|
|
#using scripts\mp\mp_spire_fx;
|
|
|
|
#precache( "model", "p7_street_safety_cone" ); #precache( "model", "p7_cai_cookware_metal_jug" ); #precache( "model", "p7_ammo_can_small" ); #precache( "model", "p7_cai_cookware_metal_steamer" ); #precache( "model", "p7_box_cardboard_d_closed" ); #precache( "model", "p7_vase_clay_egyptian_02_dmg" ); #precache( "model", "p7_cai_trashcan_metal_off" ); #precache( "model", "p7_roof_vent_tall_01_metal_white" ); #precache( "model", "p7_cai_chair_lounge_greek" ); #precache( "model", "p7_surveillance_rack_shell" ); #precache( "model", "p7_rug_cloth_rolled_med_01" ); #precache( "model", "p7_barrel_plastic_blue" ); #precache( "model", "p7_bench_antique" ); #precache( "model", "p7_crate_plastic_tech_01" ); #precache( "model", "p7_trash_bin_single_02_green" ); #precache( "model", "p7_cai_apart_fence_post_tall_dmg_01" ); #precache( "model", "p7_barrel_plastic_crushed_yellow" ); #precache( "model", "p7_cai_apt_window_arch_02_shutter_right" ); #precache( "model", "p7_3d_printer_safehouse_01_harddrive" ); #precache( "model", "p7_spire_hotel_floor_couches_large" ); #precache( "model", "p7_vending_machine_soda" ); #precache( "model", "p7_light_spotlight_generator_02" ); #precache( "model", "p7_door_metal_industrial_02_left_white" ); #precache( "model", "p7_ac_unit_metal_5_ton_ph" ); #precache( "model", "p7_rooftop_hvac_metal_unit_01_ph" ); #precache( "model", "p7_porter_potty" );
|
|
|
|
#precache( "string", "MPUI_CALLSIGN_MAPNAME_A" );
|
|
#precache( "string", "MPUI_CALLSIGN_MAPNAME_B" );
|
|
#precache( "string", "MPUI_CALLSIGN_MAPNAME_C" );
|
|
#precache( "string", "MPUI_CALLSIGN_MAPNAME_D" );
|
|
#precache( "string", "MPUI_CALLSIGN_MAPNAME_E" );
|
|
|
|
#precache( "model", "collision_clip_ramp_64x24" );
|
|
#precache( "model", "collision_clip_wall_128x128x10" );
|
|
#precache( "model", "collision_clip_wall_256x256x10" );
|
|
#precache( "model", "collision_clip_wall_32x32x10" );
|
|
#precache( "model", "collision_clip_wall_64x64x10" );
|
|
|
|
|
|
|
|
|
|
|
|
function main()
|
|
{
|
|
clientfield::register( "world", "mpSpireExteriorBillboard", 1, 2, "int" );
|
|
|
|
//needs to be first for create fx
|
|
mp_spire_fx::main();
|
|
|
|
level.add_raps_omit_locations = &add_raps_omit_locations;
|
|
|
|
load::main();
|
|
|
|
//compass map function, uncomment when adding the minimap
|
|
compass::setupMiniMap("compass_map_mp_spire");
|
|
|
|
//Spawning ramped clip at doorway of coalescence offices to prevent getting hung on unsmoothed clip
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 4168.34 , 708.791 , -12.0068 ), ( 0, 0, 0));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 4105.71 , 708.791 , -12.0068 ), ( 0 , 0 , 0));
|
|
|
|
//Spawning clip on palace billboard
|
|
spawncollision("collision_clip_wall_256x256x10","collider",( 2424.57 , -1527.01 , 263.799 ), ( 2, 0, 0));
|
|
|
|
//Spawning clip railing facing glass wallrun
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 2970.36 , -1757.79 , -21.7815 ), ( 342 , 0 , 0 ));
|
|
|
|
//Spawning clip on ramped sides of buildings
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1604.54 , -1050.26 , -120.822 ), ( 31 , 270 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1478.62 , -1050.26 , -120.822 ), ( 31 , 270 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1353.01 , -1050.26 , -120.822 ), ( 31 , 270 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1265.75 , -1142.36 , -120.822 ), ( 31 , 360 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1265.75 , -1268.28 , -120.822 ), ( 31 , 360 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1265.75 , -1393.89 , -120.822 ), ( 31 , 360 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1265.75 , -1514.1, -120.822 ), ( 31 , 360 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1265.75 , -1640.02 , -120.822 ), ( 31 , 360 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 1265.75 , -1730.95 , -120.822 ), ( 31 , 360 , 0));
|
|
|
|
//Spawning clip on ramped sides of buildings
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 3653.42 , -1756.59 , -75.2497 ), ( 24 , 90 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 3744.35 , -1756.59 , -75.2497 ), ( 24 , 90 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 3867.22 , -1756.58 , -75.2495 ), ( 24 , 90 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 3932.69 , -1756.58 , -75.2495 ), ( 24 , 90 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 4023.62 , -1756.58 , -75.2495 ), ( 24 , 90 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 4101.56 , -1679.67 , -75.2495 ), ( 24 , 180 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 4101.56 , -1598.22 , -75.2495 ), ( 24 , 180 , 0));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 4101.56 , -1507.29 , -75.2495 ), ( 24 , 180 , 0 ));
|
|
|
|
//Spawning clip on palace columns facing middle
|
|
//spawncollision("collision_clip_wall_128x128x10","collider",( 3010.09 , -900.957 , 228.447 ), ( 33 , 270 , 0 ));
|
|
//spawncollision("collision_clip_wall_128x128x10","collider",( 2715.04 , -900.957 , 228.447 ), ( 33 , 270 , 0 ));
|
|
|
|
//Spawning clip on statue over water fountain area near greenhouse
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 1261.61 , 86.0638 , 179.294 ), ( 0 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 1261.61 , 79.3592 , 179.294 ), ( 0 , 0 , 0));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 1261.61 , 86.0638 , 241.08 ), ( 0 , 0 , 0));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 1261.61 , 79.3592 , 241.08 ), ( 0 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 1261.61 , 86.0638 , 300.684 ), ( 0 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( 1261.61 , 79.3592 , 300.684 ), ( 0 , 0 , 0));
|
|
|
|
//Spawning clip over wall outside of north of palace
|
|
//spawncollision("collision_clip_wall_128x128x10","collider",( 3727 , -1412.5 , 198 ), ( 1 , 270 , 0 ));
|
|
|
|
//Spawning clip over wall inset allowing wallbreach of hotel facade to windows facing middle Devtrack issue 165673
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 3792 , -1413 , 140 ), ( 0 , 0 , -90 ));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 3792 , -1413 , 204 ), ( 0 , 180 , 90 ));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 3728 , -1413 , 140 ), ( 0 , 0 , -90 ));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 3728 , -1413 , 204 ), ( 0 , 180 , 90 ));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 3664 , -1413 , 140 ), ( 0 , 0 , -90 ));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 3664 , -1413 , 204 ), ( 0 , 180 , 90 ));
|
|
|
|
//Spawning clip over exposed clip on top of pillars on hotel facade Devtrack issue 155395
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 2994 , -892 , 204 ), ( 0 , 180 , 90 ));
|
|
spawncollision("collision_clip_ramp_64x24","collider",( 2726 , -892 , 204 ), ( 0 , 180 , 90 ));
|
|
|
|
if ( util::IsPropHuntGametype() )
|
|
{
|
|
spawncollision("collision_clip_wall_256x256x10","collider", ( 1641 , -796 , 76 ), ( 0 , 0 , 0 ));
|
|
}
|
|
|
|
mp_spire_amb::main();
|
|
|
|
// Set up the default range of the compass
|
|
SetDvar("compassmaxrange","2100");
|
|
|
|
// Set up some generic War Flag Names.
|
|
// Example from COD5: CALLSIGN_SEELOW_A is the name of the 1st flag in Selow whose string is "Cottage"
|
|
// The string must have MPUI_CALLSIGN_ and _A. Replace Mapname with the name of your map/bsp and in the
|
|
// actual string enter a keyword that names the location (Roundhouse, Missle Silo, Launchpad, Guard Tower, etc)
|
|
|
|
game["strings"]["war_callsign_a"] = &"MPUI_CALLSIGN_MAPNAME_A";
|
|
game["strings"]["war_callsign_b"] = &"MPUI_CALLSIGN_MAPNAME_B";
|
|
game["strings"]["war_callsign_c"] = &"MPUI_CALLSIGN_MAPNAME_C";
|
|
game["strings"]["war_callsign_d"] = &"MPUI_CALLSIGN_MAPNAME_D";
|
|
game["strings"]["war_callsign_e"] = &"MPUI_CALLSIGN_MAPNAME_E";
|
|
|
|
game["strings_menu"]["war_callsign_a"] = "@MPUI_CALLSIGN_MAPNAME_A";
|
|
game["strings_menu"]["war_callsign_b"] = "@MPUI_CALLSIGN_MAPNAME_B";
|
|
game["strings_menu"]["war_callsign_c"] = "@MPUI_CALLSIGN_MAPNAME_C";
|
|
game["strings_menu"]["war_callsign_d"] = "@MPUI_CALLSIGN_MAPNAME_D";
|
|
game["strings_menu"]["war_callsign_e"] = "@MPUI_CALLSIGN_MAPNAME_E";
|
|
|
|
level thread exterior_billboard_exploders();
|
|
|
|
// Stockpile hub points
|
|
level.cleanDepositPoints = Array ( ( 2870.59 , -134.119 , 1.81104 ),
|
|
( 4107.7 , 1370.67 , 90.1926 ),
|
|
( 2856.95 , -1234.69 , -62.1478 ),
|
|
( 1233.53 , 930.651 , 2.22752 ),
|
|
( 3844.93 , -603.359 , 139.234 ) );
|
|
level spawnKillTrigger();
|
|
}
|
|
|
|
|
|
function exterior_billboard_exploders()
|
|
{
|
|
currentExploder = RandomInt( 4 );
|
|
|
|
while( 1 )
|
|
{
|
|
level clientfield::set( "mpSpireExteriorBillboard", currentExploder );
|
|
|
|
wait( 6 );
|
|
|
|
currentExploder++;
|
|
if ( currentExploder >= 4 )
|
|
{
|
|
currentExploder = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
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]=( 2480, 1269, 67 );; // 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]=( 2609, 1440, 67 );; // omitting auto generated point near the entrance near "ZONE 2" sign, adding a better one below
|
|
if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( 3089, 1437, 69 );; // 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]=( 3223, 1224, 69 );; // omitting auto generated point near the entrance near "ZONE 2" sign, adding a better one below
|
|
if ( !isdefined( omit_locations ) ) omit_locations = []; else if ( !IsArray( omit_locations ) ) omit_locations = array( omit_locations ); omit_locations[omit_locations.size]=( 2434, 1093, 67 );; // omitting auto generated point near the entrance near "ZONE 2" sign, adding a better one below
|
|
}
|
|
|
|
function spawnKillTrigger()
|
|
{
|
|
// Killtriggers for wallbreach into building near north spawn Devtrack issue 188282
|
|
|
|
trigger = spawn( "trigger_radius", ( 4303 , 1421 , 88 ), 0, 8, 72 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 4303 , 1449 , 88 ), 0, 8, 72 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 4303 , 1477 , 88 ), 0, 8, 72 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 4303 , 1505 , 88 ), 0, 8, 72 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
// Killtriggers for wallbreach into hotel Devtrack issue 165673
|
|
|
|
trigger = spawn( "trigger_radius", ( 3776 , -1472 , 114 ), 0, 40, 128 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 3700 , -1472 , 114 ), 0, 40, 128 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 3624 , -1472 , 114 ), 0, 40, 128 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
// Killtriggers in hotel window exploit related to Devtrack issue 165673
|
|
|
|
trigger = spawn( "trigger_radius", ( 3060 , -992 , 232 ), 0, 40, 72 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 2660 , -992 , 232 ), 0, 40, 72 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
// Killtrigger for wallbreach into central building corner Devtrack issue 168498
|
|
|
|
trigger = spawn( "trigger_radius", ( 4052 , -544 , 88 ), 0, 16, 256 );
|
|
trigger thread watchKillTrigger();
|
|
|
|
trigger = spawn( "trigger_radius", ( 4084 , -512 , 88 ), 0, 48, 256 );
|
|
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 );
|
|
}
|
|
} |