mirror of
https://github.com/reaaLx/nx1-gsc-dump.git
synced 2025-04-22 17:15:48 +00:00
294 lines
15 KiB
Plaintext
294 lines
15 KiB
Plaintext
//****************************************************************************
|
|
// **
|
|
// Confidential - (C) Activision Publishing, Inc. 2010 **
|
|
// **
|
|
//****************************************************************************
|
|
// **
|
|
// Module: FX Support **
|
|
// **
|
|
// Created: DATE - CREATOR **
|
|
// **
|
|
//****************************************************************************
|
|
#include maps\_utility;
|
|
#include common_scripts\utility;
|
|
|
|
main()
|
|
{
|
|
maps\createfx\nx_lunar_fx::main();
|
|
|
|
level._effect[ "paper" ] = LoadFX( "props/news_stand_paper_spill_shatter" );
|
|
level._effect[ "meteor_trail" ] = LoadFX( "nx/misc/nx_chinese_lgv_turret_trail" );
|
|
|
|
|
|
// Enemy breach
|
|
level._effect[ "breach_charge" ] = loadFX( "nx/lunar/nx_lunar_breach_charge_insertion" );
|
|
level._effect[ "breach_explosion" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_breach" );
|
|
level._effect[ "nx_lunar_breach_charge_insert_back_air" ] = loadFX( "nx/lunar/nx_lunar_breach_charge_insert_back_air" );
|
|
|
|
// Ambient FX
|
|
level._effect[ "nx_lunar_ash_linger_200" ] = loadFX( "nx/lunar/nx_lunar_ash_linger_200" );
|
|
level._effect[ "nx_lunar_glow_dust_50" ] = loadFX( "nx/lunar/nx_lunar_glow_dust_50" );
|
|
level._effect[ "nx_lunar_glow_dust_skylight_100" ] = loadFX( "nx/lunar/nx_lunar_glow_dust_skylight_100" );
|
|
|
|
// LSP Explosion
|
|
level._effect[ "lsp_explosion" ] = loadFX( "nx/lunar/nx_lunar_transformer_explosion" );
|
|
level._effect[ "lsp_ground_dust_200" ] = loadFX( "nx/lunar/nx_lunar_lsp_explosion_dust_200" );
|
|
|
|
// Amory Breach
|
|
level._effect[ "nx_lunar_armory_depressurization" ] = LoadFX( "nx/lunar/nx_lunar_armory_depressurization" );
|
|
level._effect[ "nx_lunar_armory_sparks_gaseous_runner" ] = LoadFX( "nx/lunar/nx_lunar_armory_sparks_gaseous_runner" );
|
|
level._effect[ "nx_lunar_armory_sparks_gaseous_runner_infinite" ] = LoadFX( "nx/lunar/nx_lunar_armory_sparks_gaseous_runner_infinite" );
|
|
level._effect[ "nx_lunar_armory_sparks_runner_infinite" ] = LoadFX( "nx/lunar/nx_lunar_armory_sparks_runner_infinite" );
|
|
|
|
level._effect[ "steam_jet_med_loop" ] = LoadFX( "smoke/steam_jet_med_loop" );
|
|
level._effect[ "pipe_flame" ] = LoadFX( "nx/lunar/impacts/nx_lunar_pipe_fire" );
|
|
|
|
// Airlock Cycle
|
|
level._effect[ "nx_lunar_steam_jet_blow" ] = LoadFX( "nx/lunar/nx_lunar_steam_jet_blow" );
|
|
level._effect[ "nx_lunar_steam_jet_suck" ] = LoadFX( "nx/lunar/nx_lunar_steam_jet_suck" );
|
|
|
|
// Temp effects
|
|
level._effect[ "railgun_impact_explosion" ] = loadfx( "explosions/artilleryExp_dirt_brown" );
|
|
level._effect[ "hub_room_explosion" ] = loadfx( "explosions/wall_explosion_2_short_nosmoke" );
|
|
level._effect[ "charlie_impact" ] = loadfx( "impacts/flesh_hit_body_fatal_exit" );
|
|
level._effect[ "tower_impact" ] = loadfx( "impacts/20mm_metal_impact" );
|
|
level._effect[ "rock_explosion" ] = loadfx( "misc/rock_break_explosion" );
|
|
level._effect[ "boulder_dust_cloud" ] = loadfx( "test/nx_lunar_regolith_impact_large" );
|
|
level._effect[ "exterior_vista_steam" ] = loadfx( "smoke/steam_large_vent" );
|
|
|
|
// Crew Module Airlock Death
|
|
level._effect[ "footdust_small" ] = LoadFX( "nx/lunar/impacts/nx_footstep_moondust_small" );
|
|
level._effect[ "nx_lunar_falcon_death_blood_hit" ] = LoadFX( "nx/lunar/nx_lunar_falcon_death_blood_hit" );
|
|
level._effect[ "nx_lunar_crew_airlock_blood_squirt" ] = LoadFX( "nx/lunar/nx_lunar_crew_airlock_blood_squirt" );
|
|
level._effect[ "nx_lunar_crew_airlock_impact_large" ] = loadFX( "nx/lunar/nx_lunar_crew_airlock_impact_large" );
|
|
|
|
// Falcon Death
|
|
level._effect[ "nx_lunar_falcon_death_blood_exit" ] = loadFX( "nx/lunar/nx_lunar_falcon_death_blood_exit" );
|
|
level._effect[ "nx_lunar_falcon_death_blood_squirt" ] = loadFX( "nx/lunar/nx_lunar_falcon_death_blood_squirt" );
|
|
level._effect[ "nx_lunar_falcon_death_dust" ] = loadFX( "nx/lunar/nx_lunar_falcon_death_dust" );
|
|
level._effect[ "nx_lunar_falcon_death_dust_small" ] = loadFX( "nx/lunar/nx_lunar_falcon_death_dust_small" );
|
|
level._effect[ "nx_lunar_falcon_death_glass_hit" ] = loadFX( "nx/lunar/nx_lunar_falcon_death_glass_hit" );
|
|
level._effect[ "nx_chinese_lgv_turret_wv" ] = loadFX( "nx/muzzleflashes/nx_chinese_lgv_turret_wv" );
|
|
precacheItem( "nx_chinese_lgv_turret_magicbullet_big_dirt" );
|
|
precacheItem( "nx_chinese_lgv_turret_magicbullet_dirt" );
|
|
precacheItem( "nx_chinese_lgv_turret_magicbullet_dirt_linger" );
|
|
precacheItem( "nx_chinese_lgv_turret_magicbullet_flesh" );
|
|
|
|
// Intro
|
|
level._effect[ "nx_lunar_helmet_leak_vapor_left" ] = loadfx( "nx/misc/nx_lunar_helmet_leak_vapor_left" );
|
|
level._effect[ "nx_lunar_helmet_leak_vapor_right" ] = loadfx( "nx/misc/nx_lunar_helmet_leak_vapor_right" );
|
|
level._effect[ "nx_regolith_hands" ] = loadfx( "nx/dust/nx_regolith_hands" );
|
|
level._effect[ "nx_lunar_regolith_haze" ] = loadfx( "nx/dust/nx_lunar_regolith_haze" );
|
|
level._effect[ "nx_lunar_intro_blood_squirt" ] = LoadFX( "nx/lunar/nx_lunar_intro_blood_squirt" );
|
|
level._effect[ "nx_regolith_bodyfall" ] = loadfx( "nx/dust/nx_regolith_bodyfall" );
|
|
level._effect[ "nx_regolith_footfall" ] = loadfx( "nx/dust/nx_regolith_footfall" );
|
|
level._effect[ "nx_lunar_intro_eye_blood" ] = loadfx( "nx/nx_lunar/nx_lunar_intro_eye_blood" );
|
|
level._effect[ "nx_lunar_intro_glass_hit" ] = loadfx( "nx/lunar/nx_lunar_intro_glass_hit" );
|
|
level._effect[ "nx_lunar_intro_glass_helmet_drop" ] = loadfx( "nx/lunar/nx_lunar_intro_glass_helmet_drop" );
|
|
|
|
// Intro
|
|
PreCacheModel( "nx_us_space_assault_head_crack" );
|
|
|
|
// Top Floor Breach
|
|
level._effect[ "nx_lunar_top_floor_breach_air" ] = LoadFX( "nx/lunar/nx_lunar_top_floor_breach_air" );
|
|
level._effect[ "nx_lunar_top_floor_breach_ash" ] = LoadFX( "nx/lunar/nx_lunar_top_floor_breach_ash" );
|
|
level._effect[ "nx_lunar_top_floor_breach_dust" ] = LoadFX( "nx/lunar/nx_lunar_top_floor_breach_dust" );
|
|
level._effect[ "nx_lunar_top_floor_breach_corridor" ] = LoadFX( "nx/lunar/nx_lunar_top_floor_breach_corridor" );
|
|
level._effect[ "nx_lunar_top_floor_breach_sparks_runner" ] = LoadFX( "nx/lunar/nx_lunar_top_floor_breach_sparks_runner" );
|
|
level._effect[ "nx_lunar_top_floor_breach_sparks_gaseous_runner" ] = LoadFX( "nx/lunar/nx_lunar_top_floor_breach_sparks_gaseous_runner" );
|
|
precacheItem( "nx_chinese_lgv_turret_magicbullet_metal" );
|
|
|
|
// Allies Airlock Breach
|
|
level._effect[ "nx_lunar_allies_airlock_dust_100" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_dust_100" );
|
|
level._effect[ "nx_lunar_allies_airlock_dust_200" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_dust_200" );
|
|
level._effect[ "nx_lunar_allies_airlock_dust_mote_100" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_dust_mote_100" );
|
|
level._effect[ "nx_lunar_allies_airlock_dust_mote_crazy_100" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_dust_mote_crazy_100" );
|
|
level._effect[ "nx_lunar_allies_airlock_dust_bomb" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_dust_bomb" );
|
|
level._effect[ "nx_lunar_allies_airlock_burst_flash" ] = loadFX( "nx/lunar/nx_lunar_allies_airlock_burst_flash" );
|
|
|
|
// Take Back Control Room
|
|
level._effect[ "nx_lunar_control_breach" ] = loadFX( "nx/lunar/nx_lunar_control_breach" );
|
|
|
|
footstep_effects();
|
|
//treadfx_override();
|
|
|
|
// default vision set for the map
|
|
VisionSetNaked( "nx_lunar", 0.0 );
|
|
|
|
set_glass_shatter_params();
|
|
|
|
// get the card and hide it
|
|
upstairs_breach_card = getent("fx_upstairs_breach_white_card", "script_noteworthy");
|
|
upstairs_breach_card hide();
|
|
|
|
// turn off the vehicle bay keylight to start off - it should only be on once you're inside.
|
|
vehicle_bay_key_light = GetEnt( "vehiclebay_key", "targetname" );
|
|
vehicle_bay_key_light SetLightIntensity(0.0);
|
|
}
|
|
|
|
// how galss shatters on the moon
|
|
set_glass_shatter_params()
|
|
{
|
|
/*
|
|
glass_linear_vel = (200.0,400.0);
|
|
glass_angular_vel = (5.0,35.0);
|
|
glass_fall_delay = (0.6, 2.0);
|
|
*/
|
|
|
|
setSavedDvar("glass_linear_vel", 190.0 );
|
|
setSavedDvar("glass_angular_vel", 8.0 );
|
|
setSavedDvar("glass_fall_delay", 2.0 );
|
|
setSavedDvar("glass_fall_gravity", 350.0 );
|
|
setSavedDvar("glass_fringe_maxsize", 100.0);
|
|
setSavedDVar("glass_fringe_maxcoverage", 0.5);
|
|
setSavedDvar("glass_shattered_scale", 48.0);
|
|
// setSavedDvar("glass_shard_maxsize", 100.0);
|
|
}
|
|
|
|
// *******************************************************
|
|
// vision set inits
|
|
fx_init_vision_breached()
|
|
{
|
|
set_vision_set("nx_lunar_breached", 0.0);
|
|
}
|
|
|
|
fx_init_vision_breached_helmet()
|
|
{
|
|
set_vision_set("nx_lunar_breached_helmet", 0.0);
|
|
}
|
|
|
|
fx_init_vision_alert()
|
|
{
|
|
set_vision_set("nx_lunar_alert", 0.0);
|
|
}
|
|
|
|
fx_init_vision_alert_helmet()
|
|
{
|
|
set_vision_set("nx_lunar_alert_helmet", 0.0);
|
|
}
|
|
|
|
fx_init_vision_surface()
|
|
{
|
|
set_vision_set("nx_lunar_surface_01", 0.0);
|
|
}
|
|
|
|
// *******************************************************
|
|
// Vision set sequencing changes
|
|
fx_control_room_vision_sequence()
|
|
{
|
|
|
|
wait 1.0;
|
|
set_vision_set("nx_lunar_breached", 1.0);
|
|
level._player PlayRumbleLoopOnEntity( "steady_rumble" );
|
|
wait 1.5;
|
|
|
|
// this is the white card we display outside the upstairs control room window during the breach sequence
|
|
// we show it only temporarily during the sequence, then hide it again.
|
|
upstairs_breach_card = getent("fx_upstairs_breach_white_card", "script_noteworthy");
|
|
upstairs_breach_card show();
|
|
|
|
set_vision_set("nx_lunar_upstairs_breach_windows_1", 1.0);
|
|
wait 1.0;
|
|
level._player StopRumble( "steady_rumble" );
|
|
level._player PlayRumbleLoopOnEntity( "tank_rumble" );
|
|
set_vision_set("nx_lunar_upstairs_breach_windows_2", 1.0);
|
|
wait 1.0;
|
|
set_vision_set("nx_lunar_upstairs_breach_windows_3", 1.5);
|
|
wait 1.0;
|
|
level._player StopRumble( "tank_rumble" );
|
|
wait 1.5;
|
|
upstairs_breach_card hide();
|
|
set_vision_set("nx_lunar_alert", 5.0);
|
|
wait 0.6;
|
|
level._player PlayRumbleOnEntity( "damage_heavy" );
|
|
}
|
|
|
|
fx_armory_breach_vision_change()
|
|
{
|
|
wait 1.0;
|
|
set_vision_set("nx_lunar_breached_helmet", 3.0);
|
|
}
|
|
|
|
fx_armory_entry_helmet_on_vision_change()
|
|
{
|
|
set_vision_set("nx_lunar_alert_helmet", 1.0);
|
|
}
|
|
|
|
fx_lunar_take_back_control_vision_change()
|
|
{
|
|
set_vision_set("nx_lunar_breached_helmet", 4.0);
|
|
}
|
|
|
|
|
|
fx_crew_module_enter_vision_change()
|
|
{
|
|
set_vision_set("nx_lunar_alert", 3.0);
|
|
}
|
|
|
|
fx_crew_module_exit_vision_change()
|
|
{
|
|
set_vision_set("nx_lunar_surface_01", 3.0);
|
|
}
|
|
|
|
|
|
//*******************************************************************
|
|
// *
|
|
// *
|
|
//*******************************************************************
|
|
|
|
footstep_effects()
|
|
{
|
|
|
|
//Regular footstep fx
|
|
animscripts\utility::setFootstepEffect( "dirt", loadfx ( "nx/lunar/impacts/nx_footstep_moondust_small" ) );
|
|
animscripts\utility::setFootstepEffect( "concrete", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setFootstepEffect( "asphalt", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setFootstepEffect( "rock", loadfx ( "impacts/footstep_dust" ) );
|
|
|
|
//Small footstep fx
|
|
animscripts\utility::setFootstepEffectSmall( "dirt", loadfx ( "nx/lunar/impacts/nx_footstep_moondust_small" ) );
|
|
animscripts\utility::setFootstepEffectSmall( "concrete", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setFootstepEffectSmall( "asphalt", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setFootstepEffectSmall( "rock", loadfx ( "impacts/footstep_dust" ) );
|
|
|
|
//Other notetrack fx
|
|
/*
|
|
setNotetrackEffect( <notetrack>, <tag>, <surface>, <loadfx>, <sound_prefix>, <sound_suffix> )
|
|
<notetrack>: name of the notetrack to do the fx/sound on
|
|
<tag>: name of the tag on the AI to use when playing fx
|
|
<surface>: the fx will only play when the AI is on this surface. Specify "all" to make it work for all surfaces.
|
|
<loadfx>: load the fx to play here
|
|
<sound_prefix>: when this notetrack hits a sound can be played. This is the prefix of the sound alias to play ( gets followed by surface type )
|
|
<sound_suffix>: suffix of sound alias to play, follows the surface type. Example: prefix of "bodyfall_" and suffix of "_large" will play sound alias "bodyfall_dirt_large" when the notetrack happens on dirt.
|
|
*/
|
|
/*
|
|
animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "dirt", loadfx ( "impacts/bodyfall_dust_small_runner" ), "bodyfall_", "_small" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "concrete", loadfx ( "impacts/bodyfall_default_small_runner" ), "bodyfall_", "_small" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "asphalt", loadfx ( "impacts/bodyfall_default_small_runner" ), "bodyfall_", "_small" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall small", "J_SpineLower", "rock", loadfx ( "impacts/bodyfall_default_small_runner" ), "bodyfall_", "_small" );
|
|
|
|
animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "dirt", loadfx ( "impacts/bodyfall_dust_large_runner" ), "bodyfall_", "_large" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "concrete", loadfx ( "impacts/bodyfall_default_large_runner" ), "bodyfall_", "_large" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "asphalt", loadfx ( "impacts/bodyfall_default_large_runner" ), "bodyfall_", "_large" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "rock", loadfx ( "impacts/bodyfall_default_large_runner" ), "bodyfall_", "_large" );
|
|
animscripts\utility::setNotetrackEffect( "bodyfall large", "J_SpineLower", "mud", loadfx ( "impacts/bodyfall_mud_large_runner" ), "bodyfall_", "_large" );
|
|
*/
|
|
animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "dirt", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "concrete", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "asphalt", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "rock", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx left", "J_Knee_LE", "mud", loadfx ( "impacts/footstep_mud" ) );
|
|
|
|
animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "dirt", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "concrete", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "asphalt", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "rock", loadfx ( "impacts/footstep_dust" ) );
|
|
animscripts\utility::setNotetrackEffect( "knee fx right", "J_Knee_RI", "mud", loadfx ( "impacts/footstep_mud" ) );
|
|
|
|
}
|
|
|
|
|
|
treadfx_override()
|
|
{
|
|
}
|