boiii-scripts/mp/mp_biodome.gsc
2023-04-13 17:30:38 +02:00

142 lines
13 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_biodome_fx;
#using scripts\mp\mp_biodome_sound;
#precache( "model", "collision_clip_512x512x512" );
#precache( "model", "collision_clip_256x256x256" );
#precache( "model", "collision_clip_wall_64x64x10" );
#precache( "model", "collision_clip_wall_128x128x10" );
#precache( "model", "p7_crate_ammo_metal_small" ); #precache( "model", "p7_sandbag_civilian_01" ); #precache( "model", "p7_fire_extinguisher_digital_off" ); #precache( "model", "p7_sin_penguin_sign_01" ); #precache( "model", "p7_storage_bin_plastic_green" ); #precache( "model", "p7_bucket_janitor_plastic_rolling" ); #precache( "model", "p7_bucket_plastic_5_gal_closed_yellow" ); #precache( "model", "p7_sin_aquarium_info_kiosk_ph" ); #precache( "model", "p7_light_work_utility_portable_01" ); #precache( "model", "p7_log_wood_small_01" ); #precache( "model", "p7_box_case_metal_02_large_weathered" ); #precache( "model", "p7_sin_signage_sidewalk_board_02" ); #precache( "model", "p7_tank_nitrogen_metal" ); #precache( "model", "p7_crate_plastic_tech_01" ); #precache( "model", "p7_sin_trashcan_wood" ); #precache( "model", "p7_sin_trash_can_plastic_01" ); #precache( "model", "p7_bench_wood_locker_room_dirty" ); #precache( "model", "p7_cai_ticket_kiosk_theatre" ); #precache( "model", "p7_pallet_truck_dirty" ); #precache( "model", "p7_sin_penguin_sign_01" ); #precache( "model", "p7_sin_stacking_cargo_crate_54igraffiti" ); #precache( "model", "p7_monitor_wall_safehouse_01_flat_dmg_01" ); #precache( "model", "p7_cargo_pallet_02" ); #precache( "model", "veh_t7_drone_siege_rocket_54i_d" ); #precache( "model", "p7_sin_bio_monument_lg_wave_256" ); #precache( "model", "p7_sin_leaf_post_shade_ph" ); #precache( "model", "p7_cargo_pallet_04" ); #precache( "model", "p7_sin_bio_monument_sm_wave_256" );
function main()
{
precache();
SetDvar( "phys_buoyancy", 1 );
mp_biodome_fx::main();
mp_biodome_sound::main();
level.remotemissile_kill_z = ( ( -130 ) + ( 50 ) ); // override kill z for Hellstorm missile
load::main();
//compass map function, uncomment when adding the minimap
compass::setupMiniMap("compass_map_mp_biodome");
SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass
// DT #142726 - Player is able to mantle onto an invisible collision high above the northern portion of the map gaining access to an exploitable area.
SpawnCollision("collision_clip_512x512x512", "collider", ( 744 , 1696 , 920 ), ( 0 , 0 , 0 ));
SpawnCollision("collision_clip_512x512x512", "collider", ( 744 , 2208 , 920 ), ( 0 , 0 , 0 ));
SpawnCollision("collision_clip_512x512x512", "collider", ( 1256 , 1696 , 920 ), ( 0 , 0 , 0 ));
SpawnCollision("collision_clip_512x512x512", "collider", ( 1256 , 2208 , 920 ), ( 0 , 0 , 0 ));
// DT #146576 - Player is able to mantle onto lightposts near truck start spawn and leave the playspace.
SpawnCollision("collision_clip_256x256x256", "collider", ( 3454.82 , 1094.87 , 499.607 ), ( 0 , 270 , -90 ));
SpawnCollision("collision_clip_256x256x256", "collider", ( 3454.82 , 706.47 , 499.607 ), ( 0 , 270 , -90 ));
// Spawning clip over trashcans outside of the water pump room near seal show
SpawnCollision("collision_clip_wall_64x64x10", "collider", ( 1640 , -178.5 , 150.5 ), ( 0 , 270 , 0 ));
SpawnCollision("collision_clip_wall_64x64x10", "collider", ( 1580.5 , -180.5 , 141 ), ( 0 , 270 , 0 ));
SpawnCollision("collision_clip_wall_64x64x10", "collider", ( 1640 , -180.5 , 141 ), ( 0 , 270 , 0 ));
// Spawning clip doorframe under sea lion tales banner to prevent mantling through geo
SpawnCollision("collision_clip_wall_128x128x10", "collider", ( 588 , 245 , 263 ), ( 1 , 0 , 0 ));
SpawnCollision("collision_clip_wall_128x128x10", "collider", ( 588 , 358.5 , 263 ), ( 1 , 0 , 0 ));
// Spawning clip near center fish tanks to prevent using mantle exploit
SpawnCollision("collision_clip_wall_64x64x10", "collider", ( -249 , 817 , 175.5 ), ( 0 , 0 , 0 ));
SpawnCollision("collision_clip_wall_64x64x10", "collider", ( -219.5 , 844 , 175.5 ), ( 0 , 270 , 0 ));
// Spawning clip to fix getting in tree foliage out of the map near the penguin iceberg display
SpawnCollision("collision_clip_cylinder_32x256", "collider", ( 1549 , -350 , 194 ), ( 0 , 0 , 0 ));
SpawnCollision("collision_clip_cylinder_32x256", "collider", ( 1549 , -350 , 435.5 ), ( 0 , 0 , 0 ));
SpawnCollision("collision_clip_cylinder_32x256", "collider", ( 1549 , -350 , 649.5 ), ( 0 , 0 , 0 ));
if ( util::IsPropHuntGametype() )
{
SpawnCollision("collision_clip_wall_64x64x10", "collider", ( -1745 , 1550 , 248 ), ( 0 , 0 , 0 ));
}
// 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 spawnKillTrigger();
// out of map on ledge by green van start spawns
trigger = spawn( "trigger_radius", ( 3516 , 620 , 111 ), 0, 256, 50 );
trigger thread oob::run_oob_trigger();
// out of map on rock by tree in northwest corner
trigger = spawn( "trigger_radius", ( 2182 , 2176.5 , -32.5 ), 0, 100, 256 );
trigger thread oob::run_oob_trigger();
// Stockpile hub points
level.cleanDepositPoints = Array ( ( -52.4927 , 1252.1 , 104.125 ),
( 330.408 , 2402.64 , 232.204 ),
( -139.434 , -303.555 , 138.836 ),
( -362.325 , 325.108 , 104.125 ) );
}
function precache()
{
// DO ALL PRECACHING HERE
}
function spawnKillTrigger()
{
trigger = spawn( "trigger_radius", ( 4147.22 , 1095.25 , -33.0108 ), 0, 500, 500 );
trigger thread watchKillTrigger();
trigger = spawn( "trigger_radius", ( 4147.22 , 590.28 , -33.0108 ), 0, 500, 500 );
trigger thread watchKillTrigger();
trigger = spawn( "trigger_radius", ( -202 , 797 , 135.5 ), 0, 50, 200 );
trigger thread watchKillTrigger();
trigger = spawn( "trigger_radius", ( -162 , 2442 , -47 ), 0, 25, 60 );
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 );
}
}