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

141 lines
9.8 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_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);
}
}