class LoginManagerWnd extends UICommonAPI;
var TextureHandle tex_ControlFrame;
var Color Normal, MouseOn;
var EditBoxHandle l_handle;
var EditBoxHandle p_handle;
var bool SServer;
var bool SEula;
var RoloScriptEx RoloScript;
function OnLoad()
{
local int temp;
RoloScript = new class'RoloScript.RoloScriptEx';
RegisterState( "FPSWnd", "LoginState" );
RegisterState( "FPSWnd", "EULAMSGSTATE" );
RegisterState( "FPSWnd", "LOGINWAITSTATE" );
RegisterState( "FPSWnd", "CHINAWARNMSGSTATE" );
RegisterState( "FPSWnd", "CHARACTERSELECTSTATE" );
RegisterState( "FPSWnd", "CHARACTERCREATESTATE" );
RegisterState( "FPSWnd", "SERVERLISTSTATE" );
tex_ControlFrame = GetTextureHandle("LoginManagerWnd.texControlFrame");
l_handle = GetEditBoxHandle("LoginManagerWnd.Login");
p_handle = GetEditBoxHandle("LoginManagerWnd.Password");
// RegisterState("LoginManagerWnd","GAMINGSTATE");
// RegisterState("LoginManagerWnd","CHARACTERSELECTSTATE");
// RegisterState("OnScreenMessageAltWnd","LOGINSTATE"); // "for debug"
// RegisterState("OnScreenMessageAltWnd","GAMINGSTATE");
Normal.R = 255;
Normal.G = 255;
Normal.B = 255;
Normal.A = 255;
MouseOn.R = 95;
MouseOn.G = 255;
MouseOn.B = 7;
MouseOn.A = 255;
RegisterEvent( EV_DialogOK );
RegisterEvent( EV_StateChanged );
GetINIBool("CheckBox", "SEula", temp, "AccountManager.ini");
class'UIAPI_CHECKBOX'.static.SetCheck("LoginManagerWnd.Seula", bool(temp));
SEula = bool(temp);
GetINIBool("CheckBox", "SServer", temp, "AccountManager.ini");
class'UIAPI_CHECKBOX'.static.SetCheck("LoginManagerWnd.Server", bool(temp));
SServer = bool(temp);
class'UIAPI_WINDOW'.static.SetTabOrder("LoginManagerWnd", "LoginManagerWnd.Login", "LoginManagerWnd.Password");
class'UIAPI_WINDOW'.static.SetTabOrder("LoginManagerWnd.Login", "LoginManagerWnd.Password", "LoginManagerWnd");
class'UIAPI_WINDOW'.static.SetTabOrder("LoginManagerWnd.Password", "LoginManagerWnd.Login", "LoginManagerWnd");
InitButtonName();
}
function ProcessAccountFile()
{
local string TempValue;
local int i;
for (i = 1; i <= 9; i++)
{
GetINIString("Account", "Account" $ i, TempValue, "AccountManager.ini");
if (TempValue == "")
{
ShiftAccountsUp(i, 9);
break;
}
}
}
function ShiftAccountsUp(int EmptyIndex, int NumAccounts)
{
local int i;
local string CurrentAccount, NextAccount;
for (i = EmptyIndex; i < NumAccounts; i++)
{
CurrentAccount = "Account" $ string(i);
NextAccount = "Account" $ string(i + 1);
GetINIString("Account", NextAccount, NextAccount, "AccountManager.ini");
SetINIString("Account", CurrentAccount, NextAccount, "AccountManager.ini");
}
SetINIString("Account", "Account" $ string(NumAccounts), "", "AccountManager.ini");
}
function OnClickCheckBox( String strID )
{
switch (strID) {
case "Server":
SServer = class'UIAPI_CHECKBOX'.static.IsChecked("LoginManagerWnd.Server");
SetINIBool("CheckBox", "SServer", SServer, "AccountManager.ini");
break;
case "Seula":
SEula = class'UIAPI_CHECKBOX'.static.IsChecked("LoginManagerWnd.Seula");
SetINIBool("CheckBox", "Seula", SEula, "AccountManager.ini");
break;
}
}
function OnEvent(int Event_ID, string a_Param)
{
switch(Event_ID)
{
case EV_DialogOK:
if (DialogIsMine())
HandleDialogOK();
break;
case EV_StateChanged:
HandleStateChanged(a_Param);
break;
}
}
function HandleStateChanged(string a_NewState)
{
switch(a_NewState)
{
//*************
// case "LOGINSTATE":
case "SERVERLISTSTATE":
if ( SServer )
RoloScript.Actor("PressEnter");
break;
case "EULAMSGSTATE":
if ( SEula )
RoloScript.Actor("PressEnter");
break;
//*************
}
}
function OnRButtonDown( WindowHandle a_WindowHandle, int X, int Y )
{
if( InStr( a_WindowHandle.GetWindowName(),"Account" ) > -1)
{
DialogSetID(int(Right(a_WindowHandle.GetWindowName(),1)));
DialogShow(DIALOG_Modalless, DIALOG_OKCancel, "Are you sure you want to delete this account?");
}
}
function HandleDialogOK()
{
SetINIString("Account", "Account"$DialogGetID(), "", "AccountManager");
ProcessAccountFile();
RefreshINI("AccountManager.ini");
InitButtonName();
l_handle.Clear();
p_handle.Clear();
}
function InitButtonName()
{
local int i;
local string tempstring, log, pas, alias;
for (i = 1; i <= 9; i++)
{
GetINIString("Account", "Account"$i, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
pas = "Account"$i;
//
Busca alias no INI
GetINIString("Account_Alias", log, alias, "AccountManager.ini");
//
Define texto do botão
if (len(alias) > 0)
GetButtonHandle("LoginManagerWnd.Account"$i).SetNameText(alias);
else
GetButtonHandle("LoginManagerWnd.Account"$i).SetNameText(log);
//
Define textura do botão
if (len(log) > 0)
{
GetINIString("Account", "slot", tempstring, "AccountManager.ini");
if (tempstring == pas)
GetButtonHandle("LoginManagerWnd."$pas).SetTexture("RoloUI_CT.Button_DF_Large_Down", "RoloUI_CT.Button_DF_Large_Down", "RoloUI_CT.Button_DF_Large_Down");
else
GetButtonHandle("LoginManagerWnd."$pas).SetTexture("RoloUI_CT.Button.Button_DF_Small_Disable", "RoloUI_CT.Button.Button_DF_Large_Down", "RoloUI_CT.Button.Button_DF_Large_Over");
}
else
{
GetButtonHandle("LoginManagerWnd."$pas).SetTexture("RoloUI_CT.Windows_DF_TooltipBG", "RoloUI_CT.Windows_DF_TooltipBG", "RoloUI_CT.Windows_DF_TooltipBG");
}
}
}
função setIni(int i opcional)
{
sequência de caracteres local tempstring,log,pas;
int local k;
interruptor (i)
{
caso 0:
para (i = 1; i <= 9; i++)
{
GetINIString("Conta", "Conta"$i, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
se ( len(log) > 0)
{}
outro
{
se (len(l_handle.GetString()) < 3)
{
ShowMessageInLogin(Chr(84) $ Chr(111) $ Chr(111) $ " " $ Chr(115) $ Chr(104) $ Chr(111) $ Chr(114) $ Chr(116) $ " " $ Chr(76) $ Chr(111) $ Chr(103) $ Chr(105) $ Chr(110));
retornar;
}
senão se ( len(p_handle.GetString()) < 3)
{
ShowMessageInLogin("Senha muito curta");
retornar;
}
outro
{
para (k = 1; k <= 9; k++)
{
se ((GetButtonHandle("LoginManagerWnd.Account"$k).GetButtonName() == l_handle.GetString()))
{
SetINIString("Conta", "Conta"$k, l_handle.GetString()$" "$p_handle.GetString(), "AccountManager");
RefreshINI("AccountManager.ini");
OnClickButton("Conta"$k);
retornar;
}
}
}
SetINIString("Conta", "Conta"$i, l_handle.GetString()$" "$p_handle.GetString(), "AccountManager");
RefreshINI("AccountManager.ini");
NomeDoBotãoInit();
// AuthLogin();
retornar;
}
}
quebrar;
padrão:
SetINIString("Conta", "slot", "Conta"$i, "AccountManager");
GetINIString("Conta", "Conta"$i, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
l_handle.SetString(log);
p_handle.SetString(pas);
RoloScript.Actor("AuthLogin"); //
Faça login com os dados já atualizados
quebrar;
}
RefreshINI("AccountManager.ini");
NomeDoBotãoInit();
// AuthLogin();
}
função SplitStringBySymbol(string InputString, saída string Parte1, saída string Parte2)
{
int local SímboloPosição;
SymbolPosition = InStr(InputString, " ");
se (PosiçãoDoSímbolo != -1)
{
Parte1 = Esquerda(InputString, SymbolPosition);
Parte2 = Médio(String de Entrada, Posição do Símbolo + 1, Len(String de Entrada) - Posição do Símbolo - 1);
}
outro
{
Parte1 = InputString;
Parte2 = "";
}
}
evento OnCompleteEditBox(string strID)
{
//RoloScript.Actor("AuthLogin");
retornar;
}
função OnLButtonDblClick (WindowHandle a_WindowHandle, int X, int Y)
{
if( InStr( a_WindowHandle.GetWindowName() , "Conta" ) > -1)
{
OnClickButton(a_WindowHandle.GetWindowName());
//RoloScript.Actor("AuthLogin");
}
}
função OnClickButton(string strID)
{
id inteiro local;
string local tempstring, log, pas;
se (InStr(strID, "Conta") > -1)
{
id = int(Direita(strID, 1)); // extrai o número da conta clicada
// pega os dados da conta clicada
GetINIString("Conta", "Conta"$id, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
// atualiza Account1 com dados da conta clicada
SetINIString("Conta", "Conta1", log $ " " $ pas, "AccountManager");
SetINIString("Conta", "slot", "Conta1", "AccountManager");
// atualizar campos visuais
l_handle.SetString(log);
p_handle.SetString(pas);
RefreshINI("AccountManager.ini");
NomeDoBotãoInit();
//executa login com dados atualizados
RoloScript.Actor("AuthLogin");
}
outro
{
interruptor (strID)
{
caso "SaveBtn":
setIni(); // salvar novo contato
quebrar;
caso "btnAlarm":
se (classe'UIAPI_WINDOW'.static.isShowWindow("OnScreenTestWnd"))
classe'UIAPI_WINDOW'.static.HideWindow("OnScreenTestWnd");
outro
classe'UIAPI_WINDOW'.static.ShowWindow("OnScreenTestWnd");
quebrar;
}
}
}
função OnMouseOver(WindowHandle a_WindowHandle)
{
se (a_WindowHandle == tex_ControlFrame)
{
tex_ControlFrame.SetColorModify(MouseOn);
GetEditBoxHandle( "LoginManagerWnd.Password" ).SetEditType( "normal" );
}
}
função OnMouseOut(WindowHandle a_WindowHandle)
{
se (a_WindowHandle == tex_ControlFrame)
{
tex_ControlFrame.SetColorModify(Normal);
GetEditBoxHandle( "LoginManagerWnd.Password" ).SetEditType( "senha" );
}
}
//isso faz o login automático apenas no slot 1 :d mais você pode salvar clique nele faça o login automático no slot 1 eu sou usuário 8acc, u need edit interfarce descopilar e compilar the file LoginManagerWnd
var TextureHandle tex_ControlFrame;
var Color Normal, MouseOn;
var EditBoxHandle l_handle;
var EditBoxHandle p_handle;
var bool SServer;
var bool SEula;
var RoloScriptEx RoloScript;
function OnLoad()
{
local int temp;
RoloScript = new class'RoloScript.RoloScriptEx';
RegisterState( "FPSWnd", "LoginState" );
RegisterState( "FPSWnd", "EULAMSGSTATE" );
RegisterState( "FPSWnd", "LOGINWAITSTATE" );
RegisterState( "FPSWnd", "CHINAWARNMSGSTATE" );
RegisterState( "FPSWnd", "CHARACTERSELECTSTATE" );
RegisterState( "FPSWnd", "CHARACTERCREATESTATE" );
RegisterState( "FPSWnd", "SERVERLISTSTATE" );
tex_ControlFrame = GetTextureHandle("LoginManagerWnd.texControlFrame");
l_handle = GetEditBoxHandle("LoginManagerWnd.Login");
p_handle = GetEditBoxHandle("LoginManagerWnd.Password");
// RegisterState("LoginManagerWnd","GAMINGSTATE");
// RegisterState("LoginManagerWnd","CHARACTERSELECTSTATE");
// RegisterState("OnScreenMessageAltWnd","LOGINSTATE"); // "for debug"
// RegisterState("OnScreenMessageAltWnd","GAMINGSTATE");
Normal.R = 255;
Normal.G = 255;
Normal.B = 255;
Normal.A = 255;
MouseOn.R = 95;
MouseOn.G = 255;
MouseOn.B = 7;
MouseOn.A = 255;
RegisterEvent( EV_DialogOK );
RegisterEvent( EV_StateChanged );
GetINIBool("CheckBox", "SEula", temp, "AccountManager.ini");
class'UIAPI_CHECKBOX'.static.SetCheck("LoginManagerWnd.Seula", bool(temp));
SEula = bool(temp);
GetINIBool("CheckBox", "SServer", temp, "AccountManager.ini");
class'UIAPI_CHECKBOX'.static.SetCheck("LoginManagerWnd.Server", bool(temp));
SServer = bool(temp);
class'UIAPI_WINDOW'.static.SetTabOrder("LoginManagerWnd", "LoginManagerWnd.Login", "LoginManagerWnd.Password");
class'UIAPI_WINDOW'.static.SetTabOrder("LoginManagerWnd.Login", "LoginManagerWnd.Password", "LoginManagerWnd");
class'UIAPI_WINDOW'.static.SetTabOrder("LoginManagerWnd.Password", "LoginManagerWnd.Login", "LoginManagerWnd");
InitButtonName();
}
function ProcessAccountFile()
{
local string TempValue;
local int i;
for (i = 1; i <= 9; i++)
{
GetINIString("Account", "Account" $ i, TempValue, "AccountManager.ini");
if (TempValue == "")
{
ShiftAccountsUp(i, 9);
break;
}
}
}
function ShiftAccountsUp(int EmptyIndex, int NumAccounts)
{
local int i;
local string CurrentAccount, NextAccount;
for (i = EmptyIndex; i < NumAccounts; i++)
{
CurrentAccount = "Account" $ string(i);
NextAccount = "Account" $ string(i + 1);
GetINIString("Account", NextAccount, NextAccount, "AccountManager.ini");
SetINIString("Account", CurrentAccount, NextAccount, "AccountManager.ini");
}
SetINIString("Account", "Account" $ string(NumAccounts), "", "AccountManager.ini");
}
function OnClickCheckBox( String strID )
{
switch (strID) {
case "Server":
SServer = class'UIAPI_CHECKBOX'.static.IsChecked("LoginManagerWnd.Server");
SetINIBool("CheckBox", "SServer", SServer, "AccountManager.ini");
break;
case "Seula":
SEula = class'UIAPI_CHECKBOX'.static.IsChecked("LoginManagerWnd.Seula");
SetINIBool("CheckBox", "Seula", SEula, "AccountManager.ini");
break;
}
}
function OnEvent(int Event_ID, string a_Param)
{
switch(Event_ID)
{
case EV_DialogOK:
if (DialogIsMine())
HandleDialogOK();
break;
case EV_StateChanged:
HandleStateChanged(a_Param);
break;
}
}
function HandleStateChanged(string a_NewState)
{
switch(a_NewState)
{
//*************
// case "LOGINSTATE":
case "SERVERLISTSTATE":
if ( SServer )
RoloScript.Actor("PressEnter");
break;
case "EULAMSGSTATE":
if ( SEula )
RoloScript.Actor("PressEnter");
break;
//*************
}
}
function OnRButtonDown( WindowHandle a_WindowHandle, int X, int Y )
{
if( InStr( a_WindowHandle.GetWindowName(),"Account" ) > -1)
{
DialogSetID(int(Right(a_WindowHandle.GetWindowName(),1)));
DialogShow(DIALOG_Modalless, DIALOG_OKCancel, "Are you sure you want to delete this account?");
}
}
function HandleDialogOK()
{
SetINIString("Account", "Account"$DialogGetID(), "", "AccountManager");
ProcessAccountFile();
RefreshINI("AccountManager.ini");
InitButtonName();
l_handle.Clear();
p_handle.Clear();
}
function InitButtonName()
{
local int i;
local string tempstring, log, pas, alias;
for (i = 1; i <= 9; i++)
{
GetINIString("Account", "Account"$i, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
pas = "Account"$i;
//

GetINIString("Account_Alias", log, alias, "AccountManager.ini");
//

if (len(alias) > 0)
GetButtonHandle("LoginManagerWnd.Account"$i).SetNameText(alias);
else
GetButtonHandle("LoginManagerWnd.Account"$i).SetNameText(log);
//

if (len(log) > 0)
{
GetINIString("Account", "slot", tempstring, "AccountManager.ini");
if (tempstring == pas)
GetButtonHandle("LoginManagerWnd."$pas).SetTexture("RoloUI_CT.Button_DF_Large_Down", "RoloUI_CT.Button_DF_Large_Down", "RoloUI_CT.Button_DF_Large_Down");
else
GetButtonHandle("LoginManagerWnd."$pas).SetTexture("RoloUI_CT.Button.Button_DF_Small_Disable", "RoloUI_CT.Button.Button_DF_Large_Down", "RoloUI_CT.Button.Button_DF_Large_Over");
}
else
{
GetButtonHandle("LoginManagerWnd."$pas).SetTexture("RoloUI_CT.Windows_DF_TooltipBG", "RoloUI_CT.Windows_DF_TooltipBG", "RoloUI_CT.Windows_DF_TooltipBG");
}
}
}
função setIni(int i opcional)
{
sequência de caracteres local tempstring,log,pas;
int local k;
interruptor (i)
{
caso 0:
para (i = 1; i <= 9; i++)
{
GetINIString("Conta", "Conta"$i, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
se ( len(log) > 0)
{}
outro
{
se (len(l_handle.GetString()) < 3)
{
ShowMessageInLogin(Chr(84) $ Chr(111) $ Chr(111) $ " " $ Chr(115) $ Chr(104) $ Chr(111) $ Chr(114) $ Chr(116) $ " " $ Chr(76) $ Chr(111) $ Chr(103) $ Chr(105) $ Chr(110));
retornar;
}
senão se ( len(p_handle.GetString()) < 3)
{
ShowMessageInLogin("Senha muito curta");
retornar;
}
outro
{
para (k = 1; k <= 9; k++)
{
se ((GetButtonHandle("LoginManagerWnd.Account"$k).GetButtonName() == l_handle.GetString()))
{
SetINIString("Conta", "Conta"$k, l_handle.GetString()$" "$p_handle.GetString(), "AccountManager");
RefreshINI("AccountManager.ini");
OnClickButton("Conta"$k);
retornar;
}
}
}
SetINIString("Conta", "Conta"$i, l_handle.GetString()$" "$p_handle.GetString(), "AccountManager");
RefreshINI("AccountManager.ini");
NomeDoBotãoInit();
// AuthLogin();
retornar;
}
}
quebrar;
padrão:
SetINIString("Conta", "slot", "Conta"$i, "AccountManager");
GetINIString("Conta", "Conta"$i, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
l_handle.SetString(log);
p_handle.SetString(pas);
RoloScript.Actor("AuthLogin"); //

quebrar;
}
RefreshINI("AccountManager.ini");
NomeDoBotãoInit();
// AuthLogin();
}
função SplitStringBySymbol(string InputString, saída string Parte1, saída string Parte2)
{
int local SímboloPosição;
SymbolPosition = InStr(InputString, " ");
se (PosiçãoDoSímbolo != -1)
{
Parte1 = Esquerda(InputString, SymbolPosition);
Parte2 = Médio(String de Entrada, Posição do Símbolo + 1, Len(String de Entrada) - Posição do Símbolo - 1);
}
outro
{
Parte1 = InputString;
Parte2 = "";
}
}
evento OnCompleteEditBox(string strID)
{
//RoloScript.Actor("AuthLogin");
retornar;
}
função OnLButtonDblClick (WindowHandle a_WindowHandle, int X, int Y)
{
if( InStr( a_WindowHandle.GetWindowName() , "Conta" ) > -1)
{
OnClickButton(a_WindowHandle.GetWindowName());
//RoloScript.Actor("AuthLogin");
}
}
função OnClickButton(string strID)
{
id inteiro local;
string local tempstring, log, pas;
se (InStr(strID, "Conta") > -1)
{
id = int(Direita(strID, 1)); // extrai o número da conta clicada
// pega os dados da conta clicada
GetINIString("Conta", "Conta"$id, tempstring, "AccountManager.ini");
SplitStringBySymbol(tempstring, log, pas);
// atualiza Account1 com dados da conta clicada
SetINIString("Conta", "Conta1", log $ " " $ pas, "AccountManager");
SetINIString("Conta", "slot", "Conta1", "AccountManager");
// atualizar campos visuais
l_handle.SetString(log);
p_handle.SetString(pas);
RefreshINI("AccountManager.ini");
NomeDoBotãoInit();
//executa login com dados atualizados
RoloScript.Actor("AuthLogin");
}
outro
{
interruptor (strID)
{
caso "SaveBtn":
setIni(); // salvar novo contato
quebrar;
caso "btnAlarm":
se (classe'UIAPI_WINDOW'.static.isShowWindow("OnScreenTestWnd"))
classe'UIAPI_WINDOW'.static.HideWindow("OnScreenTestWnd");
outro
classe'UIAPI_WINDOW'.static.ShowWindow("OnScreenTestWnd");
quebrar;
}
}
}
função OnMouseOver(WindowHandle a_WindowHandle)
{
se (a_WindowHandle == tex_ControlFrame)
{
tex_ControlFrame.SetColorModify(MouseOn);
GetEditBoxHandle( "LoginManagerWnd.Password" ).SetEditType( "normal" );
}
}
função OnMouseOut(WindowHandle a_WindowHandle)
{
se (a_WindowHandle == tex_ControlFrame)
{
tex_ControlFrame.SetColorModify(Normal);
GetEditBoxHandle( "LoginManagerWnd.Password" ).SetEditType( "senha" );
}
}
//isso faz o login automático apenas no slot 1 :d mais você pode salvar clique nele faça o login automático no slot 1 eu sou usuário 8acc, u need edit interfarce descopilar e compilar the file LoginManagerWnd