Post: [Release/Function] Pilot Aircraft (BO2/1.18/GSC)
10-26-2014, 06:04 AM #1
(adsbygoogle = window.adsbygoogle || []).push({});
Hello, NGU of everyone.
Last time I was released the Function of Ace Combat.
This time, use the Script of spawnHelicopter(), and then publish it because created a more faithful reproduction of the code the Pilot Helicopter of Enstone.

Code to this publication is only Public version.
If you want to Self version please let correspondence is rewritten to "self." The "level." Code.




[ Futures ]

・use spawnHelicopter()
・use setSpeed()
・use setYawSpeed()
・New Switch Bullets
・New Drop to Under Action
・Action Switch
・Rise, Fall
・Nuclear Explosion



< Movie >
URL: You must login or register to view this content.



Premise code
    
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;
}


Model Change & 3rdPersonRange code
    
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");
}


Main code
    
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
{
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
{
self.ridePHeliInfo destroy();
if(distance(self.origin, level.PHeli.origin) < 150)
{
self.ridePHeliInfo = self createFontString("hudbig", 1.Cool Man (aka Tustin);
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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;
}
}



< How to call it? >
Note: This is ZeiiKeN's Menu Base.
& Code Base = Shark's

URL: You must login or register to view this content.
You must login or register to view this content.


Note: I am a Japanese, so English is not good, this English is all you have written using the Google translation.
Last edited by X_LinGz4-AsTy ; 10-26-2014 at 01:24 PM.

The following 16 users say thank you to X_LinGz4-AsTy for this useful post:

AndresKid, azooz121, canadiancaper, Chris, Full-Evil, iBullet1, iifire, Loxy, Loz, John, OpenlyLegit, SyGnUs, TheJaRniBoi, Tipton_Modz, xDebugKiller, xxAussiefella69
10-26-2014, 06:20 AM #2
OpenlyLegit
Can’t trickshot me!
looks interesting
10-26-2014, 06:35 AM #3
Jacob-And-Britt
I’m too L33T
It's a big script
10-26-2014, 06:39 AM #4
xSprint
Pokemon Trainer
Very cool. Mine was a generic version of this. come on now!
10-26-2014, 09:36 AM #5
oCmKs_4_LiFe
< ^ > < ^ >
thanks Happy
10-26-2014, 11:17 AM #6
marky1991
Are you high?
Originally posted by AsTy View Post

Hello, NGU of everyone.
Last time I was released the Function of Ace Combat.
This time, use the Script of spawnHelicopter(), and then publish it because created a more faithful reproduction of the code the Pilot Helicopter of Enstone.

Code to this publication is only Public version.
If you want to Self version please let correspondence is rewritten to "self." The "level." Code.




[ Futures ]

・use spawnHelicopter()
・use setSpeed()
・use setYawSpeed()
・New Switch Bullets
・New Drop to Under Action
・Action Switch
・Rise, Fall
・Nuclear Explosion



< Movie >
URL: You must login or register to view this content.



Premise code
    
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;
}


Model Change & 3rdPersonRange code
    
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");
}


Main code
    
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
{
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
{
self.ridePHeliInfo destroy();
if(distance(self.origin, level.PHeli.origin) < 150)
{
self.ridePHeliInfo = self createFontString("hudbig", 1.Cool Man (aka Tustin);
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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;
}
}



< How to call it? >
Note: This is ZeiiKeN's Menu Base.
URL: You must login or register to view this content.
You must login or register to view this content.


Note: I am a Japanese, so English is not good, this English is all you have written using the Google translation.


can you add in zombieland?
10-26-2014, 01:06 PM #7
niceResistTheSun
but why did u release??
Do u increase FatTank837??
Last edited by HIRO0118 ; 10-26-2014 at 01:09 PM. Reason: debu
10-26-2014, 01:16 PM #8
Shark
Retired.
Originally posted by AsTy View Post

Hello, NGU of everyone.
Last time I was released the Function of Ace Combat.
This time, use the Script of spawnHelicopter(), and then publish it because created a more faithful reproduction of the code the Pilot Helicopter of Enstone.

Code to this publication is only Public version.
If you want to Self version please let correspondence is rewritten to "self." The "level." Code.




[ Futures ]

・use spawnHelicopter()
・use setSpeed()
・use setYawSpeed()
・New Switch Bullets
・New Drop to Under Action
・Action Switch
・Rise, Fall
・Nuclear Explosion



< Movie >
URL: You must login or register to view this content.



Premise code
    
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;
}


Model Change & 3rdPersonRange code
    
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");
}


Main code
    
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
{
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
{
self.ridePHeliInfo destroy();
if(distance(self.origin, level.PHeli.origin) < 150)
{
self.ridePHeliInfo = self createFontString("hudbig", 1.Cool Man (aka Tustin);
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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
{
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;
}
}



< How to call it? >
Note: This is ZeiiKeN's Menu Base.
URL: You must login or register to view this content.
You must login or register to view this content.


Note: I am a Japanese, so English is not good, this English is all you have written using the Google translation.



Im not sure if you wrote this yourself or ported it but if you wrote it yourself then I like your use of goalPos and experimenting a bit with the yaw and pitch movement, it looks really nice Smile
10-26-2014, 01:41 PM #9
marky1991
Are you high?
Originally posted by Shark View Post
Im not sure if you wrote this yourself or ported it but if you wrote it yourself then I like your use of goalPos and experimenting a bit with the yaw and pitch movement, it looks really nice Smile


Can you add this to zombieland?
10-26-2014, 01:52 PM #10
Shark
Retired.
Originally posted by marky1991 View Post
Can you add this to zombieland?


no... it wouldnt make sense to put it in zombieland lol

The following 2 users say thank you to Shark for this useful post:

Boughhhh, iifire

Copyright © 2024, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo