#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_conduit_fx; #using scripts\mp\mp_conduit_sound; #precache( "model", "p7_pallet_metal_military_01" ); #precache( "model", "collision_bullet_wall_128x128x10" ); #precache( "model", "collision_nosight_64x64x64" ); #precache( "model", "collision_nosight_32x32x32" ); function main() { precache(); mp_conduit_fx::main(); mp_conduit_sound::main(); load::main(); compass::setupMiniMap( "compass_map_mp_conduit" ); SetDvar( "compassmaxrange", "2100" ); // Set up the default range of the compass level thread rotateConduitTower(); level moveConduitTrain(); // Spawn models under start spawn stairs for umbra issue DT 164049 block1 = spawn("script_model",( -2536.7 , -150.932 , 44 )); block1.angles = ( 0 , 90 , 90); block1 SetModel("p7_pallet_metal_military_01"); block2 = spawn("script_model",( -2537.7 , -113.432 , 44 )); block2.angles = ( 0 , 90 , 90); block2 SetModel("p7_pallet_metal_military_01"); block3 = spawn("script_model",( -2552.2 , -150.432 , 52 )); block3.angles = ( 0 , 90 , 90); block3 SetModel("p7_pallet_metal_military_01"); block4 = spawn("script_model",( -2553.2 , -112.932 , 52 )); block4.angles = ( 0 , 90 , 90); block4 SetModel("p7_pallet_metal_military_01"); //Spawning phys clip over water outside of playspace spawncollision("collision_bullet_wall_128x128x10","collider",( 38 , -1031.5 , 63 ), ( 0 , 270 , 0 )); spawncollision("collision_bullet_wall_128x128x10","collider",( -57 , -1031.5 , 63 ), ( 0 , 270 , 0 )); //Spawning nosight over cover on container side spawncollision("collision_nosight_64x64x64","collider",( 320 , 973.5 , 82.5 ), ( 0 , 0 , 0 )); spawncollision("collision_nosight_64x64x64","collider",( -318.5 , 973.5 , 82.5 ), ( 0 , 0 , 0 )); spawncollision("collision_nosight_32x32x32","collider",( -576.5 , 896 , 77 ), ( 0 , 0 , 0 )); spawncollision("collision_nosight_32x32x32","collider",( -576.5 , 896 , 98 ), ( 0 , 0 , 0 )); spawncollision("collision_nosight_32x32x32","collider",( 578.5 , 899 , 77 ), ( 0 , 0 , 0 )); spawncollision("collision_nosight_32x32x32","collider",( 578.5 , 899 , 98 ), ( 0 , 0 , 0 )); // Stockpile hub points level.cleanDepositPoints = Array ( ( 2.38261 , 270.152 , 64.125 ), ( 1272.74 , 958.804 , 64.125 ), ( -1235.76 , 969.544 , 64.125 ), ( 868.229 , -915.133 , -0.875 ) ); } function precache() { // DO ALL PRECACHING HERE } function rotateConduitTower() { conduitTowerArray = GetEntArray( "conduit_tower", "targetname" ); conduitTower = conduitTowerArray[0]; for(;;) { pauseTime = randomFloatRange( 5.0, 10.0 ); wait( pauseTime ); rotateDegree = randomFloatRange( -180, 180 ); rotateTime = randomFloatRange( 25.0, 30.0 ); conduittower playsound ("amb_tower_start"); conduittower rotateYaw ( rotateDegree, rotateTime, rotateTime / 4, rotateTime / 4 ); conduittower playloopsound ("amb_tower_loop"); conduitTower waittill( "rotatedone" ); conduittower stoploopsound (.5); conduittower playsound ("amb_tower_stop"); } } function moveConduitTrain() { trainArray1 = GetEntArray( "conduit_train", "targetname" ); trainArray2 = GetEntArray( "conduit_train_02", "targetname" ); trainArray3 = GetEntArray( "conduit_train_03", "targetname" ); conduitTrains = []; conduitTrains[0] = trainArray1[0]; conduitTrains[1] = trainArray2[0]; conduitTrains[2] = trainArray3[0]; startPoints = []; endPoints = []; for( i = 0; i < 3; i++ ) { startPoints[i] = conduitTrains[i] GetOrigin() + ( -15000, 0, 0 ); endPoints[i] = conduitTrains[i] GetOrigin() + ( 45000, 0, 0 ); thread moveTrain( conduitTrains[i], startPoints[i], endPoints[i] ); } } function moveTrain( train, startPoint, endPoint ) { while( true ) { train Ghost(); train.origin = startPoint; wait( 3.0 ); train Show(); train moveTo( endPoint, 20.0, 5.0, 5.0 ); train playloopsound("amb_train_engine"); train waittill( "movedone" ); train stoploopsound (.05); } }