149 lines
3.2 KiB
Plaintext
149 lines
3.2 KiB
Plaintext
#include maps\mp\_utility;
|
|
|
|
main()
|
|
{
|
|
maps\mp\mp_compact_precache::main();
|
|
maps\createart\mp_compact_art::main();
|
|
maps\mp\mp_compact_fx::main();
|
|
|
|
maps\mp\_destructible_dlc::main(); // call before _load
|
|
maps\mp\_load::main();
|
|
|
|
maps\mp\_compass::setupMiniMap( "compass_map_mp_compact" );
|
|
|
|
setdvar( "r_lightGridEnableTweaks", 1 );
|
|
setdvar( "r_lightGridIntensity", 1.10 );
|
|
setdvar( "r_lightGridContrast", 1 );
|
|
setdvar( "compassmaxrange", "1700" );
|
|
|
|
ambientPlay( "ambient_mp_compact" );
|
|
|
|
game["attackers"] = "allies";
|
|
game["defenders"] = "axis";
|
|
|
|
//doMagnet();
|
|
|
|
//level thread crusherControl();
|
|
}
|
|
|
|
doMagnet()
|
|
{
|
|
strength = 18000;
|
|
if ( getdvar( "scr_compact_magnet_strength" ) != "" )
|
|
strength = getdvarfloat( "scr_compact_magnet_strength" );
|
|
if ( strength == 0 )
|
|
return;
|
|
|
|
radius = 250;
|
|
if ( getdvar( "scr_compact_magnet_radius" ) != "" )
|
|
radius = getdvarfloat( "scr_compact_magnet_radius" );
|
|
if ( radius <= 0 )
|
|
return;
|
|
|
|
magnet = getent( "magnetorg", "targetname" );
|
|
Missile_CreateAttractorEnt( magnet, strength, radius );
|
|
}
|
|
|
|
crusherControl()
|
|
{
|
|
//button = getEnt( "button01", "targetname" );
|
|
crusher = getEnt( "crusher01", "targetname" );
|
|
|
|
crushTop = getEnt( "crushtop01", "targetname" );
|
|
playerDetector = getEnt( "onelevator", "targetname" );
|
|
|
|
upOrigin = crusher getOrigin();
|
|
downOrigin = upOrigin + (0,0,-128);
|
|
|
|
//button.origin = button.origin + (0,0,20);
|
|
|
|
crushTop thread triggerLinkThread( crusher );
|
|
crushTop thread crushEmThread();
|
|
playerDetector thread triggerLinkThread( crusher );
|
|
playerDetector thread playerDetectorThread();
|
|
|
|
//precacheString( &"MP_PRESS_TO_RAPPEL" );
|
|
//button setHintString( &"MP_PRESS_TO_RAPPEL" );
|
|
|
|
for ( ;; )
|
|
{
|
|
/*
|
|
button makeUsable();
|
|
button waittill ( "trigger", player );
|
|
button playSound( "vending_machine_button_press" );
|
|
button makeUnusable();
|
|
*/
|
|
|
|
// move down
|
|
crusher playSound( "elev_run_start" );
|
|
crusher playLoopSound( "elev_run_loop" );
|
|
|
|
crusher moveTo( downOrigin, 10.0 );
|
|
crusher waittill ( "movedone" );
|
|
|
|
crusher stopLoopSound( "elev_run_loop" );
|
|
crusher playSound( "elev_run_end" );
|
|
|
|
/*
|
|
button makeUsable();
|
|
button waittill ( "trigger", player );
|
|
button playSound( "vending_machine_button_press" );
|
|
button makeUnusable();
|
|
*/
|
|
|
|
wait 2;
|
|
|
|
// wait until a player gets on
|
|
playerDetector waittill( "trigger", player );
|
|
|
|
// move up
|
|
crusher playSound( "elev_run_start" );
|
|
crusher playLoopSound( "elev_run_loop" );
|
|
|
|
crusher moveTo( upOrigin, 10.0 );
|
|
crusher waittill ( "movedone" );
|
|
|
|
crusher stopLoopSound( "elev_run_loop" );
|
|
crusher playSound( "elev_run_end" );
|
|
|
|
wait 2;
|
|
|
|
// wait until no players are on
|
|
while ( gettime() - playerDetector.triggertime <= 2000 )
|
|
wait .05;
|
|
}
|
|
}
|
|
|
|
|
|
triggerLinkThread( crusher )
|
|
{
|
|
for ( ;; )
|
|
{
|
|
self.origin = crusher.origin;
|
|
|
|
wait ( 0.05 );
|
|
}
|
|
}
|
|
|
|
playerDetectorThread()
|
|
{
|
|
self.triggertime = gettime();
|
|
for ( ;; )
|
|
{
|
|
self waittill( "trigger", player );
|
|
self.triggertime = gettime();
|
|
}
|
|
}
|
|
|
|
crushEmThread()
|
|
{
|
|
crushBottom = getEnt( "crushbtm01", "targetname" );
|
|
|
|
for ( ;; )
|
|
{
|
|
self waittill ( "trigger", player );
|
|
|
|
if ( player isTouching( crushBottom ) && isReallyAlive( player ) )
|
|
player _suicide();
|
|
}
|
|
} |