//**************************************************************************** // ** // Confidential - (C) Activision Publishing, Inc. 2010 ** // ** //**************************************************************************** // ** // Module: FX Support ** // ** // Created: 2010 Brian Marvin ** // ** //**************************************************************************** #include maps\_utility; #include common_scripts\utility; main() { if ( !getdvarint( "r_reflectionProbeGenerate" ) ) { maps\createfx\nx_hithard_fx::main(); } SetSavedDVar ("r_fog_height_blend", 0.80); SetSavedDVar ("r_fog_height_start", 0.6); SetSavedDVar ("r_fog_height_end", 1.40); //ambient fx level._effect[ "nx_smoke_plume_large_03_preseed" ] = loadfx( "nx/smoke/nx_smoke_plume_large_03_preseed" ); level._effect[ "100ton_bomb_cheap" ] = loadfx( "nx/explosions/nx_110ton_bomb_cheap" ); level._effect[ "nx_grenade_smoke_5sec" ] = loadfx( "nx/smoke/nx_grenade_smoke_5sec" ); level._effect[ "firelp_med_pm_bh1" ] = LoadFX( "fire/firelp_med_pm" ); level._effect[ "nx_smoke_wall_long_preseed" ] = LoadFX( "nx/smoke/nx_smoke_wall_long_preseed" ); level._effect[ "nx_smoke_wall_long_04_preseed" ] = LoadFX( "nx/smoke/nx_smoke_wall_long_04_preseed" ); level._effect[ "nx_smoke_wall_street_preseed" ] = LoadFX( "nx/smoke/nx_smoke_wall_street_preseed" ); level._effect[ "nx_smoke_plume_huge" ] = LoadFX( "nx/smoke/nx_smoke_plume_huge" ); level._effect[ "nx_amb_smoke_blend_large" ] = LoadFX( "nx/smoke/nx_amb_smoke_blend_large" ); level._effect[ "nx_amb_smoke_blend_large_02" ] = LoadFX( "nx/smoke/nx_amb_smoke_blend_large_02" ); level._effect[ "nx_ash_cloud_light" ] = LoadFX( "nx/misc/nx_ash_cloud_light" ); level._effect[ "nx_ash_cloud_heavy" ] = LoadFX( "nx/misc/nx_ash_cloud_heavy" ); level._effect[ "ash_turb_aftermath" ] = LoadFX( "weather/ash_turb_aftermath" ); level._effect[ "nx_smoke_amb_scrolling_smoke" ] = loadfx( "nx/smoke/nx_smoke_amb_scrolling_smoke" ); level._effect[ "nx_amb_smoke_plume_scattered_light_preseed" ] = loadfx( "nx/smoke/nx_amb_smoke_plume_scattered_light_preseed" ); level._effect[ "nx_amb_smoke_scattered_light_large_preseed" ] = loadfx( "nx/smoke/nx_amb_smoke_scattered_light_large_preseed" ); level._effect[ "nx_smoke_plume_periph_large_black" ] = loadfx( "nx/smoke/nx_smoke_plume_periph_large_black" ); level._effect[ "nx_smoke_plume_periph_large_black_preseed" ] = loadfx( "nx/smoke/nx_smoke_plume_periph_large_black_preseed" ); level._effect[ "nx_smoke_plume_huge_periph_preseed" ] = loadfx( "nx/smoke/nx_smoke_plume_huge_periph_preseed" ); level._effect[ "nx_smoke_plume_huge_periph_dark_preseed" ] = loadfx( "nx/smoke/nx_smoke_plume_huge_periph_dark_preseed" ); level._effect[ "nx_amb_smoke_fastground" ] = loadfx( "nx/smoke/nx_amb_smoke_fastground" ); level._effect[ "nx_amb_smoke_blend_large" ] = LoadFX( "nx/smoke/nx_amb_smoke_blend_large" ); level._effect[ "nx_amb_smoke_blend_large_02" ] = LoadFX( "nx/smoke/nx_amb_smoke_blend_large_02" ); level._effect[ "nx_fire_building_large" ] = LoadFX( "nx/fire/nx_fire_building_large" ); level._effect[ "nx_debri_paper_falling_building" ] = LoadFX( "nx/misc/nx_debri_paper_falling_building" ); level._effect[ "nx_ash_cloud_heavy_runner" ] = LoadFX( "nx/misc/nx_ash_cloud_heavy_runner" ); level._effect[ "nx_smoke_street_fog_oriented" ] = LoadFX( "nx/smoke/nx_smoke_street_fog_oriented" ); level._effect[ "nx_smoke_street_mid_periph" ] = LoadFX( "nx/smoke/nx_smoke_street_mid_periph" ); level._effect[ "police_lights" ] = LoadFX( "nx/misc/nx_light_police_lights" ); level._effect[ "fire_light" ] = LoadFX( "nx/misc/nx_light_orange_large" ); level._effect[ "fire_light_small" ] = LoadFX( "nx/misc/nx_light_orange_small" ); level._effect[ "nx_light_emergency_red" ] = LoadFX( "nx/misc/nx_light_emergency_red" ); level._effect[ "blast_mark" ] = LoadFX( "nx/misc/nx_blast_mark_large" ); level._effect[ "blast_mark_02" ] = LoadFX( "nx/misc/nx_blast_mark_large_02" ); level._effect[ "godray_large" ] = LoadFX( "nx/misc/nx_gfx_godray_side" ); level._effect[ "godray_huge" ] = LoadFX( "nx/misc/nx_gfx_godray_side_huge" ); level._effect[ "nx_smoke_missilehits_periph" ] = LoadFX( "nx/smoke/nx_smoke_missilehits_periph" ); level._effect[ "nx_smoke_missilehits_periph_no_child" ] = LoadFX( "nx/smoke/nx_smoke_missilehits_periph_no_child" ); level._effect[ "nx_fire_buildingtop_embers" ] = LoadFX( "nx/fire/nx_fire_buildingtop_embers" ); level._effect[ "nx_fire_buildingtop_embers_preseed" ] = LoadFX( "nx/fire/nx_fire_buildingtop_embers_preseed" ); level._effect[ "embers_whitehouse" ] = LoadFX( "fire/embers_whitehouse" ); level._effect[ "nx_ash_cloud_heavy_parkinglot" ] = LoadFX( "nx/misc/nx_ash_cloud_heavy_parkinglot" ); level._effect[ "nx_big_orange_glows" ] = LoadFX( "nx/misc/nx_big_orange_glows" ); level._effect[ "nx_fire_tree_embers_preseed" ] = LoadFX( "nx/fire/nx_fire_tree_embers_preseed" ); level._effect[ "nx_fire_buildingtop_03_preseed" ] = LoadFX( "nx/fire/nx_fire_buildingtop_03_preseed" ); level._effect[ "battlefield_smokebank_S_warm" ] = LoadFX( "smoke/battlefield_smokebank_S_warm" ); level._effect[ "nx_smoke_parkinglot_entrance_preseed" ] = LoadFX( "nx/smoke/nx_smoke_parkinglot_entrance_preseed" ); level._effect[ "nx_explosion_skybridge" ] = LoadFX( "nx/explosions/nx_explosion_skybridge" ); level._effect[ "nx_smoke_n_fire_plume_preseed" ] = LoadFX( "nx/smoke/nx_smoke_n_fire_plume_preseed" ); level._effect[ "nx_smoke_n_fire_plume_small_preseed" ] = LoadFX( "nx/smoke/nx_smoke_n_fire_plume_small_preseed" ); level._effect[ "nx_smoke_mid_bldg_preseed" ] = LoadFX( "nx/smoke/nx_smoke_mid_bldg_preseed" ); level._effect[ "nx_fire_building_distant" ] = LoadFX( "nx/fire/nx_fire_building_distant" ); level._effect[ "nx_smoke_n_fire_plume_side_preseed" ] = LoadFX( "nx/smoke/nx_smoke_n_fire_plume_side_preseed" ); //temp building 1 hit fx level._effect[ "tracer_incoming_bh1" ] = LoadFX( "nx/misc/nx_tracer_incoming" ); level._effect[ "nx_buildinghit1_props_exp" ] = LoadFX( "nx/props/nx_buildinghit1_props_exp" ); level._effect[ "nx_building01_missilehit" ] = LoadFX( "nx/explosions/nx_building01_missilehit" ); level._effect[ "nx_fire_buildingtop_02" ] = LoadFX( "nx/fire/nx_fire_buildingtop_02" ); level._effect[ "nx_building01_missilehit_windows" ] = LoadFX( "nx/explosions/nx_building01_missilehit_windows" ); level._effect[ "nx_building01_missilehit_windows_small" ] = LoadFX( "nx/explosions/nx_building01_missilehit_windows_small" ); level._effect[ "nx_building01_explosion" ] = loadfx( "nx/explosions/nx_building01_explosion" ); level._effect[ "nx_building01_explosion_small" ] = loadfx( "nx/explosions/nx_building01_explosion_small" ); // blinking light on your parachute dudes jumping out of the plane level._effect[ "aircraft_light_white_blink" ] = loadfx( "misc/aircraft_light_white_blink" ); // Building 2 level._effect[ "nx_hhh_bldg_fire_column_big_01_preseed" ] = loadfx( "nx/hithard/nx_hhh_bldg_fire_column_big_01_preseed" ); level._effect[ "nx_hhh_bldg_fire_column_dark_01_preseed" ] = loadfx( "nx/hithard/nx_hhh_bldg_fire_column_dark_01_preseed" ); level._effect[ "nx_hhh_bldg_fire_column_dark_02_preseed" ] = loadfx( "nx/hithard/nx_hhh_bldg_fire_column_dark_02_preseed" ); level._effect[ "nx_hhh_bldg_smoke_column_thin_01" ] = loadfx( "nx/hithard/nx_hhh_bldg_smoke_column_thin_01" ); level._effect[ "nx_hhh_bldg_2_falling_brick_runner" ] = loadfx( "nx/hithard/nx_hhh_bldg_2_falling_brick_runner" ); level._effect[ "nx_distortion_large" ] = loadfx( "nx/misc/nx_distortion_large" ); // Building 3 level._effect[ "smoke_column_light01" ] = loadfx( "nx/hithard/nx_hhh_bldg3_fire_column_light_01" ); level._effect[ "bld_damage_card01" ] = loadfx( "nx/hithard/nx_bld_dmg_card_blend01" ); level._effect[ "bld_damage_card01_wfire" ] = loadfx( "nx/hithard/nx_bld_dmg_fire_card_blend01" ); level._effect[ "bld_damage_card02_wfire" ] = loadfx( "nx/hithard/nx_bld_dmg_fire_card_blend02" ); level._effect[ "looping_fireball_01" ] = loadfx( "nx/hithard/nx_looping_fireball_01" ); level._effect[ "looping_smoke_patch_01" ] = loadfx( "nx/hithard/nx_looping_smoke_patch_01" ); level._effect[ "bld3_glass_xplosion_01" ] = loadfx( "nx/hithard/nx_hhh_bld3_glass_xplosion_01" ); level._effect[ "bld3_big_smoke_column" ] = loadfx( "nx/hithard/nx_hhh_apm_large_smoke_column" ); //level._effect[ "wall_explosion_1_low" ] = loadfx( "explosions/wall_explosion_1_low" ); // Building 4 fall level._effect[ "nx_hhh_bldg_4_smoke_bottom" ] = loadfx("nx/hithard/nx_hhh_bldg_4_smoke_bottom"); level._effect[ "nx_hhh_bldg_4_smoke_top" ] = loadfx("nx/hithard/nx_hhh_bldg_4_smoke_top"); level._effect[ "nx_trash_runner_1024" ] = loadfx( "nx/misc/nx_trash_runner_1024" ); level._effect[ "firelp_large_pm" ] = loadfx( "fire/firelp_large_pm" ); level._effect[ "amb_dust" ] = loadfx( "smoke/amb_dust" ); level._effect[ "amb_smoke_add" ] = loadfx( "smoke/amb_smoke_add" ); level._effect[ "nx_fire_falling_palmtree" ] = loadfx( "nx/fire/nx_fire_falling_palmtree" ); //NX Motorcade--Not used, I think... //level._effect[ "vehicle_explosion_hummer" ] = LoadFX( "explosions/vehicle_explosion_hummer" ); // sniper rooftop encounter level._effect[ "nx_helicopter_explosion1" ] = LoadFX( "nx/explosions/nx_helicopter_explosion1" ); level._effect[ "nx_smoke_hh_sniper_intersection_reveal" ] = LoadFX( "nx/smoke/nx_smoke_hh_sniper_intersection_reveal" ); level._effect[ "firelp_med_pm_nolight" ] = LoadFX( "fire/firelp_med_pm_nolight" ); level._effect[ "firelp_small_pm_nolight" ] = LoadFX( "fire/firelp_small_pm_nolight" ); level._effect[ "nx_hhh_intersection_side_smoke" ] = LoadFX( "nx/hithard/nx_hhh_intersection_side_smoke" ); // setexpFog(near, half plane, r, g, b, max, transition time) //scripted FX //Osprey intro crashy sequence level._effect[ "old_osprey_missle_hit_xplosion01" ] = loadfx( "nx/explosions/nx_osprey_explosion_1" ); level._effect[ "osprey_missle_hit_xplosion01" ] = loadfx( "nx/explosions/nx_missle_air_hit01" ); level._effect[ "osprey_missle_hit_debris01" ] = loadfx( "nx/explosions/nx_too_much_debri_directional01" ); level._effect[ "osprey_missle_launch01" ] = loadfx( "nx/smoke/nx_missle_and_smokertail01" ); level._effect[ "osprey_missle_hit_xplosion01b" ] = loadfx( "nx/explosions/nx_missle_air_hit02" ); level._effect[ "osprey_wing_burn_emmiter" ] = loadfx( "nx/fire/nx_fire_smoke_trail_l_emitter_01" ); level._effect[ "osprey_engine_burn_emmiter" ] = loadfx( "fire/fire_smoke_trail_L_emitter" ); level._effect[ "osprey_engine_flame_out" ] = loadfx( "nx/fire/nx_osprey_engine_crashing" ); level._effect[ "osprey_missle_hit_explosion_l" ] = loadfx( "explosions/aerial_explosion_heli" ); level._effect[ "osprey_takeoff_afterburn" ] = loadfx( "fire/jet_afterburner_ignite" ); level._effect[ "osprey_takeoff_thrust" ] = loadfx( "fire/jet_afterburner_harrier" ); level._effect[ "osprey_2ndary_explosion_l_01" ] = loadfx( "nx/explosions/nx_explosion_osprey_engine" ); level._effect[ "nx_smoke_osprey_engine_hit" ] = loadfx( "nx/smoke/nx_smoke_osprey_engine_hit" ); level._effect[ "nx_light_hhh_osprey_intro_back_door" ] = loadfx( "nx/lights/nx_light_hhh_osprey_intro_back_door" ); level._effect[ "nx_light_hhh_osprey_intro_windshield" ] = loadfx( "nx/lights/nx_light_hhh_osprey_intro_windshield" ); // level._effect[ "osprey_large_afterburner" ] = loadfx( "nx/fire/nx_repel_looping_large_afterburner" ); level._effect[ "osprey_small_afterburner" ] = loadfx( "nx/fire/nx_repel_looping_small_afterburner" ); level._effect[ "osprey_medium_afterburner" ] = loadfx( "nx/fire/nx_repel_looping_medium_afterburner" ); level._effect[ "osprey_windshield_light" ] = loadfx( "nx/lights/nx_repel_osprey_light_0" ); level._effect[ "osprey_engine_impact_explosion01" ] = loadfx( "nx/explosions/nx_big_clusterbomb" ); level._effect[ "osprey_engine_impact_smoke01" ] = loadfx( "nx/fire/nx_repel_fire_column_med" ); level._effect[ "osprey_engine_dustrush01" ] = loadfx( "nx/explosions/nx_repel_osprey_engine_dustrush01" ); level._effect[ "osprey_dust" ] = loadfx( "nx/treadfx/osprey_dust" ); level._effect[ "smoke_swirl" ] = loadfx( "smoke/smoke_swirl" ); level._effect[ "expRound" ] = loadfx( "impacts/expRound" ); //osprey_intro_fx///////////// // level._effect[ "looping_aa_fire_osp_02" ] = loadfx( "nx/hithard/nx_osprey_intro_osp2_aa" ); level._effect[ "looping_aa_fire_osp_02_focused" ] = loadfx( "nx/misc/nx_ec_faux_aa_child_a" ); level._effect[ "cabin_rail_impacts_01" ] = loadfx( "nx/hithard/nx_osprey_cabin_rail_impacts_01" ); level._effect[ "redblinker" ] = loadfx( "nx/hithard/nx_osprey_red_blinker_cabin" ); level._effect[ "cabin_smoke_med_01" ] = loadfx( "nx/hithard/nx_osprey_cabin_smoke_med" ); level._effect[ "cabin_smoke_small_01" ] = loadfx( "nx/hithard/nx_osprey_cabin_smoke_dark_small" ); level._effect[ "cabin_glass_blow_out_01" ] = loadfx( "nx/hithard/nx_osprey_glass_shatter_cabin" ); level._effect[ "wire_sparks_01" ] = loadfx( "nx/hithard/nx_wire_sparks_01" ); level._effect[ "lil_osprey_fires" ] = loadfx( "nx/hithard/nx_osprey_intro_flame_ember_01" ); level._effect[ "cabin_explosion" ] = loadfx( "nx/hithard/nx_osprey_cabin_explosion_01" ); level._effect[ "nx_cloud_huge_light_preseed" ] = loadfx( "nx/weather/nx_cloud_huge_light_preseed" ); // Cortel sequence level._effect[ "hhh_cortel_breach_hit" ] = loadfx( "nx/hithard/hhh_cortel_breach_hit" ); level._effect[ "nx_hhh_cortel_door_breach" ] = loadfx( "nx/explosions/nx_hhh_cortel_door_breach" ); level._effect[ "nx_explosion_cortel_stairwell" ] = loadfx( "nx/explosions/nx_explosion_cortel_stairwell" ); apply_vision_and_fog_osprey(); /// starting vision and fog // Stairway shake level._effect[ "ceiling_rock_collapse" ] = loadfx( "explosions/ceiling_rock_collapse" ); //UGV_drop_onto_SUV level._effect[ "car_glass_large" ] = loadfx( "props/car_glass_large" ); level._effect[ "car_glass_med" ] = loadfx( "props/car_glass_med" ); level._effect[ "car_crushfx_01" ] = loadfx( "nx/hithard/nx_crushing_ugv_impact" ); level._effect[ "car_smokenfire_01" ] = loadfx( "nx/smoke/nx_car_damage_blacksmoke_fire" ); level._effect[ "car_alarm_light_01" ] = loadfx( "nx/misc/nx_copcar_light_red_loop_01" ); SetLightGridIntensity(0.50); flag_init( "parachute_trigger_building02_amb_fx" ); //level thread playerEffect(); } /* playerEffect() { flag_wait( "parachute_trigger_building02_amb_fx" ); player = getentarray( "player", "classname" )[ 0 ]; for ( ;; ) { playfx( level._effect[ "nx_ash_cloud_heavy_runner" ], player.origin + ( 0, 0, -200 ) ); wait( 0.3 ); } } */ SetLightGridIntensity(val) { SetSavedDVar("r_lightGridEnableTweaks", 1); SetSavedDVar("r_lightGridIntensity", val ); } RevertLightGridIntensity() { SetSavedDVar("r_lightGridEnableTweaks", 0); SetSavedDVar("r_lightGridIntensity", 1 ); } //******************************************************************* // * // * //******************************************************************* // Effects Sequencing for intersection sniping encounter // *************************************************** // Jump Points // rooftop jump point start fx_rooftop_init() { apply_vision_and_fog_parachute_land(); // startup the ambient effects //Exploder("fx_sniper_intersection_ambient"); // spawn the first fireball // flag_intersection_first_fireball flag_wait ("flag_intersection_first_fireball"); wait 0.40; // fireball from a car below when you climb up the ladder Exploder("fx_rooftop_sniper_first_fireball"); fx_sniper_encounter_sequencing(); flag_wait ("flag_rooftop_sniper_down_stairs"); // we're heading down stairs fx_sniper_down_the_stairs_sequencing(); flag_wait ("flag_rooftop_sniper_exit_to_street"); // we're exiting the garage(?) fx_sniper_exit_to_street_sequencing(); // fx_rooftop_ambient - ambient effects on the rooftop sniper perch // fx_sniper_intersection_ambient -- ambient fire and effects in the sniper intersection // wait 10.0f // Clean up // DeleteExploder("fx fx_rooftop_sniper_first_fireball"); } // startjump point for the start of the sniper encounter fx_secure_init() { // startup the ambient effects Exploder("fx_sniper_intersection_ambient"); // Timing is dependent on prep_secure_intersection() in nx_hithard_secure.gsc - BMarv //flag_wait ("flag_intersection_first_fireball"); //wait 0.75; // fireball from a car below when you climb up the ladder Exploder("fx_rooftop_sniper_first_fireball"); //clean up parking lot and building04 fx stop_exploder_nx("rooftop_amb_fx_noint", 1 ); stop_exploder_nx("building04_amb_fx", 1 ); // fireball from a car below when you climb up the ladder fx_sniper_encounter_sequencing(); flag_wait ("flag_rooftop_sniper_down_stairs"); // we're heading down stairs fx_sniper_down_the_stairs_sequencing(); flag_wait ("flag_rooftop_sniper_exit_to_street"); // we're exiting the garage(?) fx_sniper_exit_to_street_sequencing(); } // startjump point for the end of the sniper encounter before the player goes downstairs to the motorcade. fx_motorcade_init() { apply_effects_sniper_wave4(); // startup the ambient effects //Exploder("fx_sniper_intersection_ambient"); flag_wait ("flag_rooftop_sniper_down_stairs"); // we're heading down stairs fx_sniper_down_the_stairs_sequencing(); flag_wait ("flag_rooftop_sniper_exit_to_street"); // we're exiting the garage(?) fx_sniper_exit_to_street_sequencing(); } // *************************************************** fx_sniper_encounter_sequencing() { apply_vision_and_fog_secure_start(); //for ( i=0; i<2; i++ ) //{ //playfx( level._effect[ "nx_ash_cloud_heavy" ], level._player.origin + ( 0, 0, 100 ), ( 1, 0, 0 ) ); //wait 3.0; //} // WAVE 1 ****************************************************************************************************** // After killing a certain number of dudes on the ground level waittill( "notify_secure_objective_wave_1_complete"); apply_effects_sniper_wave2(); // WAVE 2 ****************************************************************************************************** // After killing the guys in the Cortel building's balcony, inside, terrace (across from the player) level waittill( "notify_secure_objective_cortel_complete"); apply_effects_sniper_wave3(); // WAVE 3 ****************************************************************************************************** // After killing the guys on the Bonaventure ( 10'oclock from the player's position). Sniper on rooftop, guys on bridge. level waittill( "notify_secure_objective_bon_complete"); apply_effects_sniper_wave4(); //adding some red lights and fire to the stairwell Exploder("parkinggarage_stairwell_fx"); } fx_sniper_down_the_stairs_sequencing() { // Add the smoke in the downstairs area Exploder("fx_sniper_lobby_ambient"); apply_vision_and_fog_secure_mid(); //getting rid of building 04 fx since we can't see them anymore delete_exploder("building04_amb_fx"); // add dust falling, etc. } fx_sniper_exit_to_street_sequencing() { flag_wait ("flag_rooftop_sniper_exit_to_street"); // we're exiting the garage(?) //removing some red lights and fire //delete_Exploder("parkinggarage_stairwell_fx"); //iPrintLnBold("--- deleting stairwell exploder ---"); apply_vision_and_fog_secure_end(); } // *************************************************** // [andym] Osprey_Intro_FX // *************************************************** parachute_guys_blink_lights(ally01, ally05) { level waittill( "notify_ospery_guys_jumping" ); // wait until the osprey is hit // blinking lights on your parachuting buddies PlayFXOnTag(level._effect[ "aircraft_light_white_blink" ], ally01, "tag_effect"); PlayFXOnTag(level._effect[ "aircraft_light_white_blink" ], ally05, "tag_effect"); } fx_ospreyintro_jumping_out(hithard_osprey_01) { level notify( "notify_ospery_guys_jumping" ); // iPrintLnBold("--- JUMPING OUT --- "); wait 2.0; RevertLightGridIntensity(); } fx_ospreyintro_backdoor_open(osprey_damaged) { level notify( "notify_osprey_back_light_on" ); //iPrintLnBold("--- Back Door Opening --- "); // wait 6.3333; // wait 6.8; wait 5.0; // set_vision_set( "nx_hithard_osprey_door_open", 1.0); set_vision_set( "nx_hithard_osprey_door_open", 2.5); // wait 4.0; wait 5.0; apply_vision_and_fog_parachute_jump(3.0); } fx_ospreyintro_backdoor_open_light_on( osprey_damaged ) { level waittill( "notify_osprey_back_light_on" ); // iPrintLnBold("--- back door light on ---"); PlayFXOnTag( level._effect[ "nx_light_hhh_osprey_intro_back_door" ], osprey_damaged, "tag_osprey_back_door" ); } fx_start_osprey_intro(hithard_osprey_01) { // iPrintLnBold("--- fx_start_osprey_intro ---"); wait 2.5; // iPrintLnBold("--- Start Cabin Vision set Change ---"); thread set_vision_set("nx_hithard_osprey_cabin", 5.0); lerp_fov_overtime( 5.0 , 45.0 ); } fx_test_osp01_nt( hithard_osprey_01 ) { PlayFXOnTag( level._effect[ "redblinker" ], hithard_osprey_01, "tag_death_fx" ); wait 3.0; StopFXOnTag( level._effect[ "redblinker" ], hithard_osprey_01, "tag_death_fx" ); } fx_ospreyintro_osp02_engines_on( hithard_osprey_02 ) { PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); wait 10.0; PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); } fx_ospreyintro_osp03_engines_on( hithard_osprey_03 ) { PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_03, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_03, "tag_engine_right_fx1" ); wait 20.0; StopFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_03, "tag_engine_left_fx1" ); StopFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_03, "tag_engine_right_fx1" ); } fx_ospreyintro_osp04_engines_on( hithard_osprey_04 ) { PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_04, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_04, "tag_engine_right_fx1" ); wait 20.0; StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_04, "tag_engine_left_fx1" ); StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_04, "tag_engine_right_fx1" ); } fx_ospreyintro_osp02_thrust( hithard_osprey_02 ) { PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); wait 2.0; StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); } fx_ospreyintro_start_aa( hithard_osprey_01 ) { playfxOnTag( level._effect[ "looping_aa_fire_osp_02" ], hithard_osprey_01, "tag_flash" ); wait 10.0; StopFxonTag( level._effect[ "looping_aa_fire_osp_02" ], hithard_osprey_01, "tag_flash" ); } fx_ospreyintro_osp02_hit( hithard_osprey_02 ) { playfxOnTag( level._effect[ "looping_aa_fire_osp_02_focused" ], hithard_osprey_02, "tag_passenger" ); wait 0.2; //iprintlnbold( "WTS!!!" ); playfxOnTag( level._effect[ "osprey_missle_hit_explosion_l" ], hithard_osprey_02, "tag_passenger" ); playfxOnTag( level._effect[ "osprey_engine_burn_emmiter" ], hithard_osprey_02, "tag_passenger" ); stutter_interval = 0.2; wait stutter_interval; stopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); stopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); wait stutter_interval; PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); playfxOnTag( level._effect[ "osprey_missle_hit_explosion_l" ], hithard_osprey_02, "tag_driver" ); wait stutter_interval; stopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1"); stopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1"); wait stutter_interval; PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); wait stutter_interval; stopFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); stopFXOnTag( level._effect[ "osprey_small_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); wait stutter_interval; PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); wait stutter_interval; StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_left_fx1" ); StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], hithard_osprey_02, "tag_engine_right_fx1" ); } fx_ospreyintro_osp01_flackhit( osprey_damaged ) { //iprintlnbold( "flackhit!!!" ); level._player DoDamage( level._player.health - 10, level._player.origin ); quakeobj = spawn( "script_origin", level._player.origin ); quakeobj PlayRumbleOnEntity( "artillery_rumble" ); lerp_fov_overtime( 0.20 , 65.0 ); playfxOnTag( level._effect[ "cabin_explosion" ], osprey_damaged, "tag_fx_fire_04" ); wait 0.01; playfxOnTag( level._effect[ "cabin_smoke_med_01" ], osprey_damaged, "tag_osprey_windshield" ); wait 0.01; playfxOnTag( level._effect[ "cabin_smoke_small_01" ], osprey_damaged, "tag_fx_dark_smoke_01" ); wait 0.01; playfxOnTag( level._effect[ "cabin_glass_blow_out_01" ], osprey_damaged, "tag_osprey_windshield" ); wait 0.01; PlayFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_01"); wait 0.01; PlayFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_02"); wait 0.01; PlayFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_03"); wait 0.01; PlayFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_04"); wait 0.01; PlayFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_05"); playfxOnTag( level._effect[ "redblinker" ], osprey_damaged, "tag_red_light" ); wait 0.1; playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_a_sparks_01" ); playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_b_sparks_01" ); wait 0.1; playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_c_sparks_01" ); playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_d_sparks_01" ); wait 0.1; playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_e_sparks_01" ); playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_f_sparks_01" ); wait 0.1; playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_g_sparks_01" ); playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_h_sparks_01" ); playfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_i_sparks_01" ); } fx_ospreyintro_osp01_particle_cleanup( osprey_damaged ) { //iprintlnbold( "particle_cleanup" ); stopfxOnTag( level._effect[ "osprey_2ndary_explosion_l_01" ], osprey_damaged, "tag_passenger" ); stopfxOnTag( level._effect[ "cabin_smoke_med_01" ], osprey_damaged, "tag_osprey_windshield" ); wait 0.01; stopfxOnTag( level._effect[ "cabin_smoke_small_01" ], osprey_damaged, "tag_fx_dark_smoke_01" ); stopfxOnTag( level._effect[ "cabin_glass_blow_out_01" ], osprey_damaged, "tag_osprey_windshield" ); wait 0.01; stopFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_01"); stopFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_02"); wait 0.01; stopFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_03"); stopFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_04"); wait 0.01; stopFXOnTag( level._effect[ "lil_osprey_fires" ], osprey_damaged, "tag_fx_fire_05"); stopfxOnTag( level._effect[ "redblinker" ], osprey_damaged, "tag_red_light" ); wait 0.01; stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_a_sparks_01" ); stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_b_sparks_01" ); wait 0.01; stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_c_sparks_01" ); stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_d_sparks_01" ); wait 0.01; stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_e_sparks_01" ); stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_f_sparks_01" ); wait 0.01; stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_g_sparks_01" ); stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_h_sparks_01" ); wait 0.01; stopfxOnTag( level._effect[ "wire_sparks_01" ], osprey_damaged, "tag_fx_wire_i_sparks_01" ); } // *************************************************** /* osprey_engine_fx_01 ( osprey ) { //iprintlnbold( "Missle_hit" ); //tagPos = osprey_engine GetTagOrigin( "tag_engine_left" ); playfxOnTag( level._effect[ "osprey_engine_flame_out" ], osprey, "tag_engine_left" ); PlayFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], osprey, "tag_engine_left_fx1"); } */ fx_ospreycrashvp_start( ospreycrashvp ) { // iprintlnbold( "OSPREY_VP_CRASH: Start" ); //PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); //PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); wait 4.0; // play swirl smoke effects as the osprey goes through the smoke column at the end of the intersection. for (i=0; i<4 ; i++) { PlayFXOnTag( level._effect[ "smoke_swirl" ], ospreycrashvp, "tag_engine_right_fx1"); PlayFXOnTag( level._effect[ "smoke_swirl" ], ospreycrashvp, "tag_engine_left_fx1"); wait 0.25; } //StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); //StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); } fx_ospreycrashvp_flare( ospreycrashvp ) { // iprintlnbold( "OSPREY_VP_CRASH: Flare" ); // 9.7 secs later, kill the wash and stuff on the player's view. wait 2.0; PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); wait 0.50; Exploder("fx_hhh_osprey_intersection_wash"); // 2.5 // add some grit to the screen wait 2.3; level._player thread maps\_gameskill::grenade_dirt_on_screen( "left" ); // 4.8 wait 2.5; level._player thread maps\_gameskill::grenade_dirt_on_screen( "right" ); // 6.3 wait 1.34; level._player thread maps\_gameskill::grenade_dirt_on_screen( "left" ); // 7.64 wait 1.5; level._player thread maps\_gameskill::grenade_dirt_on_screen( "right" ); // 9.14 //StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); // StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); // wait 0.56; stop_exploder("fx_hhh_osprey_intersection_wash"); } fx_ospreycrashvp_hit_by_ugv( ospreycrashvp ) { level waittill( "notify_osprey_hit" ); // wait until the osprey is hit // iprintlnbold( "OSPREY_VP_CRASH: BOOM!" ); // wait 0.1; // StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); // the explosion thread fx_ospreycrashvp_right_engine_sputter(9.40, 2.0, ospreycrashvp); PlayFXOnTag( level._effect[ "osprey_2ndary_explosion_l_01" ], ospreycrashvp, "tag_engine_right_fx1"); PlayFXOnTag( level._effect[ "nx_smoke_osprey_engine_hit" ], ospreycrashvp, "tag_engine_right_fx1"); // PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); wait 1.90; //PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); //StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); thread fx_ospreycrashvp_left_engine_sputter(5.0, 1.333, ospreycrashvp); // thread fx_ospreycrashvp_right_engine_sputter(6.40, 0.40, ospreycrashvp); wait 0.9; PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_right"); wait 0.17; // PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_right"); wait 2.5; // StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); // StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_right"); wait 0.55; PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "TAG_UGV"); wait 0.2; PlayFXOnTag(level._effect[ "nx_building01_explosion_small" ], ospreycrashvp, "tag_ground"); wait 1.5; Exploder("fx_osprey_crash_aftermath"); // PlayFXOnTag(level._effect[ "nx_hhh_bldg_fire_column_dark_01_preseed" ], ospreycrashvp, "tag_ground"); // fx_ospreycrashvp_right_engine_sputter(5.0, 0.3330, ospreycrashvp); // wait 3.0; // fx_ospreycrashvp_left_engine_sputter(4.0, 0.26, ospreycrashvp); } // sputter_time = how long the effect shouild sputter // sputter_rate = fx_ospreycrashvp_left_engine_sputter(sputter_time, sputter_rate, ospreycrashvp) { sputter_loop_count = floor ( sputter_time / sputter_rate ); for (i=0; i < sputter_loop_count; i++) { // Start the burner PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); wait (sputter_rate * 0.80); // Stop the burner, start the fire and smoke StopFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); wait (sputter_rate * 0.10); PlayFXOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_left_fx1"); wait (sputter_rate * 0.20); StopFXOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_left_fx1"); wait 0.10; } // emd on the fire and smoke PlayFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_left_fx1"); } fx_ospreycrashvp_right_engine_sputter(sputter_time, sputter_rate, ospreycrashvp) { sputter_loop_count = floor ( sputter_time / sputter_rate ); for (i=0; i < sputter_loop_count; i++) { // Start the burner PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); wait (sputter_rate * 0.80); // Stop the burner, start the fire and smoke StopFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); wait (sputter_rate * 0.20); //PlayFXOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_right_fx1"); //wait (sputter_rate * 0.20); //StopFXOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_right_fx1"); wait 0.10; } // emd on the fire and smoke PlayFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_right_fx1"); } fx_ospreycrashvp_hover( ospreycrashvp ) { // iprintlnbold( "OSPREY_VP_CRASH: Hover" ); /* wait 0.50; PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); PlayFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); wait 0.50; */ /* wait 2.0; hit_interval = 0.333; PlayFXOnTag( level._effect[ "expRound" ], ospreycrashvp, "tag_exfil_hit_1"); wait hit_interval; PlayFXOnTag( level._effect[ "expRound" ], ospreycrashvp, "tag_exfil_hit_2"); wait hit_interval; PlayFXOnTag( level._effect[ "expRound" ], ospreycrashvp, "tag_exfil_hit_3"); wait hit_interval; PlayFXOnTag( level._effect[ "expRound" ], ospreycrashvp, "tag_exfil_hit_4"); wait ( hit_interval + hit_interval ); */ } fx_ospreycrashvp_veer( ospreycrashvp ) { // iprintlnbold( "OSPREY_VP_CRASH: crash" ); //wait 2.0; //PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_right"); //wait 1.03; //PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_left"); //wait 1.7; //PlayFXOnTag(level._effect[ "nx_building01_explosion_small" ], ospreycrashvp, "tag_body"); /* // left engine throttles up! StopFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); PlayFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); wait 0.50; StopFXOnTag( level._effect[ "osprey_small_afterburner" ], ospreycrashvp, "tag_engine_right_fx1"); //PlayfxOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_left" ); wait 1.50; stop_exploder("fx_hhh_osprey_intersection_wash"); wait 1.0; PlayFXOnTag( level._effect[ "osprey_2ndary_explosion_l_01" ], ospreycrashvp, "tag_engine_left_fx1"); StopFXOnTag( level._effect[ "osprey_medium_afterburner" ], ospreycrashvp, "tag_engine_left_fx1"); PlayFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_left_fx1"); */ /* for (i=0; i<6; i++) { StopFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_left_fx1"); wait 0.25; PlayFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_left_fx1"); wait 0.7; } */ } fx_ospreycrashvp_crash( ospreycrashvp ) { // iprintlnbold( "OSPREY_VP_CRASH: Crash" ); /* wait 0.2; PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_left"); wait 1.03; PlayFXOnTag(level._effect[ "old_osprey_missle_hit_xplosion01" ], ospreycrashvp, "tag_engine_right"); wait 1.7; PlayFXOnTag(level._effect[ "nx_building01_explosion_small" ], ospreycrashvp, "tag_body"); Exploder("fx_intersection_osprey_crash_tree_fire"); wait 10.0; //StopfxOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_left" ); StopFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_left_fx1"); //StopfxOnTag( level._effect[ "osprey_engine_flame_out" ], ospreycrashvp, "tag_engine_right" ); StopFXOnTag( level._effect[ "osprey_engine_burn_emmiter" ], ospreycrashvp, "tag_engine_right_fx1"); */ // thread the next set of triggers for vision and fog. thread fx_apply_vision_and_fog_cortel_side_street(); thread fx_apply_vision_and_fog_cortel_enter(); thread fx_apply_vision_and_fog_cortel_stairwell_enter(); } // Cortel Sequencing // Exploders: fx_cortel_breach //******************************************************************* // * // * //******************************************************************* // hold onto this... intersection fireball // flag_intersection_first_fireball //************************************************************************ // suv crushing by dropped ugv //************************************************************************ fx_suv_02_smash_01 ( dropoff_suv_02 ) { //iprintlnbold( "Monsterrrr Truuuckkk Rally, GO!" ); PlayFXOnTag(level._effect[ "car_crushfx_01" ], dropoff_suv_02, "TAG_GLASS_BACK"); PlayFXOnTag(level._effect[ "car_glass_large" ], dropoff_suv_02, "tag_glass_back_fx"); wait 0.01; PlayFXOnTag(level._effect[ "car_glass_med" ], dropoff_suv_02, "tag_glass_right_back_fx"); PlayFXOnTag(level._effect[ "car_glass_med" ], dropoff_suv_02, "tag_glass_left_back_fx"); wait 0.01; PlayFXOnTag(level._effect[ "car_glass_med" ], dropoff_suv_02, "tag_glass_right_back_fx_02"); PlayFXOnTag(level._effect[ "car_glass_med" ], dropoff_suv_02, "tag_glass_left_back_fx_02"); wait 0.01; PlayFXOnTag(level._effect[ "car_glass_med" ], dropoff_suv_02, "tag_glass_right_front_fx");; PlayFXOnTag(level._effect[ "car_glass_med" ], dropoff_suv_02, "tag_glass_LEFT_front_fx"); wait 0.01; PlayFXOnTag(level._effect[ "car_glass_large" ], dropoff_suv_02, "tag_glass_front_fx"); wait 0.01; PlayFXOnTag(level._effect[ "car_alarm_light_01" ], dropoff_suv_02, "TAG_TAIL_LIGHT_RIGHT"); wait 0.1; PlayFXOnTag(level._effect[ "car_alarm_light_01" ], dropoff_suv_02, "TAG_TAIL_LIGHT_left"); } //************************************************************************ hide_lz() { augmented_lz = getent( "hhh_LZ", "targetname" ); if ( !isdefined( augmented_lz )) { AssertMsg( "Could not find LZ!" ); } else { augmented_lz Hide(); } } show_lz() { augmented_lz = getent( "hhh_LZ", "targetname" ); if ( !isdefined( augmented_lz )) { AssertMsg( "Could not find LZ!" ); } else { augmented_lz show(); } } lz_flicker_on() { augmented_lz = getent( "hhh_LZ", "targetname" ); if ( !isdefined( augmented_lz )) { AssertMsg( "Could not find LZ!" ); } else { short_flicker_time = 0.03; med_flicker_time = 0.10; for( i = 0; i < 5; i++ ) { augmented_lz Show(); wait short_flicker_time; augmented_lz Hide(); wait short_flicker_time; } for( i = 0; i < 3; i++ ) { augmented_lz Show(); wait med_flicker_time; augmented_lz Hide(); wait med_flicker_time; } for( i = 0; i < 3; i++ ) { augmented_lz Show(); wait short_flicker_time; augmented_lz Hide(); wait short_flicker_time; } // actually on now augmented_lz Show(); } } lz_flicker_off() { augmented_lz = getent( "hhh_LZ", "targetname" ); if ( !isdefined( augmented_lz )) { AssertMsg( "Could not find LZ!" ); } else { short_flicker_time = 0.03; for( i = 0; i < 5; i++ ) { augmented_lz Hide(); wait short_flicker_time; augmented_lz Show(); wait short_flicker_time; } // actually on now augmented_lz Hide(); } } // fx_cortel_enter // fx_cortel_side_street // fx_cortel_stairwell_enter // ************************************************************************ // trigger setting the vision and fog when you walk down the street to the cortel building // the main thing here is that we're turning off the sunfog, // as that direction is occulded by the building to the player's right. fx_apply_vision_and_fog_cortel_side_street() { flag_wait("fx_cortel_side_street"); transition_time = 4.0; // set_vision_set( "nx_hithard_sniper_intersection", transition_time ); setExpFog( 500, 2500, 0.3921569, 0.3333333, 0.2745098, 0.2, transition_time); // setExpFog( 0, 1000, 0.3921569, 0.3333333, 0.2745098, 0.6, transition_time, 0.7333333, 0.6352941, 0.5568628, ( 0.975479, 0.0189773, 0.219272 ), 0, 45, 0.0 ); } fx_apply_cortel_bldg_vision_fog() { // this function only used for the motorcade_end jump point set_vision_set( "nx_hithard_cortel_interior", 0.0 ); setExpFog( 1000, 5000, 0.3921569, 0.3333333, 0.2745098, 0.1, 0.0); thread fx_apply_vision_and_fog_cortel_stairwell_enter(); } // trigger entering the Cortel building itself fx_apply_vision_and_fog_cortel_enter() { flag_wait("fx_cortel_enter"); transition_time = 5.0; set_vision_set( "nx_hithard_cortel_interior", transition_time ); setExpFog( 1000, 5000, 0.3921569, 0.3333333, 0.2745098, 0.1, transition_time); } // Trigger entering the stairwell inside the Cortel building fx_apply_vision_and_fog_cortel_stairwell_enter() { flag_wait("fx_cortel_stairwell_enter"); transition_time = 6.0; set_vision_set( "nx_hithard_cortel_stairwell", transition_time ); setExpFog( 1000, 5000, 0.3921569, 0.3333333, 0.2745098, 0.0, transition_time); } // ************************************************************************ apply_vision_and_fog_osprey() { // iPrintLnBold("--- Applying Osprey vision and fog ---"); //iPrintLn("--- Applying Osprey vision and fog ---"); set_vision_set( "nx_hithard_osprey", 1 ); setExpFog( 3610, 18051, 0.6392157, 0.7333333, 0.7882353, 0.02526667, 0, 1, 0.8941177, 0.5333334, ( 0.975479, 0.0189773, 0.219272 ), 0, 35, 0 ); } apply_vision_and_fog_osprey_door_open() { // iPrintLnBold("--- Applying Osprey vision and fog ---"); level._player PlaySound( "hithard_osprey_door" ); thread maps\_utility::set_ambient( "nx_hithard_osp_open" ); transition_time = 2.0; //iPrintLn("--- Applying Osprey DOOR OPEN vision and fog ---"); set_vision_set( "nx_hithard_osprey_door_open", transition_time); } apply_vision_and_fog_parachute_jump( transition_time ) { //iPrintLn("--- Applying Parachute Jump vision and fog ---"); set_vision_set( "nx_hithard_parachuting", transition_time ); setExpFog( 361, 3611, 0.4352941, 0.4509804, 0.509804, 0.2599, transition_time, 0.4980392, 0.4470588, 0.2627451, ( 0.975479, 0.0189773, 0.219272 ), 0, 35, 0 ); RevertLightGridIntensity(); } sequence_vision_and_fog_parachute_land() { flag_wait("flag_parasecure_parachute_landed_player"); //iPrintLn("--- Applying Parachute Land vision and fog ---"); apply_vision_and_fog_parachute_land(); } apply_vision_and_fog_parachute_land() { transition_time = 3.0; set_vision_set( "nx_hithard_landing", transition_time ); setExpFog( 3610, 18051, 0.6392157, 0.7333333, 0.7882353, 0.4801, transition_time, 1, 0.8941177, 0.5333334, ( 0.975479, 0.0189773, 0.219272 ), 0, 35, 1.12 ); } apply_vision_and_fog_secure_start() { transition_time = 5.0; //iPrintLn("--- Applying Secure Start vision and fog ---"); set_vision_set( "nx_hithard_sniper_rooftop", transition_time ); setExpFog( 2166, 3792, 0.4431373, 0.4039216, 0.4784314, 0.3068667, transition_time, 1, 0.945098, 0.7254902, ( 0, 0, 0 ), 0, 29, 0.62 ); // setExpFog( 1805, 6680, 0.4078431, 0.3882353, 0.3019608, 0.4801, transition_time, 0.5843138, 0.5607843, 0.4156863, ( 0.975479, 0.0189773, 0.219272 ), 16, 59, 2.24 ); /* while( 1 ) { playfx( level._effect[ "ash_turb_aftermath" ], level._player.origin + ( 0, 0, 100 ), level._player.origin + ( 0, 0, 150 ) ); wait 0.2; } */ } apply_effects_sniper_wave2() { transition_time = 6.0; //iPrintLn("--- apply_effects_sniper_wave2() ---"); set_vision_set( "nx_hithard_sniper_wave_2", transition_time ); setExpFog( 2166, 3792, 0.4431373, 0.4039216, 0.4784314, 0.3068667, transition_time, 1, 0.945098, 0.7254902, ( 0, 0, 0 ), 0, 29, 0.62 ); // add more crap in the air //playfx( level._effect[ "nx_ash_cloud_light" ], level._player.origin + ( 0, 0, 100 ), ( 1, 0, 0 ) ); } apply_effects_sniper_wave3() { transition_time = 6.0; //iPrintLn("--- apply_effects_sniper_wave3() ---"); set_vision_set( "nx_hithard_sniper_wave_3", transition_time ); setExpFog( 2166, 3792, 0.4431373, 0.4039216, 0.4784314, 0.6068667, transition_time, 1, 0.945098, 0.7254902, ( 0, 0, 0 ), 0, 29, 0.62 ); // add more crap in the air //playfx( level._effect[ "nx_ash_cloud_light" ], level._player.origin + ( 0, 0, 100 ), ( 1, 0, 0 ) ); } apply_effects_sniper_wave4() { transition_time = 5.0; //iPrintLn("--- apply_effects_sniper_wave4() ---"); set_vision_set( "nx_hithard_sniper_wave_4", transition_time ); setExpFog( 2166, 3792, 0.5450, 0.4980, 0.4078, 0.9068667, transition_time, 1, 0.945098, 0.7254902, ( 0, 0, 0 ), 0, 29, 0.62 ); // add more crap in the air //playfx( level._effect[ "nx_ash_cloud_light" ], level._player.origin + ( 0, 0, 100 ), ( 1, 0, 0 ) ); } apply_vision_and_fog_secure_mid() { transition_time = 6.0; //iPrintLn("--- Applying Secure Start vision and fog ---"); set_vision_set( "nx_hithard_sniper_stairwell", transition_time ); setExpFog( 1805, 6680, 0.4078431, 0.3882353, 0.3019608, 0.4801, transition_time, 0.5843138, 0.5607843, 0.4156863, ( 0.975479, 0.0189773, 0.219272 ), 16, 59, 2.24 ); /* while( 1 ) { playfx( level._effect[ "ash_turb_aftermath" ], level._player.origin + ( 0, 0, 100 ), level._player.origin + ( 0, 0, 150 ) ); wait 0.2; } */ } apply_vision_and_fog_secure_end() { transition_time = 3.0; // iPrintLn("--- Applying Secure Start vision and fog ---"); set_vision_set( "nx_hithard_sniper_intersection", transition_time ); setExpFog( 0, 1000, 0.3921569, 0.3333333, 0.2745098, 0.6, 0, 0.7333333, 0.6352941, 0.5568628, ( 0.975479, 0.0189773, 0.219272 ), 0, 45, 0.28 ); // setExpFog( 0, 1445, 0.4431373, 0.4117647, 0.3176471, 0.750, transition_time, 0.972549, 0.8509804, 0.6705883, ( 0.975479, 0.0189773, 0.219272 ), 0, 35, 0.1 ); // setExpFog( 1805, 6680, 0.4078431, 0.3882353, 0.3019608, 0.4801, transition_time, 0.5843138, 0.5607843, 0.4156863, ( 0.975479, 0.0189773, 0.219272 ), 16, 59, 2.24 ); //for ( i=0; i<5; i++ ) //{ //playfx( level._effect[ "nx_ash_cloud_light" ], level._player.origin + ( 0, 0, 100 ), ( 1, 0, 0 ) ); // wait ( randomFloat (2.0 ) + 2.0 ); //} // turn on stuff when you're going down stairs - these are effects in the cortel building // and in the doorway we need to block into the cortel building Exploder( "fx_intersection_downstairs_ambient" ); } apply_vision_and_fog_motorcade_start() { //iPrintLn("--- Applying Motorcade vision and fog ---"); set_vision_set( "nx_hithard", 1 ); } apply_vision_and_fog_city_hall_escape_start() { //iPrintLn("--- Applying City Hall vision and fog ---"); set_vision_set( "nx_hithard", 1 ); } apply_vision_and_fog_escort_start() { //iPrintLn("--- Applying Escort vision and fog ---"); set_vision_set( "nx_hithard", 1 ); }