209 lines
14 KiB
Plaintext
209 lines
14 KiB
Plaintext
#using scripts\codescripts\struct;
|
|
#using scripts\shared\_oob;
|
|
#using scripts\mp\gametypes\_spawnlogic;
|
|
|
|
#using scripts\shared\util_shared;
|
|
|
|
#using scripts\shared\compass;
|
|
#using scripts\shared\scene_shared;
|
|
|
|
|
|
|
|
#using scripts\mp\_load;
|
|
#using scripts\mp\_util;
|
|
|
|
#using scripts\mp\mp_shrine_fx;
|
|
#using scripts\mp\mp_shrine_sound;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#precache( "model", "collision_clip_wall_64x64x10" );
|
|
#precache( "model", "collision_clip_wall_128x128x10" );
|
|
#precache( "model", "p7_shr_rock_cave_lrg_02_grime" );
|
|
#precache( "model", "p7_zm_isl_wooden_foundation_post" );
|
|
#precache( "model", "collision_bullet_wall_128x128x10" );
|
|
|
|
function main()
|
|
{
|
|
precache();
|
|
|
|
spawnlogic::move_spawn_point( "mp_dm_spawn_start", ( -2052.36 , -1532.15 , 9.88573 ), ( -1560.58 , -1510.2 , 41.625 ), (0, 5, 0) );
|
|
spawnlogic::move_spawn_point( "mp_dm_spawn_start", ( 1505.87 , -451.962 , 125.625 ), ( 641.951 , -48.0704 , 68.4194 ), (0, 180, 0) );
|
|
spawnlogic::move_spawn_point( "mp_dm_spawn_start", ( 2304.03 , 113.973 , 125.625 ), ( 336.038 , 738.986 , -117.375 ), (0, 201, 0) );
|
|
|
|
trigger = spawn( "trigger_radius_out_of_bounds", ( 1983.5 , 893 , -39.5 ), 0, 75, 128 );
|
|
trigger thread oob::run_oob_trigger();
|
|
trigger = spawn( "trigger_radius_out_of_bounds", ( -2550.5 , 267.5 , -3 ), 0, 100, 128 );
|
|
trigger thread oob::run_oob_trigger();
|
|
trigger = spawn( "trigger_radius_out_of_bounds", ( 1673 , 1001 , -97 ), 0, 80, 128 );
|
|
trigger thread oob::run_oob_trigger();
|
|
trigger = spawn( "trigger_radius_out_of_bounds", ( 114.5 , -1160 , -320 ), 0, 256, 150 );
|
|
trigger thread oob::run_oob_trigger();
|
|
trigger = spawn( "trigger_radius_out_of_bounds", ( -2846 , 191 , -333 ), 0, 400, 380 );
|
|
trigger thread oob::run_oob_trigger();
|
|
trigger = spawn( "trigger_radius_out_of_bounds", ( 2663.5 , 31 , -126.5 ), 0, 300, 200 );
|
|
trigger thread oob::run_oob_trigger();
|
|
|
|
|
|
// Spawn radius triggers in the bridge overwatch tower to prevent capping the bridge hardpoint
|
|
level.levelkothDisable = [];
|
|
//level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", position, 0, radius, height );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( -460 , -206.5 , 102.5 ), 0, 50, 128 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( -513 , -206.5 , 102.5 ), 0, 50, 128 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( -566.5 , -206.5 , 102.5 ), 0, 50, 128 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 451.5 , 413 , 11.5 ), 0, 180, 200 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 521 , 518 , 11.5 ), 0, 125, 200 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 909 , 267.5 , 10.5 ), 0, 50, 200 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 761.5 , -1425.5 , 69.5 ), 0, 50, 200 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 927.5 , -1425.5 , 84.5 ), 0, 50, 200 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 1016 , -1425.5 , 84.5 ), 0, 50, 200 );
|
|
level.levelkothDisable[ level.levelkothDisable.size ] = Spawn( "trigger_radius", ( 1104.5 , -1425.5 , 84.5 ), 0, 50, 200 );
|
|
|
|
mp_shrine_fx::main();
|
|
mp_shrine_sound::main();
|
|
|
|
compass::setupMiniMap("compass_map_mp_shrine");
|
|
|
|
load::main();
|
|
|
|
SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass
|
|
|
|
//Spawning clip over pit to cover up rogue corner collision and prevent exploit
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( -1750 , -300.5 , -42.5 ), ( 36 , 270 , 3 ));
|
|
|
|
// Spawn rock under stone passage to cliff side to plug hole and prevent umbra issues
|
|
rock1 = spawn("script_model",( 1639.44 , -939.959 , 313.5 ));
|
|
rock1.angles = ( 270 , 359 , 162 );
|
|
rock1 SetModel("p7_shr_rock_cave_lrg_02_grime");
|
|
|
|
// Spawn plank outside of shotgun house to prevent umbra issues
|
|
plank1 = spawn("script_model",( -605.5 , -1132.5 , 88 ));
|
|
plank1.angles = ( 0 , 270 , 0 );
|
|
plank1 SetModel("p7_zm_isl_wooden_foundation_post");
|
|
plank1 SetScale ( 2 );
|
|
|
|
//Spawning clip over pit to cover up rogue corner collision and prevent exploit
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 2016.5 , 756.5 , 282.5 ), ( 0 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 2016.5 , 756.5 , 409.5 ), ( 0 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 2016.5 , 756.5 , 535.5 ), ( 0 , 0 , 0 ));
|
|
|
|
//Spawning clip over pit to cover up rogue corner collision and prevent exploit
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( -1939.5 , -833 , 216 ), ( 29 , 213 , -1 ));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( -1979 , -810 , 221 ), ( 8 , 260 , -2 ));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( -1997 , -807 , 221 ), ( 8 , 260 , -2 ));
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( -2027.5 , -802 , 221 ), ( 8 , 260 , -2 ));
|
|
|
|
//Spawning clip over wooden beam in shotgun building DT 173329
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( -937.5 , -1229 , 265.5 ), ( 0 , 7 , 0 ));
|
|
|
|
//Spawning missile clip over curtains in throne room DT 172997
|
|
spawncollision("collision_bullet_wall_128x128x10","collider",( 1206.5 , 96.5 , 166.5 ), ( 0 , 0 , 0 ));
|
|
spawncollision("collision_bullet_wall_128x128x10","collider",( 1206.5 , 28 , 166.5 ), ( 0 , 0 , 0 ));
|
|
|
|
//Spawning clip over back of blacksmith house to prevent sitting on clip
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 2386 , 410.5 , 258 ), ( 350 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 2386 , 537 , 258 ), ( 350 , 0 , 0 ));
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 2386 , 566 , 258 ), ( 350 , 0 , 0 ));
|
|
|
|
//Spawning clip over column outside of cliff banner room
|
|
spawncollision("collision_clip_wall_64x64x10","collider",( -1300 , -1112 , 169 ), ( 24 , 277 , 0 ));
|
|
|
|
//Spawning clip over door outside of room closest to crane (weapons room)
|
|
spawncollision("collision_clip_wall_128x128x10","collider",( 564.5 , -1203.5 , 266.5 ), ( 6 , 357.2 , 0 ));
|
|
|
|
// Stockpile hub points
|
|
level.cleanDepositPoints = Array ( ( -34.8423 , 496.19 , -160.136 ),
|
|
( -436.008 , -1438.99 , 99 ),
|
|
( -1446.79 , 331.569 , -21.875 ),
|
|
( 1268.65 , -1219.36 , 82.2472 ) );
|
|
|
|
SetupDragons();
|
|
|
|
/#
|
|
level thread updateDvars();
|
|
#/
|
|
|
|
level thread PlayDragons();
|
|
}
|
|
|
|
function precache()
|
|
{
|
|
// DO ALL PRECACHING HERE
|
|
}
|
|
|
|
function SetupDragons()
|
|
{
|
|
level.dragons_a = [];
|
|
level.dragons_b = [];
|
|
|
|
for( i = 1; i <= 7; i++ )
|
|
{
|
|
level.dragons_a[ level.dragons_a.size ] = "dragon_a_" + i;
|
|
level.dragons_b[ level.dragons_b.size ] = "dragon_b_" + i;
|
|
}
|
|
}
|
|
|
|
/#
|
|
function updateDvars()
|
|
{
|
|
level.shrine_dragons_debug_prior = 0;
|
|
level.shrine_dragons_debug = 0;
|
|
while(1)
|
|
{
|
|
level.shrine_dragons_debug = GetDvarInt( "scr_shrine_dragons_debug", level.shrine_dragons_debug );
|
|
if( level.shrine_dragons_debug && !level.shrine_dragons_debug_prior )
|
|
{
|
|
PlayAllDragons();
|
|
}
|
|
|
|
wait(1.0);
|
|
|
|
level.shrine_dragons_debug_prior = level.shrine_dragons_debug;
|
|
}
|
|
}
|
|
#/
|
|
|
|
function PlayAllDragons()
|
|
{
|
|
if( isDefined( level.dragons_a ) )
|
|
{
|
|
foreach( dragon in level.dragons_a )
|
|
{
|
|
thread scene::play( dragon );
|
|
}
|
|
}
|
|
|
|
if( isDefined( level.dragons_b ) )
|
|
{
|
|
foreach( dragon in level.dragons_b )
|
|
{
|
|
thread scene::play( dragon );
|
|
}
|
|
}
|
|
}
|
|
|
|
function PlayDragons()
|
|
{
|
|
playDragonsRandom = RandomFloat( 1 );
|
|
if( .4 > playDragonsRandom )
|
|
{
|
|
if( isDefined( level.dragons_a ) && ( level.dragons_a.size > 0 ) )
|
|
{
|
|
dragonIndexA = RandomInt( level.dragons_a.size );
|
|
thread scene::play( level.dragons_a[ dragonIndexA ] );
|
|
}
|
|
|
|
if( isDefined( level.dragons_b ) && ( level.dragons_b.size > 0 ) )
|
|
{
|
|
dragonIndexB = RandomInt( level.dragons_b.size );
|
|
thread scene::play( level.dragons_b[ dragonIndexB ] );
|
|
}
|
|
}
|
|
}
|
|
|