TWM2/scripts/TWM2/Systems/scoremenucmds.cs
Robert Fritzen 497ecfc182 Additional bug fixes
Chat bot fixes, Demon Lord Zombie Fixes, F2 Menu Fixes, Officer
Promotion Challenge Fixes.
2017-06-29 22:11:25 -05:00

1261 lines
61 KiB
C#

$ScoreHudMaxVisible = 16; //maybe 16 for low end people?
function ConstructionGame::updateScoreHud(%game, %client, %tag){
if (%client.SCMPage $= "")
%client.SCMPage = 1;
if (%client.SCMPage $= "SM")
return;
$TagToUseForScoreMenu = %tag;
messageClient( %client, 'ClearHud', "", %tag, 0 );
messageClient( %client, 'SetScoreHudHeader', "", "" );
messageClient( %client, 'SetScoreHudHeader', "", "<a:gamelink\tGTP\t1>E.V.A.</a><rmargin:600><just:right><a:gamelink\tNAC\t1>Close</a>" );
messageClient( %client, 'SetScoreHudSubheader', "", "Main Command Hud" );
if(!%client.notFirstUse) {
messageClient( %client, 'SetScoreHudSubheader', "", "Loading TWM Score-Hud" );
messageClient( %client, 'SetLineHud', "", %tag, 0, "Please Wait... loading news...");
}
else {
scoreCmdMainMenu(%game,%client,%tag,%client.SCMPage);
}
}
function ConstructionGame::processGameLink(%game, %client, %arg1, %arg2, %arg3, %arg4, %arg5){
%tag = $TagToUseForScoreMenu;
messageClient( %client, 'ClearHud', "", %tag, 1 );
//Stuff
if(%arg1 $= "")
%arg1 = "Null";
if(%arg2 $= "")
%arg2 = "Null";
if(%arg3 $= "")
%arg3 = "Null";
if(%arg4 $= "")
%arg4 = "Null";
if(%arg5 $= "")
%arg5 = "Null";
//end
%scriptController = %client.TWM2Core;
echo("[F2] "@%client.namebase@": "@%arg1@", "@%arg2@", "@%arg3@", "@%arg4@", "@%arg5@".");
switch$ (%arg1) {
case "GTP":
scoreCmdMainMenu(%game,%client,$TagToUseForScoreMenu,%arg2);
%client.SCMPage = %arg2;
return;
//*****************************************************************************
case "OrderMisSub":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Missions" );
if(getCurrentEXP(%client) < $Ranks::MinPoints[59] && %scriptController.officer < 1) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "You must have the 'Commanding Officer' Rank To Order Missions.");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Order A Mission, Select a Mission");
%index++;
%xI = 0;
while(isSet($Mission::TWM2Mision[%xI])) {
%mis = getField($Mission::TWM2Mision[%xI], 0);
if(isSet(getField($Mission::TWM2Mision[%xI], 1))) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<font:arial:16>[NEW] <font:arial:14><a:gamelink\tOrderMis\t"@%mis@"\t1>"@getField($Mission::VarSet[%mis, "TaskDetails"], 0)@"</a> - "@getField($Mission::VarSet[%mis, "TaskDetails"], 2)@" ["@$Mission::VarSet[%mis, "PlayerLimit"]@"P]");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<font:arial:14><a:gamelink\tOrderMis\t"@%mis@"\t1>"@getField($Mission::VarSet[%mis, "TaskDetails"], 0)@"</a> - "@getField($Mission::VarSet[%mis, "TaskDetails"], 2)@" ["@$Mission::VarSet[%mis, "PlayerLimit"]@"P]");
%index++;
}
%xI++;
}
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Return To Main Menu</a>');
%index++;
return;
case "OrderMis":
%mission = %arg2;
%task = %arg3;
switch(%task) {
case 1:
messageClient( %client, 'SetLineHud', "", %tag, %index, "Mission: "@getField($Mission::VarSet[""@%mission@"", "TaskDetails"], 0)@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Details: "@getField($Mission::VarSet[""@%mission@"", "TaskDetails"], 1)@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Difficulty: "@$Mission::VarSet[""@%mission@"", "Difficulty"]@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Mission Time Window: "@$Mission::VarSet[""@%mission@"", "TimeLimit"] / 60@" Minutes");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Required Players: "@$Mission::VarSet[""@%mission@"", "PlayerReq"]@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Max Players: "@$Mission::VarSet[""@%mission@"", "PlayerLimit"]@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tOrderMis\t"@%mission@"\t2>Order Mission</a>");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tOrderMisSub\t1>Select A Different Mission</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Return To Main Menu</a>');
%index++;
case 2:
CreateTWM2Mission(%client, %mission);
closeScoreHudFSERV(%client);
}
return;
case "JoinMis":
AddClientToMission(%client);
closeScoreHudFSERV(%client);
return;
case "Missions":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Missions" );
if(getCurrentEXP(%client) < $Ranks::MinPoints[59] && %scriptController.officer < 1) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "You must have the 'Commanding Officer' Rank To Order Missions.");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tOrderMisSub\t1>Order A Mission</a>');
%index++;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tJoinMis\t1>Join The Mission About To Begin</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Return To Main Menu</a>');
%index++;
return;
case "MAINPAGE":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudHeader', "", "<a:gamelink\tGTP\t1>E.V.A.</a><rmargin:600><just:right><a:gamelink\tNAC\t1>Close</a>" );
messageClient( %client, 'SetScoreHudSubheader', "", "TWM 2 : Server Intro / News" );
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tNAC\t1>Exit</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Date: "@formattimestring("yy-mm-dd")@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "NEWS:");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "-------");
%index++;
for(%i = 1; %i <= $TWM::Ticks; %i++) {
messageClient( %client, 'SetLineHud', "", %tag, %index, ""@$TWM::Page[%i]@"");
%index++;
}
return;
case "TSSF":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "TWM 2 : The Story Returns" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "It's 2016 Now, The War Against The Zombies Has Mostly Ended, Except For");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Zombie Extremists who's only intent, Revenge, and to Revive Their Once");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Powerful leader Lord Yvex. Even with the zombie's army thinning, strange");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "things are happening in our world, The Harbinger Clan is rising back to power");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "and the zombies, they Have Gotten Smarter, and More Dangerous. This Extremist");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Group, The Fist Of Vengeance is wipping out our new cities, even though we");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "put up everything that is left against them, it seems, that that is not enough.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Now the war has expanded, advanced... New Weapons on every Side of this war");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "have been unleashed, and now, the great war, has erupted once more, Can you");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "end the war? and destroy the evil Plots of the FoV and stop the harbingers?");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Welcome, To Total Warfare..... 2 ADVANCED WARFARE.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "PGDConn1":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "PGD Connect" );
if($TWM2::PGDConnectDisabled) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "PGD Connect is disabled on this server.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "Set email with: /setEmail");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Current Email: "@%client.emailSet);
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPGDConn2\t1>Connect Account</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "PGDConn2":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "PGD Connect" );
if($TWM2::PGDConnectDisabled) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "PGD Connect is disabled on this server.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "Connecting... please wait for response");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
PGDConnect_FromInGame(%client);
return;
case "TWM":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "TWM Information" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "http://www.phantomdev.net");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "ContSave":
%client.SCMPage = "SM";
//PIECE COUNT
%counter=deployables.getcount();
for (%n=0;%n<%counter;%n++) {
%obj = deployables.getObject(%n);
%totalPC++;
}
//END
messageClient( %client, 'SetScoreHudSubheader', "", "Content Saving System (V2.0)" );
messageClient( %client, 'SetLineHud', "", %tag, %index, 'Created By Phantom139');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, 'To Rename Slots: /NameSlot [Slot #] [New Name]');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FF0000>[RED] - Not Possible Or Shouldn't Be Done");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FFFF66>[YELLOW] - Warning");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:33FF00>[GREEN] - Possible");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
for(%i = 1; %i < $TWM2::PlayerSaveSlots+1; %i++) {
if($SaveFile::SlotName[%client.guid,%i] $= "") {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:003300>SLOT "@%i@" : "@RunSaveCheck(%client, %i)@"<color:003300> - "@RunLoadCheck(%client, %i, %totalPC)@"<color:003300> - "@RunDeleteCheck(%client, %i)@"<color:003300> - "@CheckSlotStatus(%client,%i)@"");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:003300>"@$SaveFile::SlotName[%client.guid,%i]@" : "@RunSaveCheck(%client, %i)@"<color:003300> - "@RunLoadCheck(%client, %i, %totalPC)@"<color:003300> - "@RunDeleteCheck(%client, %i)@"<color:003300> - "@CheckSlotStatus(%client,%i)@"");
%index++;
}
}
if(%client.isadmin) {
for(%i = $TWM2::PlayerSaveSlots+1; %i < $TWM2::PlayerSaveSlots+$TWM2::AdminSaveSlots+1; %i++) {
if($SaveFile::SlotName[%client.guid,%i] $= "") {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:003300>SLOT "@%i@" : "@RunSaveCheck(%client, %i)@"<color:003300> - "@RunLoadCheck(%client, %i, %totalPC)@"<color:003300> - "@RunDeleteCheck(%client, %i)@"<color:003300> - "@CheckSlotStatus(%client,%i)@"");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:003300>"@$SaveFile::SlotName[%client.guid,%i]@" : "@RunSaveCheck(%client, %i)@"<color:003300> - "@RunLoadCheck(%client, %i, %totalPC)@"<color:003300> - "@RunDeleteCheck(%client, %i)@"<color:003300> - "@CheckSlotStatus(%client,%i)@"");
%index++;
}
}
}
if(%client.issuperadmin) {
for(%i = $TWM2::PlayerSaveSlots+$TWM2::AdminSaveSlots+1; %i < $TWM2::PlayerSaveSlots+$TWM2::AdminSaveSlots+$TWM2::SuperAdminSaveSlots+1; %i++) {
if($SaveFile::SlotName[%client.guid,%i] $= "") {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:003300>SLOT "@%i@" : "@RunSaveCheck(%client, %i)@"<color:003300> - "@RunLoadCheck(%client, %i, %totalPC)@"<color:003300> - "@RunDeleteCheck(%client, %i)@"<color:003300> - "@CheckSlotStatus(%client,%i)@"");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:003300>"@$SaveFile::SlotName[%client.guid,%i]@" : "@RunSaveCheck(%client, %i)@"<color:003300> - "@RunLoadCheck(%client, %i, %totalPC)@"<color:003300> - "@RunDeleteCheck(%client, %i)@"<color:003300> - "@CheckSlotStatus(%client,%i)@"");
%index++;
}
}
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "Save":
if(!%client.guid) {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": Error: You do not have a Registered GUID, please /Auth In.");
closescorehudfserv(%client);
return;
}
if(%client.cantSave) {
%x = MFloor($SaveTime::TimeLeft[%client.guid, "Save"] / 60);
%y = $SaveTime::TimeLeft[%client.guid, "Save"] % 60;
if(%x > 0) {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": You have only recently saved a building, please wait "@%x@" Minutes and "@%y@" Seconds.");
}
else {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": You have only recently saved a building, please wait "@%y@" Seconds.");
}
closescorehudfserv(%client);
return;
}
if(!$Phantom::CSSEnabled && !%client.issuperadmin) {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": Content Saving Is Disabled on This Server, Please Contact a server admin.");
closescorehudfserv(%client);
return;
}
%slot = %arg2;
$SaveFile::Save[%client.guid,%slot] = PersonalsaveBuilding(%client,99999999,""@%client.guid@"/"@%slot@"",0);
$SaveFile::PieceCT[%client.guid,%slot] = $SaveBuilding::Saved[$SaveFile::Save[%client.guid,%slot]]; //How many pieces?
$SaveTime::TimeLeft[%client.guid, "Save"] = $TWM::CSSTimeSave*60; //5 mins
%client.cantSave = 1;
schedule(1,0,"ResetSave",%client);
messageall('MsgAdminForce', "\c3"@ %client.namebase@"\c2 has saved his pieces.");
MessageClient(%client,'Success',"\c1From "@$ChatBot::Name@": Building Saved To Content Save Slot "@%slot@".");
export( "$SaveFile::*", "prefs/ContentSave.cs", false );
closescorehudfserv(%client);
return;
case "Load":
if(!%client.guid) {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": Error: You do not have a Registered GUID, please /Auth In.");
closescorehudfserv(%client);
return;
}
if(%client.cannotBuild) {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": Error: You are not permitted to load buildings, due to your revoked building rights.");
closescorehudfserv(%client);
return;
}
if(%client.cantLoad) {
%x = MFloor($SaveTime::TimeLeft[%client.guid, "Load"] / 60);
%y = $SaveTime::TimeLeft[%client.guid, "Load"] % 60;
if(%x > 0) {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": You have only recently loaded a building, please wait "@%x@" Minutes and "@%y@" Seconds.");
}
else {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": You have only recently loaded a building, please wait "@%y@" Seconds.");
}
closescorehudfserv(%client);
return;
}
%slot = %arg2;
PERSloadBuilding($SaveFile::Save[%client.guid,%slot]);
$SaveTime::TimeLeft[%client.guid, "Load"] = $TWM::CSSTimeLoad*60; //5 mins
%client.cantLoad = 1;
schedule(1,0,"ResetLoad",%client);
messageall('MsgAdminForce', "\c3"@ %client.namebase@"\c2 is loading a building, Evaluating Power.");
MessageClient(%client,'Success',"\c1From "@$ChatBot::Name@": Loading Building In Content Save Slot "@%slot@".");
closescorehudfserv(%client);
return;
case "SaveWarn":
%slot = %arg2;
if($SaveFile::Save[%client.guid,%slot] !$= "") {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FF0000>WARNING, PIECES DETECTED, SAVE OVER THE SLOT?");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FF0000>WARNING, BUILDINGS CANNOT BE RECOVERED IF SAVED OVER");
%index++;
}
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Content Saving System" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Save Pieces? <a:gamelink\tSave\t"@%slot@">Yes</a> <a:gamelink\tContSave\t1>No</a>");
%index++;
return;
case "DeleteWarn":
%slot = %arg2;
if($SaveFile::Save[%client.guid,%slot] $= "") {
MessageClient(%client,'Deny',"\c1From "@$ChatBot::Name@": Error: No pieces in this slot to delete.");
closescorehudfserv(%client);
return;
}
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Content Saving System" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FF0000>WARNING, BUILDINGS CANNOT BE RECOVERED IF DELETED");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Continue? <a:gamelink\tDelYes\t"@%slot@">Yes</a> <a:gamelink\tContSave\t1>No</a>");
%index++;
return;
case "DelYes":
%slot = %arg2;
%file = $SaveFile::Save[%client.guid,%slot];
DeleteFile(%file);
$SaveFile::PieceCT[%client.guid,%slot] = 0;
$SaveFile::Save[%client.guid,%slot] = "";
$SaveFile::SlotName[%client.guid,%slot] = "SLOT "@%slot@"";
MessageClient(%client,'Success',"\c1From "@$ChatBot::Name@": Pieces in slot "@%slot@" have been deleted.");
closescorehudfserv(%client);
return;
case "Ranks":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Player Information Listings" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Client");
%index++;
%count=clientgroup.getcount();
for (%i = 0; %i < %count; %i++){
%cid = ClientGroup.getObject( %i );
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tRanksSM\t"@%cid@">"@%cid.namebase@"</a>");
%index++;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
messageClient( %client, 'ClearHud', "", %tag, %index );
return;
case "StatResetWarn":
messageClient( %client, 'ClearHud', "", %tag, %index );
messageClient( %client, 'SetScoreHudSubheader', "", "Stat Reset" );
if(getCurrentEXP(%client) < $Ranks::MinPoints[61] && %scriptController.officer < 15) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "You must have the 'Harbinger Master Commander' Rank To Proceed.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Exit</a>');
%index++;
return;
}
%page = %arg2;
switch(%page) {
case 1:
messageClient( %client, 'SetLineHud', "", %tag, %index, "Congratulations on reaching the end of the rank progression!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "But, are you longing for that progression adventure once more?");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Do you feel like there's nothing to strive for anymore?");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "By reaching the last rank, you can choose to do a FULL RESET.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Get Me Out of Here</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tStatResetWarn\t2>Learn More</a>');
%index++;
case 2:
messageClient( %client, 'SetLineHud', "", %tag, %index, "By proceeding through here, you can reset at rank zero...");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "It will be like you've never played TWM2 before");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "All medals, challenges, unlocks will be removed.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "You only get to keep your play time and phrase.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "But, you can do it all over again!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Get Me Out of Here</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tStatResetWarn\t3>Continue</a>');
%index++;
case 3:
messageClient( %client, 'SetLineHud', "", %tag, %index, "DANGER: THIS ACTION IS IRREVERSABLE!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "THIS IS YOUR LAST CHANCE TO ABORT");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "CLICK BELOW AT YOUR OWN RISK!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>No, I\'m Not Thinking Clearly!!!</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tStatResetWarn\t4>Wipe Me From TWM2 Existence</a>');
%index++;
case 4:
WipeStats(%client);
messageClient( %client, 'SetLineHud', "", %tag, %index, "It has been done... Now... Begone!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Thank you for using the Phantom139 Memory wipe Services...");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Exit</a>');
%index++;
}
return;
case "PrestigeWarn":
messageClient( %client, 'ClearHud', "", %tag, %index );
messageClient( %client, 'SetScoreHudSubheader', "", "Officer Ranks" );
if(getCurrentEXP(%client) < $Ranks::MinPoints[61]) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "You must have the 'Master Commander' Rank To Proceed.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Exit</a>');
%index++;
return;
}
%page = %arg2;
switch(%page) {
case 1:
%next = %scriptController.officer + 1;
if(%scriptController.officer $= "" || %scriptController.officer == 0) {
%scriptController.officer = 0;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Welcome to the Officer Ranks!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Congratulations on reaching the rank of Master Commander");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "But if you thought you were done.... you thought wrong...");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "The Officer Ranks are your next step of progression in TWM2.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Officer promotion effectively hits that reset button on your account");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "restarting you at level one with zero EXP, but you'll move forward");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "This action is not in vain, as you unlock some cool new items!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "To assist your path, you'll gain some new EXP gain methods to help.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "So, with that in mind, are you ready to move on to the next step?");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Welcome Back to Officer Ranking!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "You made it again! Master Commander once more!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "However, as you expected, you're still not done yet!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "As a reminder, you'll lose it all, but gain more.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "So, are you ready to enter the next office rank?");
%index++;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Cancel</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPrestigeWarn\t2>Continue</a>');
%index++;
case 2:
if(fetchCap("Officer", %next)) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "*** This officer rank level is currently locked ***");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "*** Please try again at some other time/date ***");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Return To Controls</a>');
%index++;
return;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "Although you will restart at the level 1, you gain");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "the "@trim($Prestige::Name[%scriptController.officer + 1])@" title with your rank.");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Rewards Earned for Promoting to Officer Level "@%scriptController.officer + 1@":");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, " * 1 Additional Killstreak Slot");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, " * "@$Prestige::Rewards[%scriptController.officer + 1]);
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "This action cannot be undone once your rank is saved");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Are you sure you want to continue?");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>No</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPrestigeWarn\t3>Yes</a>');
%index++;
case 3:
if(fetchCap("Officer", %next)) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "*** This officer rank level is currently locked ***");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "*** Please try again at some other time/date ***");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Return To Controls</a>');
%index++;
return;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FF0000>WARNING</color> This action CANNOT be undone!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "This is your last chance to turn back");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Do Not Promote</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPrestigeWarn\t4>Shut Up And Promote Me Now!</a>');
%index++;
case 4:
if(fetchCap("Officer", %next)) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "*** This officer rank level is currently locked ***");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "*** Please try again at some other time/date ***");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Return To Controls</a>');
%index++;
return;
}
PromoteToPrestige(%client);
messageClient( %client, 'SetLineHud', "", %tag, %index, "Congratulations, you have promoted to a new officer rank!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Exit</a>');
%index++;
}
return;
case "PersControl":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Personal Settings" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Select An Option");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
if(%scriptController.officer < $OfficerCap[$TWM2Core_Code, sha1sum(formattimestring("yymmdd"))]) {
if(getCurrentEXP(%client) >= $Ranks::MinPoints[61]) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tPrestigeWarn\t1>Promote To Officer Level "@%scriptController.officer + 1@"</a>");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Officer Ranking - Requires Master Commander (Level 62)");
%index++;
}
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Maximum Officer Level Achieved, Congratulations!!!");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:FF0000><a:gamelink\tStatResetWarn\t1>Reset My Stats</a>: Reset To Level 1, Officer 0</color>");
%index++;
}
if(%scriptController.officer >= 1) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Current Officer Rank Level: "@%scriptController.officer@" ("@trim($Prestige::Name[%scriptController.officer])@")");
%index++;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponUpgrades\t1>Weapon Attachments & Upgrades</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPerks\t1>Perks</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tKillstreaks\t1>Killstreak Superweapons</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tUpdateSettings\t1>Save Game Settings</a>');
%index++;
if(!%client.IsPGDConnected()) {
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPGDConn1\t1>PGD Connect - In Game</a>');
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, 'PGD Connect Status: <color:33FF00>Connected</color>');
%index++;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
messageClient( %client, 'ClearHud', "", %tag, %index );
return;
case "Killstreaks":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Killstreak Superweapons" );
%index = GenerateKillstreakMenu(%client, %tag, %index);
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "SetStreakStat":
%streak = %arg2;
%stat = %arg3;
%client.setStreakStatus(%streak, %stat);
%game.processGameLink(%client, "Killstreaks");
return;
case "UpdateSettings":
UpdateSettings(%client);
MessageClient(%client, 'msgSaved', "\c5Settings Saved");
%game.processGameLink(%client, "NAC");
return;
case "ActivateUpgrade":
%image = %arg2;
%upgrade = %arg3;
%client.DisableAllUpgrades(%image); //disable all first
%client.ActivateUpgrade(%image, %upgrade);
%game.processGameLink(%client, "WeaponUpgradesSub", %image);
return;
case "DeActivateUpgrades":
%image = %arg2;
%client.DisableAllUpgrades(%image); //disable all
%game.processGameLink(%client, "WeaponUpgradesSub", %image);
return;
case "WeaponUpgradesSub":
%image = %arg2;
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Personal Settings" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Upgrade To Use");
%index++;
%index = GenerateCompletedSubMenu(%client, %tag, %index, %image);
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tWeaponTasksSub\t"@%image@">Jump to Weapon Challenge Page</a>");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponUpgrades\t1>Return to Weapon List</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Return to Settings Menu</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "WeaponUpgrades":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Personal Settings" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Weapon");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
%index = GenerateCompletedChallegnesMenu(%client, %tag, %index);
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tPersControl\t1>Return to Settings Menu</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "WeaponTasksSub":
%image = %arg2;
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Challenges" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Challenges:");
%index++;
%index = GenerateWChallengeSubMenu(%client, %tag, %index, %image);
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tWeaponUpgradesSub\t"@%image@">Jump to Weapon Attachments Page</a>");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponsTasks\t1>Return to Weapon List</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tChallenge\t1>Return to Challenge Menu</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "WeaponsTasks":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Challenges" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Weapon");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
%index = GenerateWeaponChallegnesMenu(%client, %tag, %index);
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tChallenge\t1>Return to Challenge Menu</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "OtherTasks":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Challenges" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "Select A Category");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
%index = GenerateChallengesMenu(%client, %tag, %index);
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tChallenge\t1>Return to Challenge Menu</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "OtherTasksSub":
%client.SCMPage = "SM";
%cate = %arg2;
messageClient( %client, 'SetScoreHudSubheader', "", "Challenges" );
%index = GenerateChallengeSubMenu(%client, %cate, %tag, %index);
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tOtherTasks\t1>Return to General Tasks</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tChallenge\t1>Return to Challenge Menu</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "Challenge":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Challenges" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "TWM2 Challenges");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tOtherTasks\t1>General Tasks</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tWeaponsTasks\t1>Weapon Specific Challenges</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
messageClient( %client, 'ClearHud', "", %tag, %index );
return;
case "RanksSM":
messageClient( %client, 'SetScoreHudSubheader', "", ""@%arg2.namebase@"'s Stats Card" );
%client.SCMPage = "SM";
%targetController = %arg2.TWM2Core;
//Specs
if(%targetController.officer $= "") {
%targetController.officer = 0;
}
%rank = ""@$Prestige::Name[%targetController.officer]@""@%targetController.rank@"";
%XP = printCurrentEXP(%arg2);
%phrs = %targetController.phrase;
%gmeTime = %targetController.gameTime;
//Game Time
if(%gmeTime $= "") {
%gmeTime = 0;
}
if(%phrs $= "") {
%phrs = "I don't have a Phrase";
}
else {
%days = %targetController.gameTime / (60 * 24);
%timeLeft = %targetController.gameTime % (60 * 24);
%hours = %timeLeft / 60;
%timeLeft = %hours % 60;
%daysFloored = MFloor(%days);
%hoursFloored = MFloor(%hours);
%timeString = ""@%daysFloored@" Days, "@%hoursFloored@" Hours, "@%timeLeft@" Minutes";
}
//Card
messageClient( %client, 'SetLineHud', "", %tag, %index, "Rank: "@%rank@", XP Points: "@%XP@".");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "TWM2 Time Played: "@%timeString@".");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Phrase: "@%phrs@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "My Medal Collection");
%index++;
//
%index = GetClientMedals(%client, %arg2, %tag, %index);
//
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "-Weapon Kills-");
%index++;
%count = DatablockGroup.getCount();
for(%i = 0; %i < %count; %i++) {
%db = DatablockGroup.GetObject(%i);
if(%db.getName().getClassname() $= "ItemData") {
if(%db.getName().classname $= "Weapon") {
%Image = %db.getName().image;
if(%Image.HasChallenges) {
%kills = GetKills(%arg2, %image);
if(%kills $= "") {
%kills = 0;
}
if(DoMedalCheck(%client, %image) == 1 && CanUseRankedWeapon(%image, %client) == 1) {
messageClient( %client, 'SetLineHud', "", %tag, %index, ""@%Image.GunName@" - Kills: "@%kills@"");
%index++;
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, "Unknown Weapon - Kills: "@%kills@"");
%index++;
}
}
}
}
}
if(%targetController.UAVCalls $= "") {
%targetController.UAVCalls = 0;
}
if(%targetController.AirstrikeCalls $= "") {
%targetController.AirstrikeCalls = 0;
}
if(%targetController.HeliCalls $= "") {
%targetController.HeliCalls = 0;
}
if(%targetController.GMCalls $= "") {
%targetController.GMCalls = 0;
}
if(%targetController.HarrierCalls $= "") {
%targetController.HarrierCalls = 0;
}
if(%targetController.GunHeliCalls $= "") {
%targetController.GunHeliCalls = 0;
}
if(%targetController.SlthAirstrikeCalls $= "") {
%targetController.SlthAirstrikeCalls = 0;
}
if(%targetController.HWCalls $= "") {
%targetController.HWCalls = 0;
}
if(%targetController.CGCalls $= "") {
%targetController.CGCalls = 0;
}
if(%targetController.ArtyCalls $= "") {
%targetController.ArtyCalls = 0;
}
if(%targetController.NukeCalls $= "") {
%targetController.NukeCalls = 0;
}
if(%targetController.ZBCalls $= "") {
%targetController.ZBCalls = 0;
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "**Killstreak Superweapon Calls**");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "UAV Calls: "@%targetController.UAVCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Airstrikes: "@%targetController.AirstrikeCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Guided Missile Strikes (UAMS): "@%targetController.GMCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Helicopters: "@%targetController.HeliCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Harrier Airstrikes: "@%targetController.HarrierCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Gunship Helicopters: "@%targetController.GunHeliCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Stealth Bombers: "@%targetController.SlthAirstrikeCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Gunships: "@%targetController.HWCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Apaches: "@%targetController.CGCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Artillery Strikes: "@%targetController.ArtyCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Nukes: "@%targetController.NukeCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Z-Bombs: "@%targetController.ZBCalls@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tRanks>Back to P.I.L.</a>');
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "BL15":
messageClient( %client, 'SetScoreHudSubheader', "", "The Blacklist 15" );
%client.SCMPage = "SM";
messageClient( %client, 'SetLineHud', "", %tag, %index, "Top 15 Ranks");
%index++;
for(%i = 1; %i < 16; %i++) {
if(%client.namebase $= $Rank::Top[%i]) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<color:33FF00>"@%i@". "@$Rank::Top[%i]@" - "@$Rank::TopRank[%i]@" - "@$Rank::TopXP[%i]@"XP");
%index++;
//CompleteNWChallenge(%client, "Acceptance");
}
else {
messageClient( %client, 'SetLineHud', "", %tag, %index, ""@%i@". "@$Rank::Top[%i]@" - "@$Rank::TopRank[%i]@" - "@$Rank::TopXP[%i]@"XP");
%index++;
}
}
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
return;
case "PC":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "Piece Count" );
%count=clientgroup.getcount();
%counter=deployables.getcount();
for (%n=0;%n<%counter;%n++) {
%obj = deployables.getObject(%n);
%totalPC++;
%piececount[%obj.ownerguid]++;
if(!%obj.ownerguid)
%orphPC++;
}
%count=clientgroup.getcount();
for (%i = 0; %i < %count; %i++){
%cid = ClientGroup.getObject( %i );
if(%cid.isAIControlled()) {
messageClient( %client, 'SetLineHud', "", $TagToUseForScoreMenu, %index, '<tab:25>\t<clip:195>%1</clip><rmargin:260><just:right>%2',
%cid.namebase,'AI' );
%index++;
}
if(!%cid.isAIControlled()) {
messageClient( %client, 'SetLineHud', "", $TagToUseForScoreMenu, %index, '<tab:25>\t<clip:195>%1</clip><rmargin:260><just:right>%2',
%cid.namebase,%piececount[%cid.guid] );
%index++;
}
}
messageClient( %client, 'SetLineHud', "", %tag, %index, "Orphanned Pieces : "@%orphPC@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Total Pieces Used: "@%totalPC@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "Pieces Left (Apprx) : "@1080 - %totalPC@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
messageClient( %client, 'ClearHud', "", %tag, %index );
return;
case "Perks":
%client.SCMPage = "SM";
messageClient( %client, 'SetScoreHudSubheader', "", "PERKS" );
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "--- ACTIVE PERKS ---");
%index++;
GetActivePerks(%client); //Reload This First
messageClient( %client, 'SetLineHud', "", %tag, %index, "PRIMARY: "@%client.Perk[1]@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "SECONDARY: "@%client.Perk[2]@"");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "TERTIARY: "@%client.Perk[3]@"");
%index++;
//
//
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, "--- AVAILIABLE PERKS ---");
%index++;
//
%index = CreatePerkMenu(%client, %tag, %index);
//
messageClient( %client, 'SetLineHud', "", %tag, %index, "");
%index++;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t1>Back to main menu</a>');
%index++;
messageClient( %client, 'ClearHud', "", %tag, %index );
return;
case "PerkStatus":
DisableAllPerkGroup(%client, $Perk::PerkToGroup[%arg2]);
SetPerkStatus(%client, %arg2, 1);
%game.processGameLink(%client, "Perks");
return;
default:
%client.notFirstUse = 1;
}
closeScoreHudFSERV(%client);
}
//Skin & bot set
function SetSkin(%client,%newskin) {
if (!IsObject(%client))
return "Invalid client!";
FreeClientTarget(%client);
%client.skin = addtaggedstring(%newskin);
%client.target = allocClientTarget(%client, %client.name, %client.skin, %client.voiceTag, '_ClientConnection', %client.team, 0, %client.voicePitch);
if (IsObject(%client.player))
%client.player.setTarget(%client.target);
return %client SPC %newskin;
}
function customizebot(%bot,%race,%sex,%name,%skin,%voicetag,%pitch)
{
%bot.race = %race;
%bot.sex = %sex;
%bot.voice = addtaggedstring(%voicetag);
freeclienttarget(%bot);
%bot.target = allocClientTarget(%bot, %bot.name, %bot.skin, %bot.voiceTag, '_ClientConnection', 0, 0, %bot.voicePitch);
}
//End
function closeScoreHudFSERV(%client) {
serverCmdHideHud(%client, 'scoreScreen');
//ResetQuiz(%client, $TagToUseForScoreMenu, "ALL", 1);
commandToClient(%client, 'setHudMode', 'Standard', "", 0);
%client.SCMPage = 1;
%client.notFirstUse = 1;
}
function scoreCmdMainMenu(%game,%client,%tag,%page) {
messageClient( %client, 'ClearHud', "", %tag, 1 );
if (!isobject(cmdobject)) generateCMDObj();
messageClient( %client, 'SetScoreHudSubheader', "", "Main Menu Page " @ %page);
if (%page > 1) {
%pgToGo = %page - 1;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t%1>Previous Page</a>',%pgToGo);
%index++;
}
%cmdsToDisp = 15 * %page;
%start = (%page - 1) * 15;
for (%i=%start; %i < %cmdsToDisp;%i++) {
%line = CmdObject.cmd[%i];
if (%line !$= "") {
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\t%1>%2</a>',getword(%line,0),getwords(%line,1));
%index++;
}
}
if (%cmdsToDisp < (CmdObject.commands + 1)) {
%pgToGo = %page + 1;
messageClient( %client, 'SetLineHud', "", %tag, %index, '<a:gamelink\tGTP\t%1>Next Page</a>',%pgToGo);
%index++;
}
if (%page > 1) {
messageClient( %client, 'SetLineHud', "", %tag, %index, "<a:gamelink\tGTP\t1>First Page</a>");
%index++;
}
messageClient( %client, 'ClearHud', "", %tag, %index );
}
//format
//CMD indentifier displayname
//CMDHELP identifier help message for cmd gonna implement it
//after noobs get their hands on the base script first
function GenerateCMDObj() {
new fileobject("fIn");
fIn.openforread("scripts/TWM2/cmddisplaylist.txt");
if (isobject(cmdobject)) cmdobject.delete();
new scriptObject("CmdObject") {commands=0;};
while (!fIn.iseof()) {
%line = fIn.readline();
if (getword(%line,0) $= "CMD") {
CmdObject.cmd[CmdObject.commands] = getwords(%line,1);
CmdObject.commands++;
}
}
fIn.close();
fIn.delete();
}
// CONTENT SAVING
function CheckSlotStatus(%cl,%slot) {
if($SaveFile::Save[%cl.guid,%slot] $= "") {
%Stat = "This Slot Is Empty";
}
else {
%Stat = "This Slot Has "@$SaveFile::PieceCT[%cl.guid,%slot]@" Saved Pieces";
}
return %Stat;
}
//Checks to see if the file CAN, or Should be loaded
function RunLoadCheck(%cl, %slot, %PC) {
if(%cl.cantLoad || $SaveFile::PieceCT[%client.guid,%slot] > %PC) {
%str = "<color:FF0000><a:gamelink\tLoad\t"@%slot@">Load</a>"; //Return the Red Link
return %str;
}
else {
%str = "<color:33FF00><a:gamelink\tLoad\t"@%slot@">Load</a>"; //Return the Green Link
return %str;
}
}
function RunSaveCheck(%cl, %slot) {
if(%cl.cantSave) {
%str = "<color:FF0000><a:gamelink\tSaveWarn\t"@%slot@">Save</a>"; //Return the Red Link
return %str;
}
else if($SaveFile::Save[%cl.guid,%slot] $= "" && !%cl.cantSave && $Phantom::CSSEnabled) {
%str = "<color:33FF00><a:gamelink\tSaveWarn\t"@%slot@">Save</a>"; //Return the Green Link
return %str;
}
else {
%str = "<color:FFFF66><a:gamelink\tSaveWarn\t"@%slot@">Save</a>"; //Return the Yellow Link
return %str;
}
}
function RunDeleteCheck(%cl, %slot) {
if($SaveFile::Save[%cl.guid,%slot] $= "") {
%str = "<color:FF0000><a:gamelink\tDeleteWarn\t"@%slot@">Delete</a>"; //Return the Red Link
return %str;
}
else {
%str = "<color:FFFF66><a:gamelink\tDeleteWarn\t"@%slot@">Delete</a>"; //Return the Yellow Link
return %str;
}
}
//------------------------------------
function PGDConnect_FromInGame(%client) {
if($TWM2::PGDConnectDisabled) {
echo("PGD Connect is disabled.");
return;
}
%guid = %client.guid;
%email = %client.emailSet;
if(!isSet(%email)) {
MessageClient(%client, 'msgClient', "\c3SERVER: Must set an email address");
return;
}
//======
$PGD::IsPGDConnected[%guid] = 0; //some funky setting always brings this to 1 before reg. happens
%tcp = new TCPObject(TCPIGCObject);
%tcp.client = %client;
%tcp.guid = %client.guid;
%tcp.email = %client.emailSet;
%tcp.connect("www.phantomdev.net:80");
%tcp.timeout = %tcp.schedule(10000, disconnect);
}
function TCPIGCObject::onConnected(%this) {
%sep = getRandomSeparator(16);
%loc = "/public/Univ/submit.php";
%header1 = "POST" SPC %loc SPC "HTTP/1.1\r\n";
%host = "Host: www.phantomdev.net\r\n";
%header2 = "Connection: close\r\nUser-Agent: Tribes 2\r\n";
%contType = "Content-Type: multipart/form-data; boundary="@%sep@"\r\n";
%guidReq = "--"@%sep@"\r\nContent-Disposition: form-data; name=\"guid\"\r\n\r\n"@%this.guid@"";
%emailReq = "--"@%sep@"\r\nContent-Disposition: form-data; name=\"email\"\r\n\r\n"@%this.email@"";
%payload = %guidReq@"\r\n"@%emailReq@"\r\n--"@%sep@"--";
%qlen = strLen(%payload);
%contentLeng = "Content-Length: "@%qlen@"\r\n\r\n";
%query = %header1@%host@%header2@%contType@%contentLeng@%payload;
echo("Connected to Phantom Games Server, Sending Connection Data...");
if($debugmode == 1) {
echo(%query);
}
%this.send(%query);
}
function TCPIGCObject::onLine(%this, %line) {
echo(%line);
if(strstr(%line, "Data added to PGD Connect") != -1) {
MessageClient(%this.client, 'msgClient', "\c3SERVER: Data registered to PGD Connect...");
%this.disconnect();
$PGD::IsPGDConnected[%this.guid] = 1;
}
else if(strstr(%line, "This account is already registered") != -1) {
MessageClient(%this.client, 'msgClient', "\c3SERVER: You have already registered to PGD connect.");
%this.disconnect();
$PGD::IsPGDConnected[%this.guid] = 1;
}
else {
}
}
function TCPIGCObject::onDisconnect(%this) {
closeScoreHudFSERV(%this.client);
%this.delete();
}