#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", "" ); } }