missile nucléaire pour finire la partie ( comme dans MW2 )
initMW2Nuke()
{
if(!level.isMW2Nuke)
{
self thread doMW2Nuke();
self iPrintln("^6MW2 Nuke ^7: [^2Requested^7]");
level.isMW2Nuke = true;
}
else
self iPrintln("^3Nuclear warhead missile ^1is already incoming.");
level.isMW2Nuke = false;
}
doMW2Nuke()
{
//self thread exitMenu();
self thread startNukeMessage();
self thread waitNukePressed();
}
startNukeMessage()
{
self endon("disconnect");
self endon("stop_MW2Nuke_StartMessage");
self endon("end_MW2Nuke");
for(;

{
MessageNukeIcon = createRectangle("CENTER", "CENTER", -700, -180, "mp_hud_cluster_status", 100, 100, (1, 1, 1), 1, 1);
self.MessageNukeReady = self createText("default", 2, "MW2 Nuke Kill Streak!", "CENTER", "CENTER", -700, -150, 1, true, 1, (1, 1, 1), 1, (0, 1, 0));
self.MessageNukeHowTo = self createText("default", 1.3, "Press [{+frag}] for Tactical Nuke.", "CENTER", "CENTER", -700, -130, 1, true, 1, (1, 1, 1));
wait 0.05;
self PlaySound("wpn_remote_missile_inc");
MessageNukeIcon elemMoveX(0.3, 0);
self.MessageNukeReady elemMoveX(0.3, 0);
self.MessageNukeHowTo elemMoveX(0.3, 0);
wait 1.5;
self PlaySound("wpn_remote_missile_fire_boost");
wait 5.5;
MessageNukeIcon elemMoveX(0.3, 700);
self.MessageNukeReady elemMoveX(0.3, 700);
self.MessageNukeHowTo elemMoveX(0.3, 700);
wait 0.3;
MessageNukeIcon destroy();
self.MessageNukeReady destroy();
self.MessageNukeHowTo destroy();
self notify("stop_MW2Nuke_StartMessage");
}
}
waitNukePressed()
{
self endon("disconnect");
self endon("stop_MW2Nuke_WaitTime");
self endon("end_MW2Nuke");
self takeallweapons();
self giveWeapon("satchel_charge_mp", 0, false);
self setWeaponAmmoStock("satchel_charge_mp", 0);
self setWeaponAmmoClip("satchel_charge_mp", 0);
for(;

{
if(self FragButtonPressed())
{
wait 0.7;
self thread nukeMissileThread();
foreach(player in level.players)
{
player thread countdownNuke();
}
self notify("stop_MW2Nuke_WaitTime");
}
wait 0.05;
}
}
countdownNuke()
{
self endon("disconnect");
self endon("stop_MW2Nuke_Countdown");
self endon("end_MW2Nuke");
self thread optionCalledMesage("^3Nuclear Missile ^1Inbound!!", 1, "^0Anymore us of fate was exhausted...", (1, 0, 0.502), 7);
self PlaySoundToPlayer("wpn_semtex_alert", self);
self.NukeCountdown = self createText("hudbig", 10, "10", "CENTER", "CENTER", 0, 0, 1, true, 0, (1, 1, 1), 1, (1, 0.5, 0.2));
self.NukeCountdown elemFade(0.1, 1);
self.NukeCountdown scaleFont(0.3, 2.5);
wait 1;
for(i = 9; i > 0; i--)
{
self.NukeCountdown setText(i);
wait 1;
}
}
nukeMissileThread()
{
self endon("disconnect");
self endon("stop_MW2Nuke_MissileThread");
self endon("end_MW2Nuke");
nukenum = level.activenukes;
nukenum ++;
MissileLocation = self.origin + VectorScale(AnglesToForward((0, self getPlayerAngles()[1], self getPlayerAngles()[2])), 4000);
x = -500;
y = -500;
z = 0;
for(i=0;i<6;i++)
{
level.nukeMissile
= spawn("script_model", MissileLocation + (x , y , 20000));
level.nukeMissile setModel("projectile_sa6_missile_desert_mp");
level.nukeMissile.angles = (90, 90, 90);
level.nukeMissile thread MW2NukeFireEffect();
level.nukeMissile moveto(level.nukeMissile.origin + (0, 0, -18000), 10.5);
x += 500;
y += 500;
z += 1000;
}
self nukemisslethink();
}
nukemisslethink()
{
wait 10.6;
foreach(nuke in level.nukeMissile)
{
nuke notify("stop_MW2Nuke_FireEffect");
level._effect["emp_flash"] = loadfx("weapon/emp/fx_emp_explosion");
playfx(level._effect["emp_flash"], nuke.origin);
earthquake(0.6, 7, nuke.origin, 12345);
}
foreach(player in level.players)
{
player playsound("wpn_emp_bomb");
}
wait 0.5;
setDvar("timescale", "0.9");
wait 0.6;
setDvar("timescale", "0.8");
wait 0.7;
setDvar("timescale", "0.7");
wait 0.8;
setDvar("timescale", "0.6");
foreach(nuke in level.nukeMissile)
{
nuke RadiusDamage(nuke.origin, 20000, 20000, 20000, self);
nuke RadiusDamage(nuke.origin, 20000, 20000, 20000, self);
nuke delete();
}
wait 0.9;
setDvar("timescale", "0.5");
foreach(player in level.players)
{
player suicide();
}
wait 0.1;
setDvar("timescale", "0.6");
wait 0.1;
setDvar("timescale", "0.7");
wait 0.1;
setDvar("timescale", "0.8");
wait 0.1;
setDvar("timescale", "0.9");
wait 0.1;
setDvar("timescale", "1");
self thread nukeGameEnd();
}
MW2NukeFireEffect()
{
self endon("disconnect");
self endon("stop_MW2Nuke_FireEffect");
self endon("end_MW2Nuke");
level._effect["torch"] = loadfx("maps/mp_maps/fx_mp_exp_rc_bomb");
for(;
{
PlayFX(level._effect["torch"], self.origin + (0, 0, 120));
wait 0.1;
}
}
nukeGameEnd()
{
foreach(player in level.players)
{
player notify("end_MW2Nuke");
}
level thread maps/mp/gametypes/_globallogic::forceend();
}