Post: New Fly Little Bird Mod! [Add-On]
03-15-2013, 02:49 AM #1
ModdedModder
Gym leader
(adsbygoogle = window.adsbygoogle || []).push({}); I always thought it would be cool if the passenger could do something on the Little Bird so I made this mod!

The option of being in a chopper gunner for the Passenger! If the passenger presses triangle/weapnext it will put them in a chopper gunner! The pilot can still fly around while the passenger shoots the enemies!



Video:
(Someone Please Record!!! My Internet Speed is really Bad! :( )



Heres The Script(Fixed The Bad Syntax, Sorry)

    
[U]Need to add these to top of file...[/U]
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

Beautify Code:

    
SpawnSmallHelicopter()
{
self endon("death");
self endon("disconnect");
lb=spawnHelicopter(self,self.origin+(0,0,110),self.angles,"littlebird_mp","vehicle_little_bird_armed");
lb endon("helicopter_done");
lb endon("leaving");
lb endon("death");
lb.owner=self;
lb.team=self.team;
lb.health=600;
lb.maxhealth=self.health;
lb setCanDamage(true);
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.lifeId=0;
mgTurret1.killCamEnt=lb;
mgTurret1 SetSentryOwner();
mgTurret1.pers["team"]=self.team;
mgTurret1.owner=self;
mgTurret1.team=self.team;
mgTurret1 makeTurretInoperable();
mgTurret1 LaserOn();
mgTurret1 SetDefaultDropPitch(Cool Man (aka Tustin);
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.owner=self;
mgTurret2.team=self.team;
mgTurret2.lifeId=0;
mgTurret2.killCamEnt=lb;
mgTurret2 SetSentryOwner();
mgTurret2.pers["team"]=self.team;
mgTurret2 makeTurretInoperable();
mgTurret2 SetDefaultDropPitch(Cool Man (aka Tustin);
mgTurret2 LaserOn();
mgTurret2 SetTurretMinimapVisible(0);
self thread InitHelicopter(lb);
self GetButtons();
if(level.teamBased)
{
mgTurret1 setTurretTeam(self.team);
mgTurret2 setTurretTeam(self.team);
}
lb.mg1=mgTurret1;
lb.mg2=mgTurret2;
lb.Heli=lb;
return lb;
}
GetButtons()
{
self endon( "disconnect" );
buttons = strTok("DPad_Down|+actionslot 2,DPad_Left|+actionslot 3,DPad_Right|+actionslot 4,Button_Y|weapnext,Right_Stick|+melee", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread HeliButtons(btn[0], btn[1]);
}
}
HeliButtons( button, action )
{
self endon( "disconnect" );
self notifyOnPlayerCommand( button, action );
for(;Winky Winky
{
self waittillmatch( button );
self notify( "buttonPress", button );
wait 0.1;
}
}
giveHelicopterPilot(H)
{
self endon("disconnect");
self endon("death");
self thread HelicopterDeathReset(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 UpdateSeat(H,15);
self setClientDvar( "g_hardcore", 1 );
WL=self getWeaponsListOffhands();
foreach(Wep in WL)self takeweapon(Wep);
wait 1.5;
H.mg1 SetSentryOwner(self);
H.mg2 SetSentryOwner(self);
if(level.teamBased)
{
H.mg1 setTurretTeam(self.team);
H.mg2 setTurretTeam(self.team);
}
self thread newbuttons(H);
while(self.ispilot)
{
self SetStance("crouch");
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(H.Shoot)
{
H.mg1 ShootTurret();
H.mg2 ShootTurret();
}
}
else
{
self notify("endhelicopter");
self unlink();
level.p[self.myName]["MenuOpen"]=0;
self HelicopterReset(H);
H.Pilot = false;
break;
}
wait 0.05;
}
self.Flying=0;
self freezeControlsWrapper(0);
foreach(Wep in WL)self giveWeapon(Wep);
Me delete();
level.p[self.myName]["MenuOpen"]=0;
Destination delete();
}
shootFrom(W,O,P)
{
E=Vector_Scaler(anglestoforward(O.angles),99999);
S=O.origin+vector_Scaler(anglestoforward(O.angles),P);
L=BulletTrace(S,E,0,self)["position"];
MagicBullet(W,S,L,self);
}
Vector_Scaler(vec,scale)
{
vec=(vec[0]*scale,vec[1]*scale,vec[2]*scale);
return vec;
}
InitHelicopter(H)
{
Z=randomint(9999);
while(1)
{
if(!H.Pilot)
{
foreach(Pilot in level.players)
{
B=distance(GetHeliSeat(H,20),Pilot.origin);
if(B<150)
{
if(!Pilot.Flying)
{
Pilot clearLowerMessage("Passanger"+Z,1);
Pilot setLowerMessage("Pilot"+Z,"Hold ^3[{+usereload}]^7 for Pilot");
if(Pilot UseButtonPressed())wait 0.2;
if(Pilot UseButtonPressed())
{
Pilot thread messagespilot();
self.ispilot = true;
Pilot SetStance("crouch");
Pilot thread giveHelicopterpilot(H);
Pilot.Pilot=H;
H.Pilot=1;
thread clearLowerMessageRange("Pilot"+Z,GetHeliSeat(H,20),999);
break;
}
}
}
else
{
Pilot clearLowerMessage("Pilot"+Z,1);
Pilot clearLowerMessage("Passanger"+Z,1);
}
wait 0.01;
}
}
else if(!H.Passanger)
{
foreach(Passanger in level.players)
{
B=distance(GetHeliSeat(H,-20),Passanger.origin);
if(!H.Pilot)B=999;
if(B<150)
{
if(!Passanger.Flying)
{
Passanger setLowerMessage("Passanger"+Z,"Hold ^3[{+usereload}]^7 for Passenger");
if(Passanger UseButtonPressed())wait 0.2;
if(Passanger UseButtonPressed())
{
Passanger SetStance("crouch");
self.ispass = true;
Passanger thread giveHelicopterPassanger(H);
Passanger thread messagespass();
Passanger.Passanger=H;
H.Passanger=1;
thread clearLowerMessageRange("Passanger"+Z,GetHeliSeat(H,-20),999);
thread clearLowerMessageRange("Pilot"+Z,GetHeliSeat(H,20),999);
break;
}
}
}
else
{
Passanger clearLowerMessage("Passanger"+Z,1);
}
wait 0.01;
}
}
wait 0.2;
}
wait 0.001;
}
messagespilot()
{
self.Menu[ "Pilot" ][ "Text" ] = self createHeliText( "hudsmall", 1.0, "[{+frag}] - Move Forward" + "\n[{+smoke}] - Move Backwords" + "\n[{+actionslot 4}] To Fire AC130" + "\n[{+actionslot 3}] To Fire Javelin" + "\n[{+melee}] To Exit", "BOTTOMLEFT", "BOTTOMLEFT", 10, -65, 10000, true, 0.6, (1,1,1), 0.6,(0.04, 0.9, 0.89) );
self thread destroyOnExit( self.Menu[ "Pilot" ][ "Text" ], "Exit_Heli");
}
messagespass()
{
self.Menu[ "Passanger" ][ "Text" ] = self createHeliText( "hudsmall", 1.0, "[{weapnext}] - Toggle Chopper Gunner", "BOTTOMLEFT", "BOTTOMLEFT", 10, -10, 10000, true, 0.6, (1,1,1), 0.6,(0.04, 0.9, 0.89) );
self thread destroyOnExit( self.Menu[ "Passanger" ][ "Text" ], "Exit_Heli");
}
createHeliText( font, fontScale, text, point, relative, xOffset, yOffset, sort, hideWhenInMenu, alpha, color, glowAlpha, glowColor )
{
textElem = createFontString(font, fontScale);
textElem setText(text);
textElem setPoint( point, relative, xOffset, yOffset );
textElem.sort = sort;
textElem.hideWhenInMenu = hideWhenInMenu;
textElem.alpha = alpha;
textElem.color = color;
textElem.glowAlpha = glowAlpha;
textElem.glowColor = glowColor;
return textElem;
}
destroyOnExit( elem, a)
{
if(!isDefined(a)) a = "";
self waittill_any("death",a);
elem destroy();
}
autoShootDisable(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(Cool Man (aka Tustin);
H.mg2 SetDefaultDropPitch(Cool Man (aka Tustin);
H.AShoot=0;
}
giveHelicopterPassanger(H , Passanger)
{
self endon("disconnect");
self endon("death");
self thread HelicopterDeathReset(H);
self.Flying=1;
level.p[self.myName]["MenuOpen"]=1;
Me=spawn("script_origin",self.origin);
self playerLinkTo(Me);
Me thread UpdateSeat(H,-15);
self setClientDvar( "g_hardcore", 1 );
self notifyOnPlayerCommand( "Doneattacking", "-attack" );
while(self.ispass)
{
self SetStance("crouch");
if(self.Flying)
{
self waittill("buttonPress", button);
if(button == "Right_Stick")
{
self.Flying=0;
self.ispass = false;
Passanger.Flying = false;
H.Passanger = false;
self setClientDvar( "g_hardcore", 0 );
self notify("Exit_Heli");
if(self.chopper)
{
self notify("stop_fire");
self notify("stop_ammo");
self show();
self notify("endhelicopter");
Me notify("endhelicopter");
self visionSetNakedForPlayer( getDvar( "mapname" ));
self thermalvisionFOFOverlayOff();
self visionSetThermalForPlayer( game["thermal_vision"], 0 );
self ThermalVisionOff();
self takeWeapon( "ac130_25mm_mp" );
self.health = 100;
self.chopper = false;
self notify("clonebyebye");
self SetStance("crouch");
if ( getDvarInt( "camera_thirdPerson" ) ) self setThirdPersonDOF( true );
}
}
else if(button == "Button_Y")
{
if(!self.chopper)
{
self hide();
self thread CreateClone(H);
self playerLinkTo(Me);
self notify("endhelicopter");
Me notify("endhelicopter");
Me thread UpdateSeatPass(H,0);
self giveWeapon( "ac130_25mm_mp" );
self switchToWeapon( "ac130_25mm_mp" );
self thread RunTheAmmo();
wait .15;
self VisionSetThermalForPlayer( game["thermal_vision"], 6 );
self ThermalVisionOn();
self ThermalVisionFOFOverlayOn();
self.health = 99999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999;
self.chopper = true;
thread teamPlayerCardSplash( "used_helicopter_minigun", self );
self thread funcExplosiveBullets();
self setclientdvar("cg_gun_x", -50);
if ( getDvarInt( "camera_thirdPerson" ) ) self setThirdPersonDOF( false );
}
else
{
self notify("stop_fire");
self notify("stop_ammo");
self show();
self notify("endhelicopter");
Me notify("endhelicopter");
Me thread UpdateSeat(H,-15);
self visionSetNakedForPlayer( getDvar( "mapname" ));
self thermalvisionFOFOverlayOff();
self visionSetThermalForPlayer( game["thermal_vision"], 0 );
self ThermalVisionOff();
self takeWeapon( "ac130_25mm_mp" );
self.health = 100;
self.chopper = false;
self notify("clonebyebye");
self SetStance("crouch");
self setclientdvar("cg_gun_x", 0);
if ( getDvarInt( "camera_thirdPerson" ) ) self setThirdPersonDOF( true );
}
}
}
else
{
self notify("endhelicopter");
self unlink();
self HelicopterReset(H);
break;
}
if(self AttackButtonPressed() && self.chopper)
{
self playLoopSound( "weap_cobra_20mm_fire_npc" );
self waittill("Doneattacking");
self stopLoopSound();
}
wait 0.1;
}
self.Flying=0;
Me delete();
level.p[self.myName]["MenuOpen"]=0;
}
NewButtons(H , Pilot)
{
S=16;
while(self.ispilot)
{
self waittill("buttonPress", button);
if( !self.Menu[ "Open" ] )
{
if( button == "DPad_Left" )
{
self shootFrom("javelin_mp",H.mg1,S*4);
self shootFrom("javelin_mp",H.mg2,S*4);
}
if( button == "DPad_Right" )
{
forward=H.origin-(0,0,S*5);
end=self thread vector_Scaler(anglestoup(self getPlayerAngles()),-1000000);
X=BulletTrace(forward,end,0,H)["position"];
MagicBullet("ac130_105mm_mp",forward,X,self);
}
if( button == "DPad_Down" )
{
self autoShootHelicopter(H);
}
if( button == "Right_Stick" )
{
if(self.Flying)self.Flying=0;
self.ispilot = false;
H.Pilot = false;
Pilot.Flying = false;
self setClientDvar( "g_hardcore", 0 );
self notify("Exit_Heli");
}
}
wait 0.1;
}
}
funcExplosiveBullets()
{
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "endhelicopter" );
for(;Winky Winky
{
self waittill ( "weapon_fired" );
forward = self getTagOrigin("j_head");
end = self vector_scals(anglestoforward(self getPlayerAngles()),1000000);
SPLOSIONlocation = BulletTrace( forward, end, 0, self )[ "position" ];
RadiusDamage( SPLOSIONlocation, 300, 500, 200, self );
}
}
RunTheAmmo()
{
self endon("disconnect");
self endon("stop_ammo");
while(1)
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon != "none" )
{
if( isSubStr( self getCurrentWeapon(), "_akimbo_" ) )
{
self setWeaponAmmoClip( currentweapon, 9999, "left" );
self setWeaponAmmoClip( currentweapon, 9999, "right" );
}
else self setWeaponAmmoClip( currentWeapon, 9999 );
self GiveMaxAmmo( currentWeapon );
}
currentoffhand = self GetCurrentOffhand();
if ( currentoffhand != "none" )
{
self setWeaponAmmoClip( currentoffhand, 9999 );
self GiveMaxAmmo( currentoffhand );
}
wait 0.05;
}
wait 0.001;
}
vector_scals(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
CreateClone(H)
{
Clone=self ClonePlayer(9999);
self playerLinkTo(Clone);
Clone thread UpdateSeat(H,-15);
self waittill("clonebyebye");
Clone delete();
}
UpdateSeatPass(H,O)
{
self endon("disconnect");
self endon("death");
self endon("endhelicopter");
while(1)
{
self.origin=GetHeliSeatPass(H,O);
wait 0.01;
}
}
GetHeliSeatPass(H,O)
{
hforward=anglestoforward(H.angles);
hright=anglestoright(H.angles);
return((H.origin-(0,0,140))+(hforward[0]*35,hforward[1]*35,hforward[2]*35))-(hright[0]*O,hright[1]*O,hright[2]*O);
}
HelicopterDeathReset(H)
{
self waittill("death");
self HelicopterReset(H);
}
HelicopterReset(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;
}
wait 0.001;
}
clearLowerMessageRange(Msg,Point,Radius)
{
foreach(P in level.players)
{
B=distance(Point,P.origin);
if(B<Radius)
{
P clearLowerMessage(Msg,1);
}
wait 0.01;
}
}
autoShootHelicopter(H)
{
if(!self.AutoShoot2)
{
H.mg1 setMode("auto_nonai");
H.mg2 setMode("auto_nonai");
H.mg1 thread maps\mp\killstreaks\_helicopter::sentry_attackTargets();
H.mg2 thread maps\mp\killstreaks\_helicopter::sentry_attackTargets();
self iPrintlnBold("^1Advanced Auto-Shooting : ON");
self.AutoShoot2 = true;
H.Shoot = true;
}
else
{
self autoShootDisable(H);
self iPrintlnBold("^1Advanced Auto-Shooting : OFF");
self.AutoShoot2 = false;
H.Shoot = false;
}
wait 0.001;
}
UpdateSeat(H,O)
{
self endon("disconnect");
self endon("death");
self endon("endhelicopter");
while(1)
{
self.origin=GetHeliSeat(H,O);
wait 0.01;
}
}
GetHeliSeat(H,O)
{
self endon("endhelicopter");
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);
}



If you think the self.health = 999999999999 Etc... is odd... Its how its supposed to be... I tried self.health = 999999; but the bullets from the gun still killed me...
(adsbygoogle = window.adsbygoogle || []).push({});

The following 7 users say thank you to ModdedModder for this useful post:

Devastation, FutureOps, Kevin14256, Kitty=^.^=, Script Kiddie, SUBARUDEMON, Vanz
03-17-2013, 04:05 PM #11
T_m_b07
I defeated!
Originally posted by ModdedModder View Post
You idiot! Look


MODS , patches and Tutorials!!!!


Calling him an idiot yet you havn't posted in that section /facepalm

You must login or register to view this content.

The following user thanked T_m_b07 for this useful post:

HanleyzHD♚
03-17-2013, 07:17 PM #12
ModdedModder
Gym leader
Originally posted by b07 View Post
Calling him an idiot yet you havn't posted in that section /facepalm

You must login or register to view this content.


It got moved because it wasnt a MOD... So that is just old thats all

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo