886 lines
28 KiB
Plaintext
886 lines
28 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
vignette_precache();
|
|
vignettes_startup();
|
|
}
|
|
|
|
vignettes_startup()
|
|
{
|
|
thread boss_introduction();
|
|
}
|
|
|
|
test_calls()
|
|
{
|
|
|
|
}
|
|
|
|
vignette_precache()
|
|
{
|
|
precachemodel( "mp_body_us_rangers_assault_a_urban" );
|
|
precachemodel( "head_mp_head_a" );
|
|
precachemodel( "body_extinction_civ_female_a" );
|
|
precachemodel( "head_extinction_civ_female_a" );
|
|
}
|
|
|
|
cross_lab_scene()
|
|
{
|
|
delay_vo_until_all_clear( 20 );
|
|
var_0 = getent( "crossarcher_lab_doors", "targetname" );
|
|
thread lab_scene_marker();
|
|
var_1 = spawn( "script_model", ( -600, -1561, 720 ) );
|
|
var_1 setmodel( "body_cross_a" );
|
|
var_1.angles = ( 0, 0, 0 );
|
|
var_2 = spawn_model( "head_cross_a", var_1, "J_spine4", ( 0, 0, 0 ) );
|
|
wait 0.25;
|
|
var_3 = spawn( "script_model", var_1 gettagorigin( "tag_weapon_right" ) );
|
|
var_3.angles = var_1 gettagangles( "tag_weapon_right" );
|
|
var_3 setmodel( "weapon_mp443" );
|
|
var_3 linkto( var_1, "tag_weapon_right" );
|
|
thread lab_doors_open();
|
|
var_0 scriptmodelplayanim( "alien_armory_doors_roomvignette_init" );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 0.46 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 1.33 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 1.666 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 2.2 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 3.56 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 4.93 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 5.6 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 6.33 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 7.8 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 9.06 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 10 );
|
|
thread handle_vo_foley( var_1, "scn_female_glass_hit", 11.133 );
|
|
thread handle_vo_foley( var_1, "scn_female_foley_hand_slide", 2 );
|
|
var_1 scriptmodelplayanimdeltamotion( "alien_armory_cross_roomvignette_init" );
|
|
var_2 scriptmodelplayanim( "alien_armory_cross_roomvignette_init" );
|
|
thread maps\mp\mp_alien_armory_fx::fx_cross_lab_light_on();
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
var_4 = getent( "stop_cross_idle", "targetname" );
|
|
var_4 thread cross_nags( var_1 );
|
|
wait 12.33;
|
|
thread maps\mp\mp_alien_armory_fx::fx_cross_lab_light_flicker();
|
|
var_5 = spawn( "script_model", ( -425, -1860, 720 ) );
|
|
var_5 setmodel( "body_archer_a" );
|
|
var_5.angles = ( 0, 0, 0 );
|
|
var_6 = spawn_model( "head_archer_a", var_5, "J_spine4", ( 0, 0, 0 ) );
|
|
var_7 = spawn( "script_model", var_5 gettagorigin( "tag_weapon_right" ) );
|
|
var_7.angles = var_5 gettagangles( "tag_weapon_right" );
|
|
var_7 setmodel( "weapon_mp443" );
|
|
var_7 linkto( var_5, "tag_weapon_right" );
|
|
var_7 thread lab_gunfire();
|
|
thread lab_scene_vo( var_1, var_5 );
|
|
thread aliens_lab_scene();
|
|
thread lab_doors_sfx();
|
|
var_1 scriptmodelplayanimdeltamotion( "alien_armory_cross_roomvignette" );
|
|
var_2 scriptmodelplayanim( "alien_armory_cross_roomvignette" );
|
|
thread handle_vo_foley( var_1, "scn_female_foley_hand_slide", 1.5666 );
|
|
thread handle_vo_foley( var_1, "scn_female_foley_gun_pickup_raise", 8.2666 );
|
|
thread handle_vo_foley( var_1, "scn_female_foley_getting_shot", 16.833 );
|
|
thread handle_vo_foley( var_3, "scn_female_foley_gun_drop", 17.466 );
|
|
thread handle_vo_foley( var_1, "scn_female_foley_getting_pickedup", 20.166 );
|
|
thread handle_vo_foley( var_5, "scn_male_button_slam", 28.3 );
|
|
var_5 scriptmodelplayanimdeltamotion( "alien_armory_archer_roomvignette" );
|
|
var_6 scriptmodelplayanim( "alien_armory_archer_roomvignette" );
|
|
thread handle_vo_foley( var_5, "scn_male_enter", 13.73 );
|
|
thread handle_vo_foley( var_5, "scn_male_approach", 17.933 );
|
|
thread handle_vo_foley( var_5, "scn_male_exit", 27.95 );
|
|
thread handle_vo_foley( var_5, "scn_male_button_slam", 28.3 );
|
|
thread handle_vo_foley( var_5, "scn_male_door_open", 13.2 );
|
|
thread handle_vo_foley( var_5, "scn_male_post_lift", 24.06 );
|
|
thread handle_vo_foley( var_5, "scn_male_slap", 21.133 );
|
|
var_0 scriptmodelplayanim( "alien_armory_doors_roomvignette" );
|
|
wait 35;
|
|
var_3 delete();
|
|
var_7 delete();
|
|
var_1 delete();
|
|
var_2 delete();
|
|
var_5 delete();
|
|
var_6 delete();
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
lab_alarm1()
|
|
{
|
|
playsoundatpos( ( -291, -1665, 846 ), "scn_arm_mtl_roll_door_alarm" );
|
|
}
|
|
|
|
lab_doors_open()
|
|
{
|
|
playsoundatpos( ( -668, -1434, 816 ), "scn_arm_mtl_door_roll_open_l" );
|
|
playsoundatpos( ( -668, -1723, 816 ), "scn_arm_mtl_door_roll_open_r" );
|
|
}
|
|
|
|
lab_doors_sfx()
|
|
{
|
|
wait 28.6333;
|
|
playsoundatpos( ( -668, -1434, 816 ), "scn_arm_mtl_roll_door_l" );
|
|
playsoundatpos( ( -668, -1723, 816 ), "scn_arm_mtl_roll_door_r" );
|
|
}
|
|
|
|
lab_gunfire()
|
|
{
|
|
wait 17.33;
|
|
thread maps\mp\mp_alien_armory_fx::fx_archer_shoots();
|
|
self playsound( "scn_cross_gunshot" );
|
|
}
|
|
|
|
aliens_lab_scene()
|
|
{
|
|
var_0 = maps\mp\gametypes\aliens::addalienagent( "axis", ( -420, -1867, 594 ), ( 0, 0, 0 ), "wave brute", undefined );
|
|
var_0 maps\mp\alien\_utility::enable_alien_scripted();
|
|
var_0 scragentsetscripted( 1 );
|
|
var_0.no_outline_on_alien = 1;
|
|
var_0 scragentsetphysicsmode( "noclip" );
|
|
var_0 scragentsetorientmode( "face angle abs", var_0.angles );
|
|
var_0 thread animate_alien( 0 );
|
|
thread play_sound_alien( 33.3666, "scn_cross_left_alien_vocals", var_0.origin, var_0 );
|
|
thread play_sound_alien( 30.966, "scn_cross_left_alien_door_burst", ( -475, -1332, 780 ), undefined );
|
|
var_1 = maps\mp\gametypes\aliens::addalienagent( "axis", ( -464, -1270, 720 ), ( 0, 0, 0 ), "wave brute", undefined );
|
|
var_1 maps\mp\alien\_utility::enable_alien_scripted();
|
|
var_1 scragentsetscripted( 1 );
|
|
var_1.no_outline_on_alien = 1;
|
|
var_1 scragentsetphysicsmode( "noclip" );
|
|
var_1 scragentsetorientmode( "face angle abs", var_1.angles );
|
|
var_1 thread animate_alien( 1 );
|
|
thread play_sound_alien( 31.8333, "scn_cross_right_alien_door_burst", ( -428, -1806, 780 ), undefined );
|
|
thread play_sound_alien( 33.1666, "scn_cross_right_alien_vocals", var_1.origin, var_1 );
|
|
}
|
|
|
|
play_sound_alien( var_0, var_1, var_2, var_3 )
|
|
{
|
|
wait( var_0 );
|
|
|
|
if ( !isdefined( var_3 ) )
|
|
playsoundatpos( var_2, var_1 );
|
|
else
|
|
var_3 playsoundonmovingent( var_1 );
|
|
}
|
|
|
|
animate_alien( var_0 )
|
|
{
|
|
self scragentsetanimmode( "anim deltas" );
|
|
maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "armory_vignettes", var_0, "armory_vignettes", "end" );
|
|
wait 5;
|
|
self hide();
|
|
self suicide();
|
|
}
|
|
|
|
cross_armory_exit()
|
|
{
|
|
var_0 = [];
|
|
var_1 = getent( "archer_escape", "targetname" );
|
|
var_1 waittill( "trigger" );
|
|
var_2 = maps\mp\agents\alien\_alien_human::alienhumanspawn( ( -2903.6, 1437, 663.2 ), ( 0, 107.554, 0 ), "body_cross_a", "head_cross_a" );
|
|
var_2 scragentsetscripted( 1 );
|
|
var_2 scragentsetphysicsmode( "noclip" );
|
|
var_2 scragentsetorientmode( "face angle abs", var_2.angles );
|
|
var_3 = maps\mp\agents\alien\_alien_human::alienhumanspawn( ( -2904.4, 1442.5, 663.2 ), ( 0, -12.343, 0 ), "body_archer_a", "head_archer_a" );
|
|
var_3 scragentsetscripted( 1 );
|
|
var_3 scragentsetphysicsmode( "noclip" );
|
|
var_3 scragentsetorientmode( "face angle abs", var_3.angles );
|
|
var_4 = spawn( "script_model", ( -2700.3, 1514.7, 663.5 ) );
|
|
var_4 setmodel( "vehicle_gaz71_iw6_dlc" );
|
|
var_4.angles = ( 0, 33.871, 0 );
|
|
thread final_hive_vo();
|
|
var_4 thread archer_exfil_sfx_spawn();
|
|
var_4 scriptmodelplayanimdeltamotion( "alien_armory_gaz71_exit_facility" );
|
|
thread gate_close();
|
|
var_2 thread animate_human( 2 );
|
|
var_3 animate_human( 3 );
|
|
var_4 delete();
|
|
}
|
|
|
|
archer_exfil_sfx_spawn()
|
|
{
|
|
wait 0.02;
|
|
self playsoundonmovingent( "scn_archer_exfil" );
|
|
}
|
|
|
|
gate_close()
|
|
{
|
|
wait 12;
|
|
var_0 = getent( "rolling_gate", "targetname" );
|
|
|
|
if ( isdefined( var_0 ) )
|
|
{
|
|
var_0 thread archer_exfil_gate_close_sfx_spawn();
|
|
var_0 moveto( ( -648, 1956, 592 ), 2, 0, 1 );
|
|
}
|
|
}
|
|
|
|
archer_exfil_gate_close_sfx_spawn()
|
|
{
|
|
wait 0.02;
|
|
self playsoundonmovingent( "scn_archer_exfil_gate_close" );
|
|
}
|
|
|
|
animate_human( var_0, var_1 )
|
|
{
|
|
self scragentsetanimmode( "anim deltas" );
|
|
maps\mp\agents\alien\_alien_human::playanimation( "idle", var_0 );
|
|
self hide();
|
|
|
|
if ( isdefined( var_1 ) && var_1 == 1 )
|
|
return;
|
|
|
|
self suicide();
|
|
return;
|
|
}
|
|
|
|
boss_introduction()
|
|
{
|
|
thread intro_music();
|
|
wait 2;
|
|
var_0 = getentarray( "intro_fence", "targetname" );
|
|
var_1 = getscriptablearray( "intro_fence_script", "targetname" );
|
|
intro_vo();
|
|
var_2 = spawn( "script_model", ( -2160, -7364.86, 607.431 ) );
|
|
var_2 setmodel( "mp_body_us_rangers_assault_a_urban" );
|
|
var_2.angles = ( 0, -90, 0 );
|
|
var_3 = spawn( "script_model", var_2 gettagorigin( "J_spine4" ) );
|
|
var_3.angles = var_2 gettagangles( "J_spine4" );
|
|
var_3 setmodel( "head_mp_head_a" );
|
|
var_3 linkto( var_2, "J_spine4" );
|
|
var_4 = spawn( "script_model", var_2 gettagorigin( "tag_weapon_right" ) );
|
|
var_4.angles = var_2 gettagangles( "tag_weapon_right" );
|
|
var_4 setmodel( "weapon_rm_22" );
|
|
var_4 hidepart( "tag_barrel_sniper", "weapon_rm_22" );
|
|
var_4 linkto( var_2, "tag_weapon_right" );
|
|
thread redshirt_vo();
|
|
thread spider_tunnel();
|
|
var_4 thread gunswap();
|
|
var_2 thread add_loot_drops_around_body();
|
|
var_2 scriptmodelplayanimdeltamotion( "alien_redshirt_intro_tunnel" );
|
|
var_3 scriptmodelplayanim( "alien_redshirt_intro_tunnel" );
|
|
var_1[0] setscriptablepartstate( 0, 2 );
|
|
level.gate_is_open = 1;
|
|
thread sfx_intro();
|
|
wait 15.8333;
|
|
thread knockback_players( var_2 );
|
|
|
|
foreach ( var_6 in var_0 )
|
|
{
|
|
if ( isdefined( var_6 ) )
|
|
var_6 delete();
|
|
}
|
|
|
|
wait 2.93;
|
|
thread pre_set_scriptables();
|
|
var_1[0] setscriptablepartstate( 0, 3 );
|
|
godfather_hive_explain_vo();
|
|
}
|
|
|
|
gunswap()
|
|
{
|
|
wait 15.866;
|
|
self unlink();
|
|
var_0 = common_scripts\utility::getstructarray( "item", "targetname" );
|
|
var_1 = undefined;
|
|
|
|
foreach ( var_3 in var_0 )
|
|
{
|
|
if ( var_3.script_noteworthy == "weapon_iw6_aliendlc15_mp" )
|
|
{
|
|
var_1 = var_3.use_ent;
|
|
break;
|
|
}
|
|
}
|
|
|
|
var_1.origin = self.origin + ( 0, 0, 5 );
|
|
var_1.angles = self.angles;
|
|
var_1 hidepart( "tag_barrel_sniper", "weapon_rm_22" );
|
|
self delete();
|
|
}
|
|
|
|
add_loot_drops_around_body()
|
|
{
|
|
wait 18;
|
|
var_0 = spawn( "script_origin", self.origin );
|
|
var_1 = -50;
|
|
var_2 = 50;
|
|
var_3 = var_0.origin;
|
|
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
|
|
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "clip", level.pillageinfo.clip_model, 1 );
|
|
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
|
|
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "clip", level.pillageinfo.clip_model, 1 );
|
|
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
|
|
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "explosive", "tag_origin", 1, "aliensemtex_mp", 2 );
|
|
var_0.origin = var_3 + ( var_1 + randomint( 40 ), var_2 + randomint( 40 ), 0 );
|
|
var_0 thread maps\mp\mp_alien_armory::create_dropped_pillage_item( "explosive", "tag_origin", 1, "aliensemtex_mp", 2 );
|
|
}
|
|
|
|
spider_tunnel()
|
|
{
|
|
var_0 = maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderspawn( ( -2375, -7784.86, 977.432 ), ( 0, 0, 0 ) );
|
|
var_0 maps\mp\alien\_utility::set_alien_emissive( 0.2, 1 );
|
|
var_0 maps\mp\alien\_utility::enable_alien_scripted();
|
|
var_0 scragentsetscripted( 1 );
|
|
var_0 scragentsetphysicsmode( "noclip" );
|
|
var_0 scragentsetorientmode( "face angle abs", var_0.angles );
|
|
var_0 scragentsetanimmode( "anim deltas" );
|
|
var_0 thread maps\mp\mp_alien_armory_fx::fx_intro_tunnel_stab();
|
|
var_0 maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "tunnel_intro", 0, "tunnel_intro", "end" );
|
|
var_0 maps\mp\alien\_utility::set_alien_emissive( 0.2, 0 );
|
|
var_0 hide();
|
|
var_0.vignette_death_skip = 1;
|
|
var_0 maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderkilled();
|
|
var_0 suicide();
|
|
}
|
|
|
|
sfx_intro()
|
|
{
|
|
wait 4;
|
|
level.sfx_intro_guard = spawn( "script_origin", ( -2290, -7778, 664 ) );
|
|
level.sfx_intro_guard playsound( "scn_intro_guard" );
|
|
wait 3.3;
|
|
|
|
foreach ( var_1 in level.players )
|
|
var_1 playsound( "scn_intro_spider" );
|
|
|
|
wait 15;
|
|
level.sfx_intro_guard delete();
|
|
}
|
|
|
|
first_spider_fence()
|
|
{
|
|
var_0 = getscriptablearray( "fence_blocker_01", "targetname" );
|
|
var_0[0] setscriptablepartstate( 0, 1 );
|
|
}
|
|
|
|
knockback_players( var_0 )
|
|
{
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
if ( distance( var_2.origin, var_0.origin ) <= 128 )
|
|
{
|
|
var_2 setvelocity( vectornormalize( var_2.origin - var_0.origin ) * 800 );
|
|
var_2 dodamage( var_2.maxhealth / 3, var_0.origin );
|
|
}
|
|
}
|
|
}
|
|
|
|
spider_exit_a_props()
|
|
{
|
|
var_0 = getscriptablearray( "armory_alien_rail_a", "targetname" );
|
|
var_0[0] setscriptablepartstate( 0, 1 );
|
|
var_1 = getscriptablearray( "antenna_retreat_event_a", "targetname" );
|
|
var_1[0] setscriptablepartstate( 0, 1 );
|
|
}
|
|
|
|
spider_entrance_b()
|
|
{
|
|
wait 3;
|
|
level.spider = maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderspawn( ( -1138.05, -2542.5, 565.487 ), ( 0, 0, 0 ) );
|
|
level.spider maps\mp\alien\_utility::set_alien_emissive( 0.2, 1 );
|
|
level.spider maps\mp\alien\_utility::enable_alien_scripted();
|
|
level.spider scragentsetscripted( 1 );
|
|
level.spider scragentsetphysicsmode( "noclip" );
|
|
level.spider scragentsetorientmode( "face angle abs", level.spider.angles );
|
|
level thread maps\mp\mp_alien_armory_fx::fx_spider_entrance_b();
|
|
level.spider scragentsetanimmode( "anim deltas" );
|
|
var_0 = getscriptablearray( "antenna_event_02", "targetname" );
|
|
var_0[0] setscriptablepartstate( 0, 2 );
|
|
var_1 = getscriptablearray( "armory_alien_rail_b", "targetname" );
|
|
var_1[0] setscriptablepartstate( 0, 2 );
|
|
level.spider maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "retreat", 1, "retreat", "end" );
|
|
}
|
|
|
|
spider_posture_b()
|
|
{
|
|
|
|
}
|
|
|
|
spider_exit_b()
|
|
{
|
|
level.spider maps\mp\alien\_utility::enable_alien_scripted();
|
|
level.spider scragentsetscripted( 1 );
|
|
level.spider scragentsetphysicsmode( "noclip" );
|
|
level.spider scragentsetorientmode( "face angle abs", level.spider.angles );
|
|
var_0 = getscriptablearray( "antenna_event_02", "targetname" );
|
|
var_0[0] setscriptablepartstate( 0, 3 );
|
|
var_1 = getscriptablearray( "armory_alien_rail_b", "targetname" );
|
|
var_1[0] setscriptablepartstate( 0, 3 );
|
|
level thread maps\mp\mp_alien_armory_fx::fx_spider_exit_b();
|
|
level.spider scragentsetanimmode( "anim deltas" );
|
|
level.spider maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "retreat", 2, "retreat", "end" );
|
|
level.spider.vignette_death_skip = 1;
|
|
level.spider suicide();
|
|
}
|
|
|
|
spider_entrance_c()
|
|
{
|
|
if ( !isdefined( level.jumped_to_final_boss ) || level.jumped_to_final_boss == 0 )
|
|
{
|
|
thread cross_armory_exit();
|
|
common_scripts\utility::flag_wait( "start_spider_encounter" );
|
|
}
|
|
|
|
wait 10;
|
|
level.spider = maps\mp\agents\alien\alien_spider\_alien_spider::alienspiderspawn( ( -300, 3140, 967 ), ( 0, 0, 0 ) );
|
|
level.spider maps\mp\alien\_utility::set_alien_emissive( 0.2, 1 );
|
|
level.spider maps\mp\alien\_utility::enable_alien_scripted();
|
|
level.spider scragentsetscripted( 1 );
|
|
level.spider scragentsetphysicsmode( "noclip" );
|
|
level.spider scragentsetorientmode( "face angle abs", level.spider.angles );
|
|
thread maps\mp\mp_alien_armory_fx::fx_spider_impact_big();
|
|
level.spider scragentsetanimmode( "anim deltas" );
|
|
wait 0.1;
|
|
level.spider maps\mp\agents\_scriptedagents::playanimnuntilnotetrack( "retreat", 3, "retreat", "end" );
|
|
level.spider maps\mp\alien\_utility::disable_alien_scripted();
|
|
level.spider scragentsetscripted( 0 );
|
|
level.spider maps\mp\alien\_utility::set_alien_emissive( 0.2, 0 );
|
|
}
|
|
|
|
intro_music()
|
|
{
|
|
for (;;)
|
|
{
|
|
level waittill( "connected", var_0 );
|
|
var_0 thread intro_music_play();
|
|
}
|
|
}
|
|
|
|
intro_music_play()
|
|
{
|
|
self waittill( "spawned_player" );
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
if ( common_scripts\utility::flag( "alien_music_playing" ) )
|
|
{
|
|
var_1 stoplocalsound( "mp_suspense_01" );
|
|
var_1 stoplocalsound( "mp_suspense_02" );
|
|
var_1 stoplocalsound( "mp_suspense_03" );
|
|
var_1 stoplocalsound( "mp_suspense_04" );
|
|
var_1 stoplocalsound( "mp_suspense_05" );
|
|
var_1 stoplocalsound( "mp_suspense_06" );
|
|
var_1 stoplocalsound( "us_spawn_music" );
|
|
var_1 stoplocalsound( "mus_alien_newwave" );
|
|
common_scripts\utility::flag_clear( "alien_music_playing" );
|
|
}
|
|
|
|
if ( !common_scripts\utility::flag( "exfil_music_playing" ) )
|
|
wait 0.01;
|
|
|
|
level thread maps\mp\alien\_music_and_dialog::play_alien_music( "mus_alien_dlc1_armory_intro" );
|
|
wait 0.1;
|
|
}
|
|
}
|
|
|
|
intro_vo()
|
|
{
|
|
wait 4;
|
|
}
|
|
|
|
godfather_hive_explain_vo()
|
|
{
|
|
wait 2;
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_god_2_1_1" );
|
|
wait 12;
|
|
play_sound_on_player( "armory_god_2_1_2" );
|
|
wait 9;
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
godfather_area_1_first()
|
|
{
|
|
delay_vo_until_all_clear();
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_god_2_2_1" );
|
|
wait 10;
|
|
play_sound_on_player( "armory_god_2_2_2" );
|
|
wait 4;
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
thread security_room_vo();
|
|
}
|
|
|
|
godfather_area_1_midway()
|
|
{
|
|
|
|
}
|
|
|
|
area_1_final_hive()
|
|
{
|
|
var_0 = distance( level.drill.origin, ( -3653, -6322, 859 ) );
|
|
|
|
if ( var_0 >= 256 )
|
|
{
|
|
delay_vo_until_all_clear( 10 );
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_god_2_3_1" );
|
|
wait 7.75;
|
|
play_sound_on_player( "armory_god_2_3_2" );
|
|
wait 2.75;
|
|
play_sound_on_player( "armory_god_2_3_3" );
|
|
wait 5;
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
}
|
|
|
|
post_first_boss_vo()
|
|
{
|
|
delay_vo_until_all_clear();
|
|
wait 5;
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_god_5_1" );
|
|
wait 11.25;
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
pre_second_boss_vo()
|
|
{
|
|
delay_vo_until_all_clear();
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_cross_5_3" );
|
|
wait 6.8;
|
|
play_sound_on_player( "armory_cross_5_5" );
|
|
wait 2.5;
|
|
play_sound_on_player( "armory_cross_5_6" );
|
|
wait 5.2;
|
|
play_sound_on_player( "armory_cross_5_6_1" );
|
|
wait 2;
|
|
thread cross_office_vo();
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
cross_office_vo()
|
|
{
|
|
var_0 = getent( "cross_office_VO", "targetname" );
|
|
var_0 waittill( "trigger" );
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_cross_6_2" );
|
|
wait 5.5;
|
|
play_sound_on_player( "armory_cross_6_3" );
|
|
wait 2.25;
|
|
play_sound_on_player( "armory_cross_6_4" );
|
|
wait 2.5;
|
|
play_sound_on_player( "armory_cross_6_8" );
|
|
wait 3.5;
|
|
var_0 delete();
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
lab_scene_vo( var_0, var_1 )
|
|
{
|
|
wait 0.8;
|
|
var_0 playsound( "armory_cross_7_6" );
|
|
thread lab_scene_music();
|
|
wait 1.2;
|
|
var_0 playsound( "armory_cross_7_7" );
|
|
wait 6.46;
|
|
var_0 playsound( "armory_cross_7_8" );
|
|
wait 9.4;
|
|
var_0 playsound( "armory_cross_7_9" );
|
|
wait 3.3;
|
|
var_1 playsound( "armory_arc_7_10" );
|
|
wait 5;
|
|
}
|
|
|
|
lab_scene_music()
|
|
{
|
|
wait 1.2;
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
if ( common_scripts\utility::flag( "alien_music_playing" ) )
|
|
{
|
|
var_1 stoplocalsound( "mp_suspense_01" );
|
|
var_1 stoplocalsound( "mp_suspense_02" );
|
|
var_1 stoplocalsound( "mp_suspense_03" );
|
|
var_1 stoplocalsound( "mp_suspense_04" );
|
|
var_1 stoplocalsound( "mp_suspense_05" );
|
|
var_1 stoplocalsound( "mp_suspense_06" );
|
|
var_1 stoplocalsound( "mus_alien_newwave" );
|
|
common_scripts\utility::flag_clear( "alien_music_playing" );
|
|
}
|
|
|
|
level thread maps\mp\alien\_music_and_dialog::play_alien_music( "mus_alien_dlc1_scn_cross" );
|
|
}
|
|
}
|
|
|
|
final_hive_vo()
|
|
{
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
play_sound_on_player( "armory_god_8_1" );
|
|
thread play_third_spider_music();
|
|
wait 4.75;
|
|
play_sound_on_player( "armory_god_8_2" );
|
|
wait 4;
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
play_third_spider_music()
|
|
{
|
|
wait 3;
|
|
|
|
foreach ( var_1 in level.players )
|
|
{
|
|
if ( common_scripts\utility::flag( "alien_music_playing" ) )
|
|
{
|
|
var_1 stoplocalsound( "mp_suspense_01" );
|
|
var_1 stoplocalsound( "mp_suspense_02" );
|
|
var_1 stoplocalsound( "mp_suspense_03" );
|
|
var_1 stoplocalsound( "mp_suspense_04" );
|
|
var_1 stoplocalsound( "mp_suspense_05" );
|
|
var_1 stoplocalsound( "mp_suspense_06" );
|
|
var_1 stoplocalsound( "mus_alien_newwave" );
|
|
common_scripts\utility::flag_clear( "alien_music_playing" );
|
|
}
|
|
|
|
if ( !common_scripts\utility::flag( "exfil_music_playing" ) )
|
|
level thread maps\mp\alien\_music_and_dialog::play_alien_music( "mus_alien_dlc1_archer_exfil" );
|
|
}
|
|
}
|
|
|
|
redshirt_vo()
|
|
{
|
|
var_0 = spawn( "script_origin", ( -2304, -7666, 652 ) );
|
|
wait 3.9;
|
|
level notify( "spawn_intro_drill" );
|
|
var_0 playsound( "armory_grd_1_1" );
|
|
wait 2.63;
|
|
var_0 playsound( "armory_grd_1_2" );
|
|
wait 4.47;
|
|
var_0 playsound( "armory_grd_1_3" );
|
|
thread spider_intro_screen_shake( var_0 );
|
|
wait 2.56;
|
|
var_0 playsound( "armory_grd_1_4" );
|
|
common_scripts\utility::flag_set( "intro_sequence_complete" );
|
|
wait 4;
|
|
spider_intro_screen_shake_exit( var_0 );
|
|
var_0 delete();
|
|
}
|
|
|
|
spider_intro_screen_shake( var_0 )
|
|
{
|
|
var_1 = 0.1;
|
|
|
|
for ( var_2 = 0; var_2 < 6; var_2++ )
|
|
{
|
|
earthquake( var_1, 0.4, var_0.origin, 768 );
|
|
playrumbleonposition( "grenade_rumble", var_0.origin );
|
|
var_1 = var_1 + 0.05;
|
|
|
|
if ( var_2 > 1 )
|
|
common_scripts\utility::exploder( 120 );
|
|
|
|
wait 0.6;
|
|
}
|
|
}
|
|
|
|
spider_intro_screen_shake_exit( var_0 )
|
|
{
|
|
var_1 = 0.4;
|
|
|
|
for ( var_2 = 0; var_2 < 6; var_2++ )
|
|
{
|
|
earthquake( var_1, 0.4, var_0.origin, 768 );
|
|
playrumbleonposition( "grenade_rumble", var_0.origin );
|
|
var_1 = var_1 - 0.05;
|
|
|
|
if ( var_2 < 3 )
|
|
common_scripts\utility::exploder( 120 );
|
|
|
|
wait 0.6;
|
|
}
|
|
}
|
|
|
|
post_final_boss_vo()
|
|
{
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
wait 11.75;
|
|
play_sound_on_player( "armory_god_9_1" );
|
|
wait 5;
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
cross_nags( var_0 )
|
|
{
|
|
self endon( "stop_nags" );
|
|
wait 0.7;
|
|
var_0 playsound( "armory_cross_7_1" );
|
|
wait 3.26;
|
|
var_0 playsound( "armory_cross_7_2" );
|
|
wait 2;
|
|
var_0 playsound( "armory_cross_7_3" );
|
|
wait 1.57;
|
|
var_0 playsound( "armory_cross_7_4" );
|
|
wait 1.23;
|
|
var_0 playsound( "armory_cross_7_5" );
|
|
}
|
|
|
|
security_room_vo()
|
|
{
|
|
var_0 = getent( "security_room_vo_trigger", "targetname" );
|
|
var_0 waittill( "trigger" );
|
|
thread maps\mp\alien\_music_and_dialog::pause_vo_system( level.players );
|
|
var_1 = spawn( "script_origin", ( -3354, -6616, 808 ) );
|
|
var_1 playsound( "armory_arc_3_1" );
|
|
wait 6.5;
|
|
var_1 playsound( "armory_god_3_2" );
|
|
wait 1.5;
|
|
var_1 playsound( "armory_arc_3_3" );
|
|
wait 4.5;
|
|
var_1 playsound( "armory_god_3_4" );
|
|
wait 4.5;
|
|
var_1 playsound( "armory_arc_3_5" );
|
|
wait 5;
|
|
level notify( "cinematic_end" );
|
|
var_1 delete();
|
|
thread maps\mp\alien\_music_and_dialog::unpause_vo_system( level.players );
|
|
}
|
|
|
|
delay_vo_until_all_clear( var_0 )
|
|
{
|
|
if ( !isdefined( var_0 ) )
|
|
var_0 = 30;
|
|
|
|
var_1 = gettime();
|
|
var_2 = var_1 - var_0 * 1000;
|
|
|
|
while ( var_2 <= var_1 )
|
|
{
|
|
var_2 = var_1 - var_0 * 1000;
|
|
var_3 = 0;
|
|
|
|
foreach ( var_5 in level.agentarray )
|
|
{
|
|
if ( isdefined( var_5 ) )
|
|
{
|
|
if ( isalive( var_5 ) )
|
|
{
|
|
if ( var_5.team == "axis" && isdefined( var_5.alien_type ) && var_5.alien_type != "spider" )
|
|
{
|
|
var_3 = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ( var_3 == 0 )
|
|
return;
|
|
|
|
wait 0.5;
|
|
}
|
|
}
|
|
|
|
play_vignette_vo( var_0, var_1, var_2, var_3, var_4 )
|
|
{
|
|
if ( !isdefined( var_1 ) )
|
|
var_1 = "high";
|
|
|
|
if ( !isdefined( var_2 ) )
|
|
var_2 = 30;
|
|
|
|
if ( !isdefined( var_3 ) )
|
|
var_3 = 0;
|
|
|
|
if ( !isdefined( var_4 ) )
|
|
var_4 = 0.25;
|
|
|
|
foreach ( var_6 in level.players )
|
|
{
|
|
var_6 maps\mp\alien\_music_and_dialog::play_vo_on_player( var_0, var_1, var_2, var_3, var_4 );
|
|
break;
|
|
}
|
|
}
|
|
|
|
gate_check()
|
|
{
|
|
|
|
}
|
|
|
|
spawn_model( var_0, var_1, var_2, var_3 )
|
|
{
|
|
var_4 = spawn( "script_model", ( 0, 0, 0 ) );
|
|
var_4 setmodel( var_0 );
|
|
var_4.origin = var_1 gettagorigin( var_2 );
|
|
var_4.angles = var_1 gettagangles( var_2 ) + var_3;
|
|
var_4 linkto( var_1, var_2 );
|
|
return var_4;
|
|
}
|
|
|
|
lab_scene_marker()
|
|
{
|
|
var_0 = "waypoint_alien_blocker";
|
|
var_1 = 14;
|
|
var_2 = 14;
|
|
var_3 = 0.5;
|
|
var_4 = ( -906, -1570, 780 );
|
|
var_5 = 49;
|
|
var_6 = 256;
|
|
var_7 = 100;
|
|
var_8 = maps\mp\alien\_hud::make_waypoint( var_0, var_1, var_2, var_3, var_4 );
|
|
var_9 = spawn( "trigger_radius", var_4, 0, var_6, var_7 );
|
|
var_9 thread watch_trigger_by_player();
|
|
var_9 common_scripts\utility::waittill_any_timeout( var_5, "trigger_by_player" );
|
|
var_9 delete();
|
|
var_8 destroy();
|
|
}
|
|
|
|
watch_trigger_by_player()
|
|
{
|
|
self endon( "death" );
|
|
level endon( "game_ended" );
|
|
common_scripts\utility::waitframe();
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "trigger", var_0 );
|
|
|
|
if ( isplayer( var_0 ) )
|
|
break;
|
|
}
|
|
|
|
self notify( "trigger_by_player" );
|
|
}
|
|
|
|
handle_vo_foley( var_0, var_1, var_2 )
|
|
{
|
|
wait( var_2 );
|
|
var_0 playsound( var_1 );
|
|
}
|
|
|
|
pre_set_scriptables()
|
|
{
|
|
var_0 = getscriptablearray( "armory_alien_rail_a", "targetname" );
|
|
var_0[0] setscriptablepartstate( 0, 4 );
|
|
var_1 = getscriptablearray( "antenna_retreat_event_a", "targetname" );
|
|
var_1[0] setscriptablepartstate( 0, 4 );
|
|
}
|
|
|
|
queen_hole_marker()
|
|
{
|
|
var_0 = "waypoint_alien_blocker";
|
|
var_1 = 14;
|
|
var_2 = 14;
|
|
var_3 = 0.5;
|
|
var_4 = ( -3271, 135, 841 );
|
|
var_5 = 49;
|
|
var_6 = 256;
|
|
var_7 = 100;
|
|
var_8 = maps\mp\alien\_hud::make_waypoint( var_0, var_1, var_2, var_3, var_4 );
|
|
var_9 = spawn( "trigger_radius", var_4, 0, var_6, var_7 );
|
|
var_9 thread watch_trigger_by_player();
|
|
var_9 common_scripts\utility::waittill_any_timeout( var_5, "trigger_by_player" );
|
|
var_9 delete();
|
|
var_8 destroy();
|
|
}
|
|
|
|
play_sound_on_player( var_0 )
|
|
{
|
|
foreach ( var_2 in level.players )
|
|
{
|
|
if ( isdefined( var_2 ) )
|
|
{
|
|
var_2 playsound( var_0 );
|
|
break;
|
|
}
|
|
}
|
|
}
|