mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-23 01:25:52 +00:00
1174 lines
50 KiB
Plaintext
1174 lines
50 KiB
Plaintext
//****************************************************************************
|
|
// **
|
|
// 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 );
|
|
}
|