init()
{
precacheVehicle("heli_guard_mp");
precacheModel("veh_t6_drone_overwatch_light");
}
locationSelector()
{
self endon("disconnect");
self endon("death");
self beginLocationSelection( "map_mortar_selector" );
self disableoffhandweapons();
self giveWeapon("killstreak_remote_turret_mp", 0, false);
self switchToWeapon( "killstreak_remote_turret_mp" );
self.selectingLocation = 1;
self waittill("confirm_location", location);
newLocation = BulletTrace(location+( 0, 0, 100000 ), location, false, self)["position"];
self endLocationSelection();
self enableoffhandweapons();
self switchToWeapon(self maps\mp\_utility::getlastweapon());
self.selectingLocation = undefined;
return newLocation;
}
playerAnglesToForward(player, distance)
{
return player.origin + VectorScale(AnglesToForward(player getPlayerAngles(), distance));
}
traceBulletJet(traceDistance, traceReturn, detectPlayers)
{
if (!isDefined(traceDistance))
traceDistance = 10000000;
if (!isDefined(traceReturn))
traceReturn = "position";
if (!isDefined(detectPlayers))
detectPlayers = false;
return bulletTrace(self getEye(), self getEye() + VectorScale(AnglesToForward(self getPlayerAngles()), traceDistance), detectPlayers, self)[traceReturn];
}
fadeAlphaChange(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
changePHeliType(code, code2, print)
{
level.PHeliCheck = 1;
level.PHeliModel = code;
level.PHeliModel2 = code2;
self iPrintln("^3Set Helicopter Model to ^2" + print);
self changePHeliFov();
}
changePHeliFov()
{
if(level.PHeliModel2 == "veh_t6_drone_overwatch_light")
{
setDvar("cg_thirdPersonRange", "400");
}
else if(level.PHeliModel2 == "veh_t6_air_attack_heli_mp_dark")
{
setDvar("cg_thirdPersonRange", "550");
}
else if(level.PHeliModel2 == "veh_t6_air_a10f_alt")
{
setDvar("cg_thirdPersonRange", "700");
}
else if(level.PHeliModel2 == "veh_t6_drone_pegasus_mp")
{
setDvar("cg_thirdPersonRange", "600");
}
}
PHeliModellb()
{
changePHeliType("heli_guard_mp", "veh_t6_drone_overwatch_light", "Little Bird");
}
PHeliModelah()
{
changePHeliType("heli_ai_mp", "veh_t6_air_attack_heli_mp_dark", "Attack Helicopter");
}
PHeliModela10()
{
changePHeliType("heli_ai_mp", "veh_t6_air_a10f_alt", "A10 Thunderbolt");
}
PHeliModelstlh()
{
changePHeliType("heli_ai_mp", "veh_t6_drone_pegasus_mp", "Stealth Bomber");
}
initPilotHeli()
{
if(level.pilotHeliOn == 0)
{
level.pilotHeliOn = 1;
if(level.PHeliCheck == 0)
{
level.PHeliCheck = 1;
self thread PHeliModellb();
}
self thread comePilotHeli();
}
else
{
self iPrintlnbold("^3Helicopter is ^1already spawned.");
}
}
comePilotHeli()
{
self endon("disconnect");
self endon("stop_comePHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.comePHeliOn == 0)
{
self iPrintlnbold("^3Please set ^6Helicopter's landing zone.");
wait 1;
Location = locationSelector();
level.comePHeliOn = 1;
}
if(level.comePHeliOn == 1)
{
level.PHeli = spawnHelicopter(self, self.origin + (12000, 0, 1500), self.angles, level.PHeliModel, level.PHeliModel2);
level.PHeli.owner = self;
level.PHeli.team = self.team;
self iPrintlnbold("^3Landing zone ^2pointed.");
self iPrintln("^1Helicopter will arrive soon...");
level.comePHeliOn = 2;
}
if(level.comePHeliOn == 2)
{
level.PHeli setSpeed(1000, 25);
level.PHeli setVehGoalPos(Location + (0, 0, 1500), 1);
wait 14;
level.PHeli setSpeed(200, 20);
level.PHeli setVehGoalPos(Location + (0, 0, 65), 1);
level.comePHeliOn = 0;
foreach(p in level.players)
{
p thread ridePilotHeli();
}
self notify("stop_comePHeli");
}
wait 0.05;
}
}
ridePilotHeli()
{
self endon("disconnect");
self endon("stop_ridePHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
self.ridePHeliInfo destroy();
if(distance(self.origin, level.PHeli.origin) < 150)
{
self.ridePHeliInfo = self createFontString("hudbig", 1.
;
self.ridePHeliInfo setPoint( "TOP", "TOP", 0, 50 );
self.ridePHeliInfo setText("^3Press [{+usereload}] to ^1Ride on Helicopter");
if(self useButtonPressed())
{
self disableWeapons();
self detachAll();
self hide();
self enableInvulnerability();
self setclientthirdperson(1);
self thread movePilotHeli();
self thread attackPHeli();
self thread stopPilotHeli();
self thread exitPilotHeli();
self thread infoPHeliOn();
}
}
wait 0.05;
}
}
infoPHeliOn()
{
self.PHeliInfoOn = self drawText("^0R1 ^2Accel\n^0R2 ^2Rise\n^0L2 ^2Fall\n[{+switchseat}] ^5Change Weapon\n^0L1 ^5Fire Weapon\n^0<-- ^6Change Action\n[{+actionslot 2}] do Action\n[{+stance}] ^3Exit\n^0R3 ^3Delete", "objective", 1.2, -280, 225, (1, 1, 1), 0, (0, 0, 1), 1, 1);
self.PHeliInfoOn fadeAlphaChange(.2, 1);
foreach(p in level.players)
{
p notify("stop_ridePHeli");
p.ridePHeliInfo destroy();
}
}
infoPHeliOff()
{
self.PHeliInfoOn fadeAlphaChange(.2, 0);
wait 0.2;
self.PHeliInfoOn destroy();
}
movePilotHeli()
{
self endon("disconnect");
self endon("stop_movePHeli");
self changePHeliFov();
self PlayerLinkTo(level.PHeli);
self setPlayerAngles(level.PHeli.angles + (0, 0, 0));
self setOrigin(((level.PHeli.origin + (-200, 0, 150)) + (AnglesToForward(level.PHeli.angles) * 30) + (0, 0, 3)));
level.PHeliSpeed = 0;
PHeliTrace = undefined;
newPHeliAngles = undefined;
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
PHeliTrace = playerAnglesToForward(self, 200 + level.PHeliSpeed);
if(self attackButtonPressed())
{
if(level.PHeliSpeed < 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed < 500)
{
level.PHeliSpeed += 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(PHeliTrace, 1);
}
}
if(self fragButtonPressed())
{
if(level.PHeliSpeed < 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed < 500)
{
level.PHeliSpeed += 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(level.PHeli.origin + (0, 0, level.PHeliSpeed), 1);
}
}
if(self secondaryOffhandButtonPressed())
{
if(level.PHeliSpeed > 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed > -500)
{
level.PHeliSpeed -= 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(level.PHeli.origin + (0, 0, level.PHeliSpeed), 1);
}
}
if(level.PHeliSpeed == 500)
{
level.PHeliSpeed = 400;
}
if(level.PHeliSpeed == -500)
{
level.PHeliSpeed = -400;
}
wait 0.05;
}
}
attackPHeli()
{
self endon("disconnect");
self endon("stop_attackPHeli");
if(level.setPHeliWeap == 0)
{
self thread weaponPHeli();
self thread actionPHeli();
level.setPHeliWeap = 1;
}
self.PHeliNowWeap = self drawText("^3Armament: ^1" + level.PHeliWeapName, "objective", 2, 0, 330, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.PHeliNowWeap fadeAlphaChange(.2, 1);
self.PHeliNowAction = self drawText("^3Action: ^4" + level.PHeliactionName, "objective", 2, 0, 360, (1, 1, 1), 0, (0, 1, 1), 1, 1);
self.PHeliNowAction fadeAlphaChange(.2, 1);
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self changeSeatButtonPressed())
{
self thread weaponPHeli();
self.PHeliNowWeap destroy();
self.PHeliNowWeap = self drawText("^3Armament: ^1" + level.PHeliWeapName, "objective", 2, 0, 330, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.PHeliNowWeap fadeAlphaChange(.2, 1);
wait 0.2;
}
if(self adsButtonPressed())
{
if(level.PHeliWeapType == "cobra_20mm_mp" || level.PHeliWeapType == "helicopter_player_gunner_mp")
{
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (-100, -100, -180), self traceBulletJet(), self);
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (100, 100, -180), self traceBulletJet(), self);
wait 0.01;
}
else
{
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (-100, -100, -180), self traceBulletJet(), self);
wait 0.15;
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (100, 100, -180), self traceBulletJet(), self);
wait 0.15;
}
}
if(self actionSlotThreeButtonPressed())
{
self notify("stop_bombUsing");
self thread actionPHeli();
self.PHeliNowAction destroy();
self.PHeliNowAction = self drawText("^3Action: ^4" + level.PHeliactionName, "objective", 2, 0, 360, (1, 1, 1), 0, (0, 1, 1), 1, 1);
self.PHeliNowAction fadeAlphaChange(.2, 1);
wait 0.2;
}
if(self actionSlotTwoButtonPressed())
{
if(level.PHeliactionType == "dropCP")
{
self thread initPHeliCP();
}
else if(level.PHeliactionType == "empBomb")
{
self thread initPHeliNuke();
}
else if(level.PHeliactionType == "bomblet")
{
self thread initPHeliBomb();
}
}
wait 0.05;
}
}
initPHeliBomb()
{
self endon("disconnect");
self endon("stop_bombUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
MagicBullet(level.PHeliWeapType, level.PHeli.origin + (0, 0, -220), level.PHeli.origin + (0, 0, -10000), self);
wait 0.2;
}
}
initPHeliCP()
{
self endon("disconnect");
self endon("stop_cpUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.PHeliDroped == 0)
{
self thread maps\mp\killstreaks\_supplydrop::dropcrate(level.PHeli.origin + (0, 0, -20), self.angles, "supplydrop_mp", self, self.team, self.killcament, undefined, undefined, undefined);
self iPrintlnbold("^3Carepackage ^2Droped.");
self iPrintln("^3Next you can drop for ^1wait 5 sec.");
level.PHeliDroped = 1;
}
if(level.PHeliDroped == 1)
{
wait 5;
self iPrintln("^5Carepackage Drop ^2charged.");
level.PHeliDroped = 0;
self notify("stop_cpUsing");
}
wait 0.05;
}
}
initPHeliNuke()
{
self endon("disconnect");
self endon("stop_nukeUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.nukeUsed == 0)
{
foreach(p in level.players)
{
p thread maps\mp\gametypes\_hud_message::hintMessage("^3---^1Nuke Bomblet Warning^3---", 7);
}
PHeliNuke = spawn("script_model", level.PHeli.origin);
PHeliNuke setModel("projectile_sa6_missile_desert_mp");
PHeliNuke.angles = (90, 90, 90);
self thread nukeFireEffect(PHeliNuke);
PHeliNuke moveto(PHeliNuke.origin + (0, 0, -750), 9);
wait 9.1;
self notify("stop_PHeliNuke");
if(GetDvar("mapname") == "mp_nuketown_2020")
{
level._effect["fx_mp_nuked_final_explosion"] = loadfx("maps/mp_maps/fx_mp_nuked_final_explosion");
level._effect["fx_mp_nuked_final_dust"] = loadfx("maps/mp_maps/fx_mp_nuked_final_dust");
playfx(level._effect["fx_mp_nuked_final_explosion"], PHeliNuke.origin);
playfx(level._effect["fx_mp_nuked_final_dust"], PHeliNuke.origin);
}
else
{
level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
playfx(level._effect["emp_flash"], PHeliNuke.origin);
}
foreach(p in level.players)
{
p playsound("wpn_emp_bomb");
}
earthquake(0.6, 7, PHeliNuke.origin, 12345);
foreach(p in level.players)
{
if (level.teamBased && self.pers["team"] == p.pers["team"])
{
}
else
{
if (p != self)
p thread [[level.callbackPlayerDamage]](self, self, 1000, 0, "MOD_MELEE", "remote_missile_missile_mp", (0, 0, 0), (0, 0, 0), "head", 0, 0);
}
}
wait 0.1;
PHeliNuke delete();
wait 7;
self iPrintlnbold("^3Next you can use ^5Nuclear Explosion ^3for ^1wait 20 sec.");
level.PHelinukePrint = 1;
level.nukeUsed = 1;
}
if(level.nukeUsed == 1)
{
wait 13;
self iPrintln("^5Nuclear Explosion ^2charged.");
level.nukeUsed = 0;
self notify("stop_nukeUsing");
}
wait 0.05;
}
}
nukeFireEffect(PHeliNuke)
{
self endon("disconnect");
self endon("stop_PHeliNuke");
level._effect["torch"] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
PlayFX(level._effect["torch"], PHeliNuke.origin + (0, 0, 120));
wait 0.1;
}
}
weaponPHeli()
{
if(level.PHeliWeapon == 0)
{
level.PHeliWeapon = 1;
level.PHeliWeapType = "smaw_mp";
level.PHeliWeapName = "SMAW";
}
else if(level.PHeliWeapon == 1)
{
level.PHeliWeapon = 2;
level.PHeliWeapType = "ai_tank_drone_rocket_mp";
level.PHeliWeapName = "A.G.R Rocket";
}
else if(level.PHeliWeapon == 2)
{
level.PHeliWeapon = 3;
level.PHeliWeapType = "straferun_rockets_mp";
level.PHeliWeapName = "Warthog Rockets";
}
else if(level.PHeliWeapon == 3)
{
level.PHeliWeapon = 4;
level.PHeliWeapType = "remote_missile_bomblet_mp";
level.PHeliWeapName = "Mortar Missile Burner";
}
else if(level.PHeliWeapon == 4)
{
level.PHeliWeapon = 5;
level.PHeliWeapType = "missile_swarm_projectile_mp";
level.PHeliWeapName = "Swarm";
}
else if(level.PHeliWeapon == 5)
{
level.PHeliWeapon = 6;
level.PHeliWeapType = "remote_mortar_missile_mp";
level.PHeliWeapName = "Loadstar";
}
else if(level.PHeliWeapon == 6)
{
level.PHeliWeapon = 7;
level.PHeliWeapType = "remote_missile_missile_mp";
level.PHeliWeapName = "Remote Mortar Missile";
}
else if(level.PHeliWeapon == 7)
{
level.PHeliWeapon = 0;
level.PHeliWeapType = "cobra_20mm_mp";
level.PHeliWeapName = "Cobra 20mm Bullet";
}
}
actionPHeli()
{
if(level.PHeliaction == 0)
{
level.PHeliaction = 1;
level.PHeliactionType = "dropCP";
level.PHeliactionName = "Drop CarePackage";
}
else if(level.PHeliaction == 1)
{
level.PHeliaction = 2;
level.PHeliactionType = "empBomb";
level.PHeliactionName = "Nuclear Explosion";
}
else if(level.PHeliaction == 2)
{
level.PHeliaction = 0;
level.PHeliactionType = "bomblet";
level.PHeliactionName = "Bomblet to Under";
}
}
stopPilotHeli()
{
self endon("disconnect");
self endon("stop_stopPHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self stanceButtonPressed())
{
self notify("stop_movePHeli");
self notify("stop_attackPHeli");
self notify("stop_exitPHeli");
self notify("stop_bombUsing");
level.PHeliSpeed = 0;
setDvar("cg_thirdPersonRange", "100");
self.PHeliNowWeap destroy();
self.PHeliNowAction destroy();
self thread infoPHeliOff();
self unlink();
self enableWeapons();
self show();
self setClientThirdPerson(0);
self disableInvulnerability();
foreach(p in level.players)
{
p thread ridePilotHeli();
}
self notify("stop_stopPHeli");
}
wait 0.05;
}
}
exitPilotHeli()
{
self endon("disconnect");
self endon("stop_exitPHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self meleeButtonPressed())
{
self notify("stop_movePHeli");
self notify("stop_attackPHeli");
self notify("stop_stopPHeli");
self notify("stop_bombUsing");
level.PHeliSpeed = 0;
setDvar("cg_thirdPersonRange", "100");
self.PHeliNowWeap destroy();
self.PHeliNowAction destroy();
self thread infoPHeliOff();
self unlink();
self enableWeapons();
self show();
self setClientThirdPerson(0);
self disableInvulnerability();
level.PHeli delete();
level.pilotHeliOn = 0;
self notify("stop_exitPHeli");
}
wait 0.05;
}
}
init()
{
precacheVehicle("heli_guard_mp");
precacheModel("veh_t6_drone_overwatch_light");
}
locationSelector()
{
self endon("disconnect");
self endon("death");
self beginLocationSelection( "map_mortar_selector" );
self disableoffhandweapons();
self giveWeapon("killstreak_remote_turret_mp", 0, false);
self switchToWeapon( "killstreak_remote_turret_mp" );
self.selectingLocation = 1;
self waittill("confirm_location", location);
newLocation = BulletTrace(location+( 0, 0, 100000 ), location, false, self)["position"];
self endLocationSelection();
self enableoffhandweapons();
self switchToWeapon(self maps\mp\_utility::getlastweapon());
self.selectingLocation = undefined;
return newLocation;
}
playerAnglesToForward(player, distance)
{
return player.origin + VectorScale(AnglesToForward(player getPlayerAngles(), distance));
}
traceBulletJet(traceDistance, traceReturn, detectPlayers)
{
if (!isDefined(traceDistance))
traceDistance = 10000000;
if (!isDefined(traceReturn))
traceReturn = "position";
if (!isDefined(detectPlayers))
detectPlayers = false;
return bulletTrace(self getEye(), self getEye() + VectorScale(AnglesToForward(self getPlayerAngles()), traceDistance), detectPlayers, self)[traceReturn];
}
fadeAlphaChange(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
changePHeliType(code, code2, print)
{
level.PHeliCheck = 1;
level.PHeliModel = code;
level.PHeliModel2 = code2;
self iPrintln("^3Set Helicopter Model to ^2" + print);
self changePHeliFov();
}
changePHeliFov()
{
if(level.PHeliModel2 == "veh_t6_drone_overwatch_light")
{
setDvar("cg_thirdPersonRange", "400");
}
else if(level.PHeliModel2 == "veh_t6_air_attack_heli_mp_dark")
{
setDvar("cg_thirdPersonRange", "550");
}
else if(level.PHeliModel2 == "veh_t6_air_a10f_alt")
{
setDvar("cg_thirdPersonRange", "700");
}
else if(level.PHeliModel2 == "veh_t6_drone_pegasus_mp")
{
setDvar("cg_thirdPersonRange", "600");
}
}
PHeliModellb()
{
changePHeliType("heli_guard_mp", "veh_t6_drone_overwatch_light", "Little Bird");
}
PHeliModelah()
{
changePHeliType("heli_ai_mp", "veh_t6_air_attack_heli_mp_dark", "Attack Helicopter");
}
PHeliModela10()
{
changePHeliType("heli_ai_mp", "veh_t6_air_a10f_alt", "A10 Thunderbolt");
}
PHeliModelstlh()
{
changePHeliType("heli_ai_mp", "veh_t6_drone_pegasus_mp", "Stealth Bomber");
}
initPilotHeli()
{
if(level.pilotHeliOn == 0)
{
level.pilotHeliOn = 1;
if(level.PHeliCheck == 0)
{
level.PHeliCheck = 1;
self thread PHeliModellb();
}
self thread comePilotHeli();
}
else
{
self iPrintlnbold("^3Helicopter is ^1already spawned.");
}
}
comePilotHeli()
{
self endon("disconnect");
self endon("stop_comePHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.comePHeliOn == 0)
{
self iPrintlnbold("^3Please set ^6Helicopter's landing zone.");
wait 1;
Location = locationSelector();
level.comePHeliOn = 1;
}
if(level.comePHeliOn == 1)
{
level.PHeli = spawnHelicopter(self, self.origin + (12000, 0, 1500), self.angles, level.PHeliModel, level.PHeliModel2);
level.PHeli.owner = self;
level.PHeli.team = self.team;
self iPrintlnbold("^3Landing zone ^2pointed.");
self iPrintln("^1Helicopter will arrive soon...");
level.comePHeliOn = 2;
}
if(level.comePHeliOn == 2)
{
level.PHeli setSpeed(1000, 25);
level.PHeli setVehGoalPos(Location + (0, 0, 1500), 1);
wait 14;
level.PHeli setSpeed(200, 20);
level.PHeli setVehGoalPos(Location + (0, 0, 65), 1);
level.comePHeliOn = 0;
foreach(p in level.players)
{
p thread ridePilotHeli();
}
self notify("stop_comePHeli");
}
wait 0.05;
}
}
ridePilotHeli()
{
self endon("disconnect");
self endon("stop_ridePHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
self.ridePHeliInfo destroy();
if(distance(self.origin, level.PHeli.origin) < 150)
{
self.ridePHeliInfo = self createFontString("hudbig", 1.
;
self.ridePHeliInfo setPoint( "TOP", "TOP", 0, 50 );
self.ridePHeliInfo setText("^3Press [{+usereload}] to ^1Ride on Helicopter");
if(self useButtonPressed())
{
self disableWeapons();
self detachAll();
self hide();
self enableInvulnerability();
self setclientthirdperson(1);
self thread movePilotHeli();
self thread attackPHeli();
self thread stopPilotHeli();
self thread exitPilotHeli();
self thread infoPHeliOn();
}
}
wait 0.05;
}
}
infoPHeliOn()
{
self.PHeliInfoOn = self drawText("^0R1 ^2Accel\n^0R2 ^2Rise\n^0L2 ^2Fall\n[{+switchseat}] ^5Change Weapon\n^0L1 ^5Fire Weapon\n^0<-- ^6Change Action\n[{+actionslot 2}] do Action\n[{+stance}] ^3Exit\n^0R3 ^3Delete", "objective", 1.2, -280, 225, (1, 1, 1), 0, (0, 0, 1), 1, 1);
self.PHeliInfoOn fadeAlphaChange(.2, 1);
foreach(p in level.players)
{
p notify("stop_ridePHeli");
p.ridePHeliInfo destroy();
}
}
infoPHeliOff()
{
self.PHeliInfoOn fadeAlphaChange(.2, 0);
wait 0.2;
self.PHeliInfoOn destroy();
}
movePilotHeli()
{
self endon("disconnect");
self endon("stop_movePHeli");
self changePHeliFov();
self PlayerLinkTo(level.PHeli);
self setPlayerAngles(level.PHeli.angles + (0, 0, 0));
self setOrigin(((level.PHeli.origin + (-200, 0, 150)) + (AnglesToForward(level.PHeli.angles) * 30) + (0, 0, 3)));
level.PHeliSpeed = 0;
PHeliTrace = undefined;
newPHeliAngles = undefined;
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
PHeliTrace = playerAnglesToForward(self, 200 + level.PHeliSpeed);
if(self attackButtonPressed())
{
if(level.PHeliSpeed < 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed < 500)
{
level.PHeliSpeed += 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(PHeliTrace, 1);
}
}
if(self fragButtonPressed())
{
if(level.PHeliSpeed < 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed < 500)
{
level.PHeliSpeed += 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(level.PHeli.origin + (0, 0, level.PHeliSpeed), 1);
}
}
if(self secondaryOffhandButtonPressed())
{
if(level.PHeliSpeed > 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed > -500)
{
level.PHeliSpeed -= 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(level.PHeli.origin + (0, 0, level.PHeliSpeed), 1);
}
}
if(level.PHeliSpeed == 500)
{
level.PHeliSpeed = 400;
}
if(level.PHeliSpeed == -500)
{
level.PHeliSpeed = -400;
}
wait 0.05;
}
}
attackPHeli()
{
self endon("disconnect");
self endon("stop_attackPHeli");
if(level.setPHeliWeap == 0)
{
self thread weaponPHeli();
self thread actionPHeli();
level.setPHeliWeap = 1;
}
self.PHeliNowWeap = self drawText("^3Armament: ^1" + level.PHeliWeapName, "objective", 2, 0, 330, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.PHeliNowWeap fadeAlphaChange(.2, 1);
self.PHeliNowAction = self drawText("^3Action: ^4" + level.PHeliactionName, "objective", 2, 0, 360, (1, 1, 1), 0, (0, 1, 1), 1, 1);
self.PHeliNowAction fadeAlphaChange(.2, 1);
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self changeSeatButtonPressed())
{
self thread weaponPHeli();
self.PHeliNowWeap destroy();
self.PHeliNowWeap = self drawText("^3Armament: ^1" + level.PHeliWeapName, "objective", 2, 0, 330, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.PHeliNowWeap fadeAlphaChange(.2, 1);
wait 0.2;
}
if(self adsButtonPressed())
{
if(level.PHeliWeapType == "cobra_20mm_mp" || level.PHeliWeapType == "helicopter_player_gunner_mp")
{
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (-100, -100, -180), self traceBulletJet(), self);
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (100, 100, -180), self traceBulletJet(), self);
wait 0.01;
}
else
{
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (-100, -100, -180), self traceBulletJet(), self);
wait 0.15;
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (100, 100, -180), self traceBulletJet(), self);
wait 0.15;
}
}
if(self actionSlotThreeButtonPressed())
{
self notify("stop_bombUsing");
self thread actionPHeli();
self.PHeliNowAction destroy();
self.PHeliNowAction = self drawText("^3Action: ^4" + level.PHeliactionName, "objective", 2, 0, 360, (1, 1, 1), 0, (0, 1, 1), 1, 1);
self.PHeliNowAction fadeAlphaChange(.2, 1);
wait 0.2;
}
if(self actionSlotTwoButtonPressed())
{
if(level.PHeliactionType == "dropCP")
{
self thread initPHeliCP();
}
else if(level.PHeliactionType == "empBomb")
{
self thread initPHeliNuke();
}
else if(level.PHeliactionType == "bomblet")
{
self thread initPHeliBomb();
}
}
wait 0.05;
}
}
initPHeliBomb()
{
self endon("disconnect");
self endon("stop_bombUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
MagicBullet(level.PHeliWeapType, level.PHeli.origin + (0, 0, -220), level.PHeli.origin + (0, 0, -10000), self);
wait 0.2;
}
}
initPHeliCP()
{
self endon("disconnect");
self endon("stop_cpUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.PHeliDroped == 0)
{
self thread maps\mp\killstreaks\_supplydrop::dropcrate(level.PHeli.origin + (0, 0, -20), self.angles, "supplydrop_mp", self, self.team, self.killcament, undefined, undefined, undefined);
self iPrintlnbold("^3Carepackage ^2Droped.");
self iPrintln("^3Next you can drop for ^1wait 5 sec.");
level.PHeliDroped = 1;
}
if(level.PHeliDroped == 1)
{
wait 5;
self iPrintln("^5Carepackage Drop ^2charged.");
level.PHeliDroped = 0;
self notify("stop_cpUsing");
}
wait 0.05;
}
}
initPHeliNuke()
{
self endon("disconnect");
self endon("stop_nukeUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.nukeUsed == 0)
{
foreach(p in level.players)
{
p thread maps\mp\gametypes\_hud_message::hintMessage("^3---^1Nuke Bomblet Warning^3---", 7);
}
PHeliNuke = spawn("script_model", level.PHeli.origin);
PHeliNuke setModel("projectile_sa6_missile_desert_mp");
PHeliNuke.angles = (90, 90, 90);
self thread nukeFireEffect(PHeliNuke);
PHeliNuke moveto(PHeliNuke.origin + (0, 0, -750), 9);
wait 9.1;
self notify("stop_PHeliNuke");
if(GetDvar("mapname") == "mp_nuketown_2020")
{
level._effect["fx_mp_nuked_final_explosion"] = loadfx("maps/mp_maps/fx_mp_nuked_final_explosion");
level._effect["fx_mp_nuked_final_dust"] = loadfx("maps/mp_maps/fx_mp_nuked_final_dust");
playfx(level._effect["fx_mp_nuked_final_explosion"], PHeliNuke.origin);
playfx(level._effect["fx_mp_nuked_final_dust"], PHeliNuke.origin);
}
else
{
level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
playfx(level._effect["emp_flash"], PHeliNuke.origin);
}
foreach(p in level.players)
{
p playsound("wpn_emp_bomb");
}
earthquake(0.6, 7, PHeliNuke.origin, 12345);
foreach(p in level.players)
{
if (level.teamBased && self.pers["team"] == p.pers["team"])
{
}
else
{
if (p != self)
p thread [[level.callbackPlayerDamage]](self, self, 1000, 0, "MOD_MELEE", "remote_missile_missile_mp", (0, 0, 0), (0, 0, 0), "head", 0, 0);
}
}
wait 0.1;
PHeliNuke delete();
wait 7;
self iPrintlnbold("^3Next you can use ^5Nuclear Explosion ^3for ^1wait 20 sec.");
level.PHelinukePrint = 1;
level.nukeUsed = 1;
}
if(level.nukeUsed == 1)
{
wait 13;
self iPrintln("^5Nuclear Explosion ^2charged.");
level.nukeUsed = 0;
self notify("stop_nukeUsing");
}
wait 0.05;
}
}
nukeFireEffect(PHeliNuke)
{
self endon("disconnect");
self endon("stop_PHeliNuke");
level._effect["torch"] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
PlayFX(level._effect["torch"], PHeliNuke.origin + (0, 0, 120));
wait 0.1;
}
}
weaponPHeli()
{
if(level.PHeliWeapon == 0)
{
level.PHeliWeapon = 1;
level.PHeliWeapType = "smaw_mp";
level.PHeliWeapName = "SMAW";
}
else if(level.PHeliWeapon == 1)
{
level.PHeliWeapon = 2;
level.PHeliWeapType = "ai_tank_drone_rocket_mp";
level.PHeliWeapName = "A.G.R Rocket";
}
else if(level.PHeliWeapon == 2)
{
level.PHeliWeapon = 3;
level.PHeliWeapType = "straferun_rockets_mp";
level.PHeliWeapName = "Warthog Rockets";
}
else if(level.PHeliWeapon == 3)
{
level.PHeliWeapon = 4;
level.PHeliWeapType = "remote_missile_bomblet_mp";
level.PHeliWeapName = "Mortar Missile Burner";
}
else if(level.PHeliWeapon == 4)
{
level.PHeliWeapon = 5;
level.PHeliWeapType = "missile_swarm_projectile_mp";
level.PHeliWeapName = "Swarm";
}
else if(level.PHeliWeapon == 5)
{
level.PHeliWeapon = 6;
level.PHeliWeapType = "remote_mortar_missile_mp";
level.PHeliWeapName = "Loadstar";
}
else if(level.PHeliWeapon == 6)
{
level.PHeliWeapon = 7;
level.PHeliWeapType = "remote_missile_missile_mp";
level.PHeliWeapName = "Remote Mortar Missile";
}
else if(level.PHeliWeapon == 7)
{
level.PHeliWeapon = 0;
level.PHeliWeapType = "cobra_20mm_mp";
level.PHeliWeapName = "Cobra 20mm Bullet";
}
}
actionPHeli()
{
if(level.PHeliaction == 0)
{
level.PHeliaction = 1;
level.PHeliactionType = "dropCP";
level.PHeliactionName = "Drop CarePackage";
}
else if(level.PHeliaction == 1)
{
level.PHeliaction = 2;
level.PHeliactionType = "empBomb";
level.PHeliactionName = "Nuclear Explosion";
}
else if(level.PHeliaction == 2)
{
level.PHeliaction = 0;
level.PHeliactionType = "bomblet";
level.PHeliactionName = "Bomblet to Under";
}
}
stopPilotHeli()
{
self endon("disconnect");
self endon("stop_stopPHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self stanceButtonPressed())
{
self notify("stop_movePHeli");
self notify("stop_attackPHeli");
self notify("stop_exitPHeli");
self notify("stop_bombUsing");
level.PHeliSpeed = 0;
setDvar("cg_thirdPersonRange", "100");
self.PHeliNowWeap destroy();
self.PHeliNowAction destroy();
self thread infoPHeliOff();
self unlink();
self enableWeapons();
self show();
self setClientThirdPerson(0);
self disableInvulnerability();
foreach(p in level.players)
{
p thread ridePilotHeli();
}
self notify("stop_stopPHeli");
}
wait 0.05;
}
}
exitPilotHeli()
{
self endon("disconnect");
self endon("stop_exitPHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self meleeButtonPressed())
{
self notify("stop_movePHeli");
self notify("stop_attackPHeli");
self notify("stop_stopPHeli");
self notify("stop_bombUsing");
level.PHeliSpeed = 0;
setDvar("cg_thirdPersonRange", "100");
self.PHeliNowWeap destroy();
self.PHeliNowAction destroy();
self thread infoPHeliOff();
self unlink();
self enableWeapons();
self show();
self setClientThirdPerson(0);
self disableInvulnerability();
level.PHeli delete();
level.pilotHeliOn = 0;
self notify("stop_exitPHeli");
}
wait 0.05;
}
}
init()
{
precacheVehicle("heli_guard_mp");
precacheModel("veh_t6_drone_overwatch_light");
}
locationSelector()
{
self endon("disconnect");
self endon("death");
self beginLocationSelection( "map_mortar_selector" );
self disableoffhandweapons();
self giveWeapon("killstreak_remote_turret_mp", 0, false);
self switchToWeapon( "killstreak_remote_turret_mp" );
self.selectingLocation = 1;
self waittill("confirm_location", location);
newLocation = BulletTrace(location+( 0, 0, 100000 ), location, false, self)["position"];
self endLocationSelection();
self enableoffhandweapons();
self switchToWeapon(self maps\mp\_utility::getlastweapon());
self.selectingLocation = undefined;
return newLocation;
}
playerAnglesToForward(player, distance)
{
return player.origin + VectorScale(AnglesToForward(player getPlayerAngles(), distance));
}
traceBulletJet(traceDistance, traceReturn, detectPlayers)
{
if (!isDefined(traceDistance))
traceDistance = 10000000;
if (!isDefined(traceReturn))
traceReturn = "position";
if (!isDefined(detectPlayers))
detectPlayers = false;
return bulletTrace(self getEye(), self getEye() + VectorScale(AnglesToForward(self getPlayerAngles()), traceDistance), detectPlayers, self)[traceReturn];
}
fadeAlphaChange(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
changePHeliType(code, code2, print)
{
level.PHeliCheck = 1;
level.PHeliModel = code;
level.PHeliModel2 = code2;
self iPrintln("^3Set Helicopter Model to ^2" + print);
self changePHeliFov();
}
changePHeliFov()
{
if(level.PHeliModel2 == "veh_t6_drone_overwatch_light")
{
setDvar("cg_thirdPersonRange", "400");
}
else if(level.PHeliModel2 == "veh_t6_air_attack_heli_mp_dark")
{
setDvar("cg_thirdPersonRange", "550");
}
else if(level.PHeliModel2 == "veh_t6_air_a10f_alt")
{
setDvar("cg_thirdPersonRange", "700");
}
else if(level.PHeliModel2 == "veh_t6_drone_pegasus_mp")
{
setDvar("cg_thirdPersonRange", "600");
}
}
PHeliModellb()
{
changePHeliType("heli_guard_mp", "veh_t6_drone_overwatch_light", "Little Bird");
}
PHeliModelah()
{
changePHeliType("heli_ai_mp", "veh_t6_air_attack_heli_mp_dark", "Attack Helicopter");
}
PHeliModela10()
{
changePHeliType("heli_ai_mp", "veh_t6_air_a10f_alt", "A10 Thunderbolt");
}
PHeliModelstlh()
{
changePHeliType("heli_ai_mp", "veh_t6_drone_pegasus_mp", "Stealth Bomber");
}
initPilotHeli()
{
if(level.pilotHeliOn == 0)
{
level.pilotHeliOn = 1;
if(level.PHeliCheck == 0)
{
level.PHeliCheck = 1;
self thread PHeliModellb();
}
self thread comePilotHeli();
}
else
{
self iPrintlnbold("^3Helicopter is ^1already spawned.");
}
}
comePilotHeli()
{
self endon("disconnect");
self endon("stop_comePHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.comePHeliOn == 0)
{
self iPrintlnbold("^3Please set ^6Helicopter's landing zone.");
wait 1;
Location = locationSelector();
level.comePHeliOn = 1;
}
if(level.comePHeliOn == 1)
{
level.PHeli = spawnHelicopter(self, self.origin + (12000, 0, 1500), self.angles, level.PHeliModel, level.PHeliModel2);
level.PHeli.owner = self;
level.PHeli.team = self.team;
self iPrintlnbold("^3Landing zone ^2pointed.");
self iPrintln("^1Helicopter will arrive soon...");
level.comePHeliOn = 2;
}
if(level.comePHeliOn == 2)
{
level.PHeli setSpeed(1000, 25);
level.PHeli setVehGoalPos(Location + (0, 0, 1500), 1);
wait 14;
level.PHeli setSpeed(200, 20);
level.PHeli setVehGoalPos(Location + (0, 0, 65), 1);
level.comePHeliOn = 0;
foreach(p in level.players)
{
p thread ridePilotHeli();
}
self notify("stop_comePHeli");
}
wait 0.05;
}
}
ridePilotHeli()
{
self endon("disconnect");
self endon("stop_ridePHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
self.ridePHeliInfo destroy();
if(distance(self.origin, level.PHeli.origin) < 150)
{
self.ridePHeliInfo = self createFontString("hudbig", 1.
;
self.ridePHeliInfo setPoint( "TOP", "TOP", 0, 50 );
self.ridePHeliInfo setText("^3Press [{+usereload}] to ^1Ride on Helicopter");
if(self useButtonPressed())
{
self disableWeapons();
self detachAll();
self hide();
self enableInvulnerability();
self setclientthirdperson(1);
self thread movePilotHeli();
self thread attackPHeli();
self thread stopPilotHeli();
self thread exitPilotHeli();
self thread infoPHeliOn();
}
}
wait 0.05;
}
}
infoPHeliOn()
{
self.PHeliInfoOn = self drawText("^0R1 ^2Accel\n^0R2 ^2Rise\n^0L2 ^2Fall\n[{+switchseat}] ^5Change Weapon\n^0L1 ^5Fire Weapon\n^0<-- ^6Change Action\n[{+actionslot 2}] do Action\n[{+stance}] ^3Exit\n^0R3 ^3Delete", "objective", 1.2, -280, 225, (1, 1, 1), 0, (0, 0, 1), 1, 1);
self.PHeliInfoOn fadeAlphaChange(.2, 1);
foreach(p in level.players)
{
p notify("stop_ridePHeli");
p.ridePHeliInfo destroy();
}
}
infoPHeliOff()
{
self.PHeliInfoOn fadeAlphaChange(.2, 0);
wait 0.2;
self.PHeliInfoOn destroy();
}
movePilotHeli()
{
self endon("disconnect");
self endon("stop_movePHeli");
self changePHeliFov();
self PlayerLinkTo(level.PHeli);
self setPlayerAngles(level.PHeli.angles + (0, 0, 0));
self setOrigin(((level.PHeli.origin + (-200, 0, 150)) + (AnglesToForward(level.PHeli.angles) * 30) + (0, 0, 3)));
level.PHeliSpeed = 0;
PHeliTrace = undefined;
newPHeliAngles = undefined;
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
PHeliTrace = playerAnglesToForward(self, 200 + level.PHeliSpeed);
if(self attackButtonPressed())
{
if(level.PHeliSpeed < 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed < 500)
{
level.PHeliSpeed += 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(PHeliTrace, 1);
}
}
if(self fragButtonPressed())
{
if(level.PHeliSpeed < 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed < 500)
{
level.PHeliSpeed += 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(level.PHeli.origin + (0, 0, level.PHeliSpeed), 1);
}
}
if(self secondaryOffhandButtonPressed())
{
if(level.PHeliSpeed > 0)
{
level.PHeliSpeed = 0;
}
if(level.PHeliSpeed > -500)
{
level.PHeliSpeed -= 5;
level.PHeli setYawSpeed(150, 80);
level.PHeli setSpeed(270, 90);
level.PHeli setVehGoalPos(level.PHeli.origin + (0, 0, level.PHeliSpeed), 1);
}
}
if(level.PHeliSpeed == 500)
{
level.PHeliSpeed = 400;
}
if(level.PHeliSpeed == -500)
{
level.PHeliSpeed = -400;
}
wait 0.05;
}
}
attackPHeli()
{
self endon("disconnect");
self endon("stop_attackPHeli");
if(level.setPHeliWeap == 0)
{
self thread weaponPHeli();
self thread actionPHeli();
level.setPHeliWeap = 1;
}
self.PHeliNowWeap = self drawText("^3Armament: ^1" + level.PHeliWeapName, "objective", 2, 0, 330, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.PHeliNowWeap fadeAlphaChange(.2, 1);
self.PHeliNowAction = self drawText("^3Action: ^4" + level.PHeliactionName, "objective", 2, 0, 360, (1, 1, 1), 0, (0, 1, 1), 1, 1);
self.PHeliNowAction fadeAlphaChange(.2, 1);
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self changeSeatButtonPressed())
{
self thread weaponPHeli();
self.PHeliNowWeap destroy();
self.PHeliNowWeap = self drawText("^3Armament: ^1" + level.PHeliWeapName, "objective", 2, 0, 330, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.PHeliNowWeap fadeAlphaChange(.2, 1);
wait 0.2;
}
if(self adsButtonPressed())
{
if(level.PHeliWeapType == "cobra_20mm_mp" || level.PHeliWeapType == "helicopter_player_gunner_mp")
{
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (-100, -100, -180), self traceBulletJet(), self);
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (100, 100, -180), self traceBulletJet(), self);
wait 0.01;
}
else
{
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (-100, -100, -180), self traceBulletJet(), self);
wait 0.15;
MagicBullet(level.PHeliWeapType, level.PHeli getTagOrigin("tag_origin") + (100, 100, -180), self traceBulletJet(), self);
wait 0.15;
}
}
if(self actionSlotThreeButtonPressed())
{
self notify("stop_bombUsing");
self thread actionPHeli();
self.PHeliNowAction destroy();
self.PHeliNowAction = self drawText("^3Action: ^4" + level.PHeliactionName, "objective", 2, 0, 360, (1, 1, 1), 0, (0, 1, 1), 1, 1);
self.PHeliNowAction fadeAlphaChange(.2, 1);
wait 0.2;
}
if(self actionSlotTwoButtonPressed())
{
if(level.PHeliactionType == "dropCP")
{
self thread initPHeliCP();
}
else if(level.PHeliactionType == "empBomb")
{
self thread initPHeliNuke();
}
else if(level.PHeliactionType == "bomblet")
{
self thread initPHeliBomb();
}
}
wait 0.05;
}
}
initPHeliBomb()
{
self endon("disconnect");
self endon("stop_bombUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
MagicBullet(level.PHeliWeapType, level.PHeli.origin + (0, 0, -220), level.PHeli.origin + (0, 0, -10000), self);
wait 0.2;
}
}
initPHeliCP()
{
self endon("disconnect");
self endon("stop_cpUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.PHeliDroped == 0)
{
self thread maps\mp\killstreaks\_supplydrop::dropcrate(level.PHeli.origin + (0, 0, -20), self.angles, "supplydrop_mp", self, self.team, self.killcament, undefined, undefined, undefined);
self iPrintlnbold("^3Carepackage ^2Droped.");
self iPrintln("^3Next you can drop for ^1wait 5 sec.");
level.PHeliDroped = 1;
}
if(level.PHeliDroped == 1)
{
wait 5;
self iPrintln("^5Carepackage Drop ^2charged.");
level.PHeliDroped = 0;
self notify("stop_cpUsing");
}
wait 0.05;
}
}
initPHeliNuke()
{
self endon("disconnect");
self endon("stop_nukeUsing");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(level.nukeUsed == 0)
{
foreach(p in level.players)
{
p thread maps\mp\gametypes\_hud_message::hintMessage("^3---^1Nuke Bomblet Warning^3---", 7);
}
PHeliNuke = spawn("script_model", level.PHeli.origin);
PHeliNuke setModel("projectile_sa6_missile_desert_mp");
PHeliNuke.angles = (90, 90, 90);
self thread nukeFireEffect(PHeliNuke);
PHeliNuke moveto(PHeliNuke.origin + (0, 0, -750), 9);
wait 9.1;
self notify("stop_PHeliNuke");
if(GetDvar("mapname") == "mp_nuketown_2020")
{
level._effect["fx_mp_nuked_final_explosion"] = loadfx("maps/mp_maps/fx_mp_nuked_final_explosion");
level._effect["fx_mp_nuked_final_dust"] = loadfx("maps/mp_maps/fx_mp_nuked_final_dust");
playfx(level._effect["fx_mp_nuked_final_explosion"], PHeliNuke.origin);
playfx(level._effect["fx_mp_nuked_final_dust"], PHeliNuke.origin);
}
else
{
level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
playfx(level._effect["emp_flash"], PHeliNuke.origin);
}
foreach(p in level.players)
{
p playsound("wpn_emp_bomb");
}
earthquake(0.6, 7, PHeliNuke.origin, 12345);
foreach(p in level.players)
{
if (level.teamBased && self.pers["team"] == p.pers["team"])
{
}
else
{
if (p != self)
p thread [[level.callbackPlayerDamage]](self, self, 1000, 0, "MOD_MELEE", "remote_missile_missile_mp", (0, 0, 0), (0, 0, 0), "head", 0, 0);
}
}
wait 0.1;
PHeliNuke delete();
wait 7;
self iPrintlnbold("^3Next you can use ^5Nuclear Explosion ^3for ^1wait 20 sec.");
level.PHelinukePrint = 1;
level.nukeUsed = 1;
}
if(level.nukeUsed == 1)
{
wait 13;
self iPrintln("^5Nuclear Explosion ^2charged.");
level.nukeUsed = 0;
self notify("stop_nukeUsing");
}
wait 0.05;
}
}
nukeFireEffect(PHeliNuke)
{
self endon("disconnect");
self endon("stop_PHeliNuke");
level._effect["torch"] = loadfx( "maps/mp_maps/fx_mp_exp_rc_bomb" );
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
PlayFX(level._effect["torch"], PHeliNuke.origin + (0, 0, 120));
wait 0.1;
}
}
weaponPHeli()
{
if(level.PHeliWeapon == 0)
{
level.PHeliWeapon = 1;
level.PHeliWeapType = "smaw_mp";
level.PHeliWeapName = "SMAW";
}
else if(level.PHeliWeapon == 1)
{
level.PHeliWeapon = 2;
level.PHeliWeapType = "ai_tank_drone_rocket_mp";
level.PHeliWeapName = "A.G.R Rocket";
}
else if(level.PHeliWeapon == 2)
{
level.PHeliWeapon = 3;
level.PHeliWeapType = "straferun_rockets_mp";
level.PHeliWeapName = "Warthog Rockets";
}
else if(level.PHeliWeapon == 3)
{
level.PHeliWeapon = 4;
level.PHeliWeapType = "remote_missile_bomblet_mp";
level.PHeliWeapName = "Mortar Missile Burner";
}
else if(level.PHeliWeapon == 4)
{
level.PHeliWeapon = 5;
level.PHeliWeapType = "missile_swarm_projectile_mp";
level.PHeliWeapName = "Swarm";
}
else if(level.PHeliWeapon == 5)
{
level.PHeliWeapon = 6;
level.PHeliWeapType = "remote_mortar_missile_mp";
level.PHeliWeapName = "Loadstar";
}
else if(level.PHeliWeapon == 6)
{
level.PHeliWeapon = 7;
level.PHeliWeapType = "remote_missile_missile_mp";
level.PHeliWeapName = "Remote Mortar Missile";
}
else if(level.PHeliWeapon == 7)
{
level.PHeliWeapon = 0;
level.PHeliWeapType = "cobra_20mm_mp";
level.PHeliWeapName = "Cobra 20mm Bullet";
}
}
actionPHeli()
{
if(level.PHeliaction == 0)
{
level.PHeliaction = 1;
level.PHeliactionType = "dropCP";
level.PHeliactionName = "Drop CarePackage";
}
else if(level.PHeliaction == 1)
{
level.PHeliaction = 2;
level.PHeliactionType = "empBomb";
level.PHeliactionName = "Nuclear Explosion";
}
else if(level.PHeliaction == 2)
{
level.PHeliaction = 0;
level.PHeliactionType = "bomblet";
level.PHeliactionName = "Bomblet to Under";
}
}
stopPilotHeli()
{
self endon("disconnect");
self endon("stop_stopPHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self stanceButtonPressed())
{
self notify("stop_movePHeli");
self notify("stop_attackPHeli");
self notify("stop_exitPHeli");
self notify("stop_bombUsing");
level.PHeliSpeed = 0;
setDvar("cg_thirdPersonRange", "100");
self.PHeliNowWeap destroy();
self.PHeliNowAction destroy();
self thread infoPHeliOff();
self unlink();
self enableWeapons();
self show();
self setClientThirdPerson(0);
self disableInvulnerability();
foreach(p in level.players)
{
p thread ridePilotHeli();
}
self notify("stop_stopPHeli");
}
wait 0.05;
}
}
exitPilotHeli()
{
self endon("disconnect");
self endon("stop_exitPHeli");
for(;![Winky Winky](https://i.imgur.com/j5e2x60.png)
{
if(self meleeButtonPressed())
{
self notify("stop_movePHeli");
self notify("stop_attackPHeli");
self notify("stop_stopPHeli");
self notify("stop_bombUsing");
level.PHeliSpeed = 0;
setDvar("cg_thirdPersonRange", "100");
self.PHeliNowWeap destroy();
self.PHeliNowAction destroy();
self thread infoPHeliOff();
self unlink();
self enableWeapons();
self show();
self setClientThirdPerson(0);
self disableInvulnerability();
level.PHeli delete();
level.pilotHeliOn = 0;
self notify("stop_exitPHeli");
}
wait 0.05;
}
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.