#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 ] ); } } }