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

2367 lines
81 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
iplane_start()
{
maps\iplane_fx::main();
precache_items();
init_level_flags();
maps\iplane_anim::main();
level.orig_phys_gravity = getdvar( "phys_gravity" );
level.orig_ragdoll_gravity = getdvar( "phys_gravity_ragdoll" );
level.orig_wakeupradius = getdvar( "phys_gravityChangeWakeupRadius" );
level.orig_ragdoll_life = getdvar( "ragdoll_max_life" );
level.orig_sundirection = ( -14, 114, 0 );
init_mainai();
level thread iplane_clean_up();
level.player notifyonplayercommand( "melee_button_pressed", "+melee" );
level.player notifyonplayercommand( "melee_button_pressed", "+melee_breath" );
level.player notifyonplayercommand( "melee_button_pressed", "+melee_zoom" );
common_scripts\utility::exploder( "door_closed" );
start_opening_setup();
level thread maps\_hud_util::fade_in( 2, "black" );
level.player enabledeathshield( 0 );
level thread maps\jungle_ghosts::parachute_start();
level.impact_tree = 0;
}
iplane_crash()
{
maps\iplane_fx::main();
precache_items();
init_level_flags();
maps\iplane_anim::main();
level.orig_phys_gravity = getdvar( "phys_gravity" );
level.orig_ragdoll_gravity = getdvar( "phys_gravity_ragdoll" );
level.orig_wakeupradius = getdvar( "phys_gravityChangeWakeupRadius" );
level.orig_ragdoll_life = getdvar( "ragdoll_max_life" );
level.orig_sundirection = ( -14, 114, 0 );
init_mainai();
level.player notifyonplayercommand( "melee_button_pressed", "+melee" );
level.player notifyonplayercommand( "melee_button_pressed", "+melee_breath" );
level.player notifyonplayercommand( "melee_button_pressed", "+melee_zoom" );
setup();
level thread skipto_sound_setup();
wait 0.7;
thread moving_jeeps_and_crates();
thread rotate_plane();
level thread enemy_plane_behind_skipto();
maps\iplane_code::player_on_back();
common_scripts\utility::flag_set( "large_crate_movement" );
wait 1;
level.new_org maps\_utility::anim_stopanimscripted();
level thread play_destroy_plane_spark_fx();
level thread play_destroy_plane_burst_fx();
player_falling();
level notify( "stop_plane_quakes" );
level notify( "iplane_done" );
level thread maps\_hud_util::fade_in( 2, "black" );
level.player setblurforplayer( 10, 0.05 );
level.player setblurforplayer( 0, 2 );
level thread maps\jungle_ghosts::parachute_start();
}
precache_items()
{
precacheshellshock( "plane_sway" );
precacheshellshock( "hijack_minor" );
precacheshellshock( "hijack_airplane" );
precacheshellshock( "iplane_slowview" );
precacheitem( "ending_knife" );
precacheitem( "jungle_ghost_f15_missile" );
precachemodel( "generic_rope_A_animated" );
precachemodel( "vehicle_Y_8" );
precachemodel( "com_folding_chair" );
precachemodel( "viewhands_player_gs_jungle_b" );
precachemodel( "cnd_parachute" );
precachemodel( "airplane_debris_wing_01_partb_iw6" );
precachemodel( "airplane_debris_wing_01_parta_iw6" );
precachemodel( "viewmodel_parachute_ripcord" );
precachemodel( "ctl_parachute_player" );
precachemodel( "ls_tarp_anim_03_scale60_jg" );
precacherumble( "tank_rumble" );
precacherumble( "subtle_tank_rumble" );
precachemodel( "cnd_sleeve_flap_LE" );
precachemodel( "cnd_sleeve_flap_RI" );
}
init_level_flags()
{
common_scripts\utility::flag_init( "plane_roll_right" );
common_scripts\utility::flag_init( "plane_roll_left" );
common_scripts\utility::flag_init( "plane_levels" );
common_scripts\utility::flag_init( "plane_third_hit" );
common_scripts\utility::flag_init( "ground_rotate_ref" );
common_scripts\utility::flag_init( "ground_rotate_ref_off" );
common_scripts\utility::flag_init( "player_in_position_to_climb" );
common_scripts\utility::flag_init( "succesfull_climb" );
common_scripts\utility::flag_init( "player_has_climbed" );
common_scripts\utility::flag_init( "player_is_now_connected_to_the_plane" );
common_scripts\utility::flag_init( "stop_climb_out" );
common_scripts\utility::flag_init( "large_crate_movement" );
common_scripts\utility::flag_init( "rip_tail_off" );
common_scripts\utility::flag_init( "player_activated_ramps_open" );
common_scripts\utility::flag_init( "raise_enemy_plane" );
common_scripts\utility::flag_init( "start_explosion_breach" );
common_scripts\utility::flag_init( "player_in_position_to_see_wing_enemies" );
common_scripts\utility::flag_init( "open_bay_doors" );
common_scripts\utility::flag_init( "start_fling0" );
common_scripts\utility::flag_init( "baddies_leave_plane" );
common_scripts\utility::flag_init( "player_at_window" );
common_scripts\utility::flag_init( "elias_activated_button" );
common_scripts\utility::flag_init( "kill_face_fx" );
}
init_mainai()
{
level.enemies = [];
var_0 = getentarray( "evil", "targetname" );
foreach ( var_2 in var_0 )
{
var_3 = var_2 maps\_utility::spawn_ai( 1, 1 );
level.enemies[level.enemies.size] = var_3;
if ( !isdefined( var_3.script_noteworthy ) )
continue;
else if ( var_3.script_noteworthy == "vargas" )
{
level.vargas = var_3;
level.vargas.animname = "vargas";
level.vargas.name = "Rorke";
level.vargas.team = "axis";
level.vargas.script_pushable = 0;
level.vargas maps\_utility::gun_remove();
}
}
level.heroes = [];
var_5 = getentarray( "bravo_team", "targetname" );
var_6 = getentarray( "alpha_team", "targetname" );
var_7 = common_scripts\utility::array_combine( var_5, var_6 );
foreach ( var_2 in var_7 )
{
var_9 = var_2 maps\_utility::spawn_ai( 1, 1 );
var_9 pushplayer( 1 );
level.heroes[level.heroes.size] = var_9;
if ( !isdefined( var_9.script_friendname ) )
continue;
else if ( var_2.script_friendname == "Elias" )
{
level.elias = var_9;
level.elias.animname = "elias";
level.elias maps\_utility::gun_remove();
}
else if ( var_2.script_friendname == "Hesh" )
{
level.hesh = var_9;
level.hesh.animname = "hesh";
level.hesh maps\_utility::forceuseweapon( "honeybadger", "primary" );
level.hesh maps\_utility::gun_remove();
}
else if ( var_2.script_friendname == "Merrick" )
{
level.merrick = var_9;
level.merrick.animname = "merrick";
level.merrick maps\_utility::forceuseweapon( "honeybadger", "primary" );
}
else if ( var_2.script_friendname == "Keegan" )
{
level.keegan = var_9;
level.keegan.animname = "keegan";
level.keegan maps\_utility::forceuseweapon( "honeybadger", "primary" );
}
var_9 thread maps\_utility::set_ai_bcvoice( "taskforce" );
var_9 animscripts\battlechatter_ai::assign_npcid();
var_9 maps\_utility::make_hero();
var_9.ignoresuppression = 1;
var_9.suppressionwait = 0;
var_9 maps\_utility::disable_surprise();
var_9.ignorerandombulletdamage = 1;
var_9.disableplayeradsloscheck = 1;
var_9.grenadeawareness = 0;
var_9.ignoreall = 1;
var_9.ignoreme = 1;
var_9.script_grenades = 0;
var_9.originalbasaccuracy = var_9.baseaccuracy;
}
}
start_opening_setup()
{
setup();
thread sound_test();
thread init_player();
thread window_god_rays();
thread create_smoke_and_ambience();
thread moving_jeeps_and_crates();
thread enemy_plane_behind();
thread start_f15_attack();
thread do_tarps();
thread ramp_red_light();
thread plane_ramp_light();
thread light_fx();
thread spawn_trigger_wait_open_doors();
thread maps\iplane_interrogation::interroation_scene();
common_scripts\utility::flag_wait( "start_explosion_breach" );
thread rotate_plane();
maps\iplane_code::player_on_back();
common_scripts\utility::flag_set( "large_crate_movement" );
level.new_org maps\_utility::anim_stopanimscripted();
level thread play_destroy_plane_spark_fx();
level thread play_destroy_plane_burst_fx();
player_falling();
level notify( "iplane_done" );
level notify( "stop_plane_quakes" );
level.player enableweapons();
}
player_falling()
{
level.player disableslowaim();
level.player thread maps\_utility::play_sound_on_entity( "scn_iplane_fall_01_lr" );
var_0 = spawn( "script_model", level.player_rig.origin );
var_0 setmodel( "tag_origin" );
level.player_rig linkto( var_0 );
level.player_rig thread maps\_anim::anim_single_solo( level.player_rig, "player_fall_2" );
level thread play_spark_fx_when_falling();
var_0 movex( 25000, 20, 2 );
stopallrumbles();
maps\_utility::delaythread( 0, maps\_utility::vision_set_fog_changes, "iplane_fall", 0 );
maps\_art::dof_disable_script( 2 );
thread audio_player_falling_start();
wait 1.7;
level.player thread player_face_fx();
level.player thread maps\_utility::play_sound_on_entity( "crate_impact" );
wait 0.3;
level.player playrumbleonentity( "grenade_rumble" );
level.player thread maps\_gameskill::blood_splat_on_screen( "bottom" );
level.player playrumbleonentity( "damage_heavy" );
level.player setblurforplayer( 5, 0.25 );
var_0 rotateto( ( 0, 180, 0 ), 1.5, 0.5, 0.1 );
level.player setclienttriggeraudiozone( "jungle_ghosts_falling_through_air_black_out", 1 );
maps\_hud_util::fade_out( 1, "white" );
level.player lerpfov( 65, 0.05 );
level.player setblurforplayer( 0, 0.25 );
wait 1;
level.player playrumbleonentity( "grenade_rumble" );
var_0 rotateyaw( 5220, 4, 0.5 );
var_0 movex( 25000, 20, 2 );
wait 2;
level.player playrumbleonentity( "grenade_rumble" );
player_falling_2( var_0 );
}
player_face_fx()
{
self.playerfxorg = spawn( "script_model", self.origin + ( 0, 0, 0 ) );
self.playerfxorg setmodel( "tag_origin" );
self.playerfxorg.angles = self.angles;
self.playerfxorg.origin = self geteye() - ( 0, 0, 10 );
self.playerfxorg linktoplayerview( self, "tag_origin", ( 5, 0, -55 ), ( 0, 0, 0 ), 1 );
playfxontag( common_scripts\utility::getfx( "flying_face_fx" ), self.playerfxorg, "TAG_ORIGIN" );
common_scripts\utility::flag_wait( "kill_face_fx" );
stopfxontag( common_scripts\utility::getfx( "flying_face_fx" ), self.playerfxorg, "TAG_ORIGIN" );
self.playerfxorg delete();
}
audio_player_falling_start()
{
maps\_utility::delaythread( 1.1, common_scripts\utility::play_sound_in_space, "scn_iplane_fall_01_exit_plane_lr", level.player.origin );
wait 1.1;
level.player setclienttriggeraudiozone( "jungle_ghosts_falling_through_air", 0.8 );
maps\_utility::delaythread( 1.9, common_scripts\utility::play_sound_in_space, "scn_iplane_fall_debris_whoosh_over_white", level.player.origin );
thread enemy_plane_looping_sounds_fade_and_end();
}
iplane_unload()
{
var_0 = getentarray( "brush_model", "script_noteworthy" );
var_1 = getentarray( "brush_model", "targetname" );
var_2 = common_scripts\utility::array_combine( var_0, var_1 );
foreach ( var_4 in var_2 )
var_4 delete();
var_6 = getentarray( "link_me_tail", "script_noteworthy" );
foreach ( var_8 in var_6 )
var_8 delete();
var_10 = getentarray( "iplane_bracket", "targetname" );
foreach ( var_12 in var_10 )
var_12 delete();
}
player_falling_2( var_0 )
{
level thread assemble_debris();
level thread assemble_plane_wing();
var_1 = common_scripts\utility::get_target_ent( "enemy_plane" );
var_1 delete();
level.destroy_plane_middles[0] delete();
level.destroy_plane_middles[1] delete();
level.plane_tail delete();
level.plane_core delete();
iplane_unload();
level notify( "iplane_clean_up" );
level.player unlink();
level.player_rig delete();
level.player_rig = maps\_utility::spawn_anim_model( "player_rig", var_0.origin );
level.player_rig.angles = ( -90, 180, 0 );
level.player_rig linkto( var_0 );
var_2 = [];
var_2[0] = maps\_utility::spawn_anim_model( "exfil_ripcord_player", level.player_rig.origin );
level.player playrumbleonentity( "damage_heavy" );
var_2[0] linkto( level.player_rig, "tag_origin" );
var_2[1] = level.player_rig;
level.player playerlinktoabsolute( level.player_rig, "tag_player" );
level.earthquake_min = 0.2;
level.earthquake_max = 0.4;
thread maps\iplane_interrogation::plane_quakes();
level.player enabledeathshield( 1 );
level.player lerpfov( 80, 5 );
wait 1;
var_3 = common_scripts\utility::getstruct( "player_falling_teleport_origin", "targetname" );
var_0 moveto( var_3.origin, 0.05 );
var_0.angles = ( 180, 0, 0 );
level.player setblurforplayer( 10, 0.05 );
wait 0.25;
level.player thread maps\_utility::play_sound_on_entity( "scn_iplane_fall_02_lr" );
level.player setclienttriggeraudiozone( "jungle_ghosts_falling_through_air", 5.0 );
level thread maps\_hud_util::fade_in( 2, "white" );
level.player setblurforplayer( 0, 2.5 );
var_0 movez( -25000, 20, 2 );
wait 1.1;
var_0 rotatepitch( 680, 5.5, 1, 1 );
level waittill( "player_fall_wing" );
level.player playrumbleonentity( "grenade_rumble" );
wait 0.5;
var_0 rotateto( ( 180, 0, 0 ), 0.8, 0, 0 );
level waittill( "player_fall_wing2" );
level.player playrumbleonentity( "grenade_rumble" );
level notify( "stop_plane_quakes" );
earthquake( 0.6, 1, level.player.origin, 99999 );
level.player maps\_utility::delaythread( 0.3, maps\_gameskill::blood_splat_on_screen, "left" );
level.player common_scripts\utility::delaycall( 0.3, ::playrumbleonentity, "damage_heavy" );
var_0 rotateroll( 1800, 6, 0.5, 0 );
wait 1.3;
thread maps\iplane_interrogation::plane_quakes();
thread common_scripts\utility::play_sound_in_space( "scn_iplane_pull_rip_cord", level.player.origin );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_chute_deploy", level.player.origin );
level.player_rig thread maps\_anim::anim_single( var_2, "parachute_fall" );
level.player maps\_utility::delaythread( 0.5, maps\_utility::play_sound_on_entity, "iplane_chute_deploy" );
wait 0.7;
level.player playrumbleonentity( "grenade_rumble" );
level.player setblurforplayer( 5, 0.05 );
var_0 thread parachute_open_rotate();
wait 0.05;
level.player setblurforplayer( 0, 0.05 );
var_0 movez( -15000, 20, 2 );
wait 0.5;
level.player_rig maps\_utility::anim_stopanimscripted();
level.player_rig thread maps\_anim::anim_single_solo( level.player_rig, "highfive_sky" );
wait 1.5;
level.player thread maps\_utility::play_sound_on_entity( "scn_iplane_fall_hit_01" );
level notify( "player_look_down" );
var_0 rotateto( ( 180, 0, 0 ), 2, 1, 1 );
level.player thread maps\_utility::lerp_fov_overtime( 2, 55 );
wait 1.5;
level.player common_scripts\utility::delaycall( 0.2, ::playrumbleonentity, "grenade_rumble" );
level waittill( "start_iplane_transition" );
level.player setblurforplayer( 10, 0.05 );
level.player setclienttriggeraudiozone( "jungle_ghosts_falling_through_air_black_out", 0.1 );
maps\_hud_util::fade_out( 0.05, "black" );
level.player setblurforplayer( 0, 0.05 );
wait 1;
level.player_rig delete();
var_0 delete();
level.player thread maps\_utility::play_sound_on_entity( "scn_iplane_fall_03_lr" );
var_2[0] delete();
level.player thread maps\_utility::lerp_fov_overtime( 0.05, 65 );
wait 2;
level.player enabledeathshield( 0 );
level notify( "stop_plane_quakes" );
}
parachute_open_rotate()
{
level endon( "player_look_down" );
wait 0.2;
self rotateto( ( -140, 10, 5 ), 0.2, 0, 0.2 );
wait 0.2;
self rotateto( ( -90, -10, -4 ), 1, 0.3, 0.5 );
wait 1;
self rotateto( ( -140, 10, 5 ), 1, 0.5, 0.5 );
wait 1;
self rotateto( ( -100, -4, -3 ), 0.5, 0.2, 0.2 );
wait 0.5;
self rotateto( ( -120, 4, 2 ), 0.5, 0.2, 0.2 );
wait 0.5;
self rotateto( ( -110, -4, -3 ), 1, 0.5, 0.5 );
}
assemble_debris()
{
var_0 = common_scripts\utility::getstructarray( "debris", "targetname" );
foreach ( var_2 in var_0 )
{
var_3 = spawn( "script_model", var_2.origin );
var_3 setmodel( var_2.script_noteworthy );
var_3 rotateto( ( randomintrange( 500, 720 ), randomintrange( 500, 720 ), randomintrange( 500, 720 ) ), randomintrange( 10, 20 ) );
var_3.targetname = "iplane_clearup";
}
}
assemble_plane_wing()
{
var_0 = getent( "plane_wing_1", "targetname" );
var_1 = spawn( "script_model", var_0.origin );
var_1 setmodel( var_0.script_noteworthy );
var_1.angles = var_0.angles;
var_1 rotateroll( -1800, 9 );
var_1.targetname = "iplane_clearup";
playfx( level._effect["vfx_helicrash_sparkrain"], var_1.origin );
var_2 = getent( "plane_wing_mid", "targetname" );
var_3 = spawn( "script_model", var_2.origin + ( 0, 60, -550 ) );
var_3 setmodel( var_2.script_noteworthy );
var_3.angles = var_2.angles + ( 0, 180, 0 );
var_3 rotateyaw( 7600, 20 );
var_3 movex( 12666, 40 );
var_3.targetname = "iplane_clearup";
var_3 thread hide_unhide();
var_4 = getent( "plane_wing_2", "targetname" );
var_5 = spawn( "script_model", var_4.origin );
var_5 setmodel( var_4.script_noteworthy );
var_5.angles = var_4.angles;
var_6 = getent( "plane_wing_2_trigger", "targetname" );
var_6 enablelinkto();
var_6 linkto( var_5 );
var_5 rotatepitch( 1900, 15 );
var_5.targetname = "iplane_clearup";
var_6 thread check_for_player_impact();
wait 7;
playfx( level._effect["aerial_explosion_large"], var_5.origin );
}
play_explosion_fx()
{
wait 4;
playfxontag( level._effect["aerial_explosion_large"], self, "tag_origin" );
}
hide_unhide()
{
wait 5;
level notify( "player_fall_wing" );
wait 0.5;
level notify( "player_fall_wing2" );
wait 0.2;
wait 6;
self hide();
}
check_for_player_impact()
{
self waittill( "trigger" );
level notify( "start_iplane_transition" );
}
do_hand_wheeling_anim( var_0 )
{
level notify( "kill_hand_wheeling_animation" );
level endon( "iplane_done" );
level endon( "kill_hand_wheeling_animation" );
}
setup()
{
level.player setclienttriggeraudiozone( "jungle_ghosts_start_black" );
var_0 = getent( "baddy_plane", "targetname" );
var_0 hide();
level.fly_away_or = spawn( "script_origin", ( -560, 4696, -1968 ) );
level.ent_parachute_from_plane_one = getent( "parachute_from_plane_one", "targetname" );
level.ent_parachute_from_plane_two = getent( "parachute_from_plane_two", "targetname" );
level.bay_door_lower = getent( "saf_c17_lower_backdoor", "script_noteworthy" );
level.bay_door_upper = getent( "saf_c17_lower_backdoor_top", "script_noteworthy" );
var_1 = getentarray( "saf_c17_lower_backdoor_script_model", "script_noteworthy" );
foreach ( var_3 in var_1 )
var_3 linkto( level.bay_door_lower );
var_1 = getentarray( "saf_c17_lower_backdoor_top_script_model", "script_noteworthy" );
foreach ( var_3 in var_1 )
var_3 linkto( level.bay_door_upper );
level.chair_vargas = getent( "vargas_chair", "targetname" );
level.chair_vargas hide();
level.plane_tail = getent( "plane_tail", "targetname" );
level.plane_core = getent( "plane_fuselage", "targetname" );
level.plane_core setmodel( "tag_origin" );
level.destroy_plane_middles = getentarray( "destroyed_plane_middle", "targetname" );
for ( var_7 = 0; var_7 < level.destroy_plane_middles.size; var_7++ )
{
level.destroy_plane_middles[var_7] linkto( level.plane_core );
level.destroy_plane_middles[var_7] hide();
}
level.plane_tail linkto( level.plane_core );
var_8 = getent( "escape_enemy_plane_location", "targetname" );
var_8 linkto( level.plane_core );
level.plane_test_origin = spawn( "script_model", level.plane_core.origin );
level.plane_test_origin setmodel( "tag_origin" );
var_9 = getent( "metal_clip", "targetname" );
var_9 linkto( level.plane_core );
getent( "inb", "targetname" ).origin = getent( "inb", "targetname" ).origin + ( -100, 0, 0 );
level.baddies = getentarray( "baddies_enter", "script_noteworthy" );
foreach ( var_11 in level.baddies )
var_11 linkto( level.plane_core );
var_13 = getentarray( "falling_spark_location", "targetname" );
foreach ( var_15 in var_13 )
var_15 linkto( level.plane_core );
var_1 = getentarray( "plane_interior_debris", "targetname" );
foreach ( var_3 in var_1 )
{
var_3 linkto( level.plane_core );
var_3 hide();
}
maps\_utility::vision_set_fog_changes( "iplane", 0.1 );
level.ent_parachute_from_plane_one linkto( level.plane_core );
level.ent_parachute_from_plane_two linkto( level.plane_core );
thread wing_break_off();
var_19 = getent( "bracket_c17", "targetname" );
var_19 linkto( level.plane_tail );
var_20 = getentarray( "brush_model", "script_noteworthy" );
var_21 = getentarray( "brush_model", "targetname" );
var_22 = common_scripts\utility::array_combine( var_20, var_21 );
foreach ( var_24 in var_22 )
var_24 linkto( level.plane_core );
var_26 = common_scripts\utility::array_combine( level.enemies, level.heroes );
foreach ( var_28 in var_26 )
var_28 linkto( level.plane_core );
var_30 = getent( "m_p_l_r_tracker", "targetname" );
var_31 = getentarray( "link_me_tail", "script_noteworthy" );
foreach ( var_33 in var_31 )
var_33 linkto( level.plane_tail );
var_35 = getentarray( "plane_core_tarp", "script_noteworthy" );
foreach ( var_37 in var_35 )
var_37 linkto( level.plane_core );
var_1 = getentarray( "iplane_bracket", "targetname" );
foreach ( var_3 in var_1 )
var_3 linkto( level.plane_tail );
var_41 = getentarray( "destroy_plane_fx", "targetname" );
foreach ( var_43 in var_41 )
var_43 linkto( level.plane_core );
level.kersey_anim_org = getent( "kersey_anim_start", "targetname" );
level.mccoy_anim_org = getent( "mccoy_anim_start", "targetname" );
level.chair_vargas_2 = spawn( "script_model", level.vargas.origin );
level.chair_vargas_2 setmodel( "com_folding_chair" );
level.chair_vargas_2.animname = "chair_real";
level.chair_vargas_2 maps\_anim::setanimtree();
level.chair_vargas_2.reference = spawn( "script_model", level.vargas.origin );
level.chair_vargas_2.reference setmodel( "tag_origin" );
level.bay_door_upper_model = spawn( "script_model", level.bay_door_upper.origin );
level.bay_door_upper_model setmodel( "tag_origin" );
level.bay_door_upper_model linkto( level.plane_core );
level.bay_door_upper linkto( level.bay_door_upper_model );
level.bay_door_lower_model = spawn( "script_model", level.bay_door_lower.origin );
level.bay_door_lower_model setmodel( "tag_origin" );
level.bay_door_lower_model linkto( level.plane_core );
level.bay_door_lower linkto( level.bay_door_lower_model );
var_45 = getent( "outside_of_plane", "targetname" );
var_45 linkto( level.plane_core );
var_45 hide();
level.rope_main_org = common_scripts\utility::spawn_tag_origin();
level.rope_main_org.origin = level.plane_core.origin;
level.rope_main_org.angles = level.plane_core.angles;
level.rope_main_org linkto( level.plane_core );
}
window_god_rays()
{
level.godrays = getentarray( "god_ray_emitter", "targetname" );
foreach ( var_1 in level.godrays )
{
var_2 = common_scripts\utility::spawn_tag_origin();
var_2.origin = var_1.origin;
var_2.angles = var_1.angles;
if ( var_1.script_noteworthy == "window_volumetric_open_l" )
continue;
if ( var_1.script_noteworthy == "window_volumetric_open" )
{
}
else if ( var_1.script_noteworthy == "window_volumetric_blinds" )
{
}
var_3 = common_scripts\utility::spawn_tag_origin();
var_3.origin = var_2.origin;
var_2 linkto( var_3 );
}
}
create_smoke_and_ambience()
{
var_0 = spawn( "script_model", ( 15128, 4744, -352 ) );
var_0 setmodel( "tag_origin" );
var_1 = spawn( "script_model", ( 15470, 4742, -352 ) );
var_1 setmodel( "tag_origin" );
var_2 = spawn( "script_model", ( 15288, 4738, -352 ) );
var_2 setmodel( "tag_origin" );
var_3 = spawn( "script_model", ( 14856, 4750, -330 ) );
var_3 setmodel( "tag_origin" );
}
move_flaps()
{
level endon( "player_in_position_to_see_wing_enemies" );
for (;;)
{
wait 11;
self rotatepitch( -3, 11 );
wait 11;
self rotatepitch( 3, 11 );
}
}
ramp_red_light()
{
level endon( "iplane_done" );
common_scripts\utility::flag_wait( "player_activated_ramps_open" );
var_0 = getentarray( "little_lights", "script_noteworthy" );
var_1 = getentarray( "tail_lights_script_models", "script_noteworthy" );
var_2 = getentarray( "tail_lights_red_off_one_model", "targetname" );
var_3 = getentarray( "tail_lights_red_off_two_model", "targetname" );
var_4 = getentarray( "tail_lights_red_off_three_model", "targetname" );
foreach ( var_6 in var_1 )
{
var_6 linkto( level.plane_tail );
var_6.light_model = spawn( "script_model", var_6.origin );
var_6.light_model setmodel( "tag_origin" );
var_6.light_model linkto( level.plane_tail );
var_6.light_model thread delete_light_on_clearup();
}
foreach ( var_6 in var_0 )
{
var_6 linkto( level.plane_tail );
var_6.light_model = spawn( "script_model", var_6.origin );
var_6.light_model setmodel( "tag_origin" );
var_6.light_model linkto( level.plane_tail );
var_6.light_model thread delete_light_on_clearup();
}
var_10 = getentarray( "tail_lights_red_off_one", "targetname" );
var_11 = getentarray( "tail_lights_red_off_two", "targetname" );
var_12 = getentarray( "tail_lights_red_off_three", "targetname" );
var_13 = 0;
var_14 = 0;
}
delete_light_on_clearup()
{
level waittill( "iplane_done" );
self delete();
}
mid_dlight()
{
var_0 = getentarray( "middle_d_lights", "targetname" );
var_1 = getentarray( "tail_d_lights", "targetname" );
var_2 = common_scripts\utility::array_combine( var_0, var_1 );
foreach ( var_4 in var_2 )
{
var_4 linkto( level.plane_core );
var_4 setmodel( "tag_origin" );
}
for (;;)
{
wait 0.1;
foreach ( var_4 in var_2 )
playfxontag( common_scripts\utility::getfx( "red_large_glow" ), var_4, "tag_origin" );
wait 0.3;
foreach ( var_4 in var_2 )
stopfxontag( common_scripts\utility::getfx( "red_large_glow" ), var_4, "tag_origin" );
wait 0.3;
}
}
core_lights_red()
{
level endon( "iplane_done" );
var_0 = getentarray( "lights_red_fuselage", "targetname" );
foreach ( var_2 in var_0 )
{
var_2 linkto( level.plane_core );
var_2 setmodel( "tag_origin" );
}
var_4 = 0;
while ( var_4 <= 100 )
{
wait 0.1;
var_4++;
foreach ( var_2 in var_0 )
playfxontag( common_scripts\utility::getfx( "red_small_front" ), var_2, "tag_origin" );
wait 0.3;
foreach ( var_2 in var_0 )
stopfxontag( common_scripts\utility::getfx( "red_small_front" ), var_2, "tag_origin" );
wait 0.3;
}
}
light_blink()
{
for (;;)
{
var_0 = 0;
while ( var_0 <= 19 )
{
var_0++;
var_1 = randomfloatrange( 0.05, 0.1 );
var_2 = randomfloatrange( 0.1, 0.5 );
self setlightintensity( var_2 );
wait( var_1 );
self setlightintensity( var_2 );
wait( var_1 );
}
wait 0.9;
var_0 = 0;
while ( var_0 <= 3 )
{
var_0++;
wait 0.1;
self setlightintensity( 0.4 );
wait 0.05;
}
self setlightintensity( 0.6 );
wait( randomfloatrange( 3.3, 7.9 ) );
}
}
rip_tail_off()
{
level.bay_door_upper_model linkto( level.plane_tail );
level.bay_door_lower_model linkto( level.plane_tail );
level.plane_tail_model = spawn( "script_model", level.plane_tail.origin );
level.plane_tail_model setmodel( "tag_origin" );
level.plane_tail_model.angles = level.plane_tail_model.angles;
level.plane_tail linkto( level.plane_tail_model );
level.plane_tail_model linkto( level.plane_core );
level.plane_tail_model.animname = "tail";
level.plane_tail_model maps\_anim::setanimtree();
var_0 = spawn( "script_model", level.plane_tail.origin + ( -100, 0, 0 ) );
var_0.angles = var_0.angles + ( 0, 0, 180 );
var_0 linkto( level.plane_tail );
var_0 setmodel( "tag_origin" );
level.plane_core_model thread maps\_anim::anim_single_solo( level.plane_tail_model, "tail_ripoff" );
common_scripts\utility::exploder( "az_tail_separate" );
wait 7;
level.plane_tail_model hide();
}
rip_left_wing_off()
{
var_0 = getent( "c17_left_wing", "targetname" );
var_1 = getent( "c17_left_wing_flap", "targetname" );
var_1.angles = var_1.angles + ( 0, 0, 0 );
var_1 thread move_flaps();
var_2 = spawn( "script_model", var_0.origin );
var_2 setmodel( "tag_origin" );
var_0 linkto( var_2 );
var_2 linkto( level.plane_core );
var_2.animname = "wing_L";
var_2 maps\_anim::setanimtree();
var_1 linkto( var_0 );
var_2 maps\_anim::anim_single_solo( var_2, "wing_L_ripoff" );
var_2 hide();
var_1 hide();
}
batman_rotate_plane()
{
level.plane_core_model = spawn( "script_model", level.plane_core.origin );
level.plane_core_model setmodel( "tag_origin" );
level.plane_core_model_dummy = spawn( "script_model", level.plane_core.origin );
level.plane_core_model_dummy setmodel( "tag_origin" );
level.plane_core_model_dummy.angles = level.plane_core.angles;
self linkto( level.plane_core_model );
remove_junk_behind_player();
if ( !isdefined( level.player_rig ) )
level.player_rig = maps\_utility::spawn_anim_model( "player_rig" );
level.player_rig linkto( level.plane_core );
level.plane_core_model.animname = "plane_body";
level.plane_core_model maps\_anim::setanimtree();
level.chair_vargas_2 maps\_utility::anim_stopanimscripted();
level.chair_vargas_2.reference maps\_utility::anim_stopanimscripted();
level.plane_core maps\_utility::anim_stopanimscripted();
if ( isdefined( level.vargas.anim_node ) )
level.vargas.anim_node notify( "stop_loop" );
level.vargas maps\_utility::anim_stopanimscripted();
level.vargas unlink();
level.player playrumbleonentity( "artillery_rumble" );
thread player_rotate_plane01();
level.plane_core_model_dummy thread maps\_anim::anim_single( [ level.vargas, level.chair_vargas_2 ], "vargas_fall_1" );
var_0 = maps\_utility::spawn_anim_model( "rappel_rope" );
level.plane_core_model_dummy thread maps\_anim::anim_single_solo( var_0, "rope_chair" );
wait 4;
var_1 = maps\_utility::spawn_anim_model( "firework" );
thread rip_tail_off();
var_1 thread do_firework_fx();
wait 2;
level notify( "end_firework" );
level.player playrumbleonentity( "damage_heavy" );
thread batman_begins();
var_2 = getent( "batman00", "targetname" );
level.bad_guy = var_2 maps\_utility::spawn_ai( 1, 1 );
level.bad_guy.animname = "generic";
level.bad_guy maps\_utility::set_ignoreall( 1 );
level.bad_guy maps\_utility::gun_remove();
maps\_utility::delaythread( 5.0, common_scripts\utility::play_sound_in_space, "scn_iplane_baddy_center_roping_in", level.player.origin );
maps\_utility::delaythread( 14.5, common_scripts\utility::play_sound_in_space, "scn_iplane_rorke_arm_around_baddy", level.player.origin );
maps\_utility::delaythread( 18.2, common_scripts\utility::play_sound_in_space, "scn_iplane_baddy_center_away", level.player.origin );
wait 6;
level.player playrumbleonentity( "damage_heavy" );
level.plane_core_model_dummy waittill( "vargas_fall_1" );
common_scripts\utility::flag_set( "baddies_leave_plane" );
var_3 = maps\_utility::spawn_anim_model( "rappel_rope" );
level.plane_core_model_dummy thread maps\_anim::anim_single( [ level.bad_guy, level.vargas, var_3 ], "plane_friendly_r" );
wait 10;
}
do_firework_fx()
{
level endon( "end_firework" );
level.plane_core_model_dummy thread maps\_anim::anim_single_solo( self, "start_firework" );
for (;;)
{
playfxontag( level._effect["vfx_helicrash_sparkrain"], self, "tag_origin" );
wait 0.2;
}
}
remove_junk_behind_player()
{
foreach ( var_1 in level.jeeps_plane )
var_1 delete();
var_3 = getentarray( "cargo_falling_out", "script_noteworthy" );
foreach ( var_5 in var_3 )
var_5 delete();
}
small_shakes_on()
{
level endon( "iplane_done" );
var_0 = 12;
level.player screenshakeonentity( var_0, var_0, var_0, 1.7, 0, 1.7, 500, 8, 15, 12, 1.8 );
wait 1.3;
var_1 = 3;
level.player screenshakeonentity( 0.4, 0.4, 0.4, var_1, 0, 0, 500, 8, 15, 12, 1.8 );
wait 2.8;
var_0 = 5.1;
level.player screenshakeonentity( var_0, var_0, var_0, 2, 0, 2, 500, 8, 15, 12, 1.8 );
wait 1;
var_1 = 0.4;
level.player screenshakeonentity( 0.4, 0.4, 0.4, var_1, 0, 0, 500, 8, 15, 12, 1.8 );
wait( var_1 );
var_0 = 2.1;
level.player screenshakeonentity( var_0, var_0, var_0, 2, 0, 2, 500, 8, 15, 12, 1.8 );
wait 1.6;
for (;;)
{
var_1 = randomfloatrange( 3.7, 5.1 );
level.player screenshakeonentity( 0.25, 0.25, 0.25, var_1, 0, 0, 500, 8, 15, 12, 1.8 );
wait( var_1 );
var_2 = 1.4;
var_0 = randomfloatrange( 3.3, 5.1 );
level.player screenshakeonentity( var_0, var_0, var_0, var_2, 0, var_2, 500, 8, 15, 12, 1.8 );
wait( var_2 );
}
}
#using_animtree("generic_human");
batman_begins()
{
var_0 = getentarray( "batman_helpers", "targetname" );
for ( var_1 = 0; var_1 < 4; var_1++ )
{
var_2 = spawn( "script_model", ( 0, 0, 0 ) );
var_2 character\character_elite_pmc_assault_a_black::main();
var_2 useanimtree( #animtree );
var_2.animname = "generic";
var_2 attach( "weapon_honeybadger", "TAG_WEAPON_LEFT" );
var_2 thread send_friends_in( var_1 );
}
}
talk()
{
level.vargas maps\_utility::smart_dialogue( "iplane_rke_ifyoumakeit" );
wait 2;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_theresalwaysroomfor" );
}
send_friends_in( var_0 )
{
self hide();
self.animname = "generic";
if ( var_0 == 0 )
{
wait 5.4;
var_1 = 7.6;
var_2 = getent( "in", "targetname" );
self linkto( var_2 );
self show();
var_2 thread do_rope_animation( 1, var_1 );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_left_roping_in", ( 15084, -29619, -36925 ) );
var_2 maps\_anim::anim_single_solo( self, "p_soldier_a_in" );
var_2 thread maps\_anim::anim_loop_solo( self, "p_soldier_a_idle" );
common_scripts\utility::flag_wait( "baddies_leave_plane" );
wait 7.6;
var_2 maps\_utility::anim_stopanimscripted();
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_left_away", ( 15084, -29619, -36925 ) );
var_2 maps\_anim::anim_single_solo( self, "p_soldier_a_out" );
}
if ( var_0 == 1 )
{
wait 0.5;
var_1 = 6.5;
var_3 = getent( "ind", "targetname" );
self linkto( var_3 );
self show();
var_3 thread do_rope_animation( 2, var_1 );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_right_center_roping_in", ( 15011, -29395, -36992 ) );
var_3 maps\_anim::anim_single_solo( self, "p_soldier_b_in" );
var_3 thread maps\_anim::anim_loop_solo( self, "p_soldier_b_idle" );
common_scripts\utility::flag_wait( "baddies_leave_plane" );
wait 5.0;
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_right_center_away", ( 15011, -29395, -36992 ) );
wait 1.5;
var_3 maps\_utility::anim_stopanimscripted();
var_3 maps\_anim::anim_single_solo( self, "p_soldier_b_out" );
}
if ( var_0 == 2 )
{
wait 3.5;
var_1 = 3.6;
var_4 = getent( "inc", "targetname" );
var_4 unlink();
var_4 movex( -100, 0.05 );
self linkto( var_4 );
self show();
wait 0.05;
var_4 thread do_rope_animation( 3, var_1 );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_right_roping_in", ( 14957, -29360, -36901 ) );
var_4 maps\_anim::anim_single_solo( self, "p_soldier_c_in" );
var_4 thread maps\_anim::anim_loop_solo( self, "p_soldier_c_idle" );
common_scripts\utility::flag_wait( "baddies_leave_plane" );
wait 3.6;
var_4 maps\_utility::anim_stopanimscripted();
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_right_away", ( 14957, -29360, -36901 ) );
var_4 maps\_anim::anim_single_solo( self, "p_soldier_c_out" );
}
if ( var_0 == 3 )
{
wait 0.6;
var_1 = 2.6;
var_5 = getent( "inb", "targetname" );
self linkto( var_5 );
self show();
var_5 thread do_rope_animation( 4, var_1 );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_left_center_roping_in", ( 15117, -29542, -36984 ) );
var_5 maps\_anim::anim_single_solo( self, "p_soldier_d_in" );
var_5 thread maps\_anim::anim_loop_solo( self, "p_soldier_d_idle" );
common_scripts\utility::flag_wait( "baddies_leave_plane" );
wait( var_1 );
var_5 maps\_utility::anim_stopanimscripted();
thread common_scripts\utility::play_sound_in_space( "scn_iplane_baddy_left_center_away", ( 15117, -29542, -36984 ) );
var_5 maps\_anim::anim_single_solo( self, "p_soldier_d_out" );
}
self delete();
}
ground_movement()
{
common_scripts\utility::flag_wait( "player_activated_ramps_open" );
level.ground_brush rotateyaw( -900, 1000 );
level.ground_brush moveto( level.ground_brush.origin + ( 100, 0, 100 ), 25, 5, 5 );
level.ground_brush waittill( "movedone" );
level.ground_brush moveto( level.ground_brush.origin + ( -100, 0, -100 ), 25, 5, 5 );
level.ground_brush waittill( "movedone" );
}
init_player()
{
level.player disableweapons();
level.player allowsprint( 0 );
level.player allowprone( 0 );
level.player allowcrouch( 0 );
level.player allowjump( 0 );
level.player enabledeathshield( 1 );
level.player maps\_utility::player_speed_percent( 35 );
}
moving_jeeps_and_crates()
{
level.jeeps_plane = getentarray( "plane_jeep", "targetname" );
level.moving_crates_plane = getentarray( "moving_crates", "targetname" );
level.lights_on = getentarray( "lights_on", "targetname" );
level.lights_off = getentarray( "lights_off", "targetname" );
level.fire_ext_models = getentarray( "fire_ext", "targetname" );
level.tail_lights = getentarray( "lights_off_rear", "targetname" );
var_0 = getentarray( "lights_off_non_moving", "targetname" );
var_1 = getentarray( "lights_on_non_moving", "targetname" );
var_2 = getent( "netting_front_r", "targetname" );
var_3 = getent( "netting_front_l", "targetname" );
var_4 = getent( "netting_middle", "targetname" );
var_5 = getent( "netting_rear", "targetname" );
var_6 = common_scripts\utility::array_combine( var_0, var_1 );
foreach ( var_8 in level.moving_crates_plane )
var_8 linkto( level.plane_core );
foreach ( var_11 in level.lights_on )
var_11 linkto( level.plane_core );
foreach ( var_14 in level.lights_off )
var_14 linkto( level.plane_core );
thread jeep_offset_anims();
foreach ( var_17 in level.fire_ext_models )
var_17 linkto( level.plane_core );
foreach ( var_20 in level.tail_lights )
var_20 linkto( level.plane_tail );
foreach ( var_23 in var_6 )
var_23 linkto( level.plane_core );
}
jeep_offset_anims()
{
foreach ( var_1 in level.jeeps_plane )
{
var_1 linkto( level.plane_core );
var_1.animname = "hummer";
var_1 maps\_utility::assign_animtree( "hummer" );
wait 1;
var_1 thread maps\_anim::anim_loop_solo( var_1, "hummer_small_rocking" );
}
}
loop_guy_in_chair_beg()
{
common_scripts\utility::waitframe();
}
wing_break_off()
{
var_0 = getent( "c17_left_wing", "targetname" );
var_1 = getent( "full_engine", "targetname" );
var_2 = getent( "engine_top", "targetname" );
var_3 = getent( "engine_bottom", "targetname" );
var_4 = getent( "c17_right_wing_engines", "targetname" );
var_5 = getent( "engine_fan_one", "targetname" );
var_5 linkto( var_2 );
var_2 linkto( var_0 );
var_6 = getent( "engine_moving_fan", "targetname" );
var_6 linkto( var_1 );
var_6 thread rotate_fan_on_engine();
var_1 linkto( var_0 );
var_7 = getent( "end_left_holder", "targetname" );
var_8 = getent( "end_right_holder", "targetname" );
var_7 linkto( var_0 );
var_8 linkto( var_0 );
common_scripts\utility::flag_wait( "player_in_position_to_see_wing_enemies" );
wait 6.3;
thread rip_left_wing_off();
wait 2.4;
}
setup_engine_fx( var_0, var_1 )
{
var_2 = spawn( "script_model", ( 15592, 5426, -340 ) );
var_2 setmodel( "tag_origin" );
var_2.angles = var_2.angles + ( 0, 180, 0 );
var_2 linkto( var_0 );
var_3 = spawn( "script_model", ( 15730, 5116, -322 ) );
var_3 setmodel( "tag_origin" );
var_3.angles = var_3.angles + ( 0, 180, 0 );
var_3 linkto( var_0 );
var_4 = spawn( "script_model", ( 15592, 4010, -340 ) );
var_4 setmodel( "tag_origin" );
var_4.angles = var_4.angles + ( 0, 140, 0 );
var_4 linkto( var_1 );
var_5 = spawn( "script_model", ( 15726, 4312, -322 ) );
var_5 setmodel( "tag_origin" );
var_5.angles = var_5.angles + ( 0, 140, 0 );
var_5 linkto( var_1 );
playfxontag( common_scripts\utility::getfx( "jet_engine" ), var_2, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "jet_engine" ), var_4, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "jet_engine" ), var_3, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "jet_engine" ), var_5, "tag_origin" );
}
setup_contrails()
{
var_0 = getent( "c17_left_wing", "targetname" );
var_1 = spawn( "script_model", ( 15232, 5844, -280 ) );
var_1 setmodel( "tag_origin" );
var_1 linkto( var_0 );
var_2 = getent( "c17_right_wing", "targetname" );
var_3 = spawn( "script_model", ( 15232, 3590, -280 ) );
var_3 setmodel( "tag_origin" );
var_3 linkto( var_2 );
playfxontag( common_scripts\utility::getfx( "contrail" ), var_1, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "contrail" ), var_3, "tag_origin" );
}
rotate_fan_on_engine()
{
for (;;)
{
self rotatepitch( 360, 1, 0.5, 0.5 );
wait 1;
}
}
rotate_engine()
{
self.angles = self.angles + ( -10, -3, 13 );
if ( isdefined( self.targetname ) && self.targetname == "engine_top" )
self.angles = self.angles + ( 40, 60, 70 );
if ( isdefined( self.targetname ) && self.targetname == "engine_bottom" )
self.angles = self.angles + ( -120, -60, -120 );
for (;;)
{
if ( !isdefined( self.targetname ) )
continue;
if ( self.targetname == "engine_top" )
{
self rotateto( ( 0, 0, 10 ), 1 );
self waittill( "rotatedone" );
self rotateto( ( 0, 230, 40 ), 1 );
self waittill( "rotatedone" );
}
else if ( self.targetname == "engine_bottom" )
{
self rotateto( ( 0, 0, 10 ), 0.1 );
self waittill( "rotatedone" );
self rotateto( ( 0, 230, 40 ), 0.1 );
self waittill( "rotatedone" );
}
else
self rotateto( ( 0, 0, 10 ), 10 );
self waittill( "rotatedone" );
self rotateto( ( 0, 230, 40 ), 1 );
self waittill( "rotatedone" );
}
}
trigger_wing_guys()
{
var_0 = getent( "look_out_window", "targetname" );
var_1 = getent( "button_model_on", "targetname" );
wait 1;
var_2 = spawn( "trigger_radius", var_1.origin, 0, 50, 50 );
for (;;)
{
if ( level.player istouching( var_2 ) )
{
common_scripts\utility::flag_set( "player_in_position_to_see_wing_enemies" );
wait 0.7;
break;
}
wait 0.3;
}
}
rotate_plane()
{
level.new_org = spawn( "script_model", level.plane_core.origin );
level.new_org.animname = "sky_anim";
level.new_org.org_angles = level.new_org.angles;
common_scripts\utility::flag_set( "player_is_now_connected_to_the_plane" );
level notify( "player_prompted_to_climb_out" );
foreach ( var_1 in level.tail_lights )
var_1 hide();
}
#using_animtree("player");
player_rotate_plane01()
{
var_0 = getent( "outside_of_plane", "targetname" );
var_0 linkto( level.plane_core );
var_0 hide();
if ( !isdefined( level.player_rig ) )
level.player_rig = maps\_utility::spawn_anim_model( "player_rig" );
level.player_rig unlink();
level.player_rig hide();
level.player_rig linkto( level.plane_core );
var_1 = getanimlength( %plane_player_fall );
level.player thread maps\_utility::play_sound_on_entity( "scn_iplane_player_grab_bar" );
level.plane_core thread maps\_anim::anim_single_solo( level.player_rig, "player_fall", "tag_origin" );
stopallrumbles();
maps\_utility::delaythread( 3, ::small_shakes_on );
thread maps\iplane_code::crawl_hurt_pulse();
thread do_fx_plane_break();
level.player_rig show();
level.player playerlinktoblend( level.player_rig, "tag_player", 2.0, 1.5, 0 );
wait 2;
maps\_art::dof_enable_script( 0, 65, 10, 100, 271, 3.4, 2 );
var_0 hide();
level.elias hide();
level.merrick hide();
level.hesh hide();
level.player playerlinktodelta( level.player_rig, "tag_player", 1, 5, 5, 5, 0, 1 );
wait( var_1 - 2.5 );
level.player playrumbleonentity( "damage_heavy" );
level.player playrumblelooponentity( "tank_rumble" );
level.plane_core thread maps\_anim::anim_loop_solo( level.player_rig, "hanging_idle", "tag_origin" );
wait 2.5;
level.destroy_plane_middles[0] show();
level.destroy_plane_middles[1] show();
wait 11.3;
level notify( "crawl_breath_recover" );
}
screen_effects_middle01()
{
maps\_art::dof_enable_script( 1, 1, 6, 200, 300, 3, 7.5 );
if ( maps\_utility::is_gen4() )
wait 19.3;
maps\_art::dof_disable_script( 6 );
}
enemy_plane_behind()
{
common_scripts\utility::flag_wait( "raise_enemy_plane" );
var_0 = common_scripts\utility::get_target_ent( "enemy_plane" );
var_0.animname = "enemy_plane";
var_0 maps\_anim::setanimtree();
var_1 = getent( "fake_gun_fire", "targetname" );
var_2 = var_1 maps\_utility::spawn_ai( 1, 1 );
var_2 teleport( var_0.origin );
level.enemy_plane_engine_loop_01 = spawn( "script_origin", var_0.origin + ( 300, 500, -250 ) );
level.enemy_plane_engine_loop_02 = spawn( "script_origin", var_0.origin + ( 300, -500, 500 ) );
level.enemy_plane_engine_loop_03 = spawn( "script_origin", var_0.origin );
level.enemy_plane_engine_loop_04 = spawn( "script_origin", var_0.origin );
common_scripts\utility::waitframe();
var_2 linkto( var_0, "tag_body", ( 0, 0, -100 ), ( 0, 0, 0 ) );
level.enemy_plane_engine_loop_01 linkto( var_0 );
level.enemy_plane_engine_loop_02 linkto( var_0 );
level.enemy_plane_engine_loop_03 linkto( var_0 );
level.enemy_plane_engine_loop_04 linkto( var_0 );
thread enemy_plane_looping_sounds_start();
level.player playrumbleonentity( "grenade_rumble" );
var_3 = var_0 common_scripts\utility::get_target_ent();
var_0 moveto( var_3.origin, 6, 2, 4 );
var_0 rotateto( var_3.angles, 6, 0, 4 );
wait 5;
level.alarm_ent = common_scripts\utility::spawn_tag_origin();
level.alarm_ent.origin = level.plane_core.origin;
level.alarm_ent linkto( level.plane_core );
level.alarm_ent playloopsound( "iplane_warning_alarm" );
wait 2.5;
level.player playrumbleonentity( "grenade_rumble" );
common_scripts\utility::flag_set( "fire_ropes" );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_hookup_l", ( 12206, -30991, -37000 ) );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_hookup_r", ( 13070, -28463, -37000 ) );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_hookup_ls", ( 15050, -29319, -36915 ) );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_hookup_rs", ( 15050, -29633, -36915 ) );
wait 4;
level.player playrumbleonentity( "grenade_rumble" );
common_scripts\utility::flag_set( "start_explosion_breach" );
thread plane_explosion();
thread show_inplane_debris();
var_3 = var_3 common_scripts\utility::get_target_ent();
thread common_scripts\utility::play_sound_in_space( "scn_iplane_explosion", level.player.origin );
var_0 moveto( var_3.origin + ( 0, 0, 0 ), 6, 2, 2 );
var_0 rotateto( var_3.angles, 6, 0, 4 );
var_0 waittill( "movedone" );
var_0 moveto( var_3.origin, 3 );
var_0 waittill( "movedone" );
thread plane_sway( var_0 );
}
enemy_plane_looping_sounds_start()
{
level.enemy_plane_engine_loop_01 playloopsound( "scn_iplane_enemy_engine_left" );
level.enemy_plane_engine_loop_02 playloopsound( "scn_iplane_enemy_engine_right" );
level.enemy_plane_engine_loop_01 scalevolume( 0.0, 0.0 );
level.enemy_plane_engine_loop_01 scalepitch( 0.7, 0.0 );
level.enemy_plane_engine_loop_02 scalevolume( 0.0, 0.0 );
level.enemy_plane_engine_loop_02 scalepitch( 0.7, 0.0 );
wait 0.6;
level.enemy_plane_engine_loop_01 scalevolume( 1.0, 2.0 );
level.enemy_plane_engine_loop_01 scalepitch( 1.0, 2.0 );
level.enemy_plane_engine_loop_02 scalevolume( 1.0, 2.0 );
level.enemy_plane_engine_loop_02 scalepitch( 1.0, 2.0 );
level.enemy_plane_engine_loop_04 maps\_utility::play_sound_on_entity( "scn_iplane_enemy_rise" );
}
enemy_plane_looping_sounds_fade_and_end()
{
if ( isdefined( level.enemy_plane_engine_loop_01 ) )
{
level.enemy_plane_engine_loop_01 scalevolume( 0.0, 3.8 );
level.enemy_plane_engine_loop_02 scalevolume( 0.0, 3.8 );
level.enemy_plane_engine_loop_03 scalevolume( 0.0, 3.8 );
wait 4.0;
level.enemy_plane_engine_loop_01 delete();
level.enemy_plane_engine_loop_02 delete();
level.enemy_plane_engine_loop_03 delete();
level.enemy_plane_engine_loop_04 delete();
}
}
plane_sway( var_0 )
{
var_1 = 200;
var_2 = 5;
var_3 = 6;
level.rope_main_org rotatebylinked( ( -1 * var_2, 0, 0 ), var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 moveto( var_0.origin - ( var_1, 0, 0 ), var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 rotatepitch( -1 * var_2, var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 waittill( "movedone" );
var_1 = var_1 * 2;
var_2 = 10;
var_3 = var_3 * 2;
for (;;)
{
var_3 = 6;
level.rope_main_org rotatebylinked( ( var_2, 0, 0 ), var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 moveto( var_0.origin + ( var_1, 0, 0 ), var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 rotateyaw( var_2, var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 waittill( "movedone" );
level.rope_main_org rotatebylinked( ( -1 * var_2, 0, 0 ), var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 moveto( var_0.origin - ( var_1, 0, 0 ), var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 rotateyaw( -1 * var_2, var_3, var_3 * 0.4, var_3 * 0.4 );
var_0 waittill( "movedone" );
}
}
plane_fake_roll()
{
}
show_inplane_debris()
{
var_0 = getentarray( "plane_interior_debris", "targetname" );
foreach ( var_2 in var_0 )
var_2 delete();
}
plane_explosion()
{
var_0 = common_scripts\utility::get_target_ent( "int_missile_explosion" );
level.alarm_ent stopsounds();
thread audio_stop_car_rattles();
level.player shellshock( "hijack_minor", 1 );
level.player thread maps\_gameskill::blood_splat_on_screen( "left" );
level.player thread maps\_gameskill::blood_splat_on_screen( "right" );
level notify( "stop_plane_quakes" );
earthquake( 0.7, 1.75, level.player.origin, 1500 );
wait 1.5;
level.player shellshock( "hijack_minor", 1 );
thread maps\iplane_interrogation::plane_quakes();
thread audio_start_destruction_loop();
}
audio_start_destruction_loop()
{
}
enemy_plane_behind_skipto()
{
level.bay_door_lower thread maps\iplane_interrogation::lower_bottom_bay_door( 1 );
level.bay_door_upper thread maps\iplane_interrogation::raise_top_bay_door( 1 );
var_0 = common_scripts\utility::get_target_ent( "enemy_plane" );
var_0.animname = "enemy_plane";
var_0 maps\_anim::setanimtree();
var_1 = getent( "fake_gun_fire", "targetname" );
var_2 = var_1 maps\_utility::spawn_ai( 1, 1 );
var_2 teleport( var_0.origin );
common_scripts\utility::waitframe();
var_2 linkto( var_0, "tag_body", ( 0, 0, -100 ), ( 0, 0, 0 ) );
var_3 = var_0 common_scripts\utility::get_target_ent();
var_0 moveto( var_3.origin, 0.1 );
var_0 rotateto( var_3.angles, 0.1 );
var_0 waittill( "movedone" );
var_3 = var_3 common_scripts\utility::get_target_ent();
var_0 moveto( var_3.origin, 0.1 );
var_0 rotateto( var_3.angles, 0.1 );
var_0 waittill( "movedone" );
thread plane_sway( var_0 );
var_4 = getentarray( "ropes_hidden", "targetname" );
common_scripts\utility::array_thread( var_4, ::hidden_rope_skipto );
}
hidden_rope_skipto()
{
var_0 = common_scripts\utility::spawn_tag_origin();
var_0.origin = self.origin;
var_0.angles = self.angles;
self.animname = "rope";
maps\_anim::setanimtree();
self linkto( level.rope_main_org );
var_0 thread maps\_anim::anim_single_solo( self, "rope_fire" );
}
friends_reaction_to_enemy_plane()
{
level.mccoy_anim_org maps\_utility::anim_stopanimscripted();
level.kersey_anim_org maps\_utility::anim_stopanimscripted();
wait 1;
}
knock_player_with_raise()
{
wait 0.5;
earthquake( 0.34, 1, level.player.origin, 10000 );
wait 0.5;
wait 0.5;
earthquake( 0.17, 16, level.player.origin, 10000 );
wait 0.3;
wait 0.7;
}
audio_start_plane_engine_sounds()
{
level.player_plane_engine_right playloopsound( "scn_iplane_engine_right" );
level.player_plane_engine_left playloopsound( "scn_iplane_engine_left" );
level.player_plane_wind_01 playloopsound( "scn_iplane_wind_open_lp" );
level.player_plane_wind_02 playloopsound( "scn_iplane_wind_flaps_inside" );
level.player_plane_wind_05 playloopsound( "scn_iplane_wind_flaps_ramp_left" );
level.player_plane_wind_06 playloopsound( "scn_iplane_wind_flaps_ramp_right" );
thread audio_start_car_rattles();
level.player_plane_engine_right scalevolume( 0.0, 0.0 );
level.player_plane_engine_left scalevolume( 0.0, 0.0 );
wait 0.1;
level.player_plane_engine_right scalevolume( 1.0, 4.0 );
level.player_plane_engine_left scalevolume( 1.0, 4.0 );
}
audio_start_car_rattles()
{
self endon( "stop_car_wind_rattles" );
wait 0.1;
thread audio_start_car_rattles_left();
thread audio_start_car_rattles_right();
}
audio_start_car_rattles_left()
{
self endon( "stop_car_wind_rattles" );
wait 0.1;
for (;;)
{
level.player_plane_wind_03 maps\_utility::play_sound_on_entity( "rex_metal_painted" );
var_0 = randomfloatrange( 0.6, 2.0 );
wait( var_0 );
}
}
audio_start_car_rattles_right()
{
self endon( "stop_car_wind_rattles" );
wait 0.7;
for (;;)
{
level.player_plane_wind_04 maps\_utility::play_sound_on_entity( "rex_metal_painted" );
var_0 = randomfloatrange( 0.5, 1.1 );
wait( var_0 );
}
}
audio_stop_car_rattles()
{
level notify( "stop_car_wind_rattles" );
}
audio_plane_engine_sounds_dying()
{
level.player_plane_engine_right scalevolume( 0.0, 2.0 );
level.player_plane_engine_left scalevolume( 0.0, 2.0 );
level.player_plane_engine_right scalepitch( 0.0, 2.0 );
level.player_plane_engine_left scalepitch( 0.0, 2.0 );
wait 2.5;
level.player_plane_engine_right stoploopsound();
level.player_plane_engine_left stoploopsound();
wait 0.1;
level.player_plane_engine_right delete();
level.player_plane_engine_left delete();
}
sound_test()
{
level.sound_org_four = spawn( "script_origin", level.player.origin );
level.player_plane_engine_right = spawn( "script_origin", ( 14787, -29859, -36976 ) );
level.player_plane_engine_left = spawn( "script_origin", ( 14787, -29193, -36976 ) );
level.player_plane_wind_01 = spawn( "script_origin", ( 14190, -29455, -36848 ) );
level.player_plane_wind_02 = spawn( "script_origin", ( 15142, -29383, -36890 ) );
level.player_plane_wind_03 = spawn( "script_origin", ( 15300, -29518, -36907 ) );
level.player_plane_wind_04 = spawn( "script_origin", ( 15334, -29406, -36912 ) );
level.player_plane_wind_05 = spawn( "script_origin", ( 14652, -29569, -37098 ) );
level.player_plane_wind_06 = spawn( "script_origin", ( 14652, -29415, -37098 ) );
level.player_plane_engine_right linkto( level.plane_core );
level.player_plane_engine_left linkto( level.plane_core );
wait 5.4;
common_scripts\utility::flag_wait( "player_activated_ramps_open" );
level.player setclienttriggeraudiozone( "jungle_ghosts_plane_int_open", 4.0 );
thread audio_start_plane_engine_sounds();
wait 8;
level.bay_door_lower stoploopsound();
level.bay_door_upper stoploopsound();
common_scripts\utility::flag_wait( "start_explosion_breach" );
wait 3.5;
thread audio_plane_engine_sounds_dying();
wait 2;
wait 9;
common_scripts\utility::flag_wait( "player_is_now_connected_to_the_plane" );
wait 1;
level waittill( "iplane_done" );
level.sound_org_four delete();
}
skipto_sound_setup()
{
level.sound_org_four = spawn( "script_origin", level.player.origin );
common_scripts\utility::flag_wait( "player_is_now_connected_to_the_plane" );
wait 1;
level waittill( "iplane_done" );
level.sound_org_four delete();
}
fx_climb_out_test()
{
level endon( "iplane_done" );
level.player_anim_origin = spawn( "script_model", level.player.origin );
var_0 = spawn( "script_model", level.player.origin + ( 0, 0, 0 ) );
var_0 setmodel( "tag_origin" );
var_0.angles = var_0.angles + ( 0, 0, 90 );
var_0 linkto( level.player_anim_origin );
level.player_anim_origin linkto( level.player );
var_1 = spawn( "script_model", level.player.origin + ( 0, 0, 0 ) );
var_1 setmodel( "tag_origin" );
var_1.angles = var_1.angles + ( 0, 180, 180 );
var_1 linkto( level.player_anim_origin );
wait 2;
var_2 = common_scripts\utility::spawn_tag_origin();
var_2.origin = level.plane_core.origin + ( 100, 0, 0 );
var_2.angles = level.plane_core.angles + ( 110, 0, 0 );
playfxontag( common_scripts\utility::getfx( "escape_dust_hijack1" ), var_0, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "dirt_two" ), var_1, "tag_origin" );
level.player_anim_origin.tags = [ var_0, var_1 ];
level.sound_org_four.origin = level.player.origin + ( 0, 50, -50 );
level.sound_org_four linkto( level.player );
var_3 = 0;
for (;;)
{
wait 6;
switch ( var_3 )
{
case 0:
break;
case 1:
level.sound_org_four playsound( "hijk_tilt_stress_02" );
break;
}
}
}
do_tarps()
{
var_0 = getentarray( "animated_ramp_tarp", "targetname" );
foreach ( var_2 in var_0 )
{
var_2 hide();
var_3 = spawn( "script_model", var_2.origin );
var_3 setmodel( "ls_tarp_anim_03_scale60_jg" );
var_3.targetname = "fake_tarp_ramp";
var_3.angles = var_2.angles;
}
var_5 = getentarray( "tarps0", "targetname" );
foreach ( var_2 in var_5 )
{
var_2.animname = "taprs0_rock";
var_2 linkto( level.plane_core );
var_2 maps\_anim::setanimtree();
var_2 thread maps\_anim::anim_loop_solo( var_2, "taprs0_anim" );
}
}
do_rope_animation( var_0, var_1 )
{
var_2 = maps\_utility::spawn_anim_model( "rappel_rope", ( 0, 0, 0 ) );
var_2 hide();
var_2 linkto( self );
var_2 show();
maps\_anim::anim_single_solo( var_2, "rope_in_" + var_0 );
thread maps\_anim::anim_loop_solo( var_2, "rope_idle_" + var_0 );
common_scripts\utility::flag_wait( "baddies_leave_plane" );
wait( var_1 );
maps\_utility::anim_stopanimscripted();
maps\_anim::anim_single_solo( var_2, "rope_out_" + var_0 );
var_2 delete();
}
do_fx_plane_break()
{
wait 1.7;
var_0 = spawn( "script_model", level.plane_tail.origin + ( -100, 0, 0 ) );
var_0.angles = var_0.angles + ( 0, 0, 180 );
var_0 linkto( level.plane_tail );
var_0 setmodel( "tag_origin" );
wait 1;
var_1 = getent( "rip_apart_fx_ref00", "script_noteworthy" );
var_2 = getent( "rip_apart_fx_ref02", "script_noteworthy" );
var_3 = spawn( "script_model", var_1.origin + ( -100, 0, 0 ) );
var_3.angles = var_3.angles + ( -90, 0, -90 );
var_3 linkto( level.plane_core );
var_3 setmodel( "tag_origin" );
var_4 = spawn( "script_model", var_2.origin + ( -100, 0, 0 ) );
var_4.angles = var_4.angles + ( -90, 0, 0 );
var_4 linkto( level.plane_core );
var_4 setmodel( "tag_origin" );
thread fx_climb_out_test();
wait 2.7;
var_4 unlink();
stopfxontag( common_scripts\utility::getfx( "escape_dust_hijack1" ), var_4, "tag_origin" );
common_scripts\utility::waitframe();
var_4 delete();
common_scripts\utility::waitframe();
var_4 = spawn( "script_model", var_2.origin + ( 310, 80, 300 ) );
var_4.angles = var_2.angles + ( 180, 0, 0 );
var_4 linkto( level.plane_core );
var_4 setmodel( "tag_origin" );
}
iplane_clean_up()
{
level waittill( "inter_done" );
level.keegan maps\_utility::unmake_hero();
if ( isdefined( level.keegan.magic_bullet_shield ) )
level.keegan maps\_utility::stop_magic_bullet_shield();
level.keegan delete();
level waittill( "iplane_clean_up" );
var_0 = maps\_utility::get_heroes();
foreach ( var_2 in var_0 )
{
var_2 maps\_utility::unmake_hero();
if ( isdefined( var_2.magic_bullet_shield ) )
var_2 maps\_utility::stop_magic_bullet_shield();
var_2 delete();
}
var_4 = getaiarray();
foreach ( var_6 in var_4 )
{
if ( isdefined( var_6.magic_bullet_shield ) )
var_6 maps\_utility::stop_magic_bullet_shield();
var_6 delete();
}
maps\_utility::battlechatter_on();
stopallrumbles();
var_8 = getentarray( "little_lights", "script_noteworthy" );
foreach ( var_10 in var_8 )
var_10 delete();
var_12 = getentarray( "lights_red_fuselage", "targetname" );
foreach ( var_10 in var_12 )
var_10 delete();
foreach ( var_16 in level.player_anim_origin.tags )
var_16 delete();
level.player_anim_origin delete();
}
get_fling_forward( var_0, var_1, var_2 )
{
return var_0 * pow( var_1, var_2 );
}
get_fling_up( var_0, var_1, var_2 )
{
return var_0 * ( 1 - pow( var_1, var_2 ) );
}
fling_object()
{
var_0 = level.player;
while ( self.origin[2] + 100 < var_0.origin[2] )
wait 0.05;
var_1 = ( 0, 180, 0 );
var_2 = anglestoforward( var_1 );
var_3 = var_0.origin + var_2 * 2000;
var_4 = var_0.origin + var_2 * -2000;
var_5 = pointonsegmentnearesttopoint( var_3, var_4, self.origin );
var_6 = self.origin;
var_7 = 35;
var_8 = anglestoforward( var_1 + ( 0, randomintrange( -3, 15 ), 0 ) ) * 10;
var_9 = vectortoangles( var_6 - var_5 );
var_10 = anglestoforward( var_9 ) * 30;
var_11 = 2.6;
var_12 = 0.94;
if ( isdefined( self.targetname ) && self.targetname == "destroy_plane_debris02" )
self unlink();
thread fling_angles_use();
var_13 = 0.5;
for ( var_14 = 1; var_14 < var_7; var_14++ )
{
var_15 = var_6 + get_fling_forward( var_8, var_11, var_14 ) + get_fling_up( var_10, var_12, var_14 );
self moveto( var_15, var_13 );
wait 0.5;
}
wait 10;
self delete();
}
fling_angles_use()
{
self endon( "death" );
var_0 = 0;
wait 0.4;
while ( var_0 <= 1 )
{
var_0++;
var_1 = randomintrange( -50, -30 );
var_2 = randomintrange( -30, 30 );
var_3 = randomintrange( -5, 80 );
self rotatevelocity( ( var_1, var_2, var_3 ), 40000 );
wait 1;
}
var_0 = 0;
wait 0.2;
while ( var_0 <= 5 )
{
var_0++;
var_1 = randomintrange( -50, -30 );
var_2 = randomintrange( -30, 30 );
var_3 = randomintrange( -5, 80 );
self rotatevelocity( ( var_1, var_2, var_3 ), 4000 );
wait 0.4;
}
}
fling_debug( var_0, var_1, var_2, var_3, var_4, var_5 )
{
self endon( "death" );
for (;;)
{
wait 0.05;
var_6 = var_0;
for ( var_7 = 1; var_7 < 10; var_7++ )
{
var_8 = var_0 + get_fling_forward( var_1, var_2, var_7 ) + get_fling_up( var_3, var_4, var_7 );
var_6 = var_8;
}
}
}
iplane_start_dialogue()
{
iprintlnbold( "Logan, open the doors" );
level notify( "open_ramp_dialogue" );
common_scripts\utility::flag_wait( "player_activated_ramps_open" );
wait 10;
level.elias maps\_utility::smart_dialogue( "iplane_els_lookatme" );
wait 0.5;
level.elias maps\_utility::smart_dialogue( "iplane_els_rorkelookatme" );
wait 3;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_whatnotwhatyou" );
wait 1.5;
level.elias maps\_utility::smart_dialogue( "iplane_els_whatdidtheydo" );
wait 0.5;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_thesamethingyou" );
wait 1;
level.elias maps\_utility::smart_dialogue( "iplane_els_freeyourealap" );
wait 0.5;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_youneedtopull" );
level.vargas maps\_utility::smart_dialogue( "iplane_rke_thecountryweloved" );
level.vargas maps\_utility::smart_dialogue( "iplane_rke_wewerentthegreatest" );
level.vargas maps\_utility::smart_dialogue( "iplane_rke_soenoughwiththis" );
wait 1;
level.elias maps\_utility::smart_dialogue( "iplane_els_iwanttoknow" );
level.elias maps\_utility::smart_dialogue( "iplane_els_whatwereyoulooking" );
wait 1.3;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_youllknowsoonenough" );
wait 1.5;
wait 4;
level.elias maps\_utility::smart_dialogue( "iplane_els_whyareyouhunting" );
wait 1;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_huntingnonono" );
wait 1;
level.elias maps\_utility::smart_dialogue( "iplane_els_againhithim" );
level thread nag_player_until_hit_again();
level waittill( "player_smack_baddie" );
wait 3;
level.elias maps\_utility::smart_dialogue( "iplane_els_alongtimeago" );
wait 0.5;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_everyonebreakseliasjust" );
wait 2.5;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_youboysshouldthink" );
wait 2;
level.elias maps\_utility::smart_dialogue( "iplane_els_hithimagain" );
level waittill( "player_smack_baddie" );
wait 5.5;
level.hesh maps\_utility::smart_dialogue( "iplane_hsh_idontthinkyou" );
wait 0.5;
level.hesh maps\_utility::smart_dialogue( "iplane_hsh_tiedtoachair" );
wait 1;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_youhaventbeatenme" );
wait 0.5;
level.elias maps\_utility::smart_dialogue( "iplane_els_answerme" );
level notify( "plane_attack" );
}
nag_player_until_hit()
{
level endon( "player_smack_baddie" );
wait 5;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_cmonkiddoshowme" );
wait 2;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_listentotheboss" );
}
nag_player_until_hit_again()
{
level endon( "player_smack_baddie" );
wait 5;
level.vargas maps\_utility::smart_dialogue( "iplane_rke_listentotheboss" );
}
play_destroy_plane_spark_fx()
{
level endon( "iplane_done" );
var_0 = getentarray( "destroy_plane_spark_fx", "targetname" );
common_scripts\utility::exploder( "az_int_debr_front" );
for (;;)
{
foreach ( var_2 in var_0 )
{
playfxontag( level._effect["vfx_helicrash_sparkrain"], var_2, "tag_origin" );
wait( randomfloatrange( 1, 3 ) );
}
}
}
play_destroy_plane_burst_fx()
{
level endon( "iplane_done" );
var_0 = getentarray( "destroy_plane_burst_fx", "targetname" );
for (;;)
{
foreach ( var_2 in var_0 )
{
playfxontag( level._effect["aerial_explosion_large"], var_2, "tag_origin" );
wait( randomfloatrange( 1, 3 ) );
}
}
}
setup_plane_debris( var_0, var_1 )
{
wait( var_1 );
var_2 = [];
var_2[var_2.size] = "pb_weaponscase";
var_2[var_2.size] = "dg_plasticbarrel_closed_tan";
var_2[var_2.size] = "sz_crate_federation_short";
level.debri_sounds = 0;
foreach ( var_4 in var_0 )
{
wait( randomfloatrange( 0.3, 1.3 ) );
level.debri_sounds++;
if ( level.debri_sounds == 0 )
var_4 maps\_utility::delaythread( 6.1, maps\_utility::play_sound_on_entity, "scn_iplane_ammo_left" );
if ( level.debri_sounds == 1 )
var_4 maps\_utility::delaythread( 0.98, maps\_utility::play_sound_on_entity, "scn_iplane_ammo_left" );
if ( level.debri_sounds == 3 )
var_4 maps\_utility::delaythread( 0.858, maps\_utility::play_sound_on_entity, "scn_iplane_ammo_right" );
if ( level.debri_sounds == 4 )
var_4 maps\_utility::delaythread( 1.146, maps\_utility::play_sound_on_entity, "scn_iplane_box1_right" );
if ( level.debri_sounds == 5 )
var_4 maps\_utility::delaythread( 1.94, maps\_utility::play_sound_on_entity, "scn_iplane_box1_right" );
var_4 thread fling_object();
}
}
start_f15_attack()
{
var_0 = getent( "f15_attacker", "targetname" );
var_1 = getvehiclenode( "f15_start_attack_node", "targetname" );
var_2 = getvehiclenode( "f15_second_attack_node", "targetname" );
var_3 = getvehiclenode( "f15_start_attack_node_1", "targetname" );
var_4 = getvehiclenode( "f15_second_attack_node_1", "targetname" );
var_5 = getvehiclenode( "f15_start_attack_node_2", "targetname" );
var_6 = getvehiclenode( "f15_second_start_node_2", "targetname" );
var_7 = getvehiclenode( "f15_start_attack_node_3", "targetname" );
var_8 = getvehiclenode( "f15_second_attack_node_3", "targetname" );
common_scripts\utility::flag_wait( "raise_enemy_plane" );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_jet_right", ( 13070, -28463, -37114 ) );
thread common_scripts\utility::play_sound_in_space( "scn_iplane_jet_left", ( 12206, -30991, -37246 ) );
wait 1.5;
var_0 thread do_f15_raise_and_attack( var_3, "f15_target_2", var_4 );
wait 0.1;
var_0 thread do_f15_raise_and_attack( var_5, "f15_target_4", var_6 );
wait 0.1;
var_0 thread do_f15_raise_and_attack( var_7, "f15_target_3", var_8 );
wait 1;
var_0 thread do_f15_raise_and_attack( var_1, "f15_target_1", var_2 );
wait 10;
var_9 = getentarray( "f15_missile", "targetname" );
for ( var_10 = 0; var_10 < var_9.size; var_10++ )
var_9[var_10] delete();
}
do_f15_raise_and_attack( var_0, var_1, var_2 )
{
var_3 = maps\_utility::spawn_vehicle();
var_3 thread maps\_vehicle::godon();
var_3.angles = var_0.angles;
var_3.origin = var_0.origin;
var_3 attachpath( var_0 );
var_3 startpath( var_0 );
var_4 = common_scripts\utility::getstructarray( var_1, "targetname" );
common_scripts\utility::flag_wait( "fire_ropes" );
wait 1;
var_5 = spawn( "script_model", var_3 gettagorigin( "tag_left_wingtip" ) - ( 0, 0, -40 ) );
var_5.angles = self.angles;
var_5 setmodel( "projectile_s5rocket" );
var_5.targetname = "f15_missiles";
playfxontag( level._effect["f15_missile_trail"], var_5, "tag_Fx" );
var_6 = spawn( "script_model", var_5.origin + ( 0, 0, -30 ) );
var_6 setmodel( "tag_origin" );
var_6.targetname = "f15_missiles";
var_5 linkto( var_6 );
var_6 rotateroll( -1800, randomfloatrange( 4, 6 ) );
if ( var_0.targetname == "f15_second_start_node_2" || var_0.targetname == "f15_start_attack_node_3" )
var_6 moveto( var_4[0].origin, randomfloatrange( 5, 6 ), 1 );
else
var_6 moveto( var_4[0].origin, randomfloatrange( 2, 3 ), 0.5 );
var_5 = spawn( "script_model", var_3 gettagorigin( "tag_right_wingtip" ) - ( 0, 0, -40 ) );
var_5.angles = self.angles;
var_5 setmodel( "projectile_s5rocket" );
var_5.targetname = "f15_missiles";
playfxontag( level._effect["f15_missile_trail"], var_5, "tag_Fx" );
var_6 = spawn( "script_model", var_5.origin + ( 0, 0, -30 ) );
var_6 setmodel( "tag_origin" );
var_6.targetname = "f15_missiles";
var_5 linkto( var_6 );
var_6 rotateroll( 1800, randomfloatrange( 4, 6 ) );
if ( var_0.targetname == "f15_second_start_node_2" || var_0.targetname == "f15_start_attack_node_3" )
var_6 moveto( var_4[0].origin, randomfloatrange( 5, 6 ), 1 );
else
var_6 moveto( var_4[0].origin, randomfloatrange( 2, 3 ), 0.5 );
wait 3;
playfx( common_scripts\utility::getfx( "vfx_helicrash_rpg_explosion" ), var_4[0].origin );
var_3 startpath( var_2 );
wait 10;
var_3 delete();
}
plane_ramp_light()
{
var_0 = getentarray( "ramp_light", "targetname" );
var_1 = getentarray( "lower_ramp_light", "script_noteworthy" );
foreach ( var_3 in var_1 )
var_3 linkto( level.bay_door_lower );
common_scripts\utility::flag_wait( "player_activated_ramps_open" );
foreach ( var_6 in var_0 )
var_6 thread do_ramp_light();
level waittill( "iplane_done" );
foreach ( var_3 in var_1 )
var_3 delete();
}
do_ramp_light()
{
level endon( "iplane_done" );
var_0 = self;
for (;;)
{
playfxontag( level._effect["dlight_glow_medium_red"], var_0, "tag_origin" );
playfxontag( level._effect["red_new_2"], var_0, "tag_origin" );
wait 0.2;
stopfxontag( level._effect["dlight_glow_medium_red"], var_0, "tag_origin" );
stopfxontag( level._effect["red_new_2"], var_0, "tag_origin" );
if ( isdefined( var_0.target ) )
{
var_0 = getent( var_0.target, "targetname" );
continue;
}
var_0 = self;
}
}
play_spark_fx_when_falling()
{
var_0 = getentarray( "falling_spark_location", "targetname" );
foreach ( var_2 in var_0 )
playfxontag( level._effect["vfx_helicrash_sparkrain"], var_2, "tag_origin" );
}
player_flap_sleeves_setup( var_0 )
{
self.sleeve_flap_l = spawn( "script_model", self.origin );
self.sleeve_flap_l.angles = self.angles + ( 0, 60, 0 );
self.sleeve_flap_l setmodel( "cnd_sleeve_flap_LE" );
self.sleeve_flap_l useanimtree( #animtree );
self.sleeve_flap_l linkto( level.vargas, "j_shoulder_le", ( -5.5, 0, -5 ), ( 0, 0, 0 ) );
self.sleeve_flap_l.is_view_linked = 1;
self.sleeve_flap_r = spawn( "script_model", self.origin );
self.sleeve_flap_r.angles = self.angles + ( 90, 90, 90 );
self.sleeve_flap_r setmodel( "cnd_sleeve_flap_ri" );
self.sleeve_flap_r useanimtree( #animtree );
self.sleeve_flap_r linkto( level.vargas, "j_shoulder_ri", ( -4.5, 2, 5.8 ), ( -30, 190, 0 ) );
self.sleeve_flap_r.is_view_linked = 1;
player_flap_sleeves();
}
player_hide_flaps_death()
{
self waittill( "death" );
}
player_flap_sleeves()
{
if ( isdefined( self.sleeves_flapping ) && self.sleeves_flapping )
return;
self.sleeves_flapping = 1;
thread _sleeves_flap_internal();
}
player_stop_flap_sleeves()
{
self.sleeves_flapping = undefined;
self notify( "stop_sleeves" );
}
_sleeves_idle( var_0 )
{
if ( !isdefined( var_0 ) )
var_0 = 1.0;
self.sleeve_flap_l setanimknob( %player_sleeve_pose, 1.0, var_0, 1.0 );
self.sleeve_flap_r setanimknob( %player_sleeve_pose, 1.0, var_0, 1.0 );
}
_sleeves_flap_internal()
{
var_0 = 0.2;
var_1 = 5.0;
var_2 = 0.8;
var_3 = 1.2;
var_4 = 0.45;
while ( isdefined( self.sleeves_flapping ) )
{
var_5 = randomfloatrange( var_2, var_3 );
var_6 = 0.2;
var_7 = 0;
if ( isdefined( level.rpl ) && isdefined( level.rpl.wind_strength ) )
{
var_8 = level.rpl.wind_strength;
var_5 = clamp( var_8, var_4, var_8 );
var_7 = 1;
}
self.sleeve_flap_l setanimknob( %player_sleeve_flapping, 1.0, var_6, var_5 );
self.sleeve_flap_r setanimknob( %player_sleeve_flapping, 1.0, var_6, var_5 );
var_9 = randomfloatrange( var_0, var_1 );
if ( var_7 )
var_9 = 0.05;
var_10 = common_scripts\utility::waittill_notify_or_timeout_return( "stop_sleeves", var_9 );
if ( !isdefined( var_10 ) )
{
thread _sleeves_idle();
return;
}
}
}
spawn_trigger_wait_open_doors()
{
var_0 = getent( "ramp_button", "targetname" );
var_1 = spawn( "script_model", var_0.origin );
var_1 setmodel( "tag_origin" );
var_2 = getent( "button_model_on", "targetname" );
var_3 = spawn( "script_model", var_2.origin );
var_3 setmodel( "tag_origin" );
var_4 = getent( "button_model_off", "targetname" );
var_5 = spawn( "script_model", var_4.origin );
var_5 setmodel( "tag_origin" );
playfxontag( common_scripts\utility::getfx( "red_small_front" ), var_5, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "red_new_2" ), var_1, "tag_origin" );
var_2 hide();
common_scripts\utility::flag_wait( "elias_activated_button" );
wait 1.4;
stopfxontag( common_scripts\utility::getfx( "red_small_front" ), var_5, "tag_origin" );
stopfxontag( common_scripts\utility::getfx( "red_new_2" ), var_1, "tag_origin" );
playfxontag( common_scripts\utility::getfx( "green_glow" ), var_1, "tag_origin" );
var_4 delete();
var_2 show();
common_scripts\utility::flag_wait( "start_explosion_breach" );
stopfxontag( common_scripts\utility::getfx( "green_glow" ), var_1, "tag_origin" );
var_1 delete();
var_3 delete();
var_5 delete();
}
rotate_camera_pre_crash_one()
{
var_0 = getent( "org_view_roll", "targetname" );
level.player playersetgroundreferenceent( var_0 );
var_0 rotateto( ( 0, 0, 0 ), 0.1 );
var_0 waittill( "rotatedone" );
while ( !common_scripts\utility::flag( "ground_rotate_ref_off" ) )
{
var_1 = randomfloatrange( 10, 12 );
var_0 rotateto( ( 0, 0, -5 ), var_1 );
wait( var_1 );
var_0 rotateto( ( 0, 0, 5 ), var_1 );
wait( var_1 );
}
var_0 rotateto( ( 0, 0, 0 ), 0.3 );
}
light_fx()
{
var_0 = 0;
var_1 = 0;
var_2 = 0;
var_3 = getent( "light_inside", "targetname" );
if ( maps\_utility::is_gen4() )
{
level.light_outside = getent( "ng_outside_light", "targetname" );
level.light_outside setlightintensity( 0 );
}
var_3 setlightintensity( 0 );
while ( !common_scripts\utility::flag( "player_activated_ramps_open" ) )
{
if ( maps\_utility::is_gen4() )
{
var_0 = randomfloatrange( 2.0, 2.5 );
var_1 = randomfloatrange( 2.5, 3.0 );
var_2 = randomfloatrange( 3.0, 3.5 );
}
else
{
var_0 = randomfloatrange( 0.7, 0.9 );
var_1 = randomfloatrange( 0.7, 0.9 );
var_2 = randomfloatrange( 0.7, 0.9 );
}
wait( randomfloatrange( 0.1, 0.2 ) );
var_3 setlightintensity( var_0 );
wait( randomfloatrange( 0.1, 0.2 ) );
var_3 setlightintensity( var_1 );
wait( randomfloatrange( 0.1, 0.2 ) );
var_3 setlightintensity( var_2 );
wait( randomfloatrange( 0.1, 0.3 ) );
var_3 setlightintensity( var_0 );
wait( randomfloatrange( 0.1, 0.2 ) );
var_3 setlightintensity( var_1 );
wait( randomfloatrange( 0.1, 0.2 ) );
var_3 setlightintensity( var_2 );
wait( randomfloatrange( 0.2, 0.3 ) );
var_3 setlightintensity( var_0 );
wait( randomfloatrange( 0.1, 0.3 ) );
var_3 setlightintensity( var_1 );
wait( randomfloatrange( 0.1, 0.3 ) );
var_3 setlightintensity( var_2 );
wait( randomfloatrange( 1, 3 ) );
}
wait 4;
if ( maps\_utility::is_gen4() )
{
var_4 = 0;
var_5 = 0;
var_6 = 2.7;
while ( var_4 < var_6 )
{
var_4 = var_4 + 0.01;
var_5 = var_5 + 0.01;
level.light_outside setlightintensity( var_5 );
wait 0.05;
}
}
common_scripts\utility::flag_wait( "start_explosion_breach" );
wait 1.8;
if ( maps\_utility::is_gen4() )
level.light_outside setlightintensity( 0 );
if ( maps\_utility::is_gen4() )
var_3 setlightcolor( ( 0.25, 0, 0 ) );
else
var_3 setlightcolor( ( 0.5, 0, 0 ) );
while ( !common_scripts\utility::flag( "player_landed" ) )
{
if ( maps\_utility::is_gen4() )
{
var_0 = randomfloatrange( 0.3, 2.5 );
var_1 = randomfloatrange( 2.5, 3.5 );
}
else
{
var_0 = randomfloatrange( 0.7, 0.9 );
var_1 = randomfloatrange( 0.7, 0.9 );
}
wait( randomfloatrange( 0.1, 0.3 ) );
var_3 setlightintensity( var_0 );
wait( randomfloatrange( 0.1, 0.3 ) );
var_3 setlightintensity( var_1 );
wait( randomfloatrange( 0.1, 0.4 ) );
}
}