27.07.2012, 17:57
I'm getting annoyed by this register dialog of Luxadmin. The problem is I already have an account and it wants me to Register again. Also after spawning the Register dialog always appear again and again.
//==============================================================================
//---------------
// Dialog - REGISTER
//---------------
//==============================================================================
if (dialogid == DIALOGID+66)
{
if(response == 0 && ServerInfo[MustRegister] == 1)
{
Kick(playerid);
}
if(response)
{
if (strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
new rstring[256];
format(rstring,256,"Sorry %s\n\nThe length of your password should contain more \nthan 3 characters and less than 20 characters! \n\n Please, re-enter the Password:",pName(playerid));
return ShowPlayerDialog(playerid,DIALOGID+68,DIALOG_STYLE_INPUT,"Register Error!",rstring,"Register","Quit");
}
if (udb_Create(PlayerName2(playerid)))
{
ShowPlayerDialog(playerid,DIALOG_TYPE_QUESTION,DIALOG_STYLE_INPUT,"Account Safety Question","{D7E4F0}Type a security question, for when you forget\n your password, you just answer this Question.","Next","End");
new file[256],name[MAX_PLAYER_NAME], buf[145],tmp3[100];
new strdate[20], year,month,day;
getdate(year, month, day);
WP_Hash(buf, sizeof(buf), inputtext);
GetPlayerName(playerid,name,sizeof(name));
format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(name));
GetPlayerIp(playerid,tmp3,100);
dini_Set(file,"Password",buf);
dini_Set(file,"Ip",tmp3);
dUserSetINT(PlayerName2(playerid)).("Registered",1);
format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
dini_Set(file,"RegisteredDate",strdate);
dUserSetINT(PlayerName2(playerid)).("Loggedin",1);
dUserSetINT(PlayerName2(playerid)).("Banned",0);
dUserSetINT(PlayerName2(playerid)).("Level",0);
dUserSetINT(PlayerName2(playerid)).("AccountType",0);
dUserSetINT(PlayerName2(playerid)).("LastOn",0);
dUserSetINT(PlayerName2(playerid)).("Money",0);
dUserSetINT(PlayerName2(playerid)).("Kills",0);
dUserSetINT(PlayerName2(playerid)).("Deaths",0);
dUserSetINT(PlayerName2(playerid)).("WantedLevel",0);
#if SaveScore == true
dUserSetINT(PlayerName2(playerid)).("Score",0);
#endif
dUserSetINT(PlayerName2(playerid)).("Hours",0);
dUserSetINT(PlayerName2(playerid)).("Minutes",0);
dUserSetINT(PlayerName2(playerid)).("Seconds",0);
AccInfo[playerid][LoggedIn] = 1;
AccInfo[playerid][Registered] = 1;
SendClientMessage(playerid, green, "You are now Registered, and have been automaticaly Logged in!");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
return 1;
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
//==============================================================================
//---------------
// Dialog - REGISTER
//---------------
//==============================================================================
if (dialogid == DIALOGID+66)
{
if(response == 0 && ServerInfo[MustRegister] == 1)
{
Kick(playerid);
}
if(response)
{
if (strlen(inputtext) < 4 || strlen(inputtext) > 20)
{
new rstring[256];
format(rstring,256,"Sorry %s\n\nThe length of your password should contain more \nthan 3 characters and less than 20 characters! \n\n Please, re-enter the Password:",pName(playerid));
return ShowPlayerDialog(playerid,DIALOGID+68,DIALOG_STYLE_INPUT,"Register Error!",rstring,"Register","Quit");
}
if (udb_Create(PlayerName2(playerid)))
{
ShowPlayerDialog(playerid,DIALOG_TYPE_QUESTION,DIALOG_STYLE_INPUT,"Account Safety Question","{D7E4F0}Type a security question, for when you forget\n your password, you just answer this Question.","Next","End");
new file[256],name[MAX_PLAYER_NAME], buf[145],tmp3[100];
new strdate[20], year,month,day;
getdate(year, month, day);
WP_Hash(buf, sizeof(buf), inputtext);
GetPlayerName(playerid,name,sizeof(name));
format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(name));
GetPlayerIp(playerid,tmp3,100);
dini_Set(file,"Password",buf);
dini_Set(file,"Ip",tmp3);
dUserSetINT(PlayerName2(playerid)).("Registered",1);
format(strdate, sizeof(strdate), "%d/%d/%d",day,month,year);
dini_Set(file,"RegisteredDate",strdate);
dUserSetINT(PlayerName2(playerid)).("Loggedin",1);
dUserSetINT(PlayerName2(playerid)).("Banned",0);
dUserSetINT(PlayerName2(playerid)).("Level",0);
dUserSetINT(PlayerName2(playerid)).("AccountType",0);
dUserSetINT(PlayerName2(playerid)).("LastOn",0);
dUserSetINT(PlayerName2(playerid)).("Money",0);
dUserSetINT(PlayerName2(playerid)).("Kills",0);
dUserSetINT(PlayerName2(playerid)).("Deaths",0);
dUserSetINT(PlayerName2(playerid)).("WantedLevel",0);
#if SaveScore == true
dUserSetINT(PlayerName2(playerid)).("Score",0);
#endif
dUserSetINT(PlayerName2(playerid)).("Hours",0);
dUserSetINT(PlayerName2(playerid)).("Minutes",0);
dUserSetINT(PlayerName2(playerid)).("Seconds",0);
AccInfo[playerid][LoggedIn] = 1;
AccInfo[playerid][Registered] = 1;
SendClientMessage(playerid, green, "You are now Registered, and have been automaticaly Logged in!");
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
return 1;
}
}
return 1;
}
//==============================================================================
//---------------
// Dialog - LOGIN
//---------------
//==============================================================================
if (dialogid == DIALOGID+67)
{
if(response == 0 && ServerInfo[MustLogin] == 1)
{
Kick(playerid);
}
if(response)
{
new lstring[256];
new file[128], Pass[256];
format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(PlayerName2(playerid)));
Pass = dini_Get(file, "Password");
new buf[145];
WP_Hash(buf, sizeof(buf), inputtext);
AccInfo[playerid][NoQuestion] = dUserINT(PlayerName2(playerid)).("NoQuestion");
if(strcmp(Pass, buf, false) == 0)
{
new tmp3[100], string[128];
format(file,sizeof(file),"/LuxAdmin/Accounts/%s.sav",udb_encode(PlayerName2(playerid)));
GetPlayerIp(playerid,tmp3,100);
dini_Set(file,"Ip",tmp3);
LoginPlayer(playerid);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
if(AccInfo[playerid][Level] > 0)
{
switch(AccInfo[playerid][Level])
{
case 1: AdmRank = "Basic Moderator";
case 2: AdmRank = "Moderator";
case 3: AdmRank = "Master Moderator";
case 4: AdmRank = "Administrator";
case 5: AdmRank = "Master Administrator";
}
if(AccInfo[playerid][Level] > 5)
{
AdmRank = "Professional Admin";
}
if(AccInfo[playerid][pVip] > 0)
{
switch(AccInfo[playerid][pVip])
{
case 1: AccType = "Silver";
case 2: AccType = "Gold";
case 3: AccType = "Premium";
}
format(string,sizeof(string),"|- You have Successfully Logged! | Account: %s | Level %d - %s -|", AccType, AccInfo[playerid][Level], AdmRank);
return SendClientMessage(playerid,0x00C378AA,string);
}
else
{
format(string,sizeof(string),"|- You have Successfully Logged! | Level %d - %s -|", AccInfo[playerid][Level], AdmRank);
return SendClientMessage(playerid,green,string);
}
}
else
{
if(AccInfo[playerid][pVip] > 0)
{
switch(AccInfo[playerid][pVip])
{
case 1: AccType = "Silver";
case 2: AccType = "Gold";
case 3: AccType = "Premium";
}
format(string,sizeof(string),"|- You have Successfully logged! | Account: %s -|", AccType);
return SendClientMessage(playerid,0x00C896AA,string);
}
else return SendClientMessage(playerid,green,"|- You have Successfully logged! -|");
}
}
else
{
AccInfo[playerid][FailLogin]++;
printf("LOGIN: Failed Login: %s. Wrong password (%s) (%d)", PlayerName2(playerid), inputtext, AccInfo[playerid][FailLogin] );
if(AccInfo[playerid][FailLogin] == MAX_FAIL_LOGINS)
{
new string[128]; format(string, sizeof(string), "|- Player %s has been automatically kicked (Reason: Many attempts Incorrect Passwords) -|", PlayerName2(playerid) );
SendClientMessageToAll(red, string);
print(string);
Kick(playerid);
}
if(AccInfo[playerid][NoQuestion] == 1)
{
format(lstring,256,"Sorry '%s'\n\nYour entered password is Incorrect!\nPlease, re-enter the Correct Password:",pName(playerid));
return ShowPlayerDialog(playerid,DIALOGID+69,DIALOG_STYLE_INPUT,"Login Error",lstring,"Login","Quit");
}
if(AccInfo[playerid][NoQuestion] == 0)
{
format(lstring,256,"Sorry '%s'\n\nYour entered password is Incorrect!\nPlease, re-enter the Correct Password:\n\nOr type the response of your security question:\n\n \"%s\"",pName(playerid),dini_Get(file, "Question"));
return ShowPlayerDialog(playerid,DIALOGID+69,DIALOG_STYLE_INPUT,"Login Error",lstring,"Login","Quit");
}
}
}
}
public OnPlayerSpawn(playerid)
{
//==============================================================================
// Request Register
//==============================================================================
if(AccInfo[playerid][Registered] == 0 && ServerInfo[MustRegister] == 1)
{
#if USE_DIALOGS == true
new rstring[256];
format(rstring,256,"{D7E4F0}Welcome to {FF9933}%s {D7E4F0}\n\nAccount {33CCFF}%s {D7E4F0}is not registred!\n\nEnter the password to Register your Account:",GetServerHostName(),pName(playerid));
ShowPlayerDialog(playerid,DIALOGID+66,DIALOG_STYLE_INPUT,"Register Account",rstring,"Register","Quit");
#endif
return 1;
}
//==============================================================================
// Request Login
//==============================================================================
if(ServerInfo[MustLogin] == 1 && AccInfo[playerid][Registered] == 1 && AccInfo[playerid][LoggedIn] == 0)
{
#if USE_DIALOGS == true
new lstring[256];
format(lstring,256,"{D7E4F0}That account {33CCFF}%s {D7E4F0}is Registered!\n\n Login to access your Account:",pName(playerid));
ShowPlayerDialog(playerid,DIALOGID+67,DIALOG_STYLE_INPUT,"Login Account",lstring,"Login","Quit");
#endif
return 1;
}