This goes in
init()
precacheModel( "tag_origin" );
level.minigunfx = loadfx("muzzleflashes/minigun");
level.fx_airstrike_afterburner = loadfx ("fire/jet_afterburner");
level.fx_airstrike_contrail = loadfx ("smoke/jet_contrail");
level.flyer_burner = loadfx("fire/flyer_burner");
if(getdvarint("scr_flyerspeed") == "") setdvar("scr_flyerspeed", 10);
if(getdvarint("scr_deletetime") == "") setdvar("scr_deletetime", 30);
if(getdvarint("scr_collisions") == "") setdvar("scr_collisions", 1);
if(getdvar("scr_roll") == "") setdvar("scr_roll", 1);
if(getdvar("scr_timescale") == "") setdvar("scr_timescale", 1);
if(getdvar("scr_timetime") == "") setdvar("scr_timetime", 0);
if(getdvar("scr_vehiclehealth") == "") setdvar("scr_vehiclehealth", 1000);
This goes in any gsc
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
#include common_scripts\utility;
Addplane()
{
plane = spawn("script_model", self.origin);
plane setmodel("vehicle_mig29_desert");
plane.targetname = "veh";
plane thread Time_out();
plane thread WaitForOccupant();
plane.gotperson = 0;
}
WaitForOccupant()
{
self.gotperson = 0;
wait 1;
while(1)
{
wait 0.05;
for(i = 0;i < level.players.size;i++)
{
p = level.players[i];
if(isdefined(distance(p.origin, self.origin)) && distance(p.origin, self.origin) <= 150) if(!self.gotperson && p.health > 0 && p UseButtonPressed() && !p.isinvehicle)
{
p.isinvehicle = true;
p detachall();
p setmodel("");
self.gotperson = 1;
p iprintlnbold("You got in a Plane");
self thread FlyerFly(p);
return;
}
}
}
}
SpinExplode()
{
self moveto(self.origin + (randomint(120), randomint(120), randomint(120)), 2, 0, 0.4);
self rotateto((randomint(360), randomint(360), randomint(360)), 2, 0.4);
wait 2;
self delete();
}
FlyerFly(player)
{
if(!isdefined(self.playing))
{
self.playing = "lol";
playfxontag(level.fx_airstrike_contrail, self, "tag_right_wingtip");
playfxontag(level.fx_airstrike_contrail, self, "tag_left_wingtip");
}
player giveWeapon("usp_mp");
player giveMaxAmmo("usp_mp");
player switchtoweapon("usp_mp");
self playloopsound("veh_mig29_mid_loop");
self endon("end flyer");
self.speed = 0;
player setorigin(self.origin + (0,0,-40));
player linkto(self);
player setclientdvar("cg_thirdperson", 1);
player.third_elem.alpha = 1;
player setclientdvar("cg_thirdpersonrange", "800");
self thread Time_out();
self thread Die(player);
self thread MoveFlyer(player);
self thread RotateFlyer(player);
self thread EndOnUseFlyer(player);
self thread Contrails();
while(1)
{
wait 0.05;
if(self.gotperson == 0) self notify("end flyer");
}
}
DamageMe(player)
{
self endon("end flyer");
self endon("end board");
self endon("end tank");
self endon("end heli");
while(1)
{
self waittill("damage", dmg, who, dir, point, mod);
if(!isplayer(who)) continue;
if(who.pers["team"] != player.pers["team"] && who != player)
{
self.lastdmger = who;
self.hp -= dmg;
if(self.hp > -1) who iprintln("HP: " + self.hp);
if(isPlayer(who)) who thread maps\mp\gametypes\_damagefeedback::updateDamageFeedback(false);
}
}
}
Die(player)
{
self setcandamage(true);
if(!isdefined(self.hp))
{
self.hp = getdvarint("scr_vehiclehealth");
self thread DamageMe(player);
}
self.lastdmger = player;
wait 0.05;
while(1)
{
wait 0.05;
if(!self.gotperson || !isdefined(self)) return;
if(self.hp < 1 || player.health < 1)
{
self notify("end flyer");
self notify("end heli");
self notify("end board");
self notify("end tank");
if(isdefined(self.gunner)) self.gunner thread Alsokill(self);
player.moving.alpha = 0;
player unlink();
self thread ExplodeBoom();
player.isinvehicle = false;
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
wait 0.05;
player thread maps\mp\gametypes\_globallogic::Callback_PlayerKilled(self.lastdmger, self.lastdmger, 100, "MOD_EXPLOSIVE", "misc_mp", (0, 0, 0), "TORSO_UPPER", 0, 3016);
player setclientdvar("cg_thirdperson", 0);
player.third_elem.alpha = 0;
return;
}
}
}
Alsokill(veh)
{
self.moving.alpha = 0;
self unlink();
self.isinvehicle = false;
self thread playerModelForWeapon(self.pers["class"]["loadout_primary"]);
wait 0.05;
self thread maps\mp\gametypes\_globallogic::Callback_PlayerKilled(veh.lastdmger, veh.lastdmger, 100, "MOD_EXPLOSIVE", "misc_mp", (0, 0, 0), "TORSO_UPPER", 0, 3016);
self setclientdvar("cg_thirdperson", 0);
self.third_elem.alpha = 0;
}
ExplodeBoom()
{
self stoploopsound();
object = spawn("script_model", self.origin);
object playsound("exp_armor_vehicle");
object thread delaydelete();
self rotateto(self.angles, 2);
playfx(level.bombstrike, self.origin);
self playsound("exp_armor_vehicle");
wait 2;
self delete();
}
Contrails()
{
while(1)
{
wait 0.1;
if(self.speed > 5)
{
playfxontag(level.flyer_burner, self, "tag_engine_right");
playfxontag(level.flyer_burner, self, "tag_engine_left");
}
}
}
EndOnUseFlyer(player)
{
player endon("death");
self endon("end flyer");
self endon("gotperson");
wait 3;
trace = undefined;
timetogo = undefined;
while(1)
{
wait 0.1;
if(player.health < 1 || !isdefined(player)) return;
if(player usebuttonpressed())
{
player iprintlnbold("You got out of the plane");
player unlink();
player setclientdvar("cg_thirdperson", 0);
player.third_elem.alpha = 0;
self.gotperson = 0;
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
player.isinvehicle = false;
player.lastflyer = undefined;
player takeallweapons();
self notify("pre-end flyer");
self stoploopsound();
trace = bullettrace(self.origin, self.origin + (0,0,-10000), false, self);
timetogo = calcspeed(1000, self.origin, trace["position"]);
self.speed = 0;
self moveto(trace["position"] + (0, 0, 40), timetogo);
self thread WaitForOccupant();
if(timetogo > 2.1)
{
self rotatevelocity((randomint(120), randomint(120), randomint(120)), timetogo - 1, timetogo/100);
self thread EndonOccupant(timetogo);
wait (timetogo - 1);
self rotateto((0, self.angles[1], 0), 1);
}
else self rotateto((0, self.angles[1], 0), 0.2);
if(!self.gotperson) return;
}
}
}
EndonOccupant(timetogo)
{
for(i = 0;i < 100;i++)
{
wait ((timetogo -1)/100);
if(self.gotperson)
{
self moveto(self.origin + (0,0,3), 0.05);
self rotateto((0, self.angles[1], 0), 0.5);
self notify("gotperson");
return;
}
}
}
delaydelete()
{
wait 1.567;
self stoploopsound();
wait 3.433;
self delete();
}
MoveFlyer(player)
{
self endon("end flyer");
self endon("pre-end flyer");
basespeed = getdvarint("scr_flyerspeed");
while(1)
{
wait 0.05;
if(player playerads())
{
if(self.speed == 1)
{
object = spawn("script_model", self.origin);
object linkto(self);
object2 = spawn("script_model", self.origin);
object2 linkto(self);
object playloopsound("jetgo");
object2 playloopsound("jetgo");
object thread delaydelete();
object2 thread delaydelete();
}
forwards = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), basespeed * self.speed);
forwards2 = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), 150);
trace = bullettrace(self.origin + (0, 0, 5), forwards2, false, self);
if(trace["fraction"] != 1 && level.collisions && trace["surfacetype"] != "default")
{
if(self.speed > 12)
{
self thread ExplodeBoom();
player.isinvehicle = false;
player unlink();
player thread playerModelForWeapon(player.pers["class"]["loadout_primary"]);
wait 0.05;
player suicide();
self notify("end flyer");
}
else if(self.speed <= 12)
{
self.speed = 0;
continue;
}
}
self moveto(forwards, 0.05);
if(self.speed < 15) self.speed++;
}
else
{
if(self.speed > 0)
{
self.speed--;
slowdown = self.origin + maps\mp\_utility::vector_scale(anglestoforward(self.angles), basespeed * self.speed);
self moveto(slowdown, 0.05);
}
}
player.lastflyer = self;
}
}
RotateFlyer(player)
{
self endon("end flyer");
self endon("pre-end flyer");
turnspeed = undefined;
rollangle = 0;
while(1)
{
wait 0.1;
pa = player getplayerangles();
sa = self.angles;
if(sa != pa)
{
ps = pa[1] - sa[1];
sp = sa[1] - pa[1];
if(sp == 0 || self.speed == 0) rollangle = 0;
else if (sp > 0 && self.speed > 5) rollangle = (sp);
else if(ps > 0 && self.speed > 5) rollangle = (ps * -1);
if(pa[0] <= -45 || pa[0] >= 45) rollangle = 0;
turnspeed = 0.4;
if(self.speed < 15) turnspeed = 2;
self rotateto((pa[0], pa[1], rollangle), turnspeed);
}
}
}
calcspeed(speed, origin1, moveto)
{
dist = distance(origin1, moveto);
time = (dist / speed);
return time;
}
Time_out()
{
if(isdefined(self.parent))
{
while(1)
{
wait 0.1;
if(self.parent.hp < 1 || !isdefined(self.parent))
{
self delete();
return;
}
}
}
limit = (getdvarfloat("scr_deletetime") - 1)/0.05;
if(limit < 200) limit = 200;
num = 0;
wait 1;
while(1)
{
wait 0.05;
num++;
if(self.gotperson) num = 0;
if(num > limit)
{
self notify("end flyer");
self notify("end heli");
self delete();
return;
}
}
}
playerModelForWeapon( weapon )
{
self detachAll();
weaponClass = tablelookup( "mp/statstable.csv", 4, weapon, 2 );
switch ( weaponClass )
{
case "weapon_smg": [[game[self.pers["team"]+"_model"]["SPECOPS"]]]();
break;
case "weapon_assault": [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
case "weapon_sniper": [[game[self.pers["team"]+"_model"]["SNIPER"]]]();
break;
case "weapon_shotgun": [[game[self.pers["team"]+"_model"]["RECON"]]]();
break;
case "weapon_lmg": [[game[self.pers["team"]+"_model"]["SUPPORT"]]]();
break;
default: [[game[self.pers["team"]+"_model"]["ASSAULT"]]]();
break;
}
}
and put some uk flags on it and Put Dibzy <3 nandos on the side?
This goes in
[/QUOTE]
This is sick! I just tried it! I like how you are able to crash, :y:
Copyright © 2026, NextGenUpdate.
All Rights Reserved.