boiii-scripts/mp/killstreaks/_flak_drone.csc
2023-04-13 17:30:38 +02:00

82 lines
12 KiB
Plaintext

#using scripts\codescripts\struct;
#using scripts\shared\clientfield_shared;
#using scripts\shared\math_shared;
#using scripts\shared\system_shared;
#using scripts\shared\util_shared;
#using scripts\shared\vehicle_shared;
#using scripts\mp\_helicopter_sounds;
#using scripts\mp\_util;
#using scripts\shared\duplicaterender_mgr;
#namespace flak_drone;
function autoexec __init__sytem__() { system::register("flak_drone",&__init__,undefined,undefined); }
function __init__()
{
clientfield::register( "vehicle", "flak_drone_camo", 1, 3, "int", &active_camo_changed, !true, !true );
}
function active_camo_changed( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
{
flags_changed = self duplicate_render::set_dr_flag( "active_camo_flicker", newVal == ( 2 ) );
flags_changed = self duplicate_render::set_dr_flag( "active_camo_on", false ) || flags_changed;
flags_changed = self duplicate_render::set_dr_flag( "active_camo_reveal", true ) || flags_changed;
if ( flags_changed )
{
self duplicate_render::update_dr_filters(localClientNum);
}
self notify( "endtest" );
self thread doReveal( localClientNum, newVal != ( 0 ) );
}
function doReveal( localClientNum, direction )
{
self notify( "endtest" );
self endon( "endtest" );
self endon( "entityshutdown" );
if( direction )
{
startVal = 1;
}
else
{
startVal = 0;
}
while( ( startVal >= 0 ) && ( startVal <= 1 ) )
{
self MapShaderConstant( localClientNum, 0, "scriptVector0", startVal, 0, 0, 0 );
if( direction )
{
startVal -= .016 / 0.5;
}
else
{
startVal += .016 / 0.5;
}
wait( .016 );
}
flags_changed = self duplicate_render::set_dr_flag( "active_camo_reveal", false );
flags_changed = self duplicate_render::set_dr_flag( "active_camo_on", direction ) || flags_changed;
if ( flags_changed )
{
self duplicate_render::update_dr_filters(localClientNum);
}
}