82 lines
10 KiB
Plaintext
82 lines
10 KiB
Plaintext
#using scripts\codescripts\struct;
|
|
|
|
#using scripts\shared\callbacks_shared;
|
|
#using scripts\shared\clientfield_shared;
|
|
#using scripts\shared\duplicaterender_mgr;
|
|
#using scripts\shared\filter_shared;
|
|
#using scripts\shared\postfx_shared;
|
|
#using scripts\shared\system_shared;
|
|
#using scripts\shared\util_shared;
|
|
#using scripts\shared\vehicle_shared;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#namespace parasite;
|
|
|
|
function autoexec main()
|
|
{
|
|
clientfield::register( "vehicle", "parasite_tell_fx", 1, 1, "int", ¶siteTellFxHandler, !true, !true );
|
|
clientfield::register( "toplayer", "parasite_damage", 1, 1, "counter", ¶site_damage, !true, !true );
|
|
clientfield::register( "vehicle", "parasite_secondary_deathfx", 1, 1, "int", ¶siteSecondaryDeathFxHandler, !true, !true );
|
|
|
|
vehicle::add_vehicletype_callback( "parasite", &_setup_ );
|
|
}
|
|
|
|
function private parasiteTellFxHandler( localClientNum, oldValue, newValue, bNewEnt, bInitialSnap, fieldName, wasDemoJump )
|
|
{
|
|
if ( IsDefined( self.tellFxHandle ) )
|
|
{
|
|
StopFX( localClientNum, self.tellFxHandle );
|
|
self.tellFxHandle = undefined;
|
|
self MapShaderConstant( localClientNum, 0, "scriptVector2", 0.1 );
|
|
}
|
|
|
|
settings = struct::get_script_bundle( "vehiclecustomsettings", "parasitesettings" );
|
|
|
|
if( IsDefined( settings ) )
|
|
{
|
|
if( newValue )
|
|
{
|
|
self.tellFxHandle = PlayFXOnTag( localClientNum, settings.weakspotfx, self, "tag_flash" );
|
|
self MapShaderConstant( localClientNum, 0, "scriptVector2", 1.0 );
|
|
}
|
|
}
|
|
}
|
|
|
|
function private parasite_damage( localClientNum, oldValue, newValue, bNewEnt, bInitialSnap, fieldName, wasDemoJump )
|
|
{
|
|
if ( newValue )
|
|
{
|
|
self postfx::PlayPostfxBundle( "pstfx_parasite_dmg" );
|
|
}
|
|
}
|
|
|
|
function private parasiteSecondaryDeathFxHandler( localClientNum, oldValue, newValue, bNewEnt, bInitialSnap, fieldName, wasDemoJump )
|
|
{
|
|
settings = struct::get_script_bundle( "vehiclecustomsettings", "parasitesettings" );
|
|
|
|
if( IsDefined( settings ) )
|
|
{
|
|
if( newValue )
|
|
{
|
|
handle = PlayFX( localClientNum, settings.secondary_death_fx_1, self GetTagOrigin( settings.secondary_death_tag_1 ) );
|
|
SetFXIgnorePause( localClientNum, handle, true );
|
|
}
|
|
}
|
|
}
|
|
|
|
function private _setup_( localClientNum )
|
|
{
|
|
self MapShaderConstant( localClientNum, 0, "scriptVector2", 0.1 );
|
|
|
|
if( ( isdefined( level.debug_keyline_zombies ) && level.debug_keyline_zombies ) )
|
|
{
|
|
self duplicate_render::set_dr_flag( "keyline_active", 1 );
|
|
self duplicate_render::update_dr_filters(localClientNum);
|
|
}
|
|
} |