iw6-scripts/maps/mp/alien/_music_and_dialog_dlc.gsc
2024-02-13 13:20:49 +01:00

971 lines
23 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
dlc_vo_init_on_player_spawn()
{
if ( !isdefined( level.use_dlc_vo ) )
{
level.use_dlc_vo = 1;
level thread vo_listener_init();
level thread check_for_drill_planted();
level thread check_for_direction_vo();
}
thread vo_listener_player_init();
thread check_for_reloading();
thread check_for_last_stand();
thread check_for_grenade_throw();
}
vo_listener_init()
{
var_0 = [];
var_0["drill_repair"] = ::playvofordrillrepair;
var_0["drill_repaired"] = ::playvofordrillrepaircomplete;
var_0["drill_planted"] = ::playvofordrillonline;
var_0["inform_explosives"] = ::playvoforexplosives;
var_0["inform_reloading_generic"] = ::playvoforreloading;
var_0["inform_shield"] = ::playvoforriotshield;
var_0["online_mk32"] = ::playvoformk32;
var_0["online_vulture"] = ::playvoforvulture;
var_0["ready_incendiaryrounds"] = ::playvoforincendiaryammo;
var_0["ready_explosiverounds"] = ::playvoforexplosiveammo;
var_0["inbound_brute"] = ::playvoforbrutespawn;
var_0["reaction_casualty_generic"] = ::player_casualty_vo;
var_0["direction_vo"] = ::playdirectionvo;
var_0["to_gate"] = ::playtogatevo;
var_0["tesla_generator_basic"] = ::playvofortesla;
var_0["tesla_generator_med"] = ::playvofortesla;
var_0["tesla_generator_adv"] = ::playvofortesla;
var_0["pipe_bomb"] = ::playvoforpipebomb;
var_0["sticky_flare"] = ::playvoforstickyflare;
var_0["pet_trap"] = ::playvoforhypnotrap;
var_0["venom_basic"] = ::playvoforvenom;
var_0["venom_basic_alt"] = ::playvoforvenom;
var_0["venom_lightning"] = ::playvoforvenom;
var_0["venom_fire"] = ::playvoforvenom;
var_0["venom_turret"] = ::playvoforvenom;
if ( level.script == "mp_alien_armory" )
{
var_0["spider_vo"] = ::playspidervo;
var_0["spider_retreat"] = ::playspiderretreatvo;
}
if ( level.script == "mp_alien_beacon" )
{
var_0["open_door_move"] = ::playvofordooropen;
var_0["inbound_seeder"] = ::playvoforseederspawn;
}
if ( level.script == "mp_alien_dlc3" )
{
var_0["inbound_mammoth"] = ::playvoformammothspawn;
var_0["phantom_backup"] = ::playvoformammothpound;
var_0["warn_dig"] = ::playvoformammothburrow;
var_0["warn_underground"] = ::playvoformammothunderground;
var_0["warn_emerge"] = ::playvoformammothemerge;
var_0["inbound_gargoyle"] = ::playvoforgargoylespawn;
var_0["inbound_bomber"] = ::playvoforbomberspawn;
var_0["bomber_attack"] = ::playvoforbomberattack;
}
if ( level.script == "mp_alien_last" )
{
var_0["inbound_mammoth"] = ::playvoformammothspawn;
var_0["phantom_backup"] = ::playvoformammothpound;
var_0["warn_dig"] = ::playvoformammothburrow;
var_0["warn_underground"] = ::playvoformammothunderground;
var_0["warn_emerge"] = ::playvoformammothemerge;
var_0["inbound_gargoyle"] = ::playvoforgargoylespawn;
var_0["inbound_bomber"] = ::playvoforbomberspawn;
var_0["bomber_attack"] = ::playvoforbomberattack;
}
if ( isdefined( level.level_specific_vo_callouts ) )
var_0 = [[ level.level_specific_vo_callouts ]]( var_0 );
for (;;)
{
level waittill( "dlc_vo_notify", var_1, var_2 );
if ( isdefined( var_0[var_1] ) )
{
if ( isdefined( var_2 ) )
{
level thread [[ var_0[var_1] ]]( var_2 );
continue;
}
level thread [[ var_0[var_1] ]]();
}
}
}
vo_listener_player_init()
{
self endon( "disconnect" );
self endon( "death" );
var_0 = [];
var_0["intel_recovered"] = ::playvoforintelrecovered;
var_0["elite_killed"] = ::playvoforneutralizedalien;
var_0["spitter_killed"] = ::playvoforneutralizedalien;
var_0["locust_killed"] = ::playvoforneutralizedalien;
var_0["gargoyle_killed"] = ::playvoforkilledgargoyle;
var_0["pain"] = ::player_dlc_pain_vo;
var_0["bleeding_out"] = ::playvoforlaststand;
var_0["weapon"] = ::playvoforweaponcraftingpiece;
var_0["grenade"] = ::playvoforcraftingpiece;
var_0["tesla"] = ::playvoforcraftingpiece;
var_0["trap"] = ::playvoforcraftingpiece;
for (;;)
{
self waittill( "dlc_vo_notify", var_1, var_2 );
if ( isdefined( var_0[var_1] ) )
{
if ( isdefined( var_2 ) )
{
level thread [[ var_0[var_1] ]]( var_2 );
continue;
}
level thread [[ var_0[var_1] ]]();
}
}
}
playvofordrillrepair( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( !isdefined( var_0 ) || !isalive( var_0 ) || var_0 maps\mp\alien\_utility::is_in_laststand() )
return;
if ( level.script == "mp_alien_last" )
{
level notify( "dlc_vo_notify", "last_vo", "conduit_repairing" );
return;
}
var_1 = var_0.vo_prefix + "drill_repair";
var_0 play_vo_on_player( var_1, undefined, 2 );
}
playvofordrillrepaircomplete( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( !isdefined( var_0 ) || !isalive( var_0 ) || var_0 maps\mp\alien\_utility::is_in_laststand() )
return;
if ( level.script == "mp_alien_last" )
{
level notify( "dlc_vo_notify", "last_vo", "conduit_repaired" );
return;
}
var_1 = var_0.vo_prefix + "drill_repaired";
var_0 play_vo_on_player( var_1, undefined, 2 );
}
playvofordrillonline( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( !isdefined( var_0 ) || !isalive( var_0 ) || var_0 maps\mp\alien\_utility::is_in_laststand() )
return;
if ( level.script == "mp_alien_last" )
{
level notify( "dlc_vo_notify", "last_vo", "conduit_start" );
return;
}
var_1 = var_0.vo_prefix + "online_drill";
var_0 play_vo_on_player( var_1, undefined, 5 );
}
playvoforexplosives( var_0 )
{
var_1 = var_0.vo_prefix + "inform_explosives";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
var_1 = var_0.vo_prefix + "equip_ammo_solo";
}
var_0 thread play_vo_on_player( var_1 );
}
playvoforreloading( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
var_1 = 60000;
var_2 = gettime();
if ( !isdefined( var_0.next_reload_vo_time ) )
var_0.next_reload_vo_time = var_2 + randomintrange( var_1, var_1 + 2000 );
else if ( var_2 < var_0.next_reload_vo_time )
return;
var_3 = var_0.vo_prefix + "inform_reloading_generic";
var_0 thread play_vo_on_player( var_3, undefined, 1 );
var_0.next_reload_vo_time = var_2 + randomintrange( var_1, var_1 + 1500 );
}
check_for_reloading()
{
self endon( "disconnect" );
self endon( "death" );
for (;;)
{
self waittill( "reload_start" );
var_0 = self getcurrentweapon();
var_1 = weaponclipsize( var_0 );
var_2 = self getcurrentweaponclipammo();
if ( var_2 < var_1 / 3 )
level notify( "dlc_vo_notify", "inform_reloading_generic", self );
}
}
check_for_grenade_throw()
{
self endon( "disconnect" );
self endon( "death" );
for (;;)
{
self waittill( "grenade_fire", var_0, var_1 );
if ( var_1 == "iw6_aliendlc21_mp" )
level notify( "dlc_vo_notify", "sticky_flare", self );
if ( var_1 == "iw6_aliendlc22_mp" )
level notify( "dlc_vo_notify", "pipe_bomb", self );
}
}
playvoforriotshield( var_0 )
{
var_1 = var_0.vo_prefix + "inform_shield";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
var_1 = var_0.vo_prefix + "equip_ammo_solo";
}
var_0 thread play_vo_on_player( var_1 );
}
playvofortesla( var_0 )
{
var_1 = var_0.vo_prefix + "tesla_live";
var_0 thread play_vo_on_player( var_1 );
}
playvoforpipebomb( var_0 )
{
var_1 = var_0.vo_prefix + "pipebomb_live";
if ( randomint( 100 ) > 20 )
return;
var_0 thread play_vo_on_player( var_1 );
}
playvoforstickyflare( var_0 )
{
var_1 = var_0.vo_prefix + "sticky_live";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
}
var_0 thread play_vo_on_player( var_1 );
}
playvoforhypnotrap( var_0 )
{
var_1 = var_0.vo_prefix + "hypno_live";
var_0 thread play_vo_on_player( var_1 );
}
playvoforvenom( var_0 )
{
var_1 = var_0.vo_prefix + "venom_live";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
}
var_0 thread play_vo_on_player( var_1 );
}
playvoforcraftingpiece( var_0 )
{
var_1 = var_0.vo_prefix + "pickup_crafting";
var_2 = 30000;
var_3 = gettime();
if ( !isdefined( var_0.next_crafting_vo_time ) )
var_0.next_crafting_vo_time = var_3 + randomintrange( var_2, var_2 + 2000 );
else if ( var_3 < var_0.next_crafting_vo_time )
return;
var_0 play_vo_on_player( var_1, undefined, undefined, undefined, undefined, 1 );
var_0.next_crafting_vo_time = var_3 + randomintrange( var_2, var_2 + 1500 );
}
playvoforweaponcraftingpiece( var_0 )
{
var_1 = var_0.vo_prefix + "pickup_weapon";
var_2 = 30000;
var_3 = gettime();
if ( !isdefined( var_0.next_crafting_vo_time ) )
var_0.next_crafting_vo_time = var_3 + randomintrange( var_2, var_2 + 2000 );
else if ( var_3 < var_0.next_crafting_vo_time )
return;
var_0 play_vo_on_player( var_1, undefined, undefined, undefined, undefined, 1 );
var_0.next_crafting_vo_time = var_3 + randomintrange( var_2, var_2 + 1500 );
}
playvoforintelrecovered( var_0 )
{
wait 0.25;
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( !isdefined( var_0 ) || !isalive( var_0 ) )
return;
var_1 = var_0.vo_prefix + "intel_recovered";
var_0 play_vo_on_player( var_1 );
}
playvoformk32( var_0 )
{
var_1 = var_0.vo_prefix + "online_mk32";
var_0 play_vo_on_player( var_1 );
}
playvoforvulture( var_0 )
{
var_1 = var_0.vo_prefix + "online_vulture";
var_0 play_vo_on_player( var_1 );
}
playvoforincendiaryammo( var_0 )
{
var_1 = var_0.vo_prefix + "ready_incendiaryrounds";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
var_1 = var_0.vo_prefix + "equip_ammo_solo";
}
var_0 thread play_vo_on_player( var_1 );
}
playvoforexplosiveammo( var_0 )
{
var_1 = var_0.vo_prefix + "ready_explosiverounds";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
var_1 = var_0.vo_prefix + "equip_ammo_solo";
}
var_0 thread play_vo_on_player( var_1 );
}
playvoforbrutespawn( var_0 )
{
wait 3;
if ( !isdefined( var_0 ) )
return;
if ( randomint( 100 ) > 10 )
return;
var_1 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_1.size < 1 )
return;
var_2 = var_1[0];
var_3 = var_2.vo_prefix + "inbound_brute";
var_2 play_vo_on_player( var_3 );
}
playvoforseederspawn( var_0 )
{
wait 3;
if ( !isdefined( var_0 ) )
return;
if ( randomint( 100 ) > 50 )
return;
var_1 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_1.size < 1 )
return;
var_2 = var_1[0];
var_3 = var_2.vo_prefix + "warn_seeder";
var_2 play_vo_on_player( var_3 );
}
playvoformammothspawn( var_0 )
{
wait 3;
if ( !isdefined( var_0 ) )
return;
var_1 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_1.size < 1 )
return;
var_2 = var_1[0];
var_3 = var_2.vo_prefix + "warn_mammoth";
var_2 play_vo_on_player( var_3, undefined, 5 );
}
playvoformammothpound( var_0 )
{
playvoformammoth( "phantom_backup", var_0 );
}
playvoformammothburrow( var_0 )
{
playvoformammoth( "warn_dig", var_0 );
}
playvoformammothunderground( var_0 )
{
playvoformammoth( "warn_underground", var_0 );
}
playvoformammothemerge( var_0 )
{
playvoformammoth( "warn_emerge", var_0 );
}
playvoformammoth( var_0, var_1 )
{
if ( !isdefined( var_1 ) )
return;
if ( !isdefined( var_0 ) )
return;
var_2 = 15000;
var_3 = gettime();
if ( !isdefined( level.next_mammoth_vo_time ) )
level.next_mammoth_vo_time = var_3 + randomintrange( var_2, var_2 + 2000 );
else if ( var_3 < level.next_mammoth_vo_time )
return;
if ( var_0 == "warn_dig" && randomint( 2 ) == 0 )
return;
var_4 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_4.size < 1 )
return;
var_5 = var_4[0];
if ( !soundexists( var_5.vo_prefix + var_0 ) )
{
iprintln( "mammoth vo: " + var_5.vo_prefix + var_0 );
return;
}
var_6 = var_5.vo_prefix + var_0;
level.next_mammoth_vo_time = var_3 + randomintrange( var_2, var_2 + 1500 );
var_5 play_vo_on_player( var_6, undefined, 3 );
}
playvoforgargoylespawn( var_0 )
{
wait 3;
if ( !isdefined( var_0 ) )
return;
if ( randomint( 100 ) > 50 )
return;
var_1 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_1.size < 1 )
return;
var_2 = var_1[0];
var_3 = var_2.vo_prefix + "spawn_gargoyle";
var_2 play_vo_on_player( var_3 );
}
playvoforbomberspawn( var_0 )
{
wait 3;
if ( !isdefined( var_0 ) )
return;
var_1 = 5000;
var_2 = gettime();
if ( !isdefined( level.next_bomber_spawn_vo_time ) )
level.next_bomber_spawn_vo_time = var_2 + randomintrange( var_1, var_1 + 2000 );
else if ( var_2 < level.next_bomber_spawn_vo_time )
return;
var_3 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_3.size < 1 )
return;
var_4 = var_3[0];
var_5 = [ "spotted_bats", "spawn_bats" ];
var_6 = var_4.vo_prefix + common_scripts\utility::random( var_5 );
level.next_bomber_spawn_vo_time = var_2 + randomintrange( var_1, var_1 + 1500 );
var_4 play_vo_on_player( var_6 );
}
playvoforbomberattack( var_0 )
{
if ( !isdefined( var_0 ) )
return;
var_1 = 15000;
var_2 = gettime();
if ( !isdefined( level.next_bomber_vo_time ) )
level.next_bomber_vo_time = var_2 + randomintrange( var_1, var_1 + 2000 );
else if ( var_2 < level.next_bomber_vo_time )
return;
if ( randomint( 100 ) > 50 )
return;
var_3 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_3.size < 1 )
return;
var_4 = var_3[0];
var_5 = var_4.vo_prefix + "warn_bats";
level.next_bomber_vo_time = var_2 + randomintrange( var_1, var_1 + 1500 );
var_4 play_vo_on_player( var_5, undefined, 1 );
}
playvoforneutralizedalien( var_0 )
{
var_1 = var_0.vo_prefix + "neutralized_alien";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
}
var_0 thread play_vo_on_player( var_1, undefined, 3 );
}
playvoforkilledgargoyle( var_0 )
{
var_1 = var_0.vo_prefix + "defeat_gargoyle";
if ( maps\mp\alien\_utility::isplayingsolo() )
{
if ( randomint( 100 ) > 50 )
return;
}
var_0 thread play_vo_on_player( var_1, undefined, 3 );
}
playvofordooropen( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( randomint( 100 ) > 50 )
return;
var_1 = 0;
var_2 = 10;
while ( maps\mp\agents\_agent_utility::getactiveagentsoftype( "alien" ).size > 0 )
{
wait 1;
var_1++;
if ( var_1 > var_2 )
return;
}
var_3 = maps\mp\alien\_utility::get_array_of_valid_players( 1, var_0.origin );
if ( var_3.size < 1 )
return;
var_4 = var_3[0];
var_5 = var_4.vo_prefix + "open_door_move";
var_4 play_vo_on_player( var_5, undefined, 5 );
}
player_dlc_pain_vo( var_0 )
{
var_1 = 1500;
var_2 = gettime();
if ( level.script == "mp_alien_last" && maps\mp\alien\_utility::is_true( var_0.vo_system_playing_vo ) )
return;
if ( !isdefined( var_0.next_pain_vo_time ) )
var_0.next_pain_vo_time = var_2 + randomintrange( var_1, var_1 + 2000 );
else if ( var_2 < var_0.next_pain_vo_time )
return;
var_3 = var_0.vo_prefix + "pain";
if ( soundexists( var_0.vo_prefix + "plr_" + "pain" ) )
var_0 playlocalsound( var_0.vo_prefix + "plr_" + "pain" );
else
var_0 playlocalsound( var_3 );
var_0.next_pain_vo_time = var_2 + randomintrange( var_1, var_1 + 1500 );
}
is_vo_system_playing()
{
foreach ( var_1 in level.players )
{
if ( maps\mp\alien\_utility::is_true( var_1.vo_system_playing_vo ) )
return 1;
}
return 0;
}
remove_drill_vo_once_repaired()
{
for (;;)
{
while ( !isdefined( level.drill ) )
wait 0.1;
level.drill waittill( "drill_repaired" );
foreach ( var_1 in level.players )
{
var_1 thread remove_drill_vo_on_player( "drill_hot" );
var_1 thread remove_drill_vo_on_player( "drill_repair" );
}
}
}
remove_drill_vo_once_complete()
{
for (;;)
{
level waittill( "drill_planted" );
level.drill waittill( "drill_complete" );
foreach ( var_1 in level.players )
{
var_1 thread remove_drill_vo_on_player( "drill_attacked" );
var_1 thread remove_drill_vo_on_player( "drill_repaired" );
var_1 thread remove_drill_vo_on_player( "drill_halfway" );
}
}
}
remove_drill_vo_on_player( var_0 )
{
foreach ( var_3, var_2 in level.alien_vo_priority_level )
maps\mp\alien\_music_and_dialog::remove_vo_data( var_0, var_2 );
}
player_casualty_vo( var_0 )
{
var_1 = maps\mp\alien\_utility::get_array_of_valid_players();
var_1 = common_scripts\utility::array_remove( var_1, var_0 );
if ( var_1.size < 1 )
return;
var_0 = var_1[0];
var_2 = var_0.vo_prefix + "reaction_casualty_generic";
var_0 play_vo_on_player( var_2, undefined, 1 );
}
playtogatevo()
{
level endon( "stop_dlc_vo_notify_to_gate" );
wait 20;
var_0 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_0.size < 1 )
return;
var_1 = var_0[0];
var_2 = var_1.vo_prefix + "to_gate";
var_1 play_vo_on_player( var_2 );
}
playvoforlaststand( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
var_1 = var_0.vo_prefix + "last_stand";
var_0 thread play_vo_on_player( var_1, undefined, 1 );
}
play_vo_on_player( var_0, var_1, var_2, var_3, var_4, var_5 )
{
maps\mp\alien\_music_and_dialog::play_vo_on_player( var_0, var_1, var_2, var_3, var_4, var_5 );
}
check_for_last_stand()
{
self endon( "disconnect" );
self endon( "death" );
for (;;)
{
self waittill( "last_stand" );
downed_sequence_vo_handler();
}
}
check_for_drill_planted()
{
for (;;)
{
level waittill( "drill_planted", var_0 );
level notify( "dlc_vo_notify", "drill_planted", var_0 );
}
}
downed_sequence_vo_handler()
{
self endon( "disconnect" );
self endon( "death" );
self endon( "revive" );
wait 4.0;
level notify( "dlc_vo_notify", "reaction_casualty_generic", self );
wait 10.0;
while ( self.being_revived )
wait 0.1;
self notify( "dlc_vo_notify", "bleeding_out", self );
wait 8.0;
while ( self.being_revived )
wait 0.1;
self notify( "dlc_vo_notify", "bleeding_out", self );
}
playdirectionvo( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( !isdefined( var_0 ) )
return;
var_1 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_1.size < 1 )
return;
var_2 = var_1[0];
var_3 = 10000;
var_4 = gettime();
var_5 = 0;
if ( !isdefined( level.next_direction_vo_time ) )
level.next_direction_vo_time = var_4 + randomintrange( var_3, var_3 + 2000 );
else if ( var_4 < level.next_direction_vo_time )
return;
if ( !isdefined( level.last_direction_vo ) || level.last_direction_vo != var_0 )
{
level.last_direction_vo = var_0;
var_5 = 0;
}
else if ( level.last_direction_vo == var_0 )
{
level.next_direction_vo_time = var_4 + randomintrange( var_3, var_3 + 1500 );
var_5++;
if ( var_5 > 5 )
level.last_direction_vo = undefined;
return;
}
level.next_direction_vo_time = var_4 + randomintrange( var_3, var_3 + 1500 );
if ( var_0 == "rooftop" )
var_0 = "roof";
if ( var_0 == "security_gate" )
var_0 = "gate";
var_6 = var_2.vo_prefix + "from_" + var_0;
if ( var_0 == "spawn_vent" || var_0 == "spawn_grate" )
var_6 = var_2.vo_prefix + var_0;
if ( var_0 == "above" || var_0 == "walls" || var_0 == "spores" )
var_6 = var_2.vo_prefix + "spawn_" + var_0;
var_2 play_vo_on_player( var_6, undefined, 1 );
}
check_for_direction_vo()
{
var_0 = getentarray( "vo_direction_trigger", "targetname" );
foreach ( var_2 in var_0 )
var_2 thread notify_when_triggered( var_2.script_noteworthy );
}
notify_when_triggered( var_0 )
{
self endon( "death" );
for (;;)
{
self waittill( "trigger", var_1 );
if ( isagent( var_1 ) && isdefined( var_1.team ) && var_1.team == "axis" && isdefined( var_1.alien_type ) && var_1.alien_type != "spider" )
{
if ( isdefined( level.current_direction_triggers ) )
{
if ( !is_in_array( level.current_direction_triggers, var_0 ) )
continue;
}
level notify( "dlc_vo_notify", "direction_vo", var_0 );
}
wait 0.25;
}
}
playspidervo( var_0 )
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
if ( !isdefined( var_0 ) )
return;
var_1 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_1.size < 1 )
return;
var_2 = var_1[0];
if ( !soundexists( var_2.vo_prefix + var_0 ) )
return;
var_3 = 10000;
var_4 = gettime();
var_5 = 0;
if ( !isdefined( level.next_spider_vo_time ) )
level.next_spider_vo_time = var_4 + randomintrange( var_3, var_3 + 2000 );
else if ( var_4 < level.next_spider_vo_time )
return;
if ( !isdefined( level.last_spider_vo ) || level.last_spider_vo != var_0 )
{
level.last_spider_vo = var_0;
var_5 = 0;
}
else if ( level.last_spider_vo == var_0 )
{
level.next_spider_vo_time = var_4 + randomintrange( var_3, var_3 + 1500 );
var_5++;
if ( var_5 > 5 )
level.last_spider_vo = undefined;
return;
}
level.next_direction_vo_time = var_4 + randomintrange( var_3, var_3 + 1500 );
var_6 = var_2.vo_prefix + var_0;
var_2 play_vo_on_player( var_6 );
}
playspiderretreatvo()
{
if ( maps\mp\alien\_utility::isplayingsolo() )
return;
var_0 = maps\mp\alien\_utility::get_array_of_valid_players();
if ( var_0.size < 1 )
return;
var_1 = var_0[0];
var_2 = var_1.vo_prefix + "spider_retreat";
var_1 play_vo_on_player( var_2 );
}
is_in_array( var_0, var_1 )
{
for ( var_2 = 0; var_2 < var_0.size; var_2++ )
{
if ( var_0[var_2] == var_1 )
return 1;
}
return 0;
}