Post: Kill with stinger (CODE)
08-03-2013, 03:12 PM #1
KingcreekS
NOTHING IS IMPOSSIBL
(adsbygoogle = window.adsbygoogle || []).push({}); Hello

Another release of something I did long time ago.

    InitStingerUsage()
{
self.stingerStage = undefined;
self.stingerTarget = undefined;
self.stingerLockStartTime = undefined;
self.stingerLostSightlineTime = undefined;

self thread ResetStingerLockingOnDeath();
level.stingerTargets = [];
}


ResetStingerLocking()
{
if ( !IsDefined( self.stingerUseEntered ) )
return;
self.stingerUseEntered = undefined;

self notify( "stop_javelin_locking_feedback" );
self notify( "stop_javelin_locked_feedback" );

self WeaponLockFree();
InitStingerUsage();
}


ResetStingerLockingOnDeath()
{
self endon( "disconnect" );

self notify ( "ResetStingerLockingOnDeath" );
self endon ( "ResetStingerLockingOnDeath" );

for ( ;; )
{
self waittill( "death" );
self ResetStingerLocking();
}
}


StillValidStingerLock( ent )
{
assert( IsDefined( self ) );

if ( !IsDefined( ent ) )
return false;
if ( !(self WorldPointInReticle_Circle( ent.origin, 65, 85 )) )
return false;

if ( self.stingerTarget == level.ac130.planeModel && !isDefined( level.ac130player ) )
return false;

return true;
}


LoopStingerLockingFeedback()
{
self endon( "stop_javelin_locking_feedback" );

for ( ;; )
{
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.chopper.gunner )
level.chopper.gunner playLocalSound( "missile_locking" );

if ( isDefined( level.ac130player ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.ac130.planeModel )
level.ac130player playLocalSound( "missile_locking" );

self playLocalSound( "stinger_locking" );
self PlayRumbleOnEntity( "ac130_25mm_fire" );

wait 0.6;
}
}


LoopStingerLockedFeedback()
{
self endon( "stop_javelin_locked_feedback" );

for ( ;; )
{
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.chopper.gunner )
level.chopper.gunner playLocalSound( "missile_locking" );

if ( isDefined( level.ac130player ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.ac130.planeModel )
level.ac130player playLocalSound( "missile_locking" );

self playLocalSound( "stinger_locked" );
self PlayRumbleOnEntity( "ac130_25mm_fire" );

wait 0.25;
}
}


/#
DrawStar( point )
{
Line( point + (10,0,0), point - (10,0,0) );
Line( point + (0,10,0), point - (0,10,0) );
Line( point + (0,0,10), point - (0,0,10) );
}
#/


LockSightTest( target )
{
eyePos = self GetEye();

if ( !isDefined( target ) ) //targets can disapear during targeting.
return false;

passed = BulletTracePassed( eyePos, target.origin, false, target );
if ( passed )
return true;

front = target GetPointInBounds( 1, 0, 0 );
passed = BulletTracePassed( eyePos, front, false, target );
if ( passed )
return true;

back = target GetPointInBounds( -1, 0, 0 );
passed = BulletTracePassed( eyePos, back, false, target );
if ( passed )
return true;

return false;
}


StingerDebugDraw( target )
{
/#
if ( GetDVar( "missileDebugDraw" ) != "1" )
return;
if ( !IsDefined( target ) )
return;

org = target.origin;
DrawStar( org );
org = target GetPointInBounds( 1, 0, 0 );
DrawStar( org );
org = target GetPointInBounds( -1, 0, 0 );
DrawStar( org );
#/
}


SoftSightTest()
{
LOST_SIGHT_LIMIT = 500;

if ( self LockSightTest( self.stingerTarget ) )
{
self.stingerLostSightlineTime = 0;
return true;
}

if ( self.stingerLostSightlineTime == 0 )
self.stingerLostSightlineTime = getTime();

timePassed = GetTime() - self.stingerLostSightlineTime;
//PrintLn( "Losing sight of target [", timePassed, "]..." );

if ( timePassed >= LOST_SIGHT_LIMIT )
{
//PrintLn( "Lost sight of target." );
ResetStingerLocking();
return false;
}

return true;
}

GetTargetList()
{
targets = [];

if ( level.teamBased )
{
if ( IsDefined( level.chopper ) && ( level.chopper.team != self.team || level.chopper.owner == self ) )
targets[targets.size] = level.chopper;

if ( isDefined( level.ac130player ) && level.ac130player.team != self.team )
targets[targets.size] = level.ac130.planemodel;

if ( isDefined( level.harriers) )
{
foreach( harrier in level.harriers )
{
if ( isDefined( harrier ) && ( harrier.team != self.team || ( isDefined( harrier.owner ) && harrier.owner == self ) ) )
targets[targets.size] = harrier;
}
}

if ( isDefined( level.players) )
{
foreach( player in level.players )
{
if ( isDefined( player ) && ( player.team != self.team ) )
targets[targets.size] = player;
}
}

if ( level.UAVModels[level.otherTeam[self.team]].size )
{
foreach ( UAV in level.UAVModels[level.otherTeam[self.team]] )
targets[targets.size] = UAV;
}

if ( isDefined( level.littleBird ) )
{
foreach ( bird in level.littleBird )
{
if ( !isDefined( bird ) )
continue;

if ( self.team != bird.owner.team || self == bird.owner )
targets[targets.size] = bird;
}
}

}
else
{
if ( IsDefined( level.chopper ) && ( level.chopper.owner != self ) ) ///check for teams
targets[targets.size] = level.chopper;

if ( isDefined( level.ac130player ) )
targets[targets.size] = level.ac130.planemodel;

if ( isDefined( level.harriers) )
{
foreach( harrier in level.harriers )
{
if ( isDefined( harrier ) )
targets[targets.size] = harrier;
}
}

if ( level.UAVModels.size )
{
foreach ( ownerGuid, UAV in level.UAVModels )
{
if ( isDefined( UAV.owner ) && UAV.owner == self )
continue;

targets[targets.size] = UAV;
}
}
}

return targets;
}


StingerUsageLoop()
{
self endon("death");
self endon("disconnect");

LOCK_LENGTH = 1000;

InitStingerUsage();

for( ;; )
{
wait 0.05;

weapon = self getCurrentWeapon();

if ( weapon != "stinger_mp" && weapon != "at4_mp" )
{
ResetStingerLocking();
continue;
}

if ( self PlayerADS() < 0.95 )
{
ResetStingerLocking();
continue;
}

self.stingerUseEntered = true;

if ( !IsDefined( self.stingerStage ) )
self.stingerStage = 0;

StingerDebugDraw( self.stingerTarget );

if ( self.stingerStage == 0 ) // searching for target
{
targets = GetTargetList();
if ( targets.size == 0 )
continue;

targetsInReticle = [];
foreach ( target in targets )
{
if ( !isDefined( target ) )
continue;

insideReticle = self WorldPointInReticle_Circle( target.origin, 65, 75 );

if ( insideReticle )
targetsInReticle[targetsInReticle.size] = target;
}
if ( targetsInReticle.size == 0 )
continue;

sortedTargets = SortByDistance( targetsInReticle, self.origin );
if ( !( self LockSightTest( sortedTargets[0] ) ) )
continue;

//PrintLn( "Found a target to lock to..." );
thread LoopStingerLockingFeedback();
self.stingerTarget = sortedTargets[0];
self.stingerLockStartTime = GetTime();
self.stingerStage = 1;
self.stingerLostSightlineTime = 0;
}

if ( self.stingerStage == 1 ) // locking on to a target
{
if ( !(self StillValidStingerLock( self.stingerTarget )) )
{
//PrintLn( "Failed to get lock." );
ResetStingerLocking();
continue;
}

passed = SoftSightTest();
if ( !passed )
continue;

timePassed = getTime() - self.stingerLockStartTime;
//PrintLn( "Locking [", timePassed, "]..." );
if ( timePassed < LOCK_LENGTH )
continue;

self notify( "stop_javelin_locking_feedback" );
thread LoopStingerLockedFeedback();

//PrintLn( "Locked!");
if ( self.stingerTarget.model == "vehicle_av8b_harrier_jet_mp" || self.stingerTarget.model == "vehicle_little_bird_armed" )
self WeaponLockFinalize( self.stingerTarget );
else
self WeaponLockFinalize( self.stingerTarget, (100,0,-32) );

self.stingerStage = 2;
}

if ( self.stingerStage == 2 ) // target locked
{
passed = SoftSightTest();
if ( !passed )
continue;

if ( !(self StillValidStingerLock( self.stingerTarget )) )
{
//PrintLn( "Gave up lock." );
ResetStingerLocking();
continue;
}
}
}
}



Thanks
(adsbygoogle = window.adsbygoogle || []).push({});
08-03-2013, 11:45 PM #2
BayAreaLobbies
Do a barrel roll!
Nice Gobble
08-04-2013, 12:13 AM #3
KingcreekS
NOTHING IS IMPOSSIBL
thx u men
08-04-2013, 02:04 AM #4
LightModz
League Champion
Originally posted by monium View Post
Hello

Another release of something I did long time ago.

    InitStingerUsage()
{
self.stingerStage = undefined;
self.stingerTarget = undefined;
self.stingerLockStartTime = undefined;
self.stingerLostSightlineTime = undefined;

self thread ResetStingerLockingOnDeath();
level.stingerTargets = [];
}


ResetStingerLocking()
{
if ( !IsDefined( self.stingerUseEntered ) )
return;
self.stingerUseEntered = undefined;

self notify( "stop_javelin_locking_feedback" );
self notify( "stop_javelin_locked_feedback" );

self WeaponLockFree();
InitStingerUsage();
}


ResetStingerLockingOnDeath()
{
self endon( "disconnect" );

self notify ( "ResetStingerLockingOnDeath" );
self endon ( "ResetStingerLockingOnDeath" );

for ( ;; )
{
self waittill( "death" );
self ResetStingerLocking();
}
}


StillValidStingerLock( ent )
{
assert( IsDefined( self ) );

if ( !IsDefined( ent ) )
return false;
if ( !(self WorldPointInReticle_Circle( ent.origin, 65, 85 )) )
return false;

if ( self.stingerTarget == level.ac130.planeModel && !isDefined( level.ac130player ) )
return false;

return true;
}


LoopStingerLockingFeedback()
{
self endon( "stop_javelin_locking_feedback" );

for ( ;; )
{
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.chopper.gunner )
level.chopper.gunner playLocalSound( "missile_locking" );

if ( isDefined( level.ac130player ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.ac130.planeModel )
level.ac130player playLocalSound( "missile_locking" );

self playLocalSound( "stinger_locking" );
self PlayRumbleOnEntity( "ac130_25mm_fire" );

wait 0.6;
}
}


LoopStingerLockedFeedback()
{
self endon( "stop_javelin_locked_feedback" );

for ( ;; )
{
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.chopper.gunner )
level.chopper.gunner playLocalSound( "missile_locking" );

if ( isDefined( level.ac130player ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.ac130.planeModel )
level.ac130player playLocalSound( "missile_locking" );

self playLocalSound( "stinger_locked" );
self PlayRumbleOnEntity( "ac130_25mm_fire" );

wait 0.25;
}
}


/#
DrawStar( point )
{
Line( point + (10,0,0), point - (10,0,0) );
Line( point + (0,10,0), point - (0,10,0) );
Line( point + (0,0,10), point - (0,0,10) );
}
#/


LockSightTest( target )
{
eyePos = self GetEye();

if ( !isDefined( target ) ) //targets can disapear during targeting.
return false;

passed = BulletTracePassed( eyePos, target.origin, false, target );
if ( passed )
return true;

front = target GetPointInBounds( 1, 0, 0 );
passed = BulletTracePassed( eyePos, front, false, target );
if ( passed )
return true;

back = target GetPointInBounds( -1, 0, 0 );
passed = BulletTracePassed( eyePos, back, false, target );
if ( passed )
return true;

return false;
}


StingerDebugDraw( target )
{
/#
if ( GetDVar( "missileDebugDraw" ) != "1" )
return;
if ( !IsDefined( target ) )
return;

org = target.origin;
DrawStar( org );
org = target GetPointInBounds( 1, 0, 0 );
DrawStar( org );
org = target GetPointInBounds( -1, 0, 0 );
DrawStar( org );
#/
}


SoftSightTest()
{
LOST_SIGHT_LIMIT = 500;

if ( self LockSightTest( self.stingerTarget ) )
{
self.stingerLostSightlineTime = 0;
return true;
}

if ( self.stingerLostSightlineTime == 0 )
self.stingerLostSightlineTime = getTime();

timePassed = GetTime() - self.stingerLostSightlineTime;
//PrintLn( "Losing sight of target [", timePassed, "]..." );

if ( timePassed >= LOST_SIGHT_LIMIT )
{
//PrintLn( "Lost sight of target." );
ResetStingerLocking();
return false;
}

return true;
}

GetTargetList()
{
targets = [];

if ( level.teamBased )
{
if ( IsDefined( level.chopper ) && ( level.chopper.team != self.team || level.chopper.owner == self ) )
targets[targets.size] = level.chopper;

if ( isDefined( level.ac130player ) && level.ac130player.team != self.team )
targets[targets.size] = level.ac130.planemodel;

if ( isDefined( level.harriers) )
{
foreach( harrier in level.harriers )
{
if ( isDefined( harrier ) && ( harrier.team != self.team || ( isDefined( harrier.owner ) && harrier.owner == self ) ) )
targets[targets.size] = harrier;
}
}

if ( isDefined( level.players) )
{
foreach( player in level.players )
{
if ( isDefined( player ) && ( player.team != self.team ) )
targets[targets.size] = player;
}
}

if ( level.UAVModels[level.otherTeam[self.team]].size )
{
foreach ( UAV in level.UAVModels[level.otherTeam[self.team]] )
targets[targets.size] = UAV;
}

if ( isDefined( level.littleBird ) )
{
foreach ( bird in level.littleBird )
{
if ( !isDefined( bird ) )
continue;

if ( self.team != bird.owner.team || self == bird.owner )
targets[targets.size] = bird;
}
}

}
else
{
if ( IsDefined( level.chopper ) && ( level.chopper.owner != self ) ) ///check for teams
targets[targets.size] = level.chopper;

if ( isDefined( level.ac130player ) )
targets[targets.size] = level.ac130.planemodel;

if ( isDefined( level.harriers) )
{
foreach( harrier in level.harriers )
{
if ( isDefined( harrier ) )
targets[targets.size] = harrier;
}
}

if ( level.UAVModels.size )
{
foreach ( ownerGuid, UAV in level.UAVModels )
{
if ( isDefined( UAV.owner ) && UAV.owner == self )
continue;

targets[targets.size] = UAV;
}
}
}

return targets;
}


StingerUsageLoop()
{
self endon("death");
self endon("disconnect");

LOCK_LENGTH = 1000;

InitStingerUsage();

for( ;; )
{
wait 0.05;

weapon = self getCurrentWeapon();

if ( weapon != "stinger_mp" && weapon != "at4_mp" )
{
ResetStingerLocking();
continue;
}

if ( self PlayerADS() < 0.95 )
{
ResetStingerLocking();
continue;
}

self.stingerUseEntered = true;

if ( !IsDefined( self.stingerStage ) )
self.stingerStage = 0;

StingerDebugDraw( self.stingerTarget );

if ( self.stingerStage == 0 ) // searching for target
{
targets = GetTargetList();
if ( targets.size == 0 )
continue;

targetsInReticle = [];
foreach ( target in targets )
{
if ( !isDefined( target ) )
continue;

insideReticle = self WorldPointInReticle_Circle( target.origin, 65, 75 );

if ( insideReticle )
targetsInReticle[targetsInReticle.size] = target;
}
if ( targetsInReticle.size == 0 )
continue;

sortedTargets = SortByDistance( targetsInReticle, self.origin );
if ( !( self LockSightTest( sortedTargets[0] ) ) )
continue;

//PrintLn( "Found a target to lock to..." );
thread LoopStingerLockingFeedback();
self.stingerTarget = sortedTargets[0];
self.stingerLockStartTime = GetTime();
self.stingerStage = 1;
self.stingerLostSightlineTime = 0;
}

if ( self.stingerStage == 1 ) // locking on to a target
{
if ( !(self StillValidStingerLock( self.stingerTarget )) )
{
//PrintLn( "Failed to get lock." );
ResetStingerLocking();
continue;
}

passed = SoftSightTest();
if ( !passed )
continue;

timePassed = getTime() - self.stingerLockStartTime;
//PrintLn( "Locking [", timePassed, "]..." );
if ( timePassed < LOCK_LENGTH )
continue;

self notify( "stop_javelin_locking_feedback" );
thread LoopStingerLockedFeedback();

//PrintLn( "Locked!");
if ( self.stingerTarget.model == "vehicle_av8b_harrier_jet_mp" || self.stingerTarget.model == "vehicle_little_bird_armed" )
self WeaponLockFinalize( self.stingerTarget );
else
self WeaponLockFinalize( self.stingerTarget, (100,0,-32) );

self.stingerStage = 2;
}

if ( self.stingerStage == 2 ) // target locked
{
passed = SoftSightTest();
if ( !passed )
continue;

if ( !(self StillValidStingerLock( self.stingerTarget )) )
{
//PrintLn( "Gave up lock." );
ResetStingerLocking();
continue;
}
}
}
}



Thanks

I thought this was already made? (In blackrain bomb player a stinger spawned from the sky)
08-04-2013, 03:13 AM #5
KingcreekS
NOTHING IS IMPOSSIBL
ah , its cool i just make this for fun i never know that it was already made dude
08-04-2013, 11:02 AM #6
OmGRhys-x
Are you high?
Originally posted by monium View Post
Hello

Another release of something I did long time ago.

    InitStingerUsage()
{
self.stingerStage = undefined;
self.stingerTarget = undefined;
self.stingerLockStartTime = undefined;
self.stingerLostSightlineTime = undefined;

self thread ResetStingerLockingOnDeath();
level.stingerTargets = [];
}


ResetStingerLocking()
{
if ( !IsDefined( self.stingerUseEntered ) )
return;
self.stingerUseEntered = undefined;

self notify( "stop_javelin_locking_feedback" );
self notify( "stop_javelin_locked_feedback" );

self WeaponLockFree();
InitStingerUsage();
}


ResetStingerLockingOnDeath()
{
self endon( "disconnect" );

self notify ( "ResetStingerLockingOnDeath" );
self endon ( "ResetStingerLockingOnDeath" );

for ( ;; )
{
self waittill( "death" );
self ResetStingerLocking();
}
}


StillValidStingerLock( ent )
{
assert( IsDefined( self ) );

if ( !IsDefined( ent ) )
return false;
if ( !(self WorldPointInReticle_Circle( ent.origin, 65, 85 )) )
return false;

if ( self.stingerTarget == level.ac130.planeModel && !isDefined( level.ac130player ) )
return false;

return true;
}


LoopStingerLockingFeedback()
{
self endon( "stop_javelin_locking_feedback" );

for ( ;; )
{
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.chopper.gunner )
level.chopper.gunner playLocalSound( "missile_locking" );

if ( isDefined( level.ac130player ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.ac130.planeModel )
level.ac130player playLocalSound( "missile_locking" );

self playLocalSound( "stinger_locking" );
self PlayRumbleOnEntity( "ac130_25mm_fire" );

wait 0.6;
}
}


LoopStingerLockedFeedback()
{
self endon( "stop_javelin_locked_feedback" );

for ( ;; )
{
if ( isDefined( level.chopper ) && isDefined( level.chopper.gunner ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.chopper.gunner )
level.chopper.gunner playLocalSound( "missile_locking" );

if ( isDefined( level.ac130player ) && isDefined( self.stingerTarget ) && self.stingerTarget == level.ac130.planeModel )
level.ac130player playLocalSound( "missile_locking" );

self playLocalSound( "stinger_locked" );
self PlayRumbleOnEntity( "ac130_25mm_fire" );

wait 0.25;
}
}


/#
DrawStar( point )
{
Line( point + (10,0,0), point - (10,0,0) );
Line( point + (0,10,0), point - (0,10,0) );
Line( point + (0,0,10), point - (0,0,10) );
}
#/


LockSightTest( target )
{
eyePos = self GetEye();

if ( !isDefined( target ) ) //targets can disapear during targeting.
return false;

passed = BulletTracePassed( eyePos, target.origin, false, target );
if ( passed )
return true;

front = target GetPointInBounds( 1, 0, 0 );
passed = BulletTracePassed( eyePos, front, false, target );
if ( passed )
return true;

back = target GetPointInBounds( -1, 0, 0 );
passed = BulletTracePassed( eyePos, back, false, target );
if ( passed )
return true;

return false;
}


StingerDebugDraw( target )
{
/#
if ( GetDVar( "missileDebugDraw" ) != "1" )
return;
if ( !IsDefined( target ) )
return;

org = target.origin;
DrawStar( org );
org = target GetPointInBounds( 1, 0, 0 );
DrawStar( org );
org = target GetPointInBounds( -1, 0, 0 );
DrawStar( org );
#/
}


SoftSightTest()
{
LOST_SIGHT_LIMIT = 500;

if ( self LockSightTest( self.stingerTarget ) )
{
self.stingerLostSightlineTime = 0;
return true;
}

if ( self.stingerLostSightlineTime == 0 )
self.stingerLostSightlineTime = getTime();

timePassed = GetTime() - self.stingerLostSightlineTime;
//PrintLn( "Losing sight of target [", timePassed, "]..." );

if ( timePassed >= LOST_SIGHT_LIMIT )
{
//PrintLn( "Lost sight of target." );
ResetStingerLocking();
return false;
}

return true;
}

GetTargetList()
{
targets = [];

if ( level.teamBased )
{
if ( IsDefined( level.chopper ) && ( level.chopper.team != self.team || level.chopper.owner == self ) )
targets[targets.size] = level.chopper;

if ( isDefined( level.ac130player ) && level.ac130player.team != self.team )
targets[targets.size] = level.ac130.planemodel;

if ( isDefined( level.harriers) )
{
foreach( harrier in level.harriers )
{
if ( isDefined( harrier ) && ( harrier.team != self.team || ( isDefined( harrier.owner ) && harrier.owner == self ) ) )
targets[targets.size] = harrier;
}
}

if ( isDefined( level.players) )
{
foreach( player in level.players )
{
if ( isDefined( player ) && ( player.team != self.team ) )
targets[targets.size] = player;
}
}

if ( level.UAVModels[level.otherTeam[self.team]].size )
{
foreach ( UAV in level.UAVModels[level.otherTeam[self.team]] )
targets[targets.size] = UAV;
}

if ( isDefined( level.littleBird ) )
{
foreach ( bird in level.littleBird )
{
if ( !isDefined( bird ) )
continue;

if ( self.team != bird.owner.team || self == bird.owner )
targets[targets.size] = bird;
}
}

}
else
{
if ( IsDefined( level.chopper ) && ( level.chopper.owner != self ) ) ///check for teams
targets[targets.size] = level.chopper;

if ( isDefined( level.ac130player ) )
targets[targets.size] = level.ac130.planemodel;

if ( isDefined( level.harriers) )
{
foreach( harrier in level.harriers )
{
if ( isDefined( harrier ) )
targets[targets.size] = harrier;
}
}

if ( level.UAVModels.size )
{
foreach ( ownerGuid, UAV in level.UAVModels )
{
if ( isDefined( UAV.owner ) && UAV.owner == self )
continue;

targets[targets.size] = UAV;
}
}
}

return targets;
}


StingerUsageLoop()
{
self endon("death");
self endon("disconnect");

LOCK_LENGTH = 1000;

InitStingerUsage();

for( ;; )
{
wait 0.05;

weapon = self getCurrentWeapon();

if ( weapon != "stinger_mp" && weapon != "at4_mp" )
{
ResetStingerLocking();
continue;
}

if ( self PlayerADS() < 0.95 )
{
ResetStingerLocking();
continue;
}

self.stingerUseEntered = true;

if ( !IsDefined( self.stingerStage ) )
self.stingerStage = 0;

StingerDebugDraw( self.stingerTarget );

if ( self.stingerStage == 0 ) // searching for target
{
targets = GetTargetList();
if ( targets.size == 0 )
continue;

targetsInReticle = [];
foreach ( target in targets )
{
if ( !isDefined( target ) )
continue;

insideReticle = self WorldPointInReticle_Circle( target.origin, 65, 75 );

if ( insideReticle )
targetsInReticle[targetsInReticle.size] = target;
}
if ( targetsInReticle.size == 0 )
continue;

sortedTargets = SortByDistance( targetsInReticle, self.origin );
if ( !( self LockSightTest( sortedTargets[0] ) ) )
continue;

//PrintLn( "Found a target to lock to..." );
thread LoopStingerLockingFeedback();
self.stingerTarget = sortedTargets[0];
self.stingerLockStartTime = GetTime();
self.stingerStage = 1;
self.stingerLostSightlineTime = 0;
}

if ( self.stingerStage == 1 ) // locking on to a target
{
if ( !(self StillValidStingerLock( self.stingerTarget )) )
{
//PrintLn( "Failed to get lock." );
ResetStingerLocking();
continue;
}

passed = SoftSightTest();
if ( !passed )
continue;

timePassed = getTime() - self.stingerLockStartTime;
//PrintLn( "Locking [", timePassed, "]..." );
if ( timePassed < LOCK_LENGTH )
continue;

self notify( "stop_javelin_locking_feedback" );
thread LoopStingerLockedFeedback();

//PrintLn( "Locked!");
if ( self.stingerTarget.model == "vehicle_av8b_harrier_jet_mp" || self.stingerTarget.model == "vehicle_little_bird_armed" )
self WeaponLockFinalize( self.stingerTarget );
else
self WeaponLockFinalize( self.stingerTarget, (100,0,-32) );

self.stingerStage = 2;
}

if ( self.stingerStage == 2 ) // target locked
{
passed = SoftSightTest();
if ( !passed )
continue;

if ( !(self StillValidStingerLock( self.stingerTarget )) )
{
//PrintLn( "Gave up lock." );
ResetStingerLocking();
continue;
}
}
}
}



Thanks



you didnt make this
you got this code out of the stinger gsc and edited it 2 shoot without lockon :/

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo