initial commit
This commit is contained in:
@@ -0,0 +1,742 @@
|
||||
FADE_IN_TIME = 2;
|
||||
DEFAULT_TOOLTIP_COLOR = {0.8, 0.8, 0.8, 0.09, 0.09, 0.09};
|
||||
MAX_PIN_LENGTH = 10;
|
||||
|
||||
function AccountLogin_OnLoad(self)
|
||||
TOSFrame.noticeType = "EULA";
|
||||
|
||||
self:RegisterEvent("SHOW_SERVER_ALERT");
|
||||
self:RegisterEvent("SHOW_SURVEY_NOTIFICATION");
|
||||
self:RegisterEvent("CLIENT_ACCOUNT_MISMATCH");
|
||||
self:RegisterEvent("CLIENT_TRIAL");
|
||||
self:RegisterEvent("SCANDLL_ERROR");
|
||||
self:RegisterEvent("SCANDLL_FINISHED");
|
||||
|
||||
local versionType, buildType, version, internalVersion, date = GetBuildInfo();
|
||||
AccountLoginVersion:SetFormattedText(VERSION_TEMPLATE, versionType, version, internalVersion, buildType, date);
|
||||
|
||||
-- Color edit box backdrops
|
||||
local backdropColor = DEFAULT_TOOLTIP_COLOR;
|
||||
AccountLoginAccountEdit:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
|
||||
AccountLoginAccountEdit:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
|
||||
AccountLoginPasswordEdit:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
|
||||
AccountLoginPasswordEdit:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
|
||||
AccountLoginTokenEdit:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
|
||||
AccountLoginTokenEdit:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
|
||||
TokenEnterDialogBackgroundEdit:SetBackdropBorderColor(backdropColor[1], backdropColor[2], backdropColor[3]);
|
||||
TokenEnterDialogBackgroundEdit:SetBackdropColor(backdropColor[4], backdropColor[5], backdropColor[6]);
|
||||
|
||||
self:SetCamera(0);
|
||||
self:SetSequence(0);
|
||||
|
||||
if (IsStreamingTrial()) then
|
||||
AccountLoginCinematicsButton:Disable();
|
||||
AccountLogin:SetModel("Interface\\Glues\\Models\\UI_MainMenu\\UI_MainMenu.m2");
|
||||
else
|
||||
AccountLogin:SetModel("Interface\\Glues\\Models\\UI_RS_NightElf\\UI_RS_NightElf.m2");
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_OnShow(self)
|
||||
self:SetSequence(0);
|
||||
PlayGlueMusic(CurrentGlueMusic);
|
||||
PlayGlueAmbience(GlueAmbienceTracks["DARKPORTAL"], 4.0);
|
||||
|
||||
-- Try to show the EULA or the TOS
|
||||
AccountLogin_ShowUserAgreements();
|
||||
|
||||
local serverName = GetServerName();
|
||||
if(serverName) then
|
||||
AccountLoginRealmName:SetText(serverName);
|
||||
else
|
||||
AccountLoginRealmName:Hide()
|
||||
end
|
||||
|
||||
local accountName = GetSavedAccountName();
|
||||
|
||||
AccountLoginAccountEdit:SetText(accountName);
|
||||
AccountLoginPasswordEdit:SetText("");
|
||||
AccountLoginTokenEdit:SetText("");
|
||||
if ( accountName and accountName ~= "" and GetUsesToken() ) then
|
||||
AccountLoginTokenEdit:Show()
|
||||
else
|
||||
AccountLoginTokenEdit:Hide()
|
||||
end
|
||||
|
||||
AccountLogin_SetupAccountListDDL();
|
||||
|
||||
if ( accountName == "" ) then
|
||||
AccountLogin_FocusAccountName();
|
||||
else
|
||||
AccountLogin_FocusPassword();
|
||||
end
|
||||
|
||||
if( IsTrialAccount() ) then
|
||||
AccountLoginUpgradeAccountButton:Show();
|
||||
else
|
||||
AccountLoginUpgradeAccountButton:Hide();
|
||||
end
|
||||
|
||||
ACCOUNT_MSG_NUM_AVAILABLE = 0;
|
||||
ACCOUNT_MSG_PRIORITY = 0;
|
||||
ACCOUNT_MSG_HEADERS_LOADED = false;
|
||||
ACCOUNT_MSG_BODY_LOADED = false;
|
||||
ACCOUNT_MSG_CURRENT_INDEX = nil;
|
||||
end
|
||||
|
||||
function AccountLogin_OnHide(self)
|
||||
--Stop the sounds from the login screen (like the dragon roaring etc)
|
||||
StopAllSFX( 1.0 );
|
||||
if ( not AccountLoginSaveAccountName:GetChecked() ) then
|
||||
SetSavedAccountList("");
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_FocusPassword()
|
||||
AccountLoginPasswordEdit:SetFocus();
|
||||
end
|
||||
|
||||
function AccountLogin_FocusAccountName()
|
||||
AccountLoginAccountEdit:SetFocus();
|
||||
end
|
||||
|
||||
function AccountLogin_OnKeyDown(key)
|
||||
if ( key == "ESCAPE" ) then
|
||||
if ( ConnectionHelpFrame:IsShown() ) then
|
||||
ConnectionHelpFrame:Hide();
|
||||
AccountLoginUI:Show();
|
||||
elseif ( SurveyNotificationFrame:IsShown() ) then
|
||||
-- do nothing
|
||||
else
|
||||
AccountLogin_Exit();
|
||||
end
|
||||
elseif ( key == "ENTER" ) then
|
||||
if ( not TOSAccepted() ) then
|
||||
return;
|
||||
elseif ( TOSFrame:IsShown() or ConnectionHelpFrame:IsShown() ) then
|
||||
return;
|
||||
elseif ( SurveyNotificationFrame:IsShown() ) then
|
||||
AccountLogin_SurveyNotificationDone(1);
|
||||
end
|
||||
AccountLogin_Login();
|
||||
elseif ( key == "PRINTSCREEN" ) then
|
||||
Screenshot();
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_OnEvent(event, arg1, arg2, arg3)
|
||||
if ( event == "SHOW_SERVER_ALERT" ) then
|
||||
ServerAlertText:SetText(arg1);
|
||||
ServerAlertFrame:Show();
|
||||
elseif ( event == "SHOW_SURVEY_NOTIFICATION" ) then
|
||||
AccountLogin_ShowSurveyNotification();
|
||||
elseif ( event == "CLIENT_ACCOUNT_MISMATCH" ) then
|
||||
local accountExpansionLevel = arg1;
|
||||
local installationExpansionLevel = arg2;
|
||||
if ( accountExpansionLevel == 1 ) then
|
||||
GlueDialog_Show("CLIENT_ACCOUNT_MISMATCH", CLIENT_ACCOUNT_MISMATCH_BC);
|
||||
else
|
||||
GlueDialog_Show("CLIENT_ACCOUNT_MISMATCH", CLIENT_ACCOUNT_MISMATCH_LK);
|
||||
end
|
||||
elseif ( event == "CLIENT_TRIAL" ) then
|
||||
GlueDialog_Show("CLIENT_TRIAL");
|
||||
elseif ( event == "SCANDLL_ERROR" ) then
|
||||
GlueDialog:Hide();
|
||||
ScanDLLContinueAnyway();
|
||||
AccountLoginUI:Show();
|
||||
elseif ( event == "SCANDLL_FINISHED" ) then
|
||||
if ( arg1 == "OK" ) then
|
||||
GlueDialog:Hide();
|
||||
AccountLoginUI:Show();
|
||||
else
|
||||
AccountLogin.hackURL = _G["SCANDLL_URL_"..arg1];
|
||||
AccountLogin.hackName = arg2;
|
||||
AccountLogin.hackType = arg1;
|
||||
local formatString = _G["SCANDLL_MESSAGE_"..arg1];
|
||||
if ( arg3 == 1 ) then
|
||||
formatString = _G["SCANDLL_MESSAGE_HACKNOCONTINUE"];
|
||||
end
|
||||
local msg = format(formatString, AccountLogin.hackName, AccountLogin.hackURL);
|
||||
if ( arg3 == 1 ) then
|
||||
GlueDialog_Show("SCANDLL_HACKFOUND_NOCONTINUE", msg);
|
||||
else
|
||||
GlueDialog_Show("SCANDLL_HACKFOUND", msg);
|
||||
end
|
||||
PlaySoundFile("Sound\\Creature\\MobileAlertBot\\MobileAlertBotIntruderAlert01.wav");
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_Login()
|
||||
PlaySound("gsLogin");
|
||||
DefaultServerLogin(AccountLoginAccountEdit:GetText(), AccountLoginPasswordEdit:GetText());
|
||||
AccountLoginPasswordEdit:SetText("");
|
||||
|
||||
if ( AccountLoginSaveAccountName:GetChecked() ) then
|
||||
SetSavedAccountName(AccountLoginAccountEdit:GetText());
|
||||
else
|
||||
SetSavedAccountName("");
|
||||
SetUsesToken(false);
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_TOS()
|
||||
if ( not GlueDialog:IsShown() ) then
|
||||
PlaySound("gsLoginNewAccount");
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame:Show();
|
||||
TOSScrollFrameScrollBar:SetValue(0);
|
||||
TOSScrollFrame:Show();
|
||||
TOSFrameTitle:SetText(TOS_FRAME_TITLE);
|
||||
TOSText:Show();
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_ManageAccount()
|
||||
PlaySound("gsLoginNewAccount");
|
||||
LaunchURL(AUTH_NO_TIME_URL);
|
||||
end
|
||||
|
||||
function AccountLogin_LaunchCommunitySite()
|
||||
PlaySound("gsLoginNewAccount");
|
||||
LaunchURL(COMMUNITY_URL);
|
||||
end
|
||||
|
||||
function CharacterSelect_UpgradeAccount()
|
||||
PlaySound("gsLoginNewAccount");
|
||||
LaunchURL(AUTH_NO_TIME_URL);
|
||||
end
|
||||
|
||||
function AccountLogin_Credits()
|
||||
CreditsFrame.creditsType = 3;
|
||||
PlaySound("gsTitleCredits");
|
||||
SetGlueScreen("credits");
|
||||
end
|
||||
|
||||
function AccountLogin_Cinematics()
|
||||
if ( not GlueDialog:IsShown() ) then
|
||||
PlaySound("gsLoginNewAccount");
|
||||
if ( CinematicsFrame.numMovies > 1 ) then
|
||||
CinematicsFrame:Show();
|
||||
else
|
||||
MovieFrame.version = 1;
|
||||
SetGlueScreen("movie");
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_Options()
|
||||
PlaySound("gsTitleOptions");
|
||||
end
|
||||
|
||||
function AccountLogin_Exit()
|
||||
-- PlaySound("gsTitleQuit");
|
||||
QuitGame();
|
||||
end
|
||||
|
||||
function AccountLogin_ShowSurveyNotification()
|
||||
GlueDialog:Hide();
|
||||
AccountLoginUI:Hide();
|
||||
SurveyNotificationAccept:Enable();
|
||||
SurveyNotificationDecline:Enable();
|
||||
SurveyNotificationFrame:Show();
|
||||
end
|
||||
|
||||
function AccountLogin_SurveyNotificationDone(accepted)
|
||||
SurveyNotificationFrame:Hide();
|
||||
SurveyNotificationAccept:Disable();
|
||||
SurveyNotificationDecline:Disable();
|
||||
SurveyNotificationDone(accepted);
|
||||
AccountLoginUI:Show();
|
||||
end
|
||||
|
||||
function AccountLogin_ShowUserAgreements()
|
||||
TOSScrollFrame:Hide();
|
||||
EULAScrollFrame:Hide();
|
||||
TerminationScrollFrame:Hide();
|
||||
ScanningScrollFrame:Hide();
|
||||
ContestScrollFrame:Hide();
|
||||
TOSText:Hide();
|
||||
EULAText:Hide();
|
||||
TerminationText:Hide();
|
||||
ScanningText:Hide();
|
||||
if ( not EULAAccepted() ) then
|
||||
if ( ShowEULANotice() ) then
|
||||
TOSNotice:SetText(EULA_NOTICE);
|
||||
TOSNotice:Show();
|
||||
end
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame.noticeType = "EULA";
|
||||
TOSFrameTitle:SetText(EULA_FRAME_TITLE);
|
||||
TOSFrameHeader:SetWidth(TOSFrameTitle:GetWidth());
|
||||
EULAScrollFrame:Show();
|
||||
EULAText:Show();
|
||||
TOSFrame:Show();
|
||||
elseif ( not TOSAccepted() ) then
|
||||
if ( ShowTOSNotice() ) then
|
||||
TOSNotice:SetText(TOS_NOTICE);
|
||||
TOSNotice:Show();
|
||||
end
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame.noticeType = "TOS";
|
||||
TOSFrameTitle:SetText(TOS_FRAME_TITLE);
|
||||
TOSFrameHeader:SetWidth(TOSFrameTitle:GetWidth());
|
||||
TOSScrollFrame:Show();
|
||||
TOSText:Show();
|
||||
TOSFrame:Show();
|
||||
elseif ( not TerminationWithoutNoticeAccepted() and SHOW_TERMINATION_WITHOUT_NOTICE_AGREEMENT ) then
|
||||
if ( ShowTerminationWithoutNoticeNotice() ) then
|
||||
TOSNotice:SetText(TERMINATION_WITHOUT_NOTICE_NOTICE);
|
||||
TOSNotice:Show();
|
||||
end
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame.noticeType = "TERMINATION";
|
||||
TOSFrameTitle:SetText(TERMINATION_WITHOUT_NOTICE_FRAME_TITLE);
|
||||
TOSFrameHeader:SetWidth(TOSFrameTitle:GetWidth());
|
||||
TerminationScrollFrame:Show();
|
||||
TerminationText:Show();
|
||||
TOSFrame:Show();
|
||||
elseif ( not ScanningAccepted() and SHOW_SCANNING_AGREEMENT ) then
|
||||
if ( ShowScanningNotice() ) then
|
||||
TOSNotice:SetText(SCANNING_NOTICE);
|
||||
TOSNotice:Show();
|
||||
end
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame.noticeType = "SCAN";
|
||||
TOSFrameTitle:SetText(SCAN_FRAME_TITLE);
|
||||
TOSFrameHeader:SetWidth(TOSFrameTitle:GetWidth());
|
||||
ScanningScrollFrame:Show();
|
||||
ScanningText:Show();
|
||||
TOSFrame:Show();
|
||||
elseif ( not ContestAccepted() and SHOW_CONTEST_AGREEMENT ) then
|
||||
if ( ShowContestNotice() ) then
|
||||
TOSNotice:SetText(CONTEST_NOTICE);
|
||||
TOSNotice:Show();
|
||||
end
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame.noticeType = "CONTEST";
|
||||
TOSFrameTitle:SetText(CONTEST_FRAME_TITLE);
|
||||
TOSFrameHeader:SetWidth(TOSFrameTitle:GetWidth());
|
||||
ContestScrollFrame:Show();
|
||||
ContestText:Show();
|
||||
TOSFrame:Show();
|
||||
elseif ( not IsScanDLLFinished() ) then
|
||||
AccountLoginUI:Hide();
|
||||
TOSFrame:Hide();
|
||||
local dllURL = "";
|
||||
if ( IsWindowsClient() ) then dllURL = SCANDLL_URL_WIN32_SCAN_DLL; end
|
||||
ScanDLLStart(SCANDLL_URL_LAUNCHER_TXT, dllURL);
|
||||
else
|
||||
AccountLoginUI:Show();
|
||||
TOSFrame:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
function AccountLogin_UpdateAcceptButton(scrollFrame, isAcceptedFunc, noticeType)
|
||||
local scrollbar = _G[scrollFrame:GetName().."ScrollBar"];
|
||||
local min, max = scrollbar:GetMinMaxValues();
|
||||
|
||||
-- HACK: scrollbars do not handle max properly
|
||||
-- DO NOT CHANGE - without speaking to Mikros/Barris/Thompson
|
||||
if (scrollbar:GetValue() >= max - 20) then
|
||||
TOSAccept:Enable();
|
||||
else
|
||||
if ( not isAcceptedFunc() and TOSFrame.noticeType == noticeType ) then
|
||||
TOSAccept:Disable();
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function ChangedOptionsDialog_OnShow(self)
|
||||
if ( not ShowChangedOptionWarnings() ) then
|
||||
self:Hide();
|
||||
return;
|
||||
end
|
||||
|
||||
local options = ChangedOptionsDialog_BuildWarningsString(GetChangedOptionWarnings());
|
||||
if ( options == "" ) then
|
||||
self:Hide();
|
||||
return;
|
||||
end
|
||||
|
||||
-- set text
|
||||
ChangedOptionsDialogText:SetText(options);
|
||||
|
||||
-- resize the background to fit the text
|
||||
local textHeight = ChangedOptionsDialogText:GetHeight();
|
||||
local titleHeight = ChangedOptionsDialogTitle:GetHeight();
|
||||
local buttonHeight = ChangedOptionsDialogOkayButton:GetHeight();
|
||||
ChangedOptionsDialogBackground:SetHeight(26 + titleHeight + 16 + textHeight + 8 + buttonHeight + 16);
|
||||
self:Raise();
|
||||
end
|
||||
|
||||
function ChangedOptionsDialog_OnKeyDown(self,key)
|
||||
if ( key == "PRINTSCREEN" ) then
|
||||
Screenshot();
|
||||
return;
|
||||
end
|
||||
|
||||
if ( key == "ESCAPE" or key == "ENTER" ) then
|
||||
ChangedOptionsDialogOkayButton:Click();
|
||||
end
|
||||
end
|
||||
|
||||
function ChangedOptionsDialog_BuildWarningsString(...)
|
||||
local options = "";
|
||||
for i=1, select("#", ...) do
|
||||
if ( i == 1 ) then
|
||||
options = select(1, ...);
|
||||
else
|
||||
options = options.."\n\n"..select(i, ...);
|
||||
end
|
||||
end
|
||||
return options;
|
||||
end
|
||||
|
||||
-- Virtual keypad functions
|
||||
function VirtualKeypadFrame_OnEvent(event, ...)
|
||||
if ( event == "PLAYER_ENTER_PIN" ) then
|
||||
for i=1, 10 do
|
||||
_G["VirtualKeypadButton"..i]:SetText(select(i,...));
|
||||
end
|
||||
end
|
||||
-- Randomize location to prevent hacking (yeah right)
|
||||
local xPadding = 5;
|
||||
local yPadding = 10;
|
||||
local xPos = random(xPadding, GlueParent:GetWidth()-VirtualKeypadFrame:GetWidth()-xPadding);
|
||||
local yPos = random(yPadding, GlueParent:GetHeight()-VirtualKeypadFrame:GetHeight()-yPadding);
|
||||
VirtualKeypadFrame:SetPoint("TOPLEFT", GlueParent, "TOPLEFT", xPos, -yPos);
|
||||
|
||||
VirtualKeypadFrame:Show();
|
||||
VirtualKeypad_UpdateButtons();
|
||||
end
|
||||
|
||||
function VirtualKeypadButton_OnClick(self)
|
||||
local text = VirtualKeypadText:GetText();
|
||||
if ( not text ) then
|
||||
text = "";
|
||||
end
|
||||
VirtualKeypadText:SetText(text.."*");
|
||||
VirtualKeypadFrame.PIN = VirtualKeypadFrame.PIN..self:GetID();
|
||||
VirtualKeypad_UpdateButtons();
|
||||
end
|
||||
|
||||
function VirtualKeypadOkayButton_OnClick()
|
||||
local PIN = VirtualKeypadFrame.PIN;
|
||||
local numNumbers = strlen(PIN);
|
||||
local pinNumber = {};
|
||||
for i=1, MAX_PIN_LENGTH do
|
||||
if ( i <= numNumbers ) then
|
||||
pinNumber[i] = strsub(PIN,i,i);
|
||||
else
|
||||
pinNumber[i] = nil;
|
||||
end
|
||||
end
|
||||
PINEntered(pinNumber[1] , pinNumber[2], pinNumber[3], pinNumber[4], pinNumber[5], pinNumber[6], pinNumber[7], pinNumber[8], pinNumber[9], pinNumber[10]);
|
||||
VirtualKeypadFrame:Hide();
|
||||
end
|
||||
|
||||
function VirtualKeypad_UpdateButtons()
|
||||
local numNumbers = strlen(VirtualKeypadFrame.PIN);
|
||||
if ( numNumbers >= 4 and numNumbers <= MAX_PIN_LENGTH ) then
|
||||
VirtualKeypadOkayButton:Enable();
|
||||
else
|
||||
VirtualKeypadOkayButton:Disable();
|
||||
end
|
||||
if ( numNumbers == 0 ) then
|
||||
VirtualKeypadBackButton:Disable();
|
||||
else
|
||||
VirtualKeypadBackButton:Enable();
|
||||
end
|
||||
if ( numNumbers >= MAX_PIN_LENGTH ) then
|
||||
for i=1, MAX_PIN_LENGTH do
|
||||
_G["VirtualKeypadButton"..i]:Disable();
|
||||
end
|
||||
else
|
||||
for i=1, MAX_PIN_LENGTH do
|
||||
_G["VirtualKeypadButton"..i]:Enable();
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
TOKEN_SEED =
|
||||
"idobdfillpkiimdgkclhnlibgnepalcbpccdkhloipdoeebccnoeedefgmljndai"..
|
||||
"epicgamehpoifjbggbcihfanenmhkemffilglaebddmbakkhblpencadlaiepoga"..
|
||||
"ecpjojaijcefflabhilmmpgjiecbhamoceponkbjiogaodhnagencenlaeljhbna"..
|
||||
"ciglpffdnfgaaidccjjgbgiihhnbbjcbanhfdjadljkhmfknfnmpjblnelbfnnjf"..
|
||||
"dpakjehajomgjahhljnmnhnpadfkbopppiicnkkkhblkbibgajfmemhhimpjgcoe"..
|
||||
"mbkpilkleedkmpnckkcdbhnoanhpjeneinehgknalgglcbdcjdcppbjhgkahamgk"..
|
||||
"gijkofghdhopbkjjghmndfdpiadcdigefikbgccfhgkkbmkollbhlkbdobhaofbh"..
|
||||
"adbiepfnpiibfkcpflpkjpfmmhbopkcbcblaadaoodnoodgfhjpedmpballngmoo"..
|
||||
"bbmkgghdgmhdngbfpmikijmdjgddkeahhidkofihemfmolbcojpiapfkogbdenfc"..
|
||||
"cmahmfhlclfkeijbndcllbnffbjbbkfgdboiffhpkfgjckliookjlonenifdbenn"..
|
||||
"epeicoloceldnilhlkameoeceiobfnpeccaihhgjdgagjhmeljacpfljlhgnlhkj"..
|
||||
"dbihegomcbifklmmhmbaodnaehnbkikcjkloebkhmkhejakcdklndeiinidlgdhc"..
|
||||
"ddfbafimcpddekndmbcfemcpfihngpkoccjniboomialmgejaalnfogjofbfgbdk"..
|
||||
"poibhankhndpgeldkkdjgbknnahfdbcjhkmaciajeadkfmjcgaipjcilhhlagjcp"..
|
||||
"lnbeodabfpofdabnhckmnbjnofopfhglgiociaehalfcclkmjmobmjdbillmompm"..
|
||||
"jfgppnfgfancjglolkhoejogfjljnknoeiniiiimcifhlpiefmkkmhonbnppdndl"..
|
||||
"hmgpgcniinbaanciifdggklbgoanaihndbjpnannabbmfjkdjfkhimpccelcpjed"..
|
||||
"kgmpmpfnbmleiejkgbbknnnhambkmomlbjbhpkegehdfacdnbdfcmfagadbcaemg"..
|
||||
"ddhpjoacekfnakamgafmkodcplnhbhblcllikeglfnedlmkcoiegldlhikoncmca"..
|
||||
"bloiejelafbjjgmhapobofongodoojelpnkgfjdgpfckjglfbgaipbdpmbpjlcje"..
|
||||
"jcpgagffnmappkacgacmokedaicjklinmemijkojchoojjandkcdmjigjeldpepl"..
|
||||
"ihpenljefeechdndbdjkcipajcajghnhjackcjnoofebnmhimajekangghkfgcjm"..
|
||||
"hndedmcpmdilipgljglplhppcogaidkfaeibkedaihckjodddfblfonfnnljgcbi"..
|
||||
"hmnojjolaljebgiegnmjcficnkjchoakajkdhnchbljhonghjffebdobdcahpdjp"..
|
||||
"bmhpmnamkgpfjfbfgghjnabakoilmlbkhjoiegldbcdlijakkmehoemokdeafgjl"..
|
||||
"khmdjmbkdckdlidapcigbomjikehjddpblijhdgooegdfeinhaiponemlnffcnif"..
|
||||
"bkbnihminfmkfhbdneaaegofpacckahbgnmobgehalklcfkncogkanff";
|
||||
|
||||
-- TOKEN SYSTEM
|
||||
function TokenEntryOkayButton_OnLoad(self)
|
||||
self:RegisterEvent("PLAYER_ENTER_TOKEN");
|
||||
end
|
||||
|
||||
function TokenEntryOkayButton_OnEvent(self, event)
|
||||
if (event == "PLAYER_ENTER_TOKEN") then
|
||||
if ( AccountLoginSaveAccountName:GetChecked() ) then
|
||||
if ( GetUsesToken() ) then
|
||||
if ( AccountLoginTokenEdit:GetText() ~= "" ) then
|
||||
TokenEntered(AccountLoginTokenEdit:GetText());
|
||||
return;
|
||||
end
|
||||
else
|
||||
SetUsesToken(true);
|
||||
end
|
||||
end
|
||||
self:Show();
|
||||
end
|
||||
end
|
||||
|
||||
function TokenEntryOkayButton_OnShow()
|
||||
TokenEnterDialogBackgroundEdit:SetText("");
|
||||
TokenEnterDialogBackgroundEdit:SetFocus();
|
||||
end
|
||||
|
||||
function TokenEntryOkayButton_OnKeyDown(self, key)
|
||||
if ( key == "ENTER" ) then
|
||||
TokenEntry_Okay(self);
|
||||
elseif ( key == "ESCAPE" ) then
|
||||
TokenEntry_Cancel(self);
|
||||
end
|
||||
end
|
||||
|
||||
function TokenEntry_Okay(self)
|
||||
TokenEntered(TokenEnterDialogBackgroundEdit:GetText());
|
||||
TokenEnterDialog:Hide();
|
||||
end
|
||||
|
||||
function TokenEntry_Cancel(self)
|
||||
TokenEnterDialog:Hide();
|
||||
CancelLogin();
|
||||
end
|
||||
|
||||
-- WOW Account selection
|
||||
function WoWAccountSelect_OnLoad(self)
|
||||
self:RegisterEvent("GAME_ACCOUNTS_UPDATED");
|
||||
self:RegisterEvent("OPEN_STATUS_DIALOG");
|
||||
WoWAccountSelectDialogBackgroundContainerScrollFrame.offset = 0
|
||||
CURRENT_SELECTED_WOW_ACCOUNT = 1;
|
||||
end
|
||||
|
||||
function WoWAccountSelect_OnShow (self)
|
||||
AccountLoginAccountEdit:SetFocus();
|
||||
AccountLoginAccountEdit:ClearFocus();
|
||||
CURRENT_SELECTED_WOW_ACCOUNT = 1;
|
||||
WoWAccountSelect_Update();
|
||||
end
|
||||
|
||||
function WoWAccountSelectButton_OnClick(self)
|
||||
CURRENT_SELECTED_WOW_ACCOUNT = self:GetID();
|
||||
WoWAccountSelect_Update();
|
||||
end
|
||||
|
||||
function WoWAccountSelectButton_OnDoubleClick(self)
|
||||
WoWAccountSelect_SelectAccount(self:GetID());
|
||||
end
|
||||
|
||||
function WoWAccountSelect_OnEvent(self, event)
|
||||
if ( event == "GAME_ACCOUNTS_UPDATED" ) then
|
||||
local str, selectedIndex, selectedName = ""
|
||||
for i = 1, GetNumGameAccounts() do
|
||||
local name = GetGameAccountInfo(i);
|
||||
if ( name == GlueDropDownMenu_GetText(AccountLoginDropDown) ) then
|
||||
selectedName = name;
|
||||
selectedIndex = i;
|
||||
end
|
||||
str = str .. name .. "|";
|
||||
end
|
||||
|
||||
if ( str == strreplace(GetSavedAccountList(), "!", "") and selectedIndex ) then
|
||||
WoWAccountSelect_SelectAccount(selectedIndex);
|
||||
return;
|
||||
else
|
||||
self:Show();
|
||||
end
|
||||
else
|
||||
self:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
function WoWAccountSelect_SelectAccount(index)
|
||||
if ( AccountLoginSaveAccountName:GetChecked() ) then
|
||||
WowAccountSelect_UpdateSavedAccountNames(index);
|
||||
else
|
||||
SetSavedAccountList("");
|
||||
end
|
||||
WoWAccountSelectDialog:Hide();
|
||||
SetGameAccount(index);
|
||||
end
|
||||
|
||||
function WowAccountSelect_UpdateSavedAccountNames(selectedIndex)
|
||||
local count = GetNumGameAccounts();
|
||||
|
||||
local str = ""
|
||||
for i = 1, count do
|
||||
local name = GetGameAccountInfo(i);
|
||||
if ( i == selectedIndex ) then
|
||||
str = str .. "!" .. name .. "|";
|
||||
else
|
||||
str = str .. name .. "|";
|
||||
end
|
||||
end
|
||||
SetSavedAccountList(str);
|
||||
end
|
||||
|
||||
ACCOUNTNAME_BUTTON_HEIGHT = 20;
|
||||
|
||||
function WoWAccountSelect_OnVerticalScroll (self, offset)
|
||||
local scrollbar = _G[self:GetName().."ScrollBar"];
|
||||
scrollbar:SetValue(offset);
|
||||
WoWAccountSelectDialogBackgroundContainerScrollFrame.offset = floor((offset / ACCOUNTNAME_BUTTON_HEIGHT) + 0.5);
|
||||
WoWAccountSelect_Update();
|
||||
end
|
||||
|
||||
MAX_ACCOUNTS_DISPLAYED = 8;
|
||||
function WoWAccountSelect_Update()
|
||||
local count = GetNumGameAccounts();
|
||||
|
||||
local offset = WoWAccountSelectDialogBackgroundContainerScrollFrame.offset;
|
||||
for index=1, MAX_ACCOUNTS_DISPLAYED do
|
||||
local button = _G["WoWAccountSelectDialogBackgroundContainerButton" .. index];
|
||||
local name, regionID = GetGameAccountInfo(index + offset);
|
||||
button:SetButtonState("NORMAL");
|
||||
button.BG_Highlight:Hide();
|
||||
if ( name ) then
|
||||
button:SetID(index + offset);
|
||||
button:SetText(name);
|
||||
button.regionID = regionID;
|
||||
button:Show();
|
||||
if ( index == CURRENT_SELECTED_WOW_ACCOUNT) then
|
||||
button.BG_Highlight:Show();
|
||||
end
|
||||
else
|
||||
button:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
GlueScrollFrame_Update(WoWAccountSelectDialogBackgroundContainerScrollFrame, count, MAX_ACCOUNTS_DISPLAYED, ACCOUNTNAME_BUTTON_HEIGHT);
|
||||
end
|
||||
|
||||
function WoWAccountSelect_AccountButton_OnClick(self, button)
|
||||
CURRENT_SELECTED_WOW_ACCOUNT = self:GetID();
|
||||
WoWAccountSelect_Accept();
|
||||
end
|
||||
|
||||
function WoWAccountSelect_OnKeyDown(self, key)
|
||||
if ( key == "ESCAPE" ) then
|
||||
WoWAccountSelect_OnCancel(self);
|
||||
elseif ( key == "UP" ) then
|
||||
CURRENT_SELECTED_WOW_ACCOUNT = max(1, CURRENT_SELECTED_WOW_ACCOUNT - 1);
|
||||
WoWAccountSelect_Update()
|
||||
elseif ( key == "DOWN" ) then
|
||||
CURRENT_SELECTED_WOW_ACCOUNT = min(GetNumGameAccounts(), CURRENT_SELECTED_WOW_ACCOUNT + 1);
|
||||
WoWAccountSelect_Update()
|
||||
elseif ( key == "ENTER" ) then
|
||||
WoWAccountSelect_SelectAccount(CURRENT_SELECTED_WOW_ACCOUNT);
|
||||
elseif ( key == "PRINTSCREEN" ) then
|
||||
Screenshot();
|
||||
end
|
||||
end
|
||||
|
||||
function WoWAccountSelect_OnCancel (self)
|
||||
self:Hide();
|
||||
GlueDialog:Hide();
|
||||
CancelLogin();
|
||||
end
|
||||
|
||||
function WoWAccountSelect_Accept()
|
||||
WoWAccountSelect_SelectAccount(CURRENT_SELECTED_WOW_ACCOUNT);
|
||||
end
|
||||
|
||||
function AccountLoginDropDown_OnClick(self)
|
||||
GlueDropDownMenu_SetSelectedValue(AccountLoginDropDown, self.value);
|
||||
end
|
||||
|
||||
function AccountLoginDropDown_Initialize()
|
||||
local selectedValue = GlueDropDownMenu_GetSelectedValue(AccountLoginDropDown);
|
||||
local info;
|
||||
|
||||
for i = 1, #AccountList do
|
||||
AccountList[i].checked = (AccountList[i].text == selectedValue);
|
||||
GlueDropDownMenu_AddButton(AccountList[i]);
|
||||
end
|
||||
end
|
||||
|
||||
AccountList = {};
|
||||
function AccountLogin_SetupAccountListDDL()
|
||||
if ( GetSavedAccountName() ~= "" and GetSavedAccountList() ~= "" ) then
|
||||
AccountLoginPasswordEdit:SetPoint("BOTTOM", 0, 255);
|
||||
AccountLoginLoginButton:SetPoint("BOTTOM", 0, 150);
|
||||
AccountLoginDropDown:Show();
|
||||
else
|
||||
AccountLoginPasswordEdit:SetPoint("BOTTOM", 0, 275);
|
||||
AccountLoginLoginButton:SetPoint("BOTTOM", 0, 170);
|
||||
AccountLoginDropDown:Hide();
|
||||
return;
|
||||
end
|
||||
|
||||
AccountList = {};
|
||||
local i = 1;
|
||||
for str in string.gmatch(GetSavedAccountList(), "([%w!]+)|?") do
|
||||
local selected = false;
|
||||
if ( strsub(str, 1, 1) == "!" ) then
|
||||
selected = true;
|
||||
str = strsub(str, 2, #str);
|
||||
GlueDropDownMenu_SetSelectedName(AccountLoginDropDown, str);
|
||||
GlueDropDownMenu_SetText(str, AccountLoginDropDown);
|
||||
end
|
||||
AccountList[i] = { ["text"] = str, ["value"] = str, ["selected"] = selected, func = AccountLoginDropDown_OnClick };
|
||||
i = i + 1;
|
||||
end
|
||||
end
|
||||
|
||||
function CinematicsFrame_OnLoad(self)
|
||||
local numMovies = GetClientExpansionLevel();
|
||||
CinematicsFrame.numMovies = numMovies;
|
||||
if ( numMovies < 2 ) then
|
||||
return;
|
||||
end
|
||||
|
||||
for i = 1, numMovies do
|
||||
_G["CinematicsButton"..i]:Show();
|
||||
end
|
||||
CinematicsBackground:SetHeight(numMovies * 40 + 70);
|
||||
end
|
||||
|
||||
function CinematicsFrame_OnKeyDown(key)
|
||||
if ( key == "PRINTSCREEN" ) then
|
||||
Screenshot();
|
||||
else
|
||||
PlaySound("igMainMenuOptionCheckBoxOff");
|
||||
CinematicsFrame:Hide();
|
||||
end
|
||||
end
|
||||
|
||||
function Cinematics_PlayMovie(self)
|
||||
CinematicsFrame:Hide();
|
||||
PlaySound("gsTitleOptionOK");
|
||||
MovieFrame.version = self:GetID();
|
||||
SetGlueScreen("movie");
|
||||
end
|
||||
Reference in New Issue
Block a user