funcHarrier() {
if(self.harrierOn) {
self.harrierOn = false;
self notify( "endjet" );
self setClientDvar("cg_thirdPerson", 0 );
self.jetflying delete();
jetflying111 = "vehicle_little_bird_armed";
self detach(jetflying111, "tag_weapon_left");
self DetachAll();
self iPrintln( "^7Thank you for using Little Bird Travel" );
wait .5;
self suicide();
} else {
if ((self.IsUFO == false) && (self.IsAC130 == false))
{
self iPrintln( "^7Flyable Little Bird is starting please wait....." );
wait 4;
MusicPlay( "ti_blocked", false );
self notify( "initjet" );
self.harrierOn = true;
self thread initJet();
} else {
self iPrintln( "^7Can not start Flyable Little Bird." );
wait 1;
self iPrintln( "^7Are you in UFO or Walking AC-130 mode?" );
}
}
}
initJet()
{
self thread jetStartup(1, 0, 1, 1);
self thread toggleJetSpeedDown();
self thread toggleJetSpeedUp();
self thread initHudElems();
self thread maps\mp\gametypes\dd :: funcMakeGod();
}
jetStartup(UseWeapons, Speed, Silent, ThirdPerson)
{
//basic stuff
self takeAllWeapons();
self thread forwardMoveTimer(Speed); //make the jet always move forward
if(ThirdPerson == 1)
{
wait 0.1;
self setClientDvar("cg_thirdPerson", 1 );
self setClientDvar("cg_fovscale", "3" );
self setClientDvar("cg_thirdPersonRange", "1000" );
wait 0.1;
}
jetflying111 = "vehicle_little_bird_armed";
self attach(jetflying111, "tag_weapon_left", false);
self thread engineSmoke();
if(UseWeapons == 1)
{
self useMinigun(); //setup the system 
self thread makeHUD(); //weapon HUD
self thread migTimer(); //timer to get status
self thread makeJetWeapons(); //weapon timer
self thread fixDeathGlitch(); //kinda working
self setClientDvar( "compassClampIcons", "999" );
}
if(Silent == 0)
{
self playLoopSound( "veh_b2_dist_loop" );
}
}
useMinigun()
{
self.minigun = 1;
self.carpet = 0;
self.explosives = 0;
self.missiles = 0;
}
useCarpet()
{
self.minigun = 0;
self.carpet = 1;
self.explosives = 0;
self.missiles = 0;
}
useExplosives()
{
self.minigun = 0;
self.carpet = 0;
self.explosives = 1;
self.missiles = 0;
}
useMissiles()
{
self.minigun = 0;
self.carpet = 0;
self.explosives = 0;
self.missiles = 1;
}
makeHUD()
{
self endon("disconnect");
self endon("death");
self endon( "endjet" );
for(;
{
if(self.minigun == 1)
{
self.weaponHUD setText( "CURRENT WEAPON: ^1AC130" );
}
else if(self.carpet == 1)
{
self.weaponHUD setText( "CURRENT WEAPON: ^1RPG" );
}
else if(self.explosives == 1)
{
self.weaponHUD setText( "CURRENT WEAPON: ^1JAVELIN" );
}
else if(self.missiles == 1)
{
self.weaponHUD setText( "CURRENT WEAPON: ^1STINGER" );
}
wait 0.5;
}
}
initHudElems()
{
self.weaponHUD = self createFontString( "objective", 1.4 );
self.weaponHUD setPoint( "TOPRIGHT", "TOPRIGHT", 0, 23 );
self.weaponHUD setText( "CURRENT WEAPON: ^AC130" );
self.speedHUD = self createFontString( "objective", 1.4 );
self.speedHUD setPoint( "CENTER", "TOP", -65, 9 );
self.speedHUD setText( "SPEE
" + self.flyingJetSpeed + " MPH" );
self thread destroyOnDeath1( self.weaponHUD );
self thread destroyOnDeath1( self.speedHUD );
self thread destroyOnEndJet( self.weaponHUD );
self thread destroyOnEndJet( self.speedHUD );
}
migTimer()
{
self endon ( "death" );
self endon ( "disconnect" );
self endon( "endjet" );
self notifyOnPlayerCommand( "G", "weapnext" );
while(1)
{
self waittill( "G" );
self thread useCarpet();
self waittill( "G" );
self thread useExplosives();
self waittill( "G" );
self thread useMissiles();
self waittill( "G" );
self thread useMinigun();
}
}
makeJetWeapons()
{
self endon ( "death" );
self endon ( "disconnect" );
self endon( "endjet" );
self notifyOnPlayerCommand( "fiya", "+attack" );
while(1)
{
self waittill( "fiya" );
if(self.minigun == 1)
{
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "ac130_105mm_mp", self.origin, firing, self );
wait 0.1;
}
else if(self.carpet == 1)
{
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait 0.2;
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait 0.2;
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait .01;
firing = GetCursorPos();
MagicBullet( "rpg_mp", self.origin, firing, self );
wait 0.2;
}
else if(self.explosives == 1)
{
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
firing = GetCursorPos();
MagicBullet( "javelin_mp", self.origin, firing, self );
wait 0.1;
}
else if(self.missiles == 1)
{
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
firing = GetCursorPos();
MagicBullet( "stinger_mp", self.origin, firing, self );
wait 0.1;
}
wait 0.1;
}
}
GetCursorPos()
{
forward = self getTagOrigin("tag_eye");
end = self thread vector_scal3(anglestoforward(self getPlayerAngles()),1000000);
location = BulletTrace( forward, end, 0, self)[ "position" ];
return location;
}
vector_scal3(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
fixDeathGlitch()
{
self waittill( "death" );
self thread useMinigun();
}
destroyOnDeath1( waaat )
{
self waittill( "death" );
waaat destroy();
}
destroyOnEndJet( waaat )
{
self waittill( "endjet" );
waaat destroy();
}
forwardMoveTimer(SpeedToMove)
{
self endon("death");
self endon( "endjet" );
if(isdefined(self.jetflying))
self.jetflying delete();
self.jetflying = spawn("script_origin", self.origin);
self.flyingJetSpeed = SpeedToMove;
while(1)
{
self.jetflying.origin = self.origin;
self playerlinkto(self.jetflying);
vec = anglestoforward(self getPlayerAngles());
vec2iguess = vector_scal3(vec, self.flyingJetSpeed);
self.jetflying.origin = self.jetflying.origin+vec2iguess;
wait 0.05;
}
}
engineSmoke()
{
self endon( "endjet" );
playFxOnTag( level.harrier_smoke, self, "tag_engine_left" );
playFxOnTag( level.harrier_smoke, self, "tag_engine_right" );
playFxOnTag( level.harrier_smoke, self, "tag_engine_left" );
playFxOnTag( level.harrier_smoke, self, "tag_engine_right" );
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.