150 lines
3.3 KiB
Plaintext
150 lines
3.3 KiB
Plaintext
|
#include common_scripts\utility;
|
||
|
#include maps\mp\_utility;
|
||
|
#include maps\mp\gametypes\_hud_util;
|
||
|
|
||
|
main()
|
||
|
{
|
||
|
|
||
|
maps\mp\_load::main();
|
||
|
|
||
|
|
||
|
game[ "attackers" ] = "allies";
|
||
|
game[ "defenders" ] = "axis";
|
||
|
|
||
|
maps\mp\_compass::setupMiniMap( "compass_map_oilrig_lvl_3" );
|
||
|
setdvar( "compassmaxrange", "4000" );
|
||
|
|
||
|
array_thread( getentarray( "breach_solid", "targetname" ), ::self_delete );
|
||
|
|
||
|
array_thread( getentarray( "compassTriggers", "targetname" ), ::compass_triggers_think );
|
||
|
|
||
|
|
||
|
CreateRamps((1676, 1330, -70), (2489, 1844, 900));
|
||
|
CreateRamps((-965, 256, -200), (-854, -77, 54));
|
||
|
thread custom_killtrigger();
|
||
|
thread level_think();
|
||
|
thread level_think2();
|
||
|
}
|
||
|
|
||
|
self_delete()
|
||
|
{
|
||
|
self delete();
|
||
|
}
|
||
|
|
||
|
|
||
|
custom_killtrigger()
|
||
|
{
|
||
|
while (true)
|
||
|
{
|
||
|
wait 0.1;
|
||
|
|
||
|
foreach (player in level.players)
|
||
|
{
|
||
|
if (!isDefined(player) || !isPlayer(player))
|
||
|
{
|
||
|
continue;
|
||
|
}
|
||
|
|
||
|
if (player.origin[2] < -350.0)
|
||
|
{
|
||
|
player suicide();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
compass_triggers_think()
|
||
|
{
|
||
|
assertex( isdefined( self.script_noteworthy ), "compassTrigger at " + self.origin + " needs to have a script_noteworthy with the name of the minimap to use" );
|
||
|
while( true )
|
||
|
{
|
||
|
wait( 1 );
|
||
|
self waittill( "trigger" );
|
||
|
maps\mp\_compass::setupMiniMap( self.script_noteworthy );
|
||
|
}
|
||
|
}
|
||
|
|
||
|
CreateRamps(top, bottom)
|
||
|
{
|
||
|
D = Distance(top, bottom);
|
||
|
blocks = roundUp(D/30);
|
||
|
CX = top[0] - bottom[0];
|
||
|
CY = top[1] - bottom[1];
|
||
|
CZ = top[2] - bottom[2];
|
||
|
XA = CX/blocks;
|
||
|
YA = CY/blocks;
|
||
|
ZA = CZ/blocks;
|
||
|
CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0));
|
||
|
Temp = VectorToAngles(top - bottom);
|
||
|
BA = (Temp[2], Temp[1] + 90, Temp[0]);
|
||
|
for(b = 0; b < blocks; b++){
|
||
|
block = spawn("script_model", (bottom + ((XA, YA, ZA) * b)));
|
||
|
//block setModel("com_plasticcase_friendly");
|
||
|
block.angles = BA;
|
||
|
block Solid();
|
||
|
block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
|
||
|
wait 0.01;
|
||
|
}
|
||
|
block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5)));
|
||
|
//block setModel("com_plasticcase_friendly");
|
||
|
block.angles = (BA[0], BA[1], 0);
|
||
|
block Solid();
|
||
|
block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
|
||
|
wait 0.01;
|
||
|
}
|
||
|
|
||
|
|
||
|
roundUp( floatVal )
|
||
|
{
|
||
|
if ( int( floatVal ) != floatVal )
|
||
|
return int( floatVal+1 );
|
||
|
else
|
||
|
return int( floatVal );
|
||
|
}
|
||
|
|
||
|
|
||
|
level_think()
|
||
|
{
|
||
|
|
||
|
/*-----------------------
|
||
|
MOVING DERRICK DRILL THING
|
||
|
-------------------------*/
|
||
|
eDerrick_thing = getent( "derrick_thing", "targetname" );
|
||
|
eDerrick_thing.origin = eDerrick_thing.origin + ( 0, 0, -2816 );
|
||
|
assert( isdefined( eDerrick_thing ) );
|
||
|
time = 2;
|
||
|
speed = 300;
|
||
|
while ( true )
|
||
|
{
|
||
|
eDerrick_thing rotatevelocity( ( 0, speed, 0 ), time );
|
||
|
wait( time );
|
||
|
}
|
||
|
|
||
|
}
|
||
|
level_think2()
|
||
|
{
|
||
|
model1 = getent( "fx_spotlight_beam", "targetname" );
|
||
|
model2 = getent( "com_blackhawk_spotlight_on_mg_setup", "targetname" );
|
||
|
assert( isdefined( model1 ) );
|
||
|
assert( isdefined( model2 ) );
|
||
|
|
||
|
time = 10;
|
||
|
while ( true )
|
||
|
{
|
||
|
model1 rotateto(model1.angles+(0,45,0),time);
|
||
|
model2 rotateto(model2.angles+(0,45,0),time);
|
||
|
wait( time );
|
||
|
model1 rotateto(model1.angles+(0,-45,0),time);
|
||
|
model2 rotateto(model2.angles+(0,-45,0),time);
|
||
|
wait( time );
|
||
|
model1 rotateto(model1.angles+(10,45,0),time);
|
||
|
model2 rotateto(model2.angles+(10,45,0),time);
|
||
|
wait( time );
|
||
|
model1 rotateto(model1.angles+(-10,-45,0),time);
|
||
|
model2 rotateto(model2.angles+(-10,-45,0),time);
|
||
|
wait( time );
|
||
|
}
|
||
|
|
||
|
}
|