IW4-Dump-Files/maps/mp/mp_compact.gsc

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();
}
}