This commit is contained in:
Robert Fritzen 2015-02-12 19:52:33 -06:00
commit 26ff02fd38
23 changed files with 2353 additions and 931 deletions

File diff suppressed because it is too large Load diff

View file

@ -831,7 +831,7 @@ function parsePublicCommands(%sender, %command, %args) {
}
else if (!isBoss(strlwr(%Boss))) {
messageclient(%sender, 'MsgClient', '\c2Invalid Boss Name.');
messageclient(%sender, 'MsgClient', '\c2Bosses: Yvex, CnlWindshear, GOL, GOF, Stormrider, DAVardison.');
messageclient(%sender, 'MsgClient', '\c2Bosses: Yvex, CnlWindshear, GOL, GOF, Stormrider.');
messageclient(%sender, 'MsgClient', '\c2GenVeg, LordRog, Insignia, Trebor, Vardison, ShadeLord.');
return 1;
}

View file

@ -143,10 +143,6 @@ function parseSuperAdminCommands(%sender, %command, %args) {
%pos = VectorAdd(%sender.player.getPosition(), "0 0 5");
StartVardison1(%pos);
MessageAll('MsgAdminForce', "\c3"@%sender.namebase@"\c2 spawned Lord Vardison, go hide noobs.");
case "DAVardison":
%pos = VectorAdd(%sender.player.getPosition(), "0 0 5");
StartDAVardison(%pos);
MessageAll('MsgAdminForce', "\c3"@%sender.namebase@"\c2 spawned Dark Archmage Vardison, run in fear n0bs.");
case "ShadeLord":
%pos = VectorAdd(%sender.player.getPosition(), "0 0 5");
SpawnShadeLord(%pos);
@ -155,7 +151,7 @@ function parseSuperAdminCommands(%sender, %command, %args) {
messageclient(%sender, 'MsgClient', '\c2Invalid Boss Name.');
messageclient(%sender, 'MsgClient', '\c2Bosses: Yvex, CnlWindshear, GhostOfLightning.');
messageclient(%sender, 'MsgClient', '\c2GenVegenor, LordRog, Insignia, Trebor, Vardison.');
messageclient(%sender, 'MsgClient', '\c2Stormrider, GhostOfFire, ShadeLord, DAVardison.');
messageclient(%sender, 'MsgClient', '\c2Stormrider, GhostOfFire, ShadeLord.');
}
return 1;
@ -269,90 +265,96 @@ function parseSuperAdminCommands(%sender, %command, %args) {
messageclient(%sender, 'MsgClient', '\c2No such player.');
return 1;
}
%sw = getWord(%args,1);
if(!isSet(%target.ksListInstance)) {
%target.ksListInstance = initList();
}
%cAmt = 0;
%sw = strlwr(getWord(%args,1));
switch$(%sw) {
case "UAV":
%target.HasUAV = 1;
case "uav":
%target.AwardKillstreak(1, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a UAV Recon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a UAV Beacon.");
case "Airstrike":
%target.HasAirstrike = 1;
case "airstrike":
%target.AwardKillstreak(2, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" an airstrike beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you an airstrike.");
case "UAMS":
%target.HasGM = 1;
case "uams":
%target.AwardKillstreak(3, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a UAMS beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a UAMS Strike.");
case "UnlimUAMS":
case "unlimuams":
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a fully loaded UAMS.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a fully loaded UAMS.");
CreateMissileSat(%target, 1);
case "Helicopter":
%target.HasHeli = 1;
case "helicopter":
%target.AwardKillstreak(4, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Helicopter beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Helicopter beacon.");
case "HeliGunner":
case "heligunner":
MakeTheHeli(%target, 1);
messageClient(%sender, 'MsgClient', "\c2You made "@%target.namebase@" a chopper gunner.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" has granted you Helicopter Gunner Access.");
case "Harbingers":
%target.HasHarbinsWrath = 1;
case "harbingers":
%target.AwardKillstreak(9, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Harbinger's Wrath beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Harbinger's Wrath beacon.");
case "UnlimHarbin":
case "unlimharbin":
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" gunship support.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you gunship support.");
startHarbingersWrath(%target, 1, 1);
case "UnlimAC130":
case "unlimac130":
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" AC-130 gunship support.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you AC-130 gunship support.");
startAC130(%target, 1, 1);
case "GunHeli":
%target.HasGunshipHeli = 1;
case "gunheli":
%target.AwardKillstreak(7, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Gunship Helicopter beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Gunship Helicopter beacon.");
case "Apache":
%target.HasChopperGunner = 1;
case "apache":
%target.AwardKillstreak(10, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" an Apache Gunner beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you an Apache Gunner beacon.");
case "Artillery":
%target.HasArtillery = 1;
case "artillery":
%target.AwardKillstreak(12, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Centaur Artillery beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Centaur Artillery beacon.");
case "Nuke":
%target.HasNuke = 1;
case "nuke":
%target.AwardKillstreak(14, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Nuclear Strike beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Nuclear Strike beacon.");
case "ZBomb":
%target.HasZBomb = 1;
case "zbomb":
%target.AwardKillstreak(15, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Zombie-Bomb beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Zombie-Bomb beacon.");
case "Harrier":
%target.HasHarrier = 1;
case "harrier":
%target.AwardKillstreak(5, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Harrier Airstrike beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Harrier Airstrike beacon.");
case "Stealth":
%target.HasSlthAirstrike = 1;
case "stealth":
%target.AwardKillstreak(8, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Stealth Airstrike beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Stealth Airstrike beacon.");
case "AC130":
%target.HasAcGunner = 1;
case "ac130":
%target.AwardKillstreak(11, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" an AC-130 beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you an AC-130 beacon.");
case "SatNuke":
%target.HasOLS = 1;
case "satnuke":
%target.AwardKillstreak(6, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Orbital Laser Strike beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Orbital Laser Strike beacon.");
case "Fission":
%target.HasFission = 1;
case "fission":
%target.AwardKillstreak(16, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Fission Bomb :D.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Fission Bomb :D.");
case "EMP":
%target.HasMassEMP = 1;
case "emp":
%target.AwardKillstreak(13, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Mass EMP Beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Mass EMP Beacon.");
case "Napalm":
%target.HasNapalmHarrier = 1;
case "napalm":
%target.AwardKillstreak(17, -1);
messageClient(%sender, 'MsgClient', "\c2You gave "@%target.namebase@" a Napalm Airstrike beacon.");
messageClient(%target, 'MsgClient', "\c2"@%sender.namebase@" gave you a Napalm Airstrike beacon.");
default:

View file

@ -54,7 +54,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("Airstrike") == -1 && !%client.UnlimitedAS) {
=======
if(%client.streakCount[2] <= 0 && !%client.UnlimitedAS) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -79,6 +83,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
if(!%client.UnlimitedAS) {
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("Airstrike"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("Airstrike"), 1));
@ -86,11 +91,21 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("Airstrike"), 1), "Airstrike" SPC %newCt);
}
=======
%client.streakCount[2]--;
>>>>>>> origin/development
GainExperience(%client, 35, "Airstrike called in ");
}
bottomPrint(%client, "Coordinates Confirmed, Calling In Airstrike", 5, 2);
messageTeam(%client.team, 'MsgAirstrike', "\c5TWM2: Airstrike Called In From "@%client.namebase@"");
Airstrike(%client, %position, %direction);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0 && !%client.UnlimitedAS) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);
@ -101,7 +116,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("Harrier") == -1) {
=======
if(%client.streakCount[5] <= 0) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -123,6 +142,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("Harrier"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("Harrier"), 1));
@ -130,10 +150,20 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("Harrier"), 1), "Harrier" SPC %newCt);
}
=======
%client.streakCount[5]--;
>>>>>>> origin/development
GainExperience(%client, 150, "Harrier Airstrike called in ");
messageTeam(%client.team, 'MsgAirstrike', "\c5TWM2: "@%client.namebase@"'s Harrier Airstrike is Approaching.");
bottomPrint(%client, "Coordinates Confirmed, Calling In Harriers", 5, 2);
HarrierAirstrike(%client, %position, %direction);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);
@ -144,7 +174,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("Napalm") == -1) {
=======
if(%client.streakCount[17] <= 0) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -166,6 +200,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("Napalm"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("Napalm"), 1));
@ -173,10 +208,20 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("Napalm"), 1), "Napalm" SPC %newCt);
}
=======
%client.streakCount[17]--;
>>>>>>> origin/development
GainExperience(%client, 350, "Napalm Airstrike called in ");
messageTeam(%client.team, 'MsgAirstrike', "\c5TWM2: "@%client.namebase@"'s Napalm Airstrike is coming in hot.");
bottomPrint(%client, "Coordinates Confirmed, Calling In Strike Fighters", 5, 2);
NapalmHarrierAirstrike(%client, %position, %direction);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);
@ -187,7 +232,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("OLS") == -1) {
=======
if(%client.streakCount[6] <= 0) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -201,6 +250,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("OLS"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("OLS"), 1));
@ -208,10 +258,20 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("OLS"), 1), "OLS" SPC %newCt);
}
=======
%client.streakCount[6]--;
>>>>>>> origin/development
GainExperience(%client, 350, "Orbital Laser Strike Called In ");
messageTeam(%client.team, 'MsgAirstrike', "\c5TWM2: "@%client.namebase@"'s Laser Strike is Incoming.");
bottomPrint(%client, "Coordinates Confirmed, Spinning Laser Cannon", 5, 2);
OrbitalLaserStrike(%client, %position);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);
@ -222,7 +282,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("Stealth") == -1) {
=======
if(%client.streakCount[8] <= 0) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -244,6 +308,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("Stealth"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("Stealth"), 1));
@ -251,9 +316,19 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("Stealth"), 1), "Stealth" SPC %newCt);
}
=======
%client.streakCount[8]--;
>>>>>>> origin/development
GainExperience(%client, 150, "Stealth Bomber Airstrike called in ");
bottomPrint(%client, "Coordinates Confirmed, Calling In Stealth Bomber", 5, 2);
StealthAirstrike(%client, %position, %direction);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);
@ -264,7 +339,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("Artillery") == -1) {
=======
if(%client.streakCount[12] <= 0) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -278,6 +357,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("Artillery"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("Artillery"), 1));
@ -285,10 +365,20 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("Artillery"), 1), "Artillery" SPC %newCt);
}
=======
%client.streakCount[12]--;
>>>>>>> origin/development
GainExperience(%client, 250, "Artillery called in ");
bottomPrint(%client, "Coordinates Confirmed, Calling In Artillery", 5, 2);
messageTeam(%client.team, 'MsgAirstrike', "\c5TWM2: Artillery Called In From "@%client.namebase@"");
Artillery(%client, %position);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);
@ -299,7 +389,11 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
//press JET
if (%trigger == 3) {
//Can we Call in this airstrike?
<<<<<<< HEAD
if(%client.ksListInstance.find("NukeStrike") == -1) {
=======
if(%client.streakCount[14] <= 0) {
>>>>>>> origin/development
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
@ -313,6 +407,7 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
if(isObject(%client.player)) {
%obj.schedule(1000, "delete");
%client.setControlObject(%client.player);
<<<<<<< HEAD
%newCt = getField(%client.ksListInstance.find("NukeStrike"), 1) - 1;
if(%newCt == 0) {
%client.ksListInstance.removeElement(getField(%client.ksListInstance.find("NukeStrike"), 1));
@ -320,10 +415,20 @@ function TWM2ControlCamera::onTrigger(%data,%obj,%trigger,%state) {
else {
%client.ksListInstance.set(getField(%client.ksListInstance.find("NukeStrike"), 1), "NukeStrike" SPC %newCt);
}
=======
%client.streakCount[14]--;
>>>>>>> origin/development
GainExperience(%client, 500, "Nuclear Missile called in ");
bottomPrint(%client, "Coordinates Confirmed, Launching Missile", 5, 2);
messageAll('msgDanger', "\c5TWM2 ALERT: "@%client.namebase@" has activated a nuclear missile!!! ~wfx/misc/red_alert.wav");
Nuke(%client, %position);
//Post-Fire Checks
if(getWordCount(%client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
}
else {
bottomPrint(%client, "Player Object Required", 5, 2);

View file

@ -155,3 +155,6 @@ Error("********************************************");
Error("************* EXECUTE COMPLETE *************");
Error("********************************************");
Error("********************************************");
//POST LOAD TASKS.....
//OrderStreaks();

View file

@ -3,6 +3,15 @@ function InitiateBoss(%Boss, %name) {
error("SERVER: Cannot initiate boss, in horde/helljump");
return;
}
if(!isObject($TWM2::BossManager)) {
$TWM2::BossManager = new scriptObject() {
class = "BossManager";
};
}
$TWM2::BossManager.bossKills = 0;
$TWM2::BossManager.bossObject = %Boss;
$TWM2::BossManager.activeBoss = %name;
$TWM2::BossGoing = 1;
switch$(%name) {
@ -21,9 +30,9 @@ function InitiateBoss(%Boss, %name) {
case "Vardison1":
%print = "<color:FF0000>BOSS BATTLE \n LORD VARDISON";
case "Vardison2":
%print = "<color:FF0000>!DANGER! \n VARDISON HAS TRANSFORMED \n AIR FORM";
%print = "<color:FF0000>BOSS ALERT \n LORD VARDISON HAS ENTERED HIS SECOND FORM";
case "Vardison3":
%print = "<color:FF0000>!DANGER! \n VARDISON HAS TRANSFORMED AGAIN \n DEMON FORM";
%print = "<color:FF0000>BOSS ALERT \n LORD VARDISON HAS ENTERED HIS FINAL FORM";
case "Trebor":
%print = "<color:FF0000>BOSS BATTLE \n LORDRANIUS TREVOR";
case "Stormrider":
@ -49,11 +58,11 @@ function InitiateBoss(%Boss, %name) {
}
function BossCheckUp(%boss, %name) {
%percentage = (mFloor(%boss.getDamageLeft()*100) / mFloor(%boss.getMaxDamage()*100)) * 100;
MessageAll('MsgSPCurrentObjective1', "", "Boss Battle: "@$TWM2::BossName[%name]@" [Boss Kill Count: "@$TWM2::BossManager.bossKills@"]");
MessageAll('MsgSPCurrentObjective2', "", "Boss HP: "@mFloor(%boss.getDamageLeft()*100)@"/"@mFloor(%boss.getMaxDamage()*100)@" ("@%percentage@"%)");
MessageAll('MsgSPCurrentObjective1', "", "Boss Battle: "@$TWM2::BossName[%name]@"");
MessageAll('MsgSPCurrentObjective2', "", "Boss HP: "@mFloor(%boss.getDamageLeft()*100)@"/"@mFloor(%boss.getMaxDamage()*100)@"");
if(%name !$= "CnlWindshear" && %name !$= "Vardison2" && %name !$= "Trebor" && %name !$= "Stormrider") {
if(%name !$= "CnlWindshear" && %name !$= "Trebor" && %name !$= "Stormrider") {
if(!isObject(%boss) || %boss.getState() $= "dead") {
if(%name $= "Vardison1") {
%count = ClientGroup.getCount();
@ -61,7 +70,16 @@ function BossCheckUp(%boss, %name) {
%cl = ClientGroup.getObject(%i);
recordAction(%cl, "BOSS", "Vardison1");
}
StartVardison2(%boss.getPosition());
SpawnVardison2(%boss.getPosition());
return;
}
if(%name $= "Vardison2") {
%count = ClientGroup.getCount();
for(%i = 0; %i < %count; %i++) {
%cl = ClientGroup.getObject(%i);
recordAction(%cl, "BOSS", "Vardison2");
}
SpawnVardison3(%boss.getPosition());
return;
}
//the boss has been defeated, horrah!!!
@ -81,17 +99,6 @@ function BossCheckUp(%boss, %name) {
}
else {
if(!isObject(%boss)) {
//the boss has been defeated, horrah!!!
if(%name $= "Vardison2") {
//but not quite so xD
%count = ClientGroup.getCount();
for(%i = 0; %i < %count; %i++) {
%cl = ClientGroup.getObject(%i);
recordAction(%cl, "BOSS", "Vardison2");
}
StartVardison3("0 0 200");
return;
}
%count = ClientGroup.getCount();
for(%i = 0; %i < %count; %i++) {
%cl = ClientGroup.getObject(%i);
@ -167,11 +174,27 @@ function GameConnection::GiveBossAward(%client, %bossName) {
}
function FindValidTarget(%boss, %counter) { //This is usefull
%client = ClientGroup.getObject(GetRandom()*ClientGroup.getCount());
if(!isObject(%client.player) || %client.player.getState() $= "dead" || %boss == %client.player) {
return schedule(500,0,"FindValidTarget", %boss, %counter++); //Keep Looking;
if(%counter $= "") {
%counter = 10; //10 attempts
}
return %client; //target is good
for(%i = 0; %i < %counter; %i++) {
%test = ClientGroup.getObject(getRandom(0, ClientGroup.getCount()));
if(isObject(%test)) {
%tPL = %test.getControlObject();
if(isObject(%tPL)) {
if(isPlayer(%tPL)) {
if(%tPL.getState() !$= "dead") {
//Got one!
return %test;
}
}
else {
return %test;
}
}
}
}
return -1; //Found nothing.
}
function CheckBossChallenge(%client, %boss) {
@ -430,9 +453,46 @@ function GenerateBossChallengeMenu(%client, %tag, %index) {
%index++;
}
//
if(%client.CheckNWChallengeCompletion("VardEasy")) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "The Standard Experience - Done");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "The Standard Experience - Defeat Lord Vardison on Easy Difficulty");
%index++;
}
if(%client.CheckNWChallengeCompletion("VardNorm")) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Demon Hunter - Done");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Demon Hunter - Defeat Lord Vardison on Normal Difficulty");
%index++;
}
if(%client.CheckNWChallengeCompletion("VardHard")) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Master Demon Slayer - Done");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Master Demon Slayer - Defeat Lord Vardison on Hard Difficulty");
%index++;
}
if(%client.CheckNWChallengeCompletion("VardWtf")) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "God of the Shadow Realm - Done [You are a freaking boss master]");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "God of the Shadow Realm - Against all odds, emerge victorious against WTF difficulty Lord Vardison");
%index++;
}
//
return %index;
}
function BossManager::addKill(%this, %tObj) {
%this.bossKills++;
}
//Load The Boss Files
exec("scripts/TWM2/Bosses/LordYvex.cs");
exec("scripts/TWM2/Bosses/ColonelWindshear.cs");

View file

@ -18,6 +18,31 @@ $Killstreak[15] = "Z-Bomb\t-1\t"@$Killstreak::Kills["ZBomb", 1]@"\tWipe out all
$Killstreak[16] = "Fission Bomb\t"@$Killstreak::Kills["Fission", 0]@"\t-1\t(Matches) End the game with an explosive bang.";
$Killstreak[17] = "Napalm Airstrike\t"@$Killstreak::Kills["Napalm", 0]@"\t"@$Killstreak::Kills["Napalm", 1]@"\tQuick destructive airstrike with remaining fire.";
//Phantom: V3.9: Order the streaks based on killcounts...
function OrderStreaks() {
echo("Ordering Killstreak List...");
for(%i = 1; %i <= $KillstreakCount; %i++) {
%cur = getField($Killstreak[%i], 1);
%temp = $Killstreak[%i];
$OrderedKillstreak[%i] = $Killstreak[%i];
for(%x = 1; %x <= %i; %x++) {
%mine = getField($Killstreak[%x], 1);
//This streak has a lower count, sift it down
if(%mine < %cur) {
$OrderedKillstreak[%i] = $Killstreak[%x];
$OrderedKillstreak_CONVINDX[%i] = %x;
$OrderedKillstreak[%x] = %temp;
$OrderedKillstreak_CONVINDX[%x] = %i;
}
}
}
echo("Complete...");
for(%r = 1; %r <= $KillstreakCount; %r++) {
echo(""@%r@": "@$OrderedKillstreak[%r]@" => "@$OrderedKillstreak_CONVINDX[%r]);
}
}
function GetStreakDescrip(%val) {
%desc = getField($Killstreak[%val], 3);
@ -301,7 +326,11 @@ function GiveTWM2Weapons(%client) {
if(%client.HasFullTeamRespawn) {
%client.player.setInventory(FullTeamRespawnCaller, 1, true);
}
<<<<<<< HEAD
if(%client.ksListInstance.count() > 0) {
=======
if(getWordCount(%client.streakList()) > 0) {
>>>>>>> origin/development
%client.player.setInventory(KillstreakBeacon, 1, true);
}
if(!%client.isconfiscated) {
@ -311,6 +340,21 @@ function GiveTWM2Weapons(%client) {
}
}
function GameConnection::streakList(%client) {
%total = "";
for(%i = 1; %i <= $KillstreakCount; %i++) {
if(%client.streakCount[%i] > 0) {
if(%total $= "") {
%total = %i;
}
else {
%total = %total @ " " @ %i;
}
}
}
return %total;
}
function GameConnection::AwardKillstreak(%client, %streakVal, %plz) {
if(%plz $= "") {
%plz = 1;
@ -319,7 +363,7 @@ function GameConnection::AwardKillstreak(%client, %streakVal, %plz) {
if($Killstreak::Setting == 4) {
return;
}
if(!%client.isActiveStreak(%streakVal) && ($Killstreak::Setting != 2) && !$TWM::PlayingHelljump) {
if(%plz != -1 && (!%client.isActiveStreak(%streakVal) && ($Killstreak::Setting != 2) && !$TWM::PlayingHelljump)) {
return;
}
if(!%client.ksListInstance) {
@ -330,6 +374,7 @@ function GameConnection::AwardKillstreak(%client, %streakVal, %plz) {
switch(%streakVal) {
case 1:
MessageClient(%client, 'MsgZKill', "\c5TWM2: UAV Recon at Your Disposal.");
<<<<<<< HEAD
if(%client.ksListInstance.find("UAV") != -1) {
%cAmt = getWord(getField(%client.ksListInstance.find("UAV"), 0), 1);
}
@ -430,12 +475,50 @@ function GameConnection::AwardKillstreak(%client, %streakVal, %plz) {
%cAmt = getWord(getField(%client.ksListInstance.find("Napalm"), 0), 1);
}
%client.ksListIntance.advancedAdd("Napalm", "Napalm "@%cAmt+1);
=======
case 2:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Airstrike Standing By.");
case 3:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Guided Missile Strike Standing By.");
case 4:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Helicopter at your disposal.");
case 5:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Plasma Harrier Strike at your disposal.");
case 6:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Satellite Strike at your disposal.");
case 7:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Gunship Helicopter at your disposal.");
case 8:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Stealth Bomber at your disposal.");
case 9:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Harbinger's Wrath Standing By.");
case 10:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Apache Gunner Standing By.");
case 11:
MessageClient(%client, 'MsgZKill', "\c5TWM2: AC-130 Gunner Standing By.");
case 12:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Centaur Bombardment Standing By.");
case 13:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Mass EMP Standing By.");
case 14:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Nuclear Strike Standing By.");
case 15:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Zombie Bomb Standing By.");
case 16:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Fission Bomb Ready... Obliterate everyone!!!");
case 17:
MessageClient(%client, 'MsgZKill', "\c5TWM2: Napalm Airstrike at your disposal.");
>>>>>>> origin/development
}
%client.streakCount[%streakVal]++;
if(%plz == 0) {
if(%client.IsHighestPLStreak(%streakVal)) {
%client.player.killsinarow = 0; //reset for moar killstreaks!
}
}
else if(%plz == -1) {
//From //giveKSSW
}
else {
if(!$TWM::PlayingHellJump) {
if(%client.IsHighestZStreak(%streakVal)) {
@ -443,6 +526,7 @@ function GameConnection::AwardKillstreak(%client, %streakVal, %plz) {
}
}
}
%client.player.setInventory(KillstreakBeacon, 1, true);
}
//Modified 12-17-09 to take into consideration of hosts changing the kill values

View file

@ -12,10 +12,20 @@ function initList() {
}
function ListInstance::advancedAdd(%this, %elementTxt, %newValue) {
<<<<<<< HEAD
if(%this.find(%elementTxt) == -1) {
%this.addElement(%newValue);
}
else {
=======
echo("AdvancedAdd("@%this@", "@%elementTxt@", "@%newValue@")");
if(%this.find(%elementTxt) == -1) {
echo("AdvancedAdd: Add New");
%this.addElement(%newValue);
}
else {
echo("AdvancedAdd: Replace Old");
>>>>>>> origin/development
%indx = getField(%this.find(%elementTxt), 1);
%this.set(%indx, %newValue);
}
@ -26,6 +36,10 @@ function ListInstance::set(%this, %index, %new) {
}
function ListInstance::addElement(%this, %element) {
<<<<<<< HEAD
=======
echo("Add "@%element@" => "@%this.numberOfElements);
>>>>>>> origin/development
%this.element[%this.numberOfElements] = %element;
%this.numberOfElements++;
}
@ -35,7 +49,12 @@ function ListInstance::removeElement(%this, %index) {
error("ListInstance::removeElements("@%index@"): Specified index is out of list bounds.");
return;
}
<<<<<<< HEAD
%this.element[%this.numberOfElements] = "";
=======
echo(%this@".removeElement("@%index@"): Strip "@%this.element[%index]);
%this.element[%index] = "";
>>>>>>> origin/development
%this.compactList();
}
@ -57,12 +76,28 @@ function ListInstance::find(%this, %key) {
}
function ListInstance::compactList(%this) {
<<<<<<< HEAD
for(%i = %this.count(); %i >= 0; %i--) {
if(%this.element[%i] $= "") {
//Strip item, move others forward
for(%x = %i; %x < %this.count(); %x++) {
%this.element[%x] = %this.element[%x+1];
}
=======
echo("Compact "@%this@", "@%this.count());
for(%i = %this.count(); %i >= 0; %i--) {
echo("Test "@%i@": "@%this.element[%i]);
if(%this.element[%i] $= "") {
echo("Remove Element "@%i);
//Strip item, move others forward
for(%x = %i; %x < %this.count(); %x++) {
echo(%x@" Is Now: "@%this.element[%x+1]);
%this.element[%x] = %this.element[%x+1];
}
//Remove the last item....
%this.element[%this.numberOfElements] = "";
echo("Subduct "@%this.numberOfElements);
>>>>>>> origin/development
%this.numberOfElements--;
}
}

View file

@ -80,6 +80,10 @@ $Challenge::Info["Treb3"] = "Tank Halter\t2\t10000\tNone";
$Challenge::Info["Vard1"] = "Shining Star\t2\t3500\tNone";
$Challenge::Info["Vard2"] = "Glare The Dark\t2\t7000\tNone";
$Challenge::Info["Vard3"] = "Outevil The Wicked\t2\t12500\tLord Vardison Recruitable Ally";
$Challenge::Info["VardEasy"] = "The Standard Experience\t2\t7000\tNone";
$Challenge::Info["VardNorm"] = "Demon Hunter\t2\t1500\tNone";
$Challenge::Info["VardHard"] = "Master Demon Slayer\t2\t25000\tNone";
$Challenge::Info["VardWtf"] = "God of the Shadow Realm\t2\t50000\tNone";
//Blacklist
$Challenge::Info["Acceptance"] = "Acceptance\t3\t1000\tNone";
$Challenge::Info["ListHit"] = "Hitlister of The List\t3\t2500\tNone";

View file

@ -182,10 +182,10 @@ function ZPCreateZombie(%obj){
function StartAZombie(%pos, %type){
if(!isObject(Game)) {
error("UE Blocked...");
return;
return -1;
}
if($Game::ZombieCount > $TWM2::MaxZombies || !$TWM2::CanSpawnZ) {
return;
return -1;
}
//
if(%type $= "") {

View file

@ -286,8 +286,6 @@ function BossFullname(%BossAbbr)
return "Ghost of Fire";
case "vardison":
return "Lord Vardison";
case "davardison":
return "Dark Archmage Vardison";
case "shadelord":
return "The Shade Lord";
}
@ -317,8 +315,6 @@ function isBoss(%Boss)
return 1;
case "vardison":
return 1;
case "davardison":
return 1;
case "shadelord":
return 1;
}

View file

@ -235,7 +235,7 @@ function Medrepair(%obj, %targets){
if(%obj.isreping == 0)
return;
if(%targets !$= ""){
%numtrgs = getNumberOfWords(%targets);
%numtrgs = getWordCount(%targets);
for(%i = 0; %i < %numtrgs; %i++){
%target = getWord(%targets, %i);
if(vectorDist(%obj.getWorldBoxCenter(), %target.getWorldBoxCenter()) <= 10 && %target.getDamageLevel() > 0.0){
@ -267,7 +267,7 @@ function Medrepair(%obj, %targets){
function MedstopRepair(%obj){
%obj.isreping = 0;
if(%obj.reptargets !$= ""){
%numtrgs = getNumberOfWords(%obj.reptargets);
%numtrgs = getWordCount(%obj.reptargets);
for(%i = 0; %i < %numtrgs; %i++){
%target = getWord(%obj.reptargets, %i);
if(%target.reping == 1){
@ -305,6 +305,10 @@ function checkrevive(%obj){
messageclient(%obj.client, 'MsgClient', "\c2This body is destroyed.");
return;
}
if(%Tobj.isBoss == 1){
messageclient(%obj.client, 'MsgClient', "\c2ARE YOU INSANE!?!??! YEAH... LETS JUST REVIVE THE DAMNED BOSS THAT JUST REKT YOU ABOUT 100 TIMES!!!!");
return;
}
if(%Tobj.infected || %Tobj.isZombie) {
messageclient(%obj.client, 'MsgClient', "\c2WHOA!!! We don't want to make the Undead.... UnDead AGAIN.");
return;

View file

@ -26,8 +26,51 @@ datablock AudioProfile(ZombieHOWL)
preload = true;
};
//USED IN FLAMETHROWER
//USED IN FLAMETHROWER / NMM
//DO NOT REMOVE: NEEDED HERE
datablock ParticleData(NMMissileBaseParticle) {
dragCoeffiecient = 0.0;
gravityCoefficient = -0.2;
inheritedVelFactor = 0.0;
lifetimeMS = 800;
lifetimeVarianceMS = 500;
useInvAlpha = false;
spinRandomMin = -160.0;
spinRandomMax = 160.0;
animateTexture = true;
framesPerSec = 15;
textureName = "special/cloudflash";
colors[0] = "0.5 0.1 0.9 1.0";
colors[1] = "0.5 0.1 0.9 1.0";
colors[2] = "0.5 0.1 0.9 1.0";
sizes[0] = 2.5;
sizes[1] = 2.7;
sizes[2] = 3.0;
times[0] = 0.0;
times[1] = 0.7;
times[2] = 1.0;
};
datablock ParticleEmitterData(NMMissileBaseEmitter) {
ejectionPeriodMS = 10;
periodVarianceMS = 0;
ejectionVelocity = 1.5;
velocityVariance = 0.3;
thetaMin = 0.0;
thetaMax = 30.0;
particles = "NMMissileBaseParticle";
};
datablock ParticleData(ThrowerBaseParticle) {
dragCoeffiecient = 0.0;
gravityCoefficient = -0.2;

View file

@ -3585,6 +3585,17 @@ function Armor::damageObject(%data, %targetObject, %sourceObject, %position, %am
//now call the "onKilled" function if the client was... you know...
if(%targetObject.getState() $= "Dead") {
//Is there a boss going?
if(!%targetObject.isZombie && !%targetObject.isBossMinion) {
if($TWM2::BossGoing) {
//Chalk up the kill count :P
$TWM2::BossManager.addKill(%targetObject);
}
}
if(%targetObject.isVardisonMinion) {
$TWM2::VardisonManager.minionCount--;
}
if($TWM2::PlayingSabo) {
if(Game.Bomb.Carrier == %targetObject) {
if(%damageType == $DamageType::FellOff) {

View file

@ -102,7 +102,6 @@ datablock ShapeBaseImageData(EditGunImage) {
function EditGunImage::onMount(%this, %obj, %slot) {
Parent::onMount(%this, %obj, %slot);
DispEditorToolInfo(%obj);
if(!isSet(%obj.EditPMode)) {
%obj.EditPMode = 0;
}
@ -114,7 +113,11 @@ function EditGunImage::onMount(%this, %obj, %slot) {
%obj.hasGrenadeModes = 1;
//Phantom139: End
%obj.UsingEditTool = true;
<<<<<<< HEAD
displayWeaponInfo(%this, %obj, %obj.client.EditPMode, %obj.client.EditSMode);
=======
displayWeaponInfo(%this, %obj, %obj.EditPMode, %obj.EditSMode);
>>>>>>> origin/development
}
function EditGunImage::onunmount(%this,%obj,%slot) {
@ -160,6 +163,7 @@ function EditGunImage::changeMode(%this, %obj, %key) {
switch(%key) {
case 1:
//Mine Modes
<<<<<<< HEAD
%obj.client.EditPMode++;
%obj.client.EditSMode = 0;
if (%obj.client.EditPMode >= 5)
@ -179,6 +183,27 @@ function EditGunImage::changeMode(%this, %obj, %key) {
%obj.client.EditSMode = 0;
}
displayWeaponInfo(%this, %obj, %obj.client.EditPMode, %obj.client.EditSMode);
=======
%obj.EditPMode++;
%obj.EditSMode = 0;
if (%obj.EditPMode >= 5)
%obj.EditPMode = 0;
case 2:
//Grenade Modes
%obj.EditSMode++;
if (%obj.EditPMode == 0 && %obj.EditSMode == 21)
%obj.EditSMode = 0;
if (%obj.EditPMode == 1 && %obj.EditSMode == 21)
%obj.EditSMode = 0;
if (%obj.EditPMode == 2 && %obj.EditSMode == 5)
%obj.EditSMode = 0;
if (%obj.EditPMode == 3 && %obj.EditSMode == 4)
%obj.EditSMode = 0;
if (%obj.EditPMode == 4 && %obj.EditSMode == 2)
%obj.EditSMode = 0;
}
displayWeaponInfo(%this, %obj, %obj.EditPMode, %obj.EditSMode);
>>>>>>> origin/development
}
//Editor Tool Functioning

View file

@ -135,6 +135,7 @@ function ConstructionToolImage::changeMode(%this, %obj, %key) {
switch(%key) {
case 1:
//Mine Modes
<<<<<<< HEAD
%obj.client.constructionToolMode++;
%obj.client.constructionToolMode2 = 0;
if (%obj.client.constructionToolMode >= 4)
@ -152,6 +153,25 @@ function ConstructionToolImage::changeMode(%this, %obj, %key) {
%obj.client.constructionToolMode2 = 0;
}
displayWeaponInfo(%this, %obj, %obj.client.constructionToolMode, %obj.client.constructionToolMode2, "[REPA] "@%obj.client.RotateAngle);
=======
%obj.constructionToolMode++;
%obj.constructionToolMode2 = 0;
if (%obj.constructionToolMode >= 4)
%obj.constructionToolMode = 0;
case 2:
//Grenade Modes
%obj.constructionToolMode2++;
if (%obj.constructionToolMode == 0 && %obj.constructionToolMode2 == 2)
%obj.constructionToolMode2 = 0;
if (%obj.constructionToolMode == 1 && %obj.constructionToolMode2 == 2)
%obj.constructionToolMode2 = 0;
if (%obj.constructionToolMode == 2 && %obj.constructionToolMode2 == 6)
%obj.constructionToolMode2 = 0;
if (%obj.constructionToolMode == 3 && %obj.constructionToolMode2 == 4)
%obj.constructionToolMode2 = 0;
}
displayWeaponInfo(%this, %obj, %obj.constructionToolMode, %obj.constructionToolMode2, "[REPA] "@%obj.client.RotateAngle);
>>>>>>> origin/development
}
//Phantom139: End
@ -221,10 +241,17 @@ function ConstructionToolImage::onMount(%this,%obj,%slot) {
%obj.errMsgSent = false;
%obj.client.setWeaponsHudActive(%this.item);
%obj.usingConstructionTool = true;
<<<<<<< HEAD
if (!%obj.constructionToolMode)
%obj.constructionToolMode = 0;
if (!%obj.constructionToolMode2)
%obj.constructionToolMode2 = 0;
=======
if (!isSet(%obj.client.constructionToolMode))
%obj.client.constructionToolMode = 0;
if (!isSet(%obj.client.constructionToolMode2))
%obj.client.constructionToolMode2 = 0;
>>>>>>> origin/development
//Phantom139: Added
%obj.hasMineModes = 1;
%obj.hasGrenadeModes = 1;

View file

@ -545,10 +545,17 @@ function MergeToolImage::onFire(%data,%obj,%slot)
function MergeToolImage::onMount(%this,%obj,%slot)
{
<<<<<<< HEAD
if(%obj.MTMode $= "")
%obj.MTMode = 0;
if(%obj.MTSubMode $= "")
%obj.MTSubMode = 0;
=======
if(%obj.client.MTMode $= "")
%obj.client.MTMode = 0;
if(%obj.client.MTSubMode $= "")
%obj.client.MTSubMode = 0;
>>>>>>> origin/development
%obj.usingMTelec = 1;
//Phantom139: Added
%obj.hasMineModes = 1;

View file

@ -216,7 +216,11 @@ function SuperChaingunImage::onMount(%this,%obj,%slot) {
%obj.superChaingunMode2 = 0;
%obj.hasMineModes = 1;
%obj.hasGrenadeModes = 1;
<<<<<<< HEAD
displayWeaponInfo(%this, %obj, %obj.client.superChaingunMode, %obj.client.superChaingunMode2);
=======
displayWeaponInfo(%this, %obj, %obj.superChaingunMode, %obj.superChaingunMode2);
>>>>>>> origin/development
WeaponImage::onMount(%this,%obj,%slot);
}
@ -231,6 +235,7 @@ function SuperChaingunImage::changeMode(%this, %obj, %key) {
switch(%key) {
case 1:
//Mine Modes
<<<<<<< HEAD
%obj.client.superChaingunMode++;
%obj.client.superChaingunMode2 = 0;
if (%obj.client.superChaingunMode > 6 - (5 * $host::nopulseSCG))
@ -242,4 +247,19 @@ function SuperChaingunImage::changeMode(%this, %obj, %key) {
%obj.client.superChaingunMode2 = 0;
}
displayWeaponInfo(%this, %obj, %obj.client.superChaingunMode, %obj.client.superChaingunMode2);
=======
%obj.superChaingunMode++;
%obj.superChaingunMode2 = 0;
if (%obj.superChaingunMode > 6 - (5 * $host::nopulseSCG))
%obj.superChaingunMode = 0;
case 2:
//Grenade Modes
%obj.superChaingunMode2++;
if(%obj.superChaingunMode != 1)
%obj.superChaingunMode2 = 0;
if (%obj.superChaingunMode == 1 && %obj.superChaingunMode2 == 2)
%obj.superChaingunMode2 = 0;
}
displayWeaponInfo(%this, %obj, %obj.superChaingunMode, %obj.superChaingunMode2);
>>>>>>> origin/development
}

View file

@ -18,7 +18,7 @@ datablock ItemData(KillstreakBeacon) {
friction = 0.6;
pickupRadius = 2;
pickUpName = "a targeting laser rifle";
isKSSW = 1;
computeCRC = true;
@ -31,7 +31,7 @@ datablock ShapeBaseImageData(KillstreakBeaconImage) {
shapeFile = "weapon_targeting.dts";
item = KillstreakBeacon;
offset = "0 0 0";
isKSSW = 1;
projectile = BasicTargeter;
@ -73,6 +73,14 @@ datablock ShapeBaseImageData(KillstreakBeaconImage) {
};
function KillstreakBeaconImage::onMount(%this, %obj, %slot) {
<<<<<<< HEAD
=======
if(getWordCount(%obj.client.streakList()) == 0) {
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
>>>>>>> origin/development
Parent::onMount(%this, %obj, %slot);
%obj.hasMineModes = 1;
%obj.hasGrenadeModes = 1;
@ -82,6 +90,7 @@ function KillstreakBeaconImage::onMount(%this, %obj, %slot) {
}
%obj.usingKSBeacon = true;
}
<<<<<<< HEAD
function KillstreakBeaconImage::onunmount(%this,%obj,%slot) {
Parent::onUnmount(%this, %obj, %slot);
@ -189,6 +198,77 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
function KillstreakBeaconImage::onunmount(%this,%obj,%slot) {
Parent::onUnmount(%this, %obj, %slot);
%obj.hasMineModes = 0;
%obj.hasGrenadeModes = 0;
%obj.usingKSBeacon = false;
}
function KillstreakBeaconImage::changeMode(%this, %obj, %key) {
switch(%key) {
case 1:
//Mine Modes
%obj.KSSetMode++;
if(%obj.KSSetMode >= getWordCount(%obj.client.streakList())) {
%obj.KSSetMode = 0;
}
case 2:
//Grenade Modes
%obj.KSSetMode--;
if(%obj.KSSetMode < 0) {
%obj.KSSetMode = getWordCount(%obj.client.streakList());
}
}
DisplayKillstreakInfo(%obj);
}
function DisplayKillstreakInfo(%obj) {
%streakList = %obj.client.streakList();
%currentStreak = getWord(%streakList, %obj.KSSetMode);
%strkName = getField($Killstreak[%currentStreak], 0);
%strkCnt = %obj.client.streakCount[%currentStreak];
commandToClient(%obj.client, 'BottomPrint', "<font:Sui Generis:14>>>>Killstreak Beacon<<<\n<font:Arial:14>"@%strkName@" ["@%strkCnt@" Available]\n<font:Arial:12>Press Mine to select next streak, Grenade to select previous streak.", 3, 3);
}
function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%streakList = %obj.client.streakList();
%currentStreak = getWord(%streakList, %obj.KSSetMode);
%strkName = getField($Killstreak[%currentStreak], 0);
%strkCnt = %obj.client.streakCount[%currentStreak];
%newCt = %strkCnt - 1;
echo("KSBeacon::Fire("@%data@", "@%obj@", "@%slot@"): "@%strkName@" "@%strkCnt@" => "@%newCt);
if(%strkCnt <= 0) {
//Oops...
messageClient(%obj.client, 'msgError', "\c5TWM2: Nice Try...");
//%obj.client.streakCount[%currentStreak]--;
if(getWordCount(%obj.client.streakList()) == 0) {
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
%obj.setInventory(KillstreakBeacon, 0, true);
}
return;
}
switch(%currentStreak) {
//
//
// UAV
//
//
case 1:
GainExperience(%obj.client, 25, "UAV Called in ");
%obj.client.TWM2Core.UAVCalls++;
UpdateSWBeaconFile(%obj.client, "UAV");
%obj.client.OnUseKillstreak(1);
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
%count = 0;
if(!$TWM2::FFAMode) {
%obj.team.UAVLoop = UAVLoop(%obj, %obj.client.team, %count);
@ -214,13 +294,21 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
}
}
}
<<<<<<< HEAD
=======
>>>>>>> origin/development
//
//
// Airstrike
//
//
<<<<<<< HEAD
case "Airstrike":
=======
case 2:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -230,13 +318,21 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%ASCam.mode = "AirstrikeCall";
%obj.client.setControlObject(%ASCam);
CameraMessageLoop(%obj.client, %ASCam, %ASCam.mode);
<<<<<<< HEAD
=======
>>>>>>> origin/development
//
//
// UAMS
//
//
<<<<<<< HEAD
case "GM":
=======
case 3:
>>>>>>> origin/development
GainExperience(%obj.client, 50, "UAMS Called in ");
%obj.client.TWM2Core.GMCalls++;
%obj.client.OnUseKillstreak(3);
@ -251,6 +347,7 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
}
}
CreateMissileSat(%obj.client);
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
@ -258,12 +355,21 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Helicopter
//
//
<<<<<<< HEAD
case "AIHeli":
=======
case 4:
>>>>>>> origin/development
if(Game.CheckModifier("Scrambler") == 1) {
for(%i = 0; %i < MissionCleanup.getCount(); %i++) {
%obj = MissionCleanup.getObject(%i);
@ -290,12 +396,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Helicopter Inbound");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
MakeTheHeli(%obj.client);
//
@ -303,7 +413,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Harrier
//
//
<<<<<<< HEAD
case "Harrier":
=======
case 5:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -319,7 +433,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// OLS
//
//
<<<<<<< HEAD
case "OLS":
=======
case 6:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -335,7 +453,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Gunship Helicopter
//
//
<<<<<<< HEAD
case "AIGunHeli":
=======
case 7:
>>>>>>> origin/development
if(Game.CheckModifier("Scrambler") == 1) {
for(%i = 0; %i < MissionCleanup.getCount(); %i++) {
%obj = MissionCleanup.getObject(%i);
@ -362,12 +484,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Gunship Helicopter Inbound!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
MakeTheHeli2(%obj.client, 0);
//
@ -375,7 +501,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Stealth Airstrike
//
//
<<<<<<< HEAD
case "Stealth":
=======
case 8:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -391,7 +521,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Harbinger Gunship
//
//
<<<<<<< HEAD
case "HarbWrath":
=======
case 9:
>>>>>>> origin/development
GainExperience(%obj.client, 100, "Harbinger Gunship Called In ");
if($CurrentMission $= "ChristmasMall09") {
CompleteNWChallenge(%CallerClient, "GunshipMall");
@ -408,12 +542,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Gunship... INCOMING!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
if($TWM2::UnmannedGunship) {
StartHarbingersWrath(%obj.client, 1);
}
@ -426,7 +564,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Apache
//
//
<<<<<<< HEAD
case "Apache":
=======
case 10:
>>>>>>> origin/development
GainExperience(%obj.client, 100, "Apache Gunner Called in ");
%obj.client.OnUseKillstreak(10);
%obj.client.TWM2Core.CGCalls++;
@ -440,12 +582,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy Apache... INCOMING!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
MakeTheHeli(%obj.client, 1);
//
@ -453,7 +599,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// AC130
//
//
<<<<<<< HEAD
case "AC130":
=======
case 11:
>>>>>>> origin/development
GainExperience(%obj.client, 100, "AC130 Called in ");
if($CurrentMission $= "ChristmasMall09") {
CompleteNWChallenge(%CallerClient, "GunshipMall");
@ -470,12 +620,16 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
messageClient(%cl, 'msgHeliComing', "\c5TWM2: Enemy AC130 ABOVE!!!");
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
if($TWM2::UnmannedGunship) {
StartAC130(%obj.client, 1);
}
@ -488,7 +642,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// Artillery
//
//
<<<<<<< HEAD
case "Artillery":
=======
case 12:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -504,7 +662,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// EMP
//
//
<<<<<<< HEAD
case "EMP":
=======
case 13:
>>>>>>> origin/development
%obj.client.TWM2Core.EMPCalls++;
UpdateSWBeaconFile(%obj.client, "EMP");
GainExperience(%obj.client, 1000, "Mass EMP Called in ");
@ -532,19 +694,27 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
}
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Nuke
//
//
<<<<<<< HEAD
case "NukeStrike":
=======
case 14:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -560,7 +730,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
// ZBomb
//
//
<<<<<<< HEAD
case "ZBomb":
=======
case 15:
>>>>>>> origin/development
GainExperience(%obj.client, 1000, "Zombie Annihilation Bomb Activated ");
MessageAll('msgWohoo', "\c5TWM2: "@%obj.client.namebase@" has activated a Z-Bomb, eliminating all zombies");
%obj.client.OnUseKillstreak(15);
@ -587,19 +761,27 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%flcl.player.setWhiteout(1.8);
}
}
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
else {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Fission
//
//
<<<<<<< HEAD
case "FBomb":
=======
case 16:
>>>>>>> origin/development
%obj.client.HasFission = 0;
GainExperience(%obj.client, 25000, "Anti-Matter Based Fission Bomb Activated ");
%obj.client.OnUseKillstreak(16);
@ -608,6 +790,7 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
CompleteNWChallenge(%obj.client, "GameEnder");
MessageAll('msgItsOva', "\c5COMMAND: FISSION BOMB!!! IT'S OVER!! RUN!!!!!! ~wfx/misc/red_alert_short.wav");
FissionBombLoop(%obj.client, %obj, %obj.getPosition(), 30);
<<<<<<< HEAD
if(%newCt == 0) {
%obj.client.ksListInstance.removeElement(getField(%obj.client.ksListInstance.find(%strkName), 1));
}
@ -615,12 +798,20 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
%obj.client.ksListInstance.set(getField(%obj.client.ksListInstance.find(%strkName), 1), %strkName SPC %newCt);
}
=======
%obj.client.streakCount[%currentStreak]--;
>>>>>>> origin/development
//
//
// Napalm
//
//
<<<<<<< HEAD
case "Napalm":
=======
case 17:
>>>>>>> origin/development
%ASCam = new Camera() {
dataBlock = TWM2ControlCamera;
};
@ -632,7 +823,11 @@ function KillstreakBeaconImage::OnFire(%data, %obj, %slot) {
CameraMessageLoop(%obj.client, %ASCam, %ASCam.mode);
}
//Post-Fire Checks
<<<<<<< HEAD
if(%obj.client.ksListInstance.count() <= 0) {
=======
if(getWordCount(%obj.client.streakList()) == 0) {
>>>>>>> origin/development
//No more streaks in the list...
%obj.throwWeapon(1);
%obj.throwWeapon(0);
@ -720,7 +915,11 @@ function ConstantBomberTurningLoop(%obj, %TPos) {
%SwapA = -1 * getWord(%target, 0);
%TVector = getWord(%target, 1)@" "@%SwapA@" 0";
%obj.setRotation(fullrot("0 0 0",%TVector));
<<<<<<< HEAD
=======
>>>>>>> origin/development
%dist = vectorDist(%TPos, %BPos);
if(%dist < 75) {
%obj.ReachedDest = 1;
@ -739,7 +938,7 @@ function Airstrike(%CallerClient, %position, %dirFrom) {
%CallerClient.TWM2Core.AirstrikeCalls++;
UpdateSWBeaconFile(%CallerClient, "AirStrike");
}
//new stuff TWM2 2.6
//%dirFrom = Spawn Position of Aircraft
%THeight = getTerrainHeight(%dirFrom);
@ -836,7 +1035,7 @@ function MakeTheHeli(%cl, %gunner) {
if(%gunner $= "") {
%gunner = 0;
}
if(%gunner) {
%Heli = new FlyingVehicle() {
dataBlock = ApacheHelicopter;
@ -953,7 +1152,7 @@ function HeliBeginAttack(%heli, %target) {
%heli.Targeting = schedule(500, 0, "HeliScan", %heli);
return;
}
schedule(500, 0, "HeliBeginAttack", %heli, %target);
%clpos = %target.getPosition();
if(vectorDist(%clpos, %pos) < 125) {
@ -1121,7 +1320,7 @@ function MakeTheHeli2(%cl, %harrier) {
%Heli.doneAttack = 0;
//
%Heli.team = %cl.team;
%heli.canFireMissiles = 1;
%heli.Targeting = GunshipHeliScan(%heli);

View file

@ -1,46 +1,3 @@
datablock ParticleData(NMMissileBaseParticle) {
dragCoeffiecient = 0.0;
gravityCoefficient = -0.2;
inheritedVelFactor = 0.0;
lifetimeMS = 800;
lifetimeVarianceMS = 500;
useInvAlpha = false;
spinRandomMin = -160.0;
spinRandomMax = 160.0;
animateTexture = true;
framesPerSec = 15;
textureName = "special/cloudflash";
colors[0] = "0.5 0.1 0.9 1.0";
colors[1] = "0.5 0.1 0.9 1.0";
colors[2] = "0.5 0.1 0.9 1.0";
sizes[0] = 2.5;
sizes[1] = 2.7;
sizes[2] = 3.0;
times[0] = 0.0;
times[1] = 0.7;
times[2] = 1.0;
};
datablock ParticleEmitterData(NMMissileBaseEmitter) {
ejectionPeriodMS = 10;
periodVarianceMS = 0;
ejectionVelocity = 1.5;
velocityVariance = 0.3;
thetaMin = 0.0;
thetaMax = 30.0;
particles = "NMMissileBaseParticle";
};
datablock LinearFlareProjectileData(ShadowRifleBolt) {
projectileShapeName = "turret_muzzlepoint.dts";
scale = "1.0 1.0 1.0";

BIN
terrains/Flatland.nav Normal file

Binary file not shown.

BIN
terrains/Flatland.spn Normal file

Binary file not shown.

1
terrains/Flatland.ter Normal file

File diff suppressed because one or more lines are too long