mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-06-27 02:57:52 -05:00
Update scripts to better decompiled scripts.
This commit is contained in:
239
MP/Maps/Takeoff/clientscripts/mp/_fxanim_dlc4.csc
Normal file
239
MP/Maps/Takeoff/clientscripts/mp/_fxanim_dlc4.csc
Normal file
@ -0,0 +1,239 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
#include clientscripts\mp\_utility;
|
||||
|
||||
fxanim_init_dlc( localclientnum )
|
||||
{
|
||||
a_fxanims = getentarray( localclientnum, "fxanim_dlc4", "targetname" );
|
||||
assert( a_fxanims.size <= level.fxanim_max_anims );
|
||||
|
||||
for ( i = 0; i < a_fxanims.size; i++ )
|
||||
{
|
||||
if ( isdefined( a_fxanims[i].fxanim_parent ) )
|
||||
{
|
||||
parent = getent( localclientnum, a_fxanims[i].fxanim_parent, "targetname" );
|
||||
a_fxanims[a_fxanims.size] = parent;
|
||||
a_fxanims[i] thread _fxanim_model_link( localclientnum );
|
||||
continue;
|
||||
}
|
||||
|
||||
a_fxanims[i] thread fxanim_think( localclientnum );
|
||||
}
|
||||
|
||||
if ( isdefined( level.fx_anim_level_dlc_init ) )
|
||||
level thread [[ level.fx_anim_level_dlc_init ]]( localclientnum );
|
||||
}
|
||||
|
||||
#using_animtree("fxanim_props_dlc4");
|
||||
|
||||
fxanim_think( localclientnum, random_wait, random_speed )
|
||||
{
|
||||
self waittill_dobj( localclientnum );
|
||||
self thread _fxanim_hide();
|
||||
self _fxanim_wait();
|
||||
self useanimtree( #animtree );
|
||||
n_anim_count = self _fxanim_get_anim_count();
|
||||
self notify( "fxanim_start" );
|
||||
|
||||
for ( n_current_anim = 0; n_current_anim < n_anim_count; n_current_anim++ )
|
||||
{
|
||||
str_scene = self _fxanim_get_scene_name( n_current_anim );
|
||||
|
||||
if ( !self _fxanim_modifier( str_scene ) )
|
||||
{
|
||||
self _fxanim_animate( str_scene );
|
||||
self _fxanim_play_fx( localclientnum );
|
||||
}
|
||||
|
||||
self _fxanim_change_anim( n_current_anim );
|
||||
}
|
||||
}
|
||||
|
||||
_fxanim_hide()
|
||||
{
|
||||
if ( isdefined( self.fxanim_hide ) && self.fxanim_hide )
|
||||
{
|
||||
self hide();
|
||||
|
||||
self waittill( "fxanim_start" );
|
||||
|
||||
self show();
|
||||
}
|
||||
}
|
||||
|
||||
_fxanim_modifier( str_scene )
|
||||
{
|
||||
switch ( str_scene )
|
||||
{
|
||||
case "delete":
|
||||
self delete();
|
||||
break;
|
||||
case "hide":
|
||||
self hide();
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
_fxanim_wait()
|
||||
{
|
||||
if ( isdefined( self.fxanim_waittill_1 ) )
|
||||
{
|
||||
if ( isdefined( self.fxanim_waittill_1 ) )
|
||||
_fxanim_change_anim( -1 );
|
||||
}
|
||||
|
||||
if ( isdefined( self.fxanim_wait ) )
|
||||
wait( self.fxanim_wait );
|
||||
else if ( isdefined( self.fxanim_wait_min ) && isdefined( self.fxanim_wait_max ) )
|
||||
{
|
||||
n_wait_time = randomfloatrange( self.fxanim_wait_min, self.fxanim_wait_max );
|
||||
wait( n_wait_time );
|
||||
}
|
||||
}
|
||||
|
||||
_fxanim_change_anim( n_fxanim_id )
|
||||
{
|
||||
str_waittill = undefined;
|
||||
|
||||
if ( n_fxanim_id == -1 && isdefined( self.fxanim_waittill_1 ) )
|
||||
str_waittill = self.fxanim_waittill_1;
|
||||
else if ( n_fxanim_id == 0 && isdefined( self.fxanim_waittill_2 ) )
|
||||
str_waittill = self.fxanim_waittill_2;
|
||||
else if ( n_fxanim_id == 1 && isdefined( self.fxanim_waittill_3 ) )
|
||||
str_waittill = self.fxanim_waittill_3;
|
||||
|
||||
if ( !isdefined( str_waittill ) && n_fxanim_id != -1 )
|
||||
self _fxanim_wait_for_anim_to_end( n_fxanim_id );
|
||||
else
|
||||
{
|
||||
a_changer = strtok( str_waittill, "_" );
|
||||
|
||||
level waittill( str_waittill );
|
||||
}
|
||||
}
|
||||
|
||||
_fxanim_wait_for_anim_to_end( n_fxanim_id )
|
||||
{
|
||||
str_scene = _fxanim_get_scene_name( n_fxanim_id );
|
||||
|
||||
if ( issubstr( str_scene, "_loop" ) )
|
||||
self waittillmatch( "looping anim", "end" );
|
||||
else
|
||||
self waittillmatch( "single anim", "end" );
|
||||
}
|
||||
|
||||
_fxanim_animate( str_scene )
|
||||
{
|
||||
if ( !isdefined( level.scr_anim["fxanim_props_dlc4"][str_scene] ) )
|
||||
{
|
||||
/#
|
||||
if ( isdefined( str_scene ) )
|
||||
println( "Error: fxanim entity at " + self.origin + " is missing animation: " + str_scene );
|
||||
else
|
||||
println( "Error: fxanim entity at " + self.origin + " is missing animation" );
|
||||
#/
|
||||
return;
|
||||
}
|
||||
|
||||
self animscripted( level.scr_anim["fxanim_props_dlc4"][str_scene], 1.0, 0.0, 1.0 );
|
||||
}
|
||||
|
||||
_fxanim_play_fx( localclientnum )
|
||||
{
|
||||
if ( isdefined( self.fxanim_fx_1 ) )
|
||||
{
|
||||
assert( isdefined( self.fxanim_fx_1_tag ), "KVP fxanim_fx_1_tag must be set on fxanim at " + self.origin );
|
||||
playfxontag( localclientnum, getfx( self.fxanim_fx_1 ), self, self.fxanim_fx_1_tag );
|
||||
}
|
||||
|
||||
if ( isdefined( self.fxanim_fx_2 ) )
|
||||
{
|
||||
assert( isdefined( self.fxanim_fx_2_tag ), "KVP fxanim_fx_2_tag must be set on fxanim at " + self.origin );
|
||||
playfxontag( localclientnum, getfx( self.fxanim_fx_2 ), self, self.fxanim_fx_2_tag );
|
||||
}
|
||||
|
||||
if ( isdefined( self.fxanim_fx_3 ) )
|
||||
{
|
||||
assert( isdefined( self.fxanim_fx_3_tag ), "KVP fxanim_fx_3_tag must be set on fxanim at " + self.origin );
|
||||
playfxontag( localclientnum, getfx( self.fxanim_fx_3 ), self, self.fxanim_fx_3_tag );
|
||||
}
|
||||
|
||||
if ( isdefined( self.fxanim_fx_4 ) )
|
||||
{
|
||||
assert( isdefined( self.fxanim_fx_4_tag ), "KVP fxanim_fx_4_tag must be set on fxanim at " + self.origin );
|
||||
playfxontag( localclientnum, getfx( self.fxanim_fx_4 ), self, self.fxanim_fx_4_tag );
|
||||
}
|
||||
|
||||
if ( isdefined( self.fxanim_fx_5 ) )
|
||||
{
|
||||
assert( isdefined( self.fxanim_fx_5_tag ), "KVP fxanim_fx_5_tag must be set on fxanim at " + self.origin );
|
||||
playfxontag( localclientnum, getfx( self.fxanim_fx_5 ), self, self.fxanim_fx_5_tag );
|
||||
}
|
||||
}
|
||||
|
||||
_fxanim_get_anim_count()
|
||||
{
|
||||
assert( isdefined( self.fxanim_scene_1 ), "fxanim at position " + self.origin + " needs at least one scene defined. Use the KVP fxanim_scene_1" );
|
||||
n_fx_count = 0;
|
||||
|
||||
if ( !isdefined( self.fxanim_scene_2 ) )
|
||||
n_fx_count = 1;
|
||||
else if ( !isdefined( self.fxanim_scene_3 ) )
|
||||
n_fx_count = 2;
|
||||
else
|
||||
n_fx_count = 3;
|
||||
|
||||
return n_fx_count;
|
||||
}
|
||||
|
||||
_fxanim_get_scene_name( n_anim_id )
|
||||
{
|
||||
str_scene_name = undefined;
|
||||
|
||||
switch ( n_anim_id )
|
||||
{
|
||||
case 0:
|
||||
str_scene_name = self.fxanim_scene_1;
|
||||
break;
|
||||
case 1:
|
||||
str_scene_name = self.fxanim_scene_2;
|
||||
break;
|
||||
case 2:
|
||||
str_scene_name = self.fxanim_scene_3;
|
||||
break;
|
||||
}
|
||||
|
||||
return str_scene_name;
|
||||
}
|
||||
|
||||
_fxanim_model_link( localclientnum )
|
||||
{
|
||||
self waittill_dobj( localclientnum );
|
||||
assert( isdefined( self.fxanim_tag ), "Model at origin " + self.origin + " needs an fxanim_tag defined, to show which tag the model will link to" );
|
||||
m_parent = getent( localclientnum, self.fxanim_parent, "targetname" );
|
||||
assert( isdefined( m_parent ), "Model at origin " + self.origin + " does not have a proper parent. Make sure the fxanim_parent matches the targetname of the fxanim" );
|
||||
m_parent waittill_dobj( localclientnum );
|
||||
self.origin = m_parent gettagorigin( self.fxanim_tag );
|
||||
self.angles = m_parent gettagangles( self.fxanim_tag );
|
||||
self linkto( m_parent, self.fxanim_tag );
|
||||
|
||||
if ( isdefined( self.fxanim_hide ) )
|
||||
{
|
||||
self hide();
|
||||
|
||||
m_parent waittill( "fxanim_start" );
|
||||
|
||||
self show();
|
||||
}
|
||||
}
|
||||
|
||||
getfx( fx )
|
||||
{
|
||||
assert( isdefined( level._effect[fx] ), "Fx " + fx + " is not defined in level._effect." );
|
||||
return level._effect[fx];
|
||||
}
|
3765
MP/Maps/Takeoff/clientscripts/mp/createfx/mp_takeoff_fx.csc
Normal file
3765
MP/Maps/Takeoff/clientscripts/mp/createfx/mp_takeoff_fx.csc
Normal file
File diff suppressed because it is too large
Load Diff
27
MP/Maps/Takeoff/clientscripts/mp/mp_takeoff.csc
Normal file
27
MP/Maps/Takeoff/clientscripts/mp/mp_takeoff.csc
Normal file
@ -0,0 +1,27 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
#include clientscripts\mp\_utility;
|
||||
#include clientscripts\mp\_load;
|
||||
#include clientscripts\mp\mp_takeoff_fx;
|
||||
#include clientscripts\mp\_audio;
|
||||
#include clientscripts\mp\mp_takeoff_amb;
|
||||
|
||||
main()
|
||||
{
|
||||
level.worldmapx = 0;
|
||||
level.worldmapy = 0;
|
||||
level.worldlat = 51.5083;
|
||||
level.worldlong = -0.108876;
|
||||
clientscripts\mp\_load::main();
|
||||
clientscripts\mp\mp_takeoff_fx::main();
|
||||
thread clientscripts\mp\_audio::audio_init( 0 );
|
||||
thread clientscripts\mp\mp_takeoff_amb::main();
|
||||
setsaveddvar( "sm_sunsamplesizenear", 0.3 );
|
||||
setsaveddvar( "r_lightGridEnableTweaks", 1 );
|
||||
setsaveddvar( "r_lightGridIntensity", 1.25 );
|
||||
setsaveddvar( "r_lightGridContrast", 0.0 );
|
||||
waitforclient( 0 );
|
||||
/#
|
||||
println( "*** Client : mp_takeoff running..." );
|
||||
#/
|
||||
}
|
67
MP/Maps/Takeoff/clientscripts/mp/mp_takeoff_amb.csc
Normal file
67
MP/Maps/Takeoff/clientscripts/mp/mp_takeoff_amb.csc
Normal file
@ -0,0 +1,67 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
#include clientscripts\mp\_utility;
|
||||
#include clientscripts\mp\_ambientpackage;
|
||||
#include clientscripts\mp\_audio;
|
||||
|
||||
main()
|
||||
{
|
||||
declareambientroom( "outdoor", 1 );
|
||||
setambientroomtone( "outdoor", "amb_wind_middle", 0.3, 0.3 );
|
||||
setambientroomreverb( "outdoor", "takeoff_outdoor", 1, 1 );
|
||||
setambientroomcontext( "outdoor", "ringoff_plr", "outdoor" );
|
||||
declareambientroom( "control" );
|
||||
setambientroomreverb( "control", "takeoff_control", 1, 1 );
|
||||
setambientroomcontext( "control", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "snack_shack" );
|
||||
setambientroomreverb( "snack_shack", "takeoff_snack", 1, 1 );
|
||||
setambientroomcontext( "snack_shack", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "stairs" );
|
||||
setambientroomreverb( "stairs", "takeoff_stairs", 1, 1 );
|
||||
setambientroomcontext( "stairs", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "odd_room" );
|
||||
setambientroomtone( "odd_room", "amb_odd_room_tone", 0.2, 0.4 );
|
||||
setambientroomreverb( "odd_room", "takeoff_odd", 1, 1 );
|
||||
setambientroomcontext( "odd_room", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "odd_upstairs" );
|
||||
setambientroomtone( "odd_upstairs", "amb_odd_room_tone", 0.2, 0.4 );
|
||||
setambientroomreverb( "odd_upstairs", "takeoff_odd_up", 1, 1 );
|
||||
setambientroomcontext( "odd_upstairs", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "tall_room" );
|
||||
setambientroomtone( "tall_room", "amb_odd_room_tone", 0.3, 0.4 );
|
||||
setambientroomreverb( "tall_room", "takeoff_tall", 1, 1 );
|
||||
setambientroomcontext( "tall_room", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "tunnel_stone" );
|
||||
setambientroomreverb( "tunnel_stone", "takeoff_tunnel", 1, 1 );
|
||||
setambientroomcontext( "tunnel_stone", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "lobby_side" );
|
||||
setambientroomtone( "lobby_side", "amb_space_music", 0.3, 0.4 );
|
||||
setambientroomreverb( "lobby_side", "takeoff_lobby_side", 1, 1 );
|
||||
setambientroomcontext( "lobby_side", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "lobby_center" );
|
||||
setambientroomtone( "lobby_center", "amb_space_music", 0.3, 0.4 );
|
||||
setambientroomreverb( "lobby_center", "takeoff_lobby_center", 1, 1 );
|
||||
setambientroomcontext( "lobby_center", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "medical" );
|
||||
setambientroomreverb( "medical", "takeoff_medical", 1, 1 );
|
||||
setambientroomcontext( "medical", "ringoff_plr", "indoor" );
|
||||
declareambientroom( "atrium" );
|
||||
setambientroomreverb( "atrium", "takeoff_atrium", 1, 1 );
|
||||
setambientroomcontext( "atrium", "ringoff_plr", "indoor" );
|
||||
thread snd_start_autofx_audio();
|
||||
}
|
||||
|
||||
snd_play_loopers()
|
||||
{
|
||||
clientscripts\mp\_audio::playloopat( "amb_flag", ( -68, 3130, 182 ) );
|
||||
clientscripts\mp\_audio::playloopat( "amb_small_waterfall", ( 529, 1798, 90 ) );
|
||||
}
|
||||
|
||||
snd_start_autofx_audio()
|
||||
{
|
||||
snd_play_auto_fx( "fx_mp_vent_steam_line_sm", "amb_steam", 0, 0, 0, 0 );
|
||||
snd_play_auto_fx( "fx_tak_light_flour_sqr_lg", "amb_light_lrg", 0, 0, 0, 0 );
|
||||
snd_play_auto_fx( "fx_tak_light_tv_glow_blue_flckr", "amb_light_lrg", 0, 0, 0, 0 );
|
||||
snd_play_auto_fx( "fx_mp_vent_heat_distort", "amb_heat_distort", 0, 0, 0, 0 );
|
||||
snd_play_auto_fx( "fx_tak_light_tv_glow_blue_flckr", "amb_tv", 0, 0, 0, 0 );
|
||||
}
|
256
MP/Maps/Takeoff/clientscripts/mp/mp_takeoff_fx.csc
Normal file
256
MP/Maps/Takeoff/clientscripts/mp/mp_takeoff_fx.csc
Normal file
@ -0,0 +1,256 @@
|
||||
// T6 GSC SOURCE
|
||||
// Decompiled by https://github.com/xensik/gsc-tool
|
||||
#include clientscripts\mp\_utility;
|
||||
#include clientscripts\mp\_fxanim_dlc4;
|
||||
#include clientscripts\mp\createfx\mp_takeoff_fx;
|
||||
#include clientscripts\mp\_fx;
|
||||
|
||||
precache_scripted_fx()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
precache_createfx_fx()
|
||||
{
|
||||
level._effect["fx_light_exit_sign"] = loadfx( "light/fx_light_exit_sign_glow" );
|
||||
level._effect["fx_light_flour_glow_cool"] = loadfx( "light/fx_tak_light_flour_glow_cool" );
|
||||
level._effect["fx_tak_light_flour_glow_cool_sm"] = loadfx( "light/fx_tak_light_flour_glow_cool_sm" );
|
||||
level._effect["fx_light_upl_flour_glow_v_shape_cool"] = loadfx( "light/fx_light_upl_flour_glow_v_shape_cool" );
|
||||
level._effect["fx_light_recessed_blue"] = loadfx( "light/fx_light_recessed_blue" );
|
||||
level._effect["fx_light_recessed_cool_sm_soft"] = loadfx( "light/fx_light_recessed_cool_sm_soft" );
|
||||
level._effect["fx_mp_tak_glow_blue"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_blue" );
|
||||
level._effect["fx_mp_tak_glow_orange"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_orange" );
|
||||
level._effect["fx_mp_tak_glow_yellow"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_yellow" );
|
||||
level._effect["fx_mp_tak_glow_red"] = loadfx( "maps/mp_maps/fx_mp_tak_glow_red" );
|
||||
level._effect["fx_tak_light_flour_glow_ceiling"] = loadfx( "light/fx_tak_light_flour_glow_ceiling" );
|
||||
level._effect["fx_tak_light_flour_sqr_lg"] = loadfx( "light/fx_tak_light_flour_sqr_lg" );
|
||||
level._effect["fx_tak_light_flour_rnd_lg"] = loadfx( "light/fx_tak_light_flour_rnd_lg" );
|
||||
level._effect["fx_tak_light_tv_glow_blue"] = loadfx( "light/fx_tak_light_tv_glow_blue" );
|
||||
level._effect["fx_tak_light_tv_glow_blue_flckr"] = loadfx( "light/fx_tak_light_tv_glow_blue_flckr" );
|
||||
level._effect["fx_drone_light_yellow"] = loadfx( "light/fx_drone_light_yellow" );
|
||||
level._effect["fx_tak_light_sign_glow_blue"] = loadfx( "light/fx_tak_light_sign_glow_blue" );
|
||||
level._effect["fx_tak_light_blue_stair"] = loadfx( "light/fx_tak_light_blue_stair" );
|
||||
level._effect["fx_tak_light_blue_stair_sm"] = loadfx( "light/fx_tak_light_blue_stair_sm" );
|
||||
level._effect["fx_tak_light_blue"] = loadfx( "light/fx_tak_light_blue" );
|
||||
level._effect["fx_tak_light_blue_pulse"] = loadfx( "light/fx_tak_light_blue_pulse" );
|
||||
level._effect["fx_tak_light_blue_pulse_curve"] = loadfx( "light/fx_tak_light_blue_pulse_curve" );
|
||||
level._effect["fx_light_beacon_yellow"] = loadfx( "light/fx_light_beacon_yellow" );
|
||||
level._effect["fx_light_beacon_red_blink_fst_sm"] = loadfx( "light/fx_light_beacon_red_blink_fst_sm" );
|
||||
level._effect["fx_tak_light_modern_sconce"] = loadfx( "light/fx_tak_light_modern_sconce" );
|
||||
level._effect["fx_tak_light_spotlight"] = loadfx( "light/fx_tak_light_spotlight" );
|
||||
level._effect["fx_tak_light_wall_ext"] = loadfx( "light/fx_tak_light_wall_ext" );
|
||||
level._effect["fx_mp_light_dust_motes_md"] = loadfx( "maps/mp_maps/fx_mp_light_dust_motes_md" );
|
||||
level._effect["fx_mp_tak_dust_ground"] = loadfx( "maps/mp_maps/fx_mp_tak_dust_ground" );
|
||||
level._effect["fx_tak_water_fountain_pool_sm"] = loadfx( "water/fx_tak_water_fountain_pool_sm" );
|
||||
level._effect["fx_paper_interior_short_sm"] = loadfx( "debris/fx_paper_interior_short_sm" );
|
||||
level._effect["fx_paper_exterior_short_sm_fst"] = loadfx( "debris/fx_paper_exterior_short_sm_fst" );
|
||||
level._effect["fx_insects_swarm_md_light"] = loadfx( "bio/insects/fx_insects_swarm_md_light" );
|
||||
level._effect["fx_mp_vent_heat_distort"] = loadfx( "maps/mp_maps/fx_mp_vent_heat_distort" );
|
||||
level._effect["fx_mp_tak_steam_loading_dock"] = loadfx( "maps/mp_maps/fx_mp_tak_steam_loading_dock" );
|
||||
level._effect["fx_mp_vent_steam_line"] = loadfx( "maps/mp_maps/fx_mp_vent_steam_line" );
|
||||
level._effect["fx_mp_vent_steam_line_sm"] = loadfx( "maps/mp_maps/fx_mp_vent_steam_line_sm" );
|
||||
level._effect["fx_mp_vent_steam_line_lg"] = loadfx( "maps/mp_maps/fx_mp_vent_steam_line_lg" );
|
||||
level._effect["fx_mp_steam_amb_xlg"] = loadfx( "maps/mp_maps/fx_mp_steam_amb_xlg" );
|
||||
level._effect["fx_mp_tak_steam_hvac"] = loadfx( "maps/mp_maps/fx_mp_tak_steam_hvac" );
|
||||
level._effect["fx_lf_mp_overflow_sun1"] = loadfx( "lens_flares/fx_lf_mp_overflow_sun1" );
|
||||
level._effect["fx_lf_mp_takeoff_sun1"] = loadfx( "lens_flares/fx_lf_mp_takeoff_sun1" );
|
||||
level._effect["fx_mp_tak_shuttle_thruster_lg"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_lg" );
|
||||
level._effect["fx_mp_tak_shuttle_thruster_md"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_md" );
|
||||
level._effect["fx_mp_tak_shuttle_thruster_sm"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_sm" );
|
||||
level._effect["fx_mp_tak_shuttle_thruster_smk_grnd"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_smk_grnd" );
|
||||
level._effect["fx_mp_tak_shuttle_thruster_steam"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_steam" );
|
||||
level._effect["fx_mp_tak_shuttle_thruster_steam_w"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_thruster_steam_w" );
|
||||
level._effect["fx_mp_tak_shuttle_frame_light"] = loadfx( "maps/mp_maps/fx_mp_tak_shuttle_frame_light" );
|
||||
level._effect["fx_mp_tak_steam_nozzle"] = loadfx( "maps/mp_maps/fx_mp_tak_steam_nozzle" );
|
||||
}
|
||||
|
||||
#using_animtree("fxanim_props_dlc4");
|
||||
|
||||
precache_fxanim_props_dlc4()
|
||||
{
|
||||
level.scr_anim["fxanim_props_dlc4"]["decont_blasters"] = %fxanim_mp_takeoff_decont_blasters_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["scaffold_wires_01"] = %fxanim_mp_takeoff_scaffold_wires_01_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["crane_hooks"] = %fxanim_mp_takeoff_crane_hooks_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["rattling_sign"] = %fxanim_mp_takeoff_rattling_sign_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["radar01"] = %fxanim_mp_takeoff_satellite_dish_01_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["radar02"] = %fxanim_mp_takeoff_satellite_dish_02_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["radar03"] = %fxanim_mp_takeoff_satellite_dish_03_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["radar04"] = %fxanim_mp_takeoff_satellite_dish_04_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["radar05"] = %fxanim_mp_takeoff_satellite_dish_05_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["banners"] = %fxanim_mp_takeoff_banner_01_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["planets"] = %fxanim_mp_takeoff_planets_anim;
|
||||
level.scr_anim["fxanim_props_dlc4"]["banners_lrg"] = %fxanim_mp_takeoff_banner_lrg_anim;
|
||||
}
|
||||
|
||||
fxanim_init( localclientnum )
|
||||
{
|
||||
for (;;)
|
||||
{
|
||||
level waittill( "snap_processed", snapshotlocalclientnum );
|
||||
|
||||
if ( snapshotlocalclientnum == localclientnum )
|
||||
break;
|
||||
}
|
||||
|
||||
level thread clientscripts\mp\_fxanim_dlc4::fxanim_init_dlc( localclientnum );
|
||||
radar = getent( localclientnum, "fxanim_dlc4_radar", "targetname" );
|
||||
|
||||
if ( isdefined( radar ) )
|
||||
{
|
||||
if ( !isdefined( level.radar_waits ) )
|
||||
{
|
||||
level.radar_waits = [];
|
||||
|
||||
for ( i = 1; i < 6; i++ )
|
||||
level.radar_waits[i] = randomfloatrange( 5, 10 );
|
||||
}
|
||||
|
||||
radar thread fxanim_radar_think( localclientnum );
|
||||
}
|
||||
|
||||
decont_blasters = getent( localclientnum, "fxanim_dlc4_blasters", "targetname" );
|
||||
|
||||
if ( isdefined( decont_blasters ) )
|
||||
decont_blasters thread fxanim_decontamination_think( localclientnum );
|
||||
|
||||
planets_candidates = getentarray( localclientnum, "fxanim_dlc4", "targetname" );
|
||||
|
||||
if ( isdefined( planets_candidates ) && planets_candidates.size > 0 )
|
||||
{
|
||||
foreach ( planets_candidate in planets_candidates )
|
||||
{
|
||||
if ( planets_candidate.model == "fxanim_mp_takeoff_planets_mod" )
|
||||
planets_candidate thread fxanim_planets_think( localclientnum );
|
||||
}
|
||||
}
|
||||
|
||||
level thread playexploderonstart();
|
||||
}
|
||||
|
||||
#using_animtree("fxanim_props");
|
||||
|
||||
precache_fx_anims()
|
||||
{
|
||||
level.scr_anim = [];
|
||||
level.scr_anim["fxanim_props"]["seagull_circle_01"] = %fxanim_gp_seagull_circle_01_anim;
|
||||
level.scr_anim["fxanim_props"]["seagull_circle_02"] = %fxanim_gp_seagull_circle_02_anim;
|
||||
level.scr_anim["fxanim_props"]["seagull_circle_03"] = %fxanim_gp_seagull_circle_03_anim;
|
||||
level.scr_anim["fxanim_props"]["windsock"] = %fxanim_gp_windsock_anim;
|
||||
level.fx_anim_level_init = ::fxanim_init;
|
||||
}
|
||||
|
||||
#using_animtree("fxanim_props_dlc4");
|
||||
|
||||
fxanim_radar_think( localclientnum )
|
||||
{
|
||||
self endon( "death" );
|
||||
self endon( "entityshutdown" );
|
||||
self endon( "delete" );
|
||||
self waittill_dobj( localclientnum );
|
||||
self useanimtree( #animtree );
|
||||
anim_index = 1;
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self setflaggedanimrestart( "radar_done" + anim_index, level.scr_anim["fxanim_props_dlc4"]["radar0" + anim_index], 1.0, 0.0, 1.0 );
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "radar_done" + anim_index, note );
|
||||
|
||||
if ( note == "end" )
|
||||
break;
|
||||
}
|
||||
|
||||
wait( level.radar_waits[anim_index] );
|
||||
self clearanim( level.scr_anim["fxanim_props_dlc4"]["radar0" + anim_index], 0 );
|
||||
anim_index++;
|
||||
|
||||
if ( anim_index > 5 )
|
||||
anim_index = 1;
|
||||
}
|
||||
}
|
||||
|
||||
fxanim_decontamination_think( localclientnum )
|
||||
{
|
||||
self waittill_dobj( localclientnum );
|
||||
self useanimtree( #animtree );
|
||||
self animflaggedscripted( "nozzle", level.scr_anim["fxanim_props_dlc4"]["decont_blasters"], 1.0, 0.0, 1.0 );
|
||||
self.nozzletags = [];
|
||||
self.nozzletags["one"] = "nozzle_01_tag_jnt";
|
||||
self.nozzletags["two"] = "nozzle_02_tag_jnt";
|
||||
self.nozzletags["three"] = "nozzle_03_tag_jnt";
|
||||
self.nozzletags["four"] = "nozzle_04_tag_jnt";
|
||||
self.nozzlefxid = [];
|
||||
|
||||
for (;;)
|
||||
{
|
||||
self waittill( "nozzle", note );
|
||||
|
||||
if ( note == "end" )
|
||||
continue;
|
||||
|
||||
tokens = strtok( note, "_" );
|
||||
|
||||
if ( tokens.size != 4 )
|
||||
continue;
|
||||
|
||||
foundchange = 0;
|
||||
|
||||
if ( tokens[3] == "off" || tokens[3] == "on" )
|
||||
{
|
||||
foundchange = 1;
|
||||
change = tokens[3];
|
||||
}
|
||||
|
||||
if ( foundchange == 0 || tokens[0] != "nozzles" )
|
||||
continue;
|
||||
|
||||
foreach ( token in tokens )
|
||||
{
|
||||
if ( isdefined( self.nozzletags[token] ) )
|
||||
{
|
||||
if ( change == "on" )
|
||||
{
|
||||
self.nozzlefxid[token] = playfxontag( localclientnum, level._effect["fx_mp_tak_steam_nozzle"], self, self.nozzletags[token] );
|
||||
continue;
|
||||
}
|
||||
|
||||
stopfx( localclientnum, self.nozzlefxid[token] );
|
||||
self.nozzlefxid[token] = undefined;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
clientscripts\mp\createfx\mp_takeoff_fx::main();
|
||||
clientscripts\mp\_fx::reportnumeffects();
|
||||
precache_createfx_fx();
|
||||
precache_fx_anims();
|
||||
precache_fxanim_props_dlc4();
|
||||
disablefx = getdvarint( _hash_C9B177D6 );
|
||||
|
||||
if ( !isdefined( disablefx ) || disablefx <= 0 )
|
||||
precache_scripted_fx();
|
||||
}
|
||||
|
||||
playexploderonstart()
|
||||
{
|
||||
clientscripts\mp\_fx::activate_exploder( 2001 );
|
||||
clientscripts\mp\_fx::activate_exploder( 2002 );
|
||||
}
|
||||
|
||||
fxanim_planets_think( localclientnum )
|
||||
{
|
||||
self waittill_dobj( localclientnum );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_blue"], self, "earth_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_red"], self, "jupiter_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_red"], self, "mars_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_yellow"], self, "mercury_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_blue"], self, "neptune_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_yellow"], self, "saturn_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_blue"], self, "uranus_jnt" );
|
||||
playfxontag( localclientnum, level._effect["fx_mp_tak_glow_yellow"], self, "venus_jnt" );
|
||||
}
|
Reference in New Issue
Block a user