SpawnSmallHelicopter2()
{
lb=spawnHelicopter(self,self.origin+(0,0,110),self .angles,"littlebird_mp","vehicle_little_bird_armed");
if(!isDefined(lb))return;
lb thread maps\mp\killstreaks\_helicopter::heli_existance();
lb addToHeliList();
lb thread removeFromHeliListOnDeath();
lb endon("helicopter_done");
lb endon("crashing");
lb endon("leaving");
lb endon("death");
lb thread deleteLBTurrets2();
lb.health=600;
lb.maxhealth=self.health;
lb setCanDamage(true);
lb.owner=self;
lb.team=self.team;
lb.Shoot=0;
lb.Pilot=0;
lb.Passanger=0;
lb.AShoot=0;
mgTurret1=spawnTurret("misc_turret",lb.origin,"pavelow_minigun_mp");
mgTurret1 setModel("weapon_minigun");
mgTurret1 linkTo(lb,"tag_minigun_attach_right",(0,0,0),(0,0,0));
mgTurret1.owner=self;
mgTurret1.team=self.team;
mgTurret1.lifeId=0;
mgTurret1 makeTurretInoperable();
mgTurret1 SetDefaultDropPitch(
;
mgTurret1 SetTurretMinimapVisible(0);
mgTurret1.killCamEnt=lb;
mgTurret1 SetSentryOwner();
mgTurret1.pers["team"]=self.team;
mgTurret1 makeTurretInoperable();
mgTurret1 LaserOn();
mgTurret1 SetDefaultDropPitch(
;
mgTurret1 SetTurretMinimapVisible(0);
mgTurret2=spawnTurret("misc_turret",lb.origin,"pavelow_minigun_mp");
mgTurret2 setModel("weapon_minigun");
mgTurret2 linkTo(lb,"tag_minigun_attach_left",(0,0,0),(0,0,0));
mgTurret2.lifeId=0;
mgTurret2.owner=self;
mgTurret2.team=self.team;
mgTurret2 makeTurretInoperable();
mgTurret2 SetDefaultDropPitch(
;
mgTurret2.killCamEnt=lb;
mgTurret2 SetSentryOwner();
mgTurret2 SetTurretMinimapVisible(0);
mgTurret2.pers["team"]=self.team;
mgTurret2 makeTurretInoperable();
mgTurret2 SetDefaultDropPitch(
;
mgTurret2 LaserOn();
mgTurret2 SetTurretMinimapVisible(0);
self thread InitHelicopter2(lb);
if(level.teamBased)
{
mgTurret1 setTurretTeam(self.team);
mgTurret2 setTurretTeam(self.team);
}
lb.mg1=mgTurret1;
lb.mg2=mgTurret2;
return lb;
}
addToHeliList()
{
level.helis[self getEntityNumber()]=self;
}
removeFromHeliListOnDeath()
{
entityNumber=self getEntityNumber();
self waittill ("death");
level.helis[entityNumber]=undefined;
}
deleteLBTurrets2()
{
self waittill("crashing");
self.mg1 delete();
self.mg2 delete();
self thread lbExplode2();
}
lbExplode2()
{
self playsound("harrier_jet_crash");
forward = ( self.origin + ( 0, 0, 1 ) ) - self.origin;
playfx ( level.chopper_fx["explode"]["air_death"], self.origin, forward );
deathAngles = self getTagAngles( "tag_deathfx" );
playFx( level.chopper_fx["explode"]["air_death"]["littlebird"], self getTagOrigin( "tag_deathfx" ), anglesToForward( deathAngles ), anglesToUp( deathAngles ) );
self thread LitBird();
}
LitBird()
{
self delete();
self.owner delete();
self.Passanger delete();
}
giveHelicopterPilot2(H)
{
self endon("disconnect");
self endon("crashing");
self thread HelicopterDeathReset2(H);
self.Flying=1;
S=16;
H Vehicle_SetSpeed(1000,S);
Me=spawn("script_origin",self.origin);
Destination=spawn("script_origin",self.origin);
self playerLinkTo(Me);
level.p[self.myName]["MenuOpen"]=1;
Me thread UpdateSeat2(H,15);
WL=self getWeaponsListOffhands();
foreach(Wep in WL)self takeweapon(Wep);
self DisableWeapons();
wait 1.5;
H.mg1 SetSentryOwner(self);
H.mg2 SetSentryOwner(self);
if(level.teamBased)
{
H.mg1 setTurretTeam(self.team);
H.mg2 setTurretTeam(self.team);
}
for(;
{
if(self.Flying)
{
forward=anglestoforward(self getPlayerAngles());
right=anglestoright(self getPlayerAngles());
up=anglestoup(self getPlayerAngles());
if(self FragButtonPressed())
{
pos =(forward[0]*S,forward[1]*S,forward[2]*S);
Destination.origin=Destination.origin+pos;
H setVehGoalPos(Destination.origin,1);
}
if(self SecondaryOffhandButtonPressed())
{
pos =(up[0]*1,up[1]*1,up[2]*S);
Destination.origin=Destination.origin+pos;
H setVehGoalPos(Destination.origin,1);
}
if(self UseButtonPressed())
{
pos =(up[0]*1,up[1]*1,up[2]*S);
Destination.origin=Destination.origin-pos;
H setVehGoalPos(Destination.origin,1);
}
if(self AttackButtonPressed())
{
H.mg1 ShootTurret();
H.mg2 ShootTurret();
}
if(self isButP("Left"))
{
self shootFrom2("javelin_mp",H.mg1,S*4);
self shootFrom2("javelin_mp",H.mg2,S*4);
}
if(self isButP("Up"))
{
forward=H.origin-(0,0,S*5);
end=self thread vector_Scaler2(anglestoup(self getPlayerAngles()),-1000000);
X=BulletTrace(forward,end,0,H)["position"];
MagicBullet("ac130_105mm_mp",forward,X,self);
}
if(self isButP("Down"))
{
H.Shoot=0;
if(H.AShoot)
{
H.AShoot=0;
}
else
{
H.AShoot=1;
}
self autoShootHelicopter2(H);
}
if(self isButP("O"))
{
self autoShootDisable2(H);
if(self.Flying)self.Flying=0;
}
}
else
{
self notify("endhelicopter");
self unlink();
level.p[self.myName]["MenuOpen"]=0;
self HelicopterReset2(H);
break;
}
wait 0.05;
}
self.Flying=0;
self freezeControlsWrapper(0);
foreach(Wep in WL)self giveWeapon(Wep);
self EnableWeapons();
Me delete();
level.p[self.myName]["MenuOpen"]=0;
Destination delete();
}
shootFrom2(W,O,P)
{
E=Vector_Scaler2(anglestoforward(O.angles),99999);
S=O.origin+vector_Scaler2(anglestoforward(O.angles ),P);
L=BulletTrace(S,E,0,self)["position"];
MagicBullet(W,S,L,self);
}
Vector_Scaler2(vec,scale)
{
vec=(vec[0]*scale,vec[1]*scale,vec[2]*scale);
return vec;
}
InitHelicopter2(H)
{
self endon("crashing");
Z=randomint(9999);
for(;
{
if(!H.Pilot)
{
foreach(Pilot in level.players)
{
B=distance(GetHeliSeat2(H,20),Pilot.origin);
if(B<150)
{
if(!Pilot.Flying)
{
Pilot clearLowerMessage("Passanger"+Z,1);
Pilot setLowerMessage("Pilot"+Z,"Hold ^3[[{+activate}]]^7 for Pilot");
if(Pilot UseButtonPressed())wait 0.2;
if(Pilot UseButtonPressed())
{
Pilot SetStance("crouch");
Pilot thread giveHelicopterPilot2(H);
Pilot.Pilot=H;
H.Pilot=1;
thread clearLowerMessageRange2("Pilot"+Z,GetHeliSeat2(H,20),999);
break;
}
}
}
else
{
Pilot clearLowerMessage("Pilot"+Z,1);
Pilot clearLowerMessage("Passanger"+Z,1);
self notify ("crashing");
}
wait 0.01;
}
}
else if(!H.Passanger)
{
self endon ("crashing");
foreach(Passanger in level.players)
{
B=distance(GetHeliSeat2(H,-20),Passanger.origin);
if(!H.Pilot)B=999;
if(B<150)
{
if(!Passanger.Flying)
{
Passanger setLowerMessage("Passanger"+Z,"Hold ^3[[{+activate}]]^7 for Passenger");
if(Passanger UseButtonPressed())wait 0.2;
if(Passanger UseButtonPressed())
{
Passanger SetStance("crouch");
Passanger thread giveHelicopterPassanger2(H);
Passanger.Passanger=H;
H.Passanger=1;
thread clearLowerMessageRange2("Passanger"+Z,GetHeliSeat2(H,-20),999);
thread clearLowerMessageRange2("Pilot"+Z,GetHeliSeat2(H,20),999);
break;
}
}
}
else
{
Passanger clearLowerMessage("Passanger"+Z,1);
self notify ("crashing");
}
wait 0.01;
}
}
wait 0.2;
}
}
autoShootDisable2(H)
{
H.mg1 notify("helicopter_done");
H.mg2 notify("helicopter_done");
H.mg1 notify("leaving");
H.mg2 notify("leaving");
H.mg1 setMode("manual");
H.mg2 setMode("manual");
H.mg1 SetDefaultDropPitch(
;
H.mg2 SetDefaultDropPitch(
;
H.AShoot=0;
}
giveHelicopterPassanger2(H)
{
self endon("disconnect");
self endon("crashing");
self thread HelicopterDeathReset2(H);
self.Flying=1;
level.p[self.myName]["MenuOpen"]=1;
Me=spawn("script_origin",self.origin);
self playerLinkTo(Me);
Me thread UpdateSeat2(H,-15);
for(;
{
if(self.Flying)
{
if(self isButP("Up"))
{
if(self.Flying)self.Flying=0;
}
}
else
{
self notify("endhelicopter");
self unlink();
self HelicopterReset2(H);
break;
}
wait 0.1;
}
self.Flying=0;
Me delete();
level.p[self.myName]["MenuOpen"]=0;
}
HelicopterDeathReset2(H)
{
self waittill("death");
self HelicopterReset2(H);
}
HelicopterReset2(H)
{
if(isDefined(self.Pilot))
{
H.Pilot=0;
self.Pilot=undefined;
self.Flying=0;
}
if(isDefined(self.Passanger))
{
H.Passanger=0;
self.Passanger=undefined;
self.Flying=0;
}
}
clearLowerMessageRange2(Msg,Point,Radius)
{
foreach(P in level.players)
{
B=distance(Point,P.origin);
if(B<Radius)
{
P clearLowerMessage(Msg,1);
}
wait 0.01;
}
}
autoShootHelicopter2(H)
{
if(H.AShoot)
{
H.mg1 setMode("auto_nonai");
H.mg2 setMode("auto_nonai");
H.mg1 thread maps\mp\killstreaks\_helicopter::sentry_attackTarg ets();
H.mg2 thread maps\mp\killstreaks\_helicopter::sentry_attackTarg ets();
self iPrintlnBold("^7Auto-Shooting : ^2ON");
}
else
{
self autoShootDisable2(H);
self iPrintlnBold("^7Auto-Shooting : ^1OFF");
}
}
UpdateSeat2(H,O)
{
self endon("disconnect");
self endon("death");
self endon("endhelicopter");
//self endon("helicopter_done");
for(;
{
self.origin=GetHeliSeat2(H,O);
wait 0.01;
}
}
GetHeliSeat2(H,O,owner)
{
hforward=anglestoforward(H.angles);
hright=anglestoright(H.angles);
return((H.origin-(0,0,72))+(hforward[0]*35,hforward[1]*35,hforward[2]*35))-(hright[0]*O,hright[1]*O,hright[2]*O);
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.