2021-02-18 13:53:14 -06:00

179 lines
5.0 KiB
Plaintext

#include maps\mp\_utility;
#include common_scripts\utility;
#include maps\mp\_events;
main()
{
///#
//execdevgui( "devgui_mp_duga" );
//#/
//needs to be first for create fx
maps\mp\mp_duga_fx::main();
maps\mp\_load::main();
maps\mp\mp_duga_amb::main();
// If the team nationalites change in this file,
// you must update the team nationality in the level's csc file as well!
maps\mp\gametypes\_teamset_winterspecops::level_init();
precachemodel("collision_geo_mc_8x560x190");
precachemodel("collision_geo_mc_4x52x190");
// enable new spawning system
maps\mp\gametypes\_spawning::level_use_unified_spawning(true);
if ( GetDvarInt( #"xblive_wagermatch" ) == 1 )
{
maps\mp\_compass::setupMiniMap("compass_map_mp_duga_wager");
}
else
{
maps\mp\_compass::setupMiniMap("compass_map_mp_duga");
}
//Increase sample size so as to resolve lighting issue
SetDvar("sm_sunSampleSizeNear", ".5" );
//Sets it up so my events go off at times based on the game time and score limit
//level thread transformer_timer_init();
///#
//level thread devgui_duga();
//#/
glasses = GetStructArray( "glass_shatter_on_spawn", "targetname" );
for ( i = 0; i < glasses.size; i++ )
{
RadiusDamage( glasses[i].origin, 64, 101, 100 );
}
// weapon collision to keep grenades from falling out of the map through a gap between the terrain and the wall.
spawncollision("collision_geo_mc_8x560x190","collider",(462, -3840, -165), (0, 0, 0));
spawncollision("collision_geo_mc_4x52x190","collider",(184, -3870, -164), (0, 270, 0));
spawncollision("collision_geo_mc_4x52x190","collider",(184, -3922, -164), (0, 270, 0));
spawncollision("collision_geo_mc_4x52x190","collider",(188, -3922, -169), (0, 270, 0));
}
//Sets it up so events can happen based on match time and score changes
transformer_timer_init()
{
first_transformer_structs = getstructarray("transformer_struct","targetname");
level._transformer_array = [];
for( i=0; i < first_transformer_structs.size; i++)
{
current_struct = first_transformer_structs[i];
level._transformer_array = add_to_array(level._transformer_array, current_struct);
while(IsDefined(current_struct.target))
{
current_struct = getstruct(current_struct.target, "targetname");
level._transformer_array = add_to_array(level._transformer_array, current_struct);
}
}
level waittill( "prematch_over" );
if( (IsDefined(level.timelimit)) && (level.timelimit > 0))
{
//Electric transformers explode in pairs. The number of pairs is critical to determine how many 'events' we need.
transformer_pairs = level._transformer_array.size / 2;
total_seconds = level.timelimit * 60;
//We want to space out the transformer pair explosion evenly thourought the match
interval = total_seconds / transformer_pairs;
//This creates events based on how many we need. The event sends a notify to duga.csc to set off explosions.
for( i = total_seconds; i >= interval; i -= interval )
{
println( "Seconds: " + i );
add_timed_event( int( i ), undefined, "go" );
}
//This event sets off with a tenth of a second left in the game. The duga.csc waits for the notify.
add_timed_event( .1, undefined, "fin" );
}
//add_score_event( Int(level.scorelimit * .99), undefined, "final_boom" );
//add_score_event( Int(level.scorelimit * 0.1),undefined, "next_boom" );
//add_score_event( Int(level.scorelimit * 0.2),undefined, "next_boom" );
}
devgui_duga( cmd )
{
for ( ;; )
{
wait( 0.5 );
devgui_string = GetDvar( #"devgui_notify" );
switch( devgui_string )
{
case "":
break;
case "transformer_explode1":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode2":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode3":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode4":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode5":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode6":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode7":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode8":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode9":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode10":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode11":
level ClientNotify ("transformer_explode");
break;
case "transformer_explode12":
level ClientNotify ("transformer_explode");
break;
//case "final_explode":
//transformer_array[5] notify ("final_explode");
//break;
default:
level notify( devgui_string );
break;
}
SetDvar( "devgui_notify", "" );
}
}