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

199 lines
18 KiB
Plaintext

#using scripts\codescripts\struct;
#using scripts\shared\util_shared;
#using scripts\shared\compass;
#using scripts\mp\_load;
#using scripts\mp\_util;
#using scripts\mp\mp_skyjacked_fx;
#using scripts\mp\mp_skyjacked_sound;
#precache( "model", "collision_clip_wall_128x128x10" );
#precache( "model", "collision_clip_wall_64x64x10" );
#precache( "model", "collision_clip_64x64x64" );
#precache( "model", "collision_clip_ramp_64x24" );
#precache( "model", "p7_crate_plastic_tech_02" );
// #precache( "model", "p7_ammo_resupply_02_box" );
#precache( "model", "collision_clip_32x32x32" );
#precache( "model", "collision_bullet_wall_64x64x10" );
#precache( "model", "collision_clip_wall_32x32x10" );
function main()
{
// Spawn a radius trigger to disable the capturing of a Hardpoint outside of kitchen
level.levelkothDisable = [];
//level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", position, 0, radius, height );
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", (561.279 , -418.987 , -32.5), 0, 50, 128 );
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", (619.679 , -421.624 , -32.5), 0, 50, 128 );
// 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", (-1538.24 , -10.9259 , 89.5049), 0, 250, 80 );
level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (-1288.24 , -28.1134 , 162.375), 0, 500, 80 );
level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (-1404.6 , -262.257 , 89.5049), 0, 125, 80 );
level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (900.411 , -51.9474 , 162.076), 0, 600, 80 );
level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (733.431 , -378.099 , 38.587), 0, 100, 100 );
level.levelescortDisable[ level.levelescortDisable.size ] = Spawn( "trigger_radius", (881.857 , -341.619 , 120.587), 0, 100, 100 );
precache();
// bomb zone fixups
level.bomb_zone_fixup = &bomb_zone_fixup;
mp_skyjacked_fx::main();
mp_skyjacked_sound::main();
load::main();
compass::setupMiniMap( "compass_map_mp_skyjacked" );
SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass
//Spawning clip on engine room ceiling
spawncollision("collision_clip_wall_128x128x10","collider",( -77.3255 , -34.2904 , 4.7251 ), ( 90 , 270 , 0));
//Spawning clip on overwatch to prevent players from sitting on lip and looking over balcony wall
spawncollision("collision_clip_wall_128x128x10","collider",( 516.069 , 138.325 , 225.855 ), ( 10 , 89 , 180));
//Spawning clip near back ship ladder to prevent clipping through wall
spawncollision("collision_clip_wall_128x128x10","collider",( 1312.2 , 332.753 , 77.8061 ), ( 0 , 270 , 0));
//Spawning clip near B DOM model to prevent sitting on clip in the middle area
spawncollision("collision_clip_wall_64x64x10","collider",( -409.046 , 27.0095 , 194.299 ), ( 12 , 0 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( -409.046 , -11.7873 , 194.299 ), ( 12 , 0 , 0));
//Spawning clip near B DOM model to prevent sitting on clip in the middle area
spawncollision("collision_clip_wall_32x32x10","collider",( -141.961 , -63.9699 , 194.299 ), ( 22 , 54 , 4));
// Spawn cases on balcony floor to prevent umbra issue
// case1 = spawn("script_model",( 458 , -32.5 , 168.5 ));
// case1.angles = (90 , 140 , 180 );
// case1 SetModel("p7_crate_plastic_tech_02");
// case2 = spawn("script_model",( 506.25 , -42 , 168.5 ));
// case2.angles = (90 , 190 , 180 );
// case2 SetModel("p7_crate_plastic_tech_02");
// case3 = spawn("script_model",( 551 , -46 , 168.5 ));
// case3.angles = (90 , 196 , 180 );
// case3 SetModel("p7_crate_plastic_tech_02");
// case4 = spawn("script_model",( 496 , -57 , 168 ));
// case4.angles = (90 , 149 , -83.5 );
// case4 SetModel("p7_ammo_resupply_02_box");
// case5 = spawn("script_model",( 461 , -22 , 168 ));
// case5.angles = (90 , 58 , 85 );
// case5 SetModel("p7_ammo_resupply_02_box");
//Spawning clip ramp on balcony for umbra issue on spawned crates
// spawncollision("collision_clip_ramp_64x24","collider",( 466.819 , -10.4793 , 170 ), ( 0 , 0 , 0));
// spawncollision("collision_clip_ramp_64x24","collider",( 528.414 , -10.4793 , 170 ), ( 0 , 0 , 0));
// spawncollision("collision_clip_ramp_64x24","collider",( 562.977 , -10.4793 , 170 ), ( 0 , 0 , 0));
// spawncollision("collision_clip_ramp_64x24","collider",( 466.819 , -64.832 , 170 ), ( 0 , 180 , 0));
// spawncollision("collision_clip_ramp_64x24","collider",( 501.382 , -64.832 , 170 ), ( 0 , 180 , 0));
// spawncollision("collision_clip_ramp_64x24","collider",( 562.977 , -64.832 , 170 ), ( 0 , 180 , 0));
// spawncollision("collision_clip_32x32x32","collider",( 475.343 , -33.6151 , 175 ), ( 0 , 0 , 0));
// spawncollision("collision_clip_32x32x32","collider",( 522.974 , -33.6151 , 175 ), ( 0 , 0 , 0));
//Spawning bullet clip outside of A DOM building
spawncollision("collision_bullet_wall_64x64x10","collider",( 504.45 , -435.732 , 115.858 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 504.45 , -435.732 , 52.284 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 534.791 , -404.426 , 115.858 ), ( 0 , 180 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 534.791 , -404.426 , 52.284 ), ( 0 , 180 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 584.515 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 647.829 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 710.942 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 774.256 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 836.72 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 900.034 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 963.222 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1026.54 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1089.47 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1152.79 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1215.14 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1278.46 , -435.732 , 168.412 ), ( 0 , 270 , 0));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1327.98 , -435.732 , 145.949 ), ( 3 , 270 , 27));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1337.04 , -435.732 , 128.526 ), ( 3 , 270 , 27 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1350.94 , -435.732 , 126.824 ), ( 360 , 270 , 33 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1366.08 , -435.732 , 72.6485 ), ( 3 , 270 , 27 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1385.76 , -435.732 , 74.3508 ), ( 360 , 270 , 33 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1400.81 , -406.036 , 103.928 ), ( 33 , 180 , -1 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1435.83 , -406.036 , 51.2122 ), ( 33 , 180 , -1 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1305.21 , -406.036 , 126.569 ), ( 55 , 180 , 3 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1316.25 , -406.036 , 105.578 ), ( 27 , 180 , 2 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1345.7 , -406.036 , 49.5623 ), ( 27 , 180 , 2 ));
spawncollision("collision_bullet_wall_64x64x10","collider",( 647.829 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 710.942 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 774.256 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 836.72 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 900.034 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 963.222 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1026.54 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1089.47 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1152.79 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1215.14 , -410.966 , 141.609 ), ( 270 , 0 , -90));
spawncollision("collision_bullet_wall_64x64x10","collider",( 1278.58 , -410.966 , 141.609 ), ( 270 , 0 , -90));
// Spawning clip on light models of A overwatch building
spawncollision("collision_clip_wall_64x64x10","collider",( 1142.89 , 340.367 , 409.595 ), ( 329 , 90 , 0 ));
spawncollision("collision_clip_wall_64x64x10","collider",( 1079.87 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 1017.46 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 954.435 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 891.928 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 828.908 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 765.366 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 702.346 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 643.756 , 340.367 , 409.595 ), ( 329 , 90 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 643.757 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 706.777 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 769.191 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 832.211 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 894.718 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 957.738 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 1021.28 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 1084.3 , -338.596 , 409.595 ), ( 329 , 270 , 0));
spawncollision("collision_clip_wall_64x64x10","collider",( 1142.89 , -338.596 , 409.595 ), ( 329 , 270 , 0));
// Spawning clip for rogue collision above ladder
spawncollision("collision_clip_wall_64x64x10","collider",( 1310.96 , 267.262 , 199.897 ), ( 0 , 0 , 0 ));
spawncollision("collision_clip_wall_64x64x10","collider",( 1310.96 , 298.088 , 199.897 ), ( 0 , 0 , 0));
// Spawning clip above ladder
spawncollision("collision_clip_wall_64x64x10","collider",( -88.1753 , 537.193 , 397.585 ), ( 339 , 270 , 0 ));
//Spawning cube clip on 2nd floor above C DOM
spawncollision("collision_clip_64x64x64","collider",( -1348.73 , -190.386 , 119.873 ), ( 0 , 0 , 0));
spawncollision("collision_clip_64x64x64","collider",( -1348.73 , -233.009 , 119.873 ), ( 0 , 0 , 0));
spawncollision("collision_clip_64x64x64","collider",( -1348.73 , -190.386 , 183.073 ), ( 0 , 0 , 0));
spawncollision("collision_clip_64x64x64","collider",( -1348.73 , -233.009 , 183.073 ), ( 0 , 0 , 0));
// Stockpile hub points
level.cleanDepositPoints = Array ( ( 253 , -196.025 , 20.625 ),
( -283.422 , 233.852 , -171.875 ),
( -1567.78 , -65.9542 , -43.875 ),
( 663.755 , -188.581 , 20.125 ) );
}
function precache()
{
// DO ALL PRECACHING HERE
}
function bomb_zone_fixup( bombZone )
{
if ( !isdefined( bombZone ) )
return;
// need to fixup bombsite B killcament as it is too tall for the room
if ( isdefined( bombZone.worldicons ) && ( bombZone.worldicons["enemy"] === "waypoint_target_b" ) )
{
bombZone.visuals[0].killCamEnt.origin += ( 0, 0, -12 );
}
}