2367 lines
81 KiB
Plaintext
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 ) );
|
|
}
|
|
}
|