2024-02-13 13:20:49 +01:00

126 lines
3.3 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main( var_0 )
{
var_0.fireinterval = 0.1;
var_0.closeenoughaimdegrees = 45;
var_0.firecontrollerfunc = ::firecontroller_minigun;
var_0.specialcleanupfunc = ::minigun_cleanup_func;
var_0.default_drop_pitch = 20;
animscripts\hummer_turret\common::humvee_turret_init( var_0, "minigun" );
wait 0.05;
var_0 notify( "turret_ready" );
}
minigun_cleanup_func( var_0, var_1 )
{
if ( var_1 getbarrelspinrate() > 0 )
var_1 stopbarrelspin();
}
firecontroller_minigun( var_0 )
{
self endon( "death" );
self endon( "dismount" );
var_0 endon( "kill_fireController" );
var_0 endon( "death" );
var_0.extrafiretime_min = 600;
var_0.extrafiretime_max = 900;
var_1 = -1;
var_2 = undefined;
var_3 = undefined;
var_0.extraspintime_min = 250;
var_0.extraspintime_max = 2250;
var_4 = -1;
var_5 = undefined;
var_6 = 0;
var_7 = 0;
var_0.secsoffiringbeforereload = 15;
if ( isdefined( var_0.secsoffiringbeforereloaddefault ) )
var_0.secsoffiringbeforereload = var_0.secsoffiringbeforereloaddefault;
var_0.firetime = 0;
animscripts\hummer_turret\common::doaim( var_0 );
for (;;)
{
if ( var_0.dofiring && !var_6 && !self.iscustomanimating )
{
var_6 = 1;
if ( !var_7 )
{
var_0 minigun_spinup();
var_7 = 1;
}
var_0 notify( "startfiring" );
var_1 = gettime();
animscripts\hummer_turret\common::doshoot( var_0 );
wait 0.05;
}
else if ( !var_0.dofiring && var_6 )
{
if ( !isdefined( var_2 ) )
var_2 = gettime();
if ( !isdefined( var_3 ) )
var_3 = randomfloatrange( var_0.extrafiretime_min, var_0.extrafiretime_max );
if ( gettime() - var_2 >= var_3 )
{
var_6 = 0;
animscripts\hummer_turret\common::doaim( var_0 );
var_4 = gettime();
var_2 = undefined;
var_3 = undefined;
}
}
else if ( !var_0.dofiring && !var_6 && var_7 )
{
if ( !isdefined( var_5 ) )
var_5 = randomfloatrange( var_0.extraspintime_min, var_0.extraspintime_max );
if ( self.iscustomanimating || gettime() - var_4 >= var_5 )
{
var_0 stopbarrelspin();
var_7 = 0;
var_5 = undefined;
}
}
if ( var_0.turretstate == "fire" )
var_0.firetime = var_0.firetime + 0.05;
if ( var_0.firetime > var_0.secsoffiringbeforereload )
{
var_0.dofiring = 0;
var_6 = 0;
animscripts\hummer_turret\common::doaim( var_0 );
var_4 = -1;
var_2 = undefined;
var_3 = undefined;
thread animscripts\hummer_turret\common::doreload( var_0 );
var_0.firetime = 0;
}
wait 0.05;
if ( !isdefined( var_0 ) )
break;
}
}
minigun_spinup()
{
if ( self getbarrelspinrate() == 1 )
return;
self startbarrelspin();
while ( self getbarrelspinrate() < 1 )
wait 0.05;
}