Not showing dialog on connect
#1

pawn Код:
public OnPlayerConnect(playerid)
{
    new query[200];
    format(query, sizeof(query), "SELECT IP FROM 'playerdata' WHERE user = '%s' LIMIT 1", GetName(playerid));
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if (!rows)
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""RED">> "PREMIUM"Account Register", ""WHITE"Welcome to "RED"Burn0uT ParadisE"WHITE"!\n"WHITE"This account is "RED"not "WHITE"registered.\n\n"YELLOW"» Please enter a password below to register.", "Register", "Quit");
    }
    if (rows == 1)
    {
        new IP[2][16];
        mysql_fetch_field_row(IP[0], "IP");
        GetPlayerIp(playerid, IP[1], 16);
        if(strlen(IP[0]) != 0 && !strcmp(IP[0], IP[1], true))
        {
            MySQL_Login(playerid);
        }
        else if(!strlen(IP[0]) || strcmp(IP[0], IP[1], true))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""RED">> "PREMIUM"Account Login", ""WHITE"Welcome back to "RED"Burn0uT ParadisE"WHITE"!\n"WHITE"This account is "GREEN"registered"WHITE".\n\n"YELLOW"» Please enter your password below to login.", "Login", "Quit");
            PlayerInfo[playerid][IsRegistered] = 1;
        }
    }
    mysql_free_result();
    return 1;
}
pawn Код:
if (dialogid == DIALOG_REGISTER)
    {
        if (response)
        {
            if(!strlen(inputtext) || strlen(inputtext) > 68)
            {
                SendClientMessage(playerid, -1, ""RED":: "GREY"Your password cannot be longer than 68 characters.");
                ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""RED">> "PREMIUM"Account Register", ""WHITE"Welcome to "RED"Burn0uT ParadisE"WHITE"!\n"WHITE"This account is "RED"not "WHITE"registered.\n\n"YELLOW"» Please enter a password below to register.", "Register", "Quit");
            }
            else if(strlen(inputtext) > 0 && strlen(inputtext) < 68)
            {
                new escpass[100];
                mysql_real_escape_string(inputtext, escpass);
                MySQL_Register(playerid, escpass);
            }
        }
        if (!response)
        {
            SendClientMessage(playerid, -1, ""RED":: "LIGHTBLUE"You can come back any time to register!");
            SetTimerEx("KickPlayer", 500, false, "i", playerid);
        }
    }
    //---------------
    // Login Dialog
    //---------------
    if (dialogid == DIALOG_LOGIN)
    {
        if (!response)
        {
            SendClientMessage(playerid, -1, ""RED":: "LIGHTBLUE"Forgot your password? Contact our staff on http://www.bestsampserver.com to get help!");
            SetTimerEx("KickPlayer", 500, false, "i", playerid);
        }
        if (response)
        {
            new query[200], escapepass[100];
            mysql_real_escape_string(inputtext, escapepass);
            format(query, sizeof(query), "SELECT `user` FROM playerdata WHERE user = '%s' AND password = SHA1('%s')", GetName(playerid), escapepass);
            mysql_query(query);
            mysql_store_result();
            new numrows = mysql_num_rows();
            if (numrows) MySQL_Login(playerid);
            if (!numrows)
            {
                ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""RED">> "PREMIUM"Account Login", ""WHITE"Welcome back to "RED"Burn0uT ParadisE"WHITE"!\n"WHITE"This account is "GREEN"registered"WHITE".\n\n"YELLOW"» Please enter your password below to login.", "Login", "Quit");
                SendClientMessage(playerid, -1, ""RED":: "GREY"You have entered an incorrect password!");
            }
            mysql_free_result();
        }
    }
Reply
#2

You sure it's not conflicting with other dialogs ?
Reply
#3

Other dialog works fine for you? Also, just add an if-else statement instead of checking if rows are found or equal to true/1.

pawn Код:
public OnPlayerConnect(playerid)
{
    new query[200];
    format(query, sizeof(query), "SELECT IP FROM 'playerdata' WHERE user = '%s' LIMIT 1", GetName(playerid));
    mysql_query(query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if (!rows)
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, ""RED">> "PREMIUM"Account Register", ""WHITE"Welcome to "RED"Burn0uT ParadisE"WHITE"!\n"WHITE"This account is "RED"not "WHITE"registered.\n\n"YELLOW"» Please enter a password below to register.", "Register", "Quit");
    }
    else
    {
        new IP[2][16];
        mysql_fetch_field_row(IP[0], "IP");
        GetPlayerIp(playerid, IP[1], 16);
        if(strlen(IP[0]) != 0 && !strcmp(IP[0], IP[1], true))
        {
            MySQL_Login(playerid);
        }
        else if(!strlen(IP[0]) || strcmp(IP[0], IP[1], true))
        {
            ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, ""RED">> "PREMIUM"Account Login", ""WHITE"Welcome back to "RED"Burn0uT ParadisE"WHITE"!\n"WHITE"This account is "GREEN"registered"WHITE".\n\n"YELLOW"» Please enter your password below to login.", "Login", "Quit");
            PlayerInfo[playerid][IsRegistered] = 1;
        }
    }
    mysql_free_result();
    return 1;
}
Like in the dialog responses, you can use simple if-else statement.

pawn Код:
if(response)
{
    // code
}
else
{
    // code
}
Reply
#4

The code above shows the login dialog when a player is not registered..

And, I'm not using any other dialogs on the script..
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)