nx1-gsc-dump/maps/nx_exfil_fx.gsc

365 lines
15 KiB
Plaintext

//****************************************************************************
// **
// Confidential - (C) Activision Publishing, Inc. 2010 **
// **
//****************************************************************************
// **
// Module: Skyscraper Exfil Anims **
// **
// Created: 11/10/2011 - John Webb **
// **
//****************************************************************************
#include maps\_utility;
#include common_scripts\utility;
#include maps\_vehicle;
//*******************************************************************
// *
// *
//*******************************************************************
main()
{
if ( !getdvarint( "r_reflectionProbeGenerate" ) )
{
maps\createfx\nx_exfil_fx::main();
}
//swat lasers
level._effect[ "laser_aim" ] = LoadFX( "nx/muzzleflashes/nx_laser_glow_at_weapon" );
///intro fx
level._effect[ "gutshot" ] = LoadFX( "nx/impacts/nx_exfil_fleshhit_gutshot" );
level._effect[ "headshot" ] = LoadFX( "nx/impacts/nx_exfil_fleshhit_headshot" );
///heli spot
level._effect[ "heli_spotlight" ] = LoadFX( "nx/lights/nx_exfil_heli_spotlight_01" );
//heli_damage_fx
level._effect[ "heli_smoke_trail_1" ] = loadfx( "nx/smoke/nx_heli_damage_smk_emitter");
//amb_fx
level._effect[ "ground_steam_white" ] = LoadFX( "nx/weather/nx_ground_steam_white" );
level._effect[ "car_fire_01" ] = LoadFX( "nx/fire/nx_car_fire_med_01" );
level._effect[ "fire_smoke_01" ] = LoadFX( "nx/fire/nx_fire_smoke_med_01" );
level._effect[ "red_light_small" ] = LoadFX( "nx/lights/nx_exfil_dynamic_light_red_small" );
level._effect[ "brakelight_1" ] = LoadFX( "misc/car_brakelight_btr80" );
level._effect[ "accent_fire_small" ] = LoadFX( "nx/fire/nx_small_fire" );
level._effect[ "car_turn_blinker" ] = LoadFX( "nx/lights/nx_exfil_turn_indicator_blinking" );
level._effect[ "transformer_sparks" ] = LoadFX( "nx/explosions/transformer_sparks_runner_loop" );
level._effect[ "ground_sparks" ] = LoadFX( "nx/misc/nx_spark_small_runner_loop" );
level._effect[ "smoke_amb_medium" ] = LoadFX( "nx/smoke/nx_smoke_medium_gray" );
level._effect[ "distant_floodlight_glow" ] = LoadFX( "nx/misc/nx_exfil_distant_glow" );
//smokescreen
level._effect[ "smokescreen" ] = loadfx( "nx/smoke/nx_exfil_smoke_screen" );
level._effect[ "smokescreen_glow" ] = loadfx( "nx/smoke/nx_exfil_smoke_screen_light_glow" );
//scooter_headlamp
level._effect[ "scooter_headlight" ] = loadfx( "nx/lights/nx_exfil_scooter_headlight" );
//copcarlights
level._effect[ "police_headlight_l" ] = loadfx( "nx/lights/nx_exfil_car_headlight_l_01" );
level._effect[ "police_headlight_r" ] = loadfx( "nx/lights/nx_exfil_car_headlight_r_01" );
level._effect[ "police_headlight_light" ] = loadfx( "nx/lights/nx_exfil_car_headlight_02" );
level._effect[ "police_light_blue" ] = loadfx( "nx/misc/nx_copcar_light_blue_loop_01" );
level._effect[ "police_headlight_perif" ] = loadfx( "nx/lights/nx_exfil_car_headlight_perif_01" );
level._effect[ "police_light_blue_perif" ] = loadfx( "nx/misc/nx_copcar_light_blue_loop_perif_01" );
//swatvan lights
level._effect[ "swat_headlight_l" ] = loadfx( "nx/lights/nx_exfil_swat_headlight_l_01" );
level._effect[ "swat_headlight_r" ] = loadfx( "nx/lights/nx_exfil_swat_headlight_r_01" );
//Stryker lights
level._effect[ "stryker_headlight_l" ] = loadfx( "nx/lights/nx_exfil_stryker_headlight_l_01" );
//hallway fx
level._effect[ "fluorescent_spot_01" ] = loadfx( "nx/lights/nx_exfil_fluorescent_spot");
level._effect[ "fluorescent_spot_hall_01" ] = loadfx( "nx/lights/nx_exfil_fluorescent_spot_hallway");
level._effect[ "grenade_hall_smoke" ] = LoadFX( "nx/smoke/nx_exfil_grenade_hall_smoke" );
level._effect[ "door_coplight_glow" ] = LoadFX( "nx/misc/nx_exfil_coplight_door" );
level._effect[ "hall_grenade_fx" ] = LoadFX( "nx/explosions/nx_exfil_grenade_hall" );
// string lights
level._effect[ "light_glow_white_bulb" ] = LoadFX( "nx/misc/nx_exfil_bulb_glow" );
level._effect[ "light_glow_white_bulb2" ] = LoadFX( "nx/misc/nx_exfil_bulb_glow2" );
level._spotlight_fx_script = ::turn_on_heli_spotlight_fx;
level._spotlight_fx_stop_script = ::turn_off_heli_spotlight_fx;
// create_string_light_glows();
//Apply Fog
apply_nx_exfil_fog_();
}
//*******************************************************************
// *
// *
//*******************************************************************
create_string_light_glows()
{
// targetname "string_lights"
string_light_short_tags = ["tag_bulb019","tag_bulb018","tag_bulb017","tag_bulb020"];
string_light_long_tags = ["tag_bulb008", "tag_bulb009","tag_bulb010","tag_bulb012","tag_bulb013","tag_bulb014","tag_bulb015","tag_bulb006"];
string_light_corner_tags = ["tag_bulb005", "tag_bulb004", "tag_bulb003", "tag_bulb002", "tag_bulb00"];
// the effect to place
warm_glow_effect = level._effect[ "light_glow_white_bulb" ];
cool_glow_effect = level._effect[ "light_glow_white_bulb2" ];
effects_list = [warm_glow_effect, cool_glow_effect];
lights = getentarray( "string_lights_long", "targetname" );
wait_time = 0.016667;
foreach (l in lights)
{
foreach (tag_name in string_light_long_tags)
{
glow_effect_name = effects_list[ RandomInt(2) ];
if (RandomFloat( 1.0 ) > 0.15 )
{
PlayFXOnTag(glow_effect_name, l, tag_name);
wait wait_time;
}
}
// wait wait_time;
}
lights = getentarray( "string_lights_short", "targetname" );
foreach (l in lights)
{
foreach (tag_name in string_light_short_tags)
{
glow_effect_name = effects_list[ RandomInt(2) ];
if (RandomFloat( 1.0 ) > 0.250 )
{
PlayFXOnTag(glow_effect_name, l, tag_name);
}
}
wait wait_time;
}
lights = getentarray( "string_lights_corner", "targetname" );
foreach (l in lights)
{
foreach (tag_name in string_light_corner_tags)
{
glow_effect_name = effects_list[ RandomInt(2) ];
PlayFXOnTag(glow_effect_name, l, tag_name);
}
wait wait_time;
}
}
//*******************************************************************
// *
// *
//*******************************************************************
turn_on_heli_spotlight_fx()
{
//set spotlight params: apm
setsaveddvar( "r_spotlightstartradius", "10" );
setsaveddvar( "r_spotlightEndradius", "500" );
setsaveddvar( "r_spotlightfovinnerfraction", ".5" );
setsaveddvar( "r_spotlightexponent", "1.5" );
setsaveddvar( "r_spotlightBrightness", "2" );
playFXontag( getfx( "heli_spotlight" ), self, "TAG_FLASH" );
}
//*******************************************************************
// *
// *
//*******************************************************************
turn_off_heli_spotlight_fx()
{
StopFXOnTag( getfx( "heli_spotlight" ), level._spotlight_heli, "TAG_FLASH" );
}
//*******************************************************************
// *
// *
//*******************************************************************
turn_on_police_car_lights()
{
//car = getent( "perif_copcar_01", "targetname" );
//car2 = getent( "perif_copcar_02", "targetname" );
//car3 = getent( "perif_copcar_03", "targetname" );
copcar_headlight_tags = [ "TAG_light_left_front", "TAG_light_right_front" ];
copcar_light_tags = [ "TAG_FX_LIGHT_01", "TAG_FX_LIGHT_02", "TAG_FX_LIGHT_03", "TAG_FX_LIGHT_04", "TAG_FX_LIGHT_05" ];
car = getentarray( "perif_copcar", "targetname" );
wait_time = (0.1);
foreach (l in car)
{
foreach (tag_headlight in copcar_headlight_tags)
{
PlayFXOnTag( getfx( "police_headlight_perif" ), l, tag_headlight);
}
wait wait_time;
}
foreach (l in car)
{
//foreach (tag_coplight in copcar_light_tags)
//{
PlayFXOnTag( getfx( "police_light_blue_perif" ), l, "TAG_FX_LIGHT_01");
wait ( 0.2 );
PlayFXOnTag( getfx( "police_light_blue_perif" ), l, "TAG_FX_LIGHT_02");
wait ( 0.2 );
PlayFXOnTag( getfx( "police_light_blue_perif" ), l, "TAG_FX_LIGHT_03");
wait ( 0.2 );
PlayFXOnTag( getfx( "police_light_blue_perif" ), l, "TAG_FX_LIGHT_04");
wait ( 0.2 );
PlayFXOnTag( getfx( "police_light_blue_perif" ), l, "TAG_FX_LIGHT_05");
wait ( 0.2 );
//}
wait wait_time;
}
//iprintlnbold( "trigger" );
/*
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car, "TAG_FX_LIGHT_01" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car, "TAG_FX_LIGHT_02" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car, "TAG_FX_LIGHT_03" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car, "TAG_FX_LIGHT_04" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car, "TAG_FX_LIGHT_05" );
///car2
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_headlight_perif" ), car2, "TAG_light_left_front" );
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_headlight_perif" ), car2, "TAG_light_right_front" );
wait (0.1);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car2, "TAG_FX_LIGHT_01" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car2, "TAG_FX_LIGHT_02" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car2, "TAG_FX_LIGHT_03" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car2, "TAG_FX_LIGHT_04" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car2, "TAG_FX_LIGHT_05" );
///car3
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_headlight_perif" ), car3, "TAG_light_left_front" );
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_headlight_perif" ), car3, "TAG_light_right_front" );
wait (0.1);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car3, "TAG_FX_LIGHT_01" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car3, "TAG_FX_LIGHT_02" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car3, "TAG_FX_LIGHT_03" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car3, "TAG_FX_LIGHT_04" );
wait (0.2);
common_scripts\_destructible::PlayFxOnTag_KillOnDestructibleSwap( getfx( "police_light_blue_perif" ), car3, "TAG_FX_LIGHT_05" );
*/
}
fx_set_hall_spot_params()
{
setsaveddvar( "r_spotlightstartradius", "10" );
setsaveddvar( "r_spotlightEndradius", "500" );
setsaveddvar( "r_spotlightfovinnerfraction", ".5" );
setsaveddvar( "r_spotlightexponent", "1.0" );
setsaveddvar( "r_spotlightBrightness", "1.0" );
}
fx_hall_grenade_explode( ally_01 )
{
//thread turn_on_swinging_light_fx();
//iprintlnbold( "kaboosh" );
exploder ( "hallway_post" );
level._player PlayRumbleOnEntity( "grenade_rumble" );
wait ( 0.25 );
stop_exploder ( "hallway_pre" );
thread maps\nx_exfil_anim::light_swing_spawn();
thread turn_on_police_car_lights();
}
turn_on_swinging_light_fx( light_swing )
{
playFXontag( getfx( "fluorescent_spot_01" ), light_swing, "tag_swing_center_fx" );
}
blood_grit_overlay()
{
// Triggered by rover crash animation notetrack
// create and define the parameters of the overlay
blood_grit_overlay = newClientHudElem( level._player );
blood_grit_overlay.x = 0;
blood_grit_overlay.y = 0;
blood_grit_overlay.postfx = true;
// blood_grit_overlay setshader( "mtl_overlay_grit_default", 640, 480 );
blood_grit_overlay setshader( "mtl_overlay_blood_default", 640, 480 );
blood_grit_overlay.sort = 50;
blood_grit_overlay.alignX = "left";
blood_grit_overlay.alignY = "top";
blood_grit_overlay.horzAlign = "fullscreen";
blood_grit_overlay.vertAlign = "fullscreen";
blood_grit_overlay fadeovertime( 1 );
blood_grit_overlay.alpha = 1;
}
spotlight_heli_damage_fx( damage_level )
{
// damage_level is either: "light", "med", "heavy"
switch ( damage_level )
{
case "light":
// Hook for light damage
//Iprintlnbold ("heli:damage:light");
playFXontag( getfx( "heli_smoke_trail_1" ), self, "origin_animate_joint" );
break;
case "med":
// Hook for med damage
//Iprintlnbold ("heli:damage:medium");
playFXontag( getfx( "heli_smoke_trail_1" ), self, "origin_animate_joint" );
break;
case "heavy":
// Hook for heavy damage
//Iprintlnbold ("heli:damage:heavy");
playFXontag( getfx( "heli_smoke_trail_1" ), self, "origin_animate_joint" );
break;
default:
assert( "Unrecognized damage_level in maps\nx_exfil_fx::spotlight_heli_damage_fx()" );
break;
}
}
//*******************************************************************
// *
// *
//*******************************************************************
apply_nx_exfil_fog_()
{
VisionSetNaked( "nx_exfil", 0 );
setExpFog( 0, 5000, 0.4980392, 0.4980392, 0.4980392, 1, 0, 0.953, 0, 0.9490196, 0.8470588, 0.7411765, 0.8666667, 0.9843137, 0.9568627, 1, 1, 1, ( 0, 0, -1 ), 81, 97, 5.48 );
}
//*******************************************************************
// *
// *
//*******************************************************************