[HELP]OnDialogResponse
#1

how to resolve this error ?

Код:
(233) : warning 217: loose indentation
(233) : error 014: invalid statement; not in switch
(233) : warning 215: expression has no effect
(233) : error 001: expected token: ";", but found ":"
(233) : error 029: invalid expression, assumed zero
(233) : fatal error 107: too many error messages on one line
Line 233:

Код:
case DIALOGO_ACC:
All code OnDialogResponse:

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOGO_REG:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: La registrazione и obbligatoria. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
            
            if(response)
            {
            if(!strlen(inputtext) || strlen(inputtext) > 10)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                format(STR, sizeof(STR), "Massimo 10 caratteri per la password\nBenvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", UtenteNome(playerid));
                ShowPlayerDialog(playerid, DIALOGO_REG, DIALOG_STYLE_PASSWORD, "Registrazione", STR, "Registra", "Cancella");
            }
            
            else if(strlen(inputtext) > 0 && strlen(inputtext) < 10)
            {
                mysql_real_escape_string(inputtext, EscPass);
                DB_REGISTRAZIONE(playerid, EscPass);
            }

        case DIALOGO_ACC:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: L'accesso и obbligatorio. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }

            if(response)
            {
            mysql_real_escape_string(inputtext, EscPass);
            format(Query, sizeof(Query), "SELECT `Nome` FROM %s WHERE Nome = '%s' AND Password = SHA1('%s')", UtenteNome(playerid), DB_TABELLA, EscPass);
            mysql_query(Query);
            mysql_store_result();
            new numrows = mysql_num_rows();
            if(numrows == 1) DB_ACCESSO(playerid);
            
            if(!numrows)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: La password che hai inserito risulta errata. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
            mysql_free_result();
            }
            
            
            }

        }

    }
    return 1;
}
Reply
#2

You forget some brackets:
pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOGO_REG:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: La registrazione и obbligatoria. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
           
            if(response)
            {
                if(!strlen(inputtext) || strlen(inputtext) > 10)
                {
                    PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                    format(STR, sizeof(STR), "Massimo 10 caratteri per la password\nBenvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", UtenteNome(playerid));
                    ShowPlayerDialog(playerid, DIALOGO_REG, DIALOG_STYLE_PASSWORD, "Registrazione", STR, "Registra", "Cancella");
                }
               
                else if(strlen(inputtext) > 0 && strlen(inputtext) < 10)
                {
                    mysql_real_escape_string(inputtext, EscPass);
                    DB_REGISTRAZIONE(playerid, EscPass);
                }
            } /* <------ */
        } /* <------ */

        case DIALOGO_ACC:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: L'accesso и obbligatorio. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }

            if(response)
            {
                mysql_real_escape_string(inputtext, EscPass);
                format(Query, sizeof(Query), "SELECT `Nome` FROM %s WHERE Nome = '%s' AND Password = SHA1('%s')", UtenteNome(playerid), DB_TABELLA, EscPass);
                mysql_query(Query);
                mysql_store_result();
                new numrows = mysql_num_rows();
                if(numrows == 1) DB_ACCESSO(playerid);
                if(!numrows)
                {
                    PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                    SendClientMessage(playerid, -1, "SERVER: La password che hai inserito risulta errata. Sei stato kickato.");
                    Kick(playerid);
                    return 1;
                }
                mysql_free_result();
            } /* <--- */

        }

    }
    return 1;
}
Reply
#3

Looks like you're missing brackets. Try this.

pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOGO_REG:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: La registrazione и obbligatoria. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
            else
            {
                if(!strlen(inputtext) || strlen(inputtext) > 10)
                {
                    PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                    format(STR, sizeof(STR), "Massimo 10 caratteri per la password\nBenvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", UtenteNome(playerid));
                    ShowPlayerDialog(playerid, DIALOGO_REG, DIALOG_STYLE_PASSWORD, "Registrazione", STR, "Registra", "Cancella");
                }
                else if(strlen(inputtext) > 0 && strlen(inputtext) < 10)
                {
                    mysql_real_escape_string(inputtext, EscPass);
                    DB_REGISTRAZIONE(playerid, EscPass);
                }
                return 1;
            }
        }
        case DIALOGO_ACC:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: L'accesso и obbligatorio. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
            else
            {
                mysql_real_escape_string(inputtext, EscPass);
                format(Query, sizeof(Query), "SELECT `Nome` FROM %s WHERE Nome = '%s' AND Password = SHA1('%s')", UtenteNome(playerid), DB_TABELLA, EscPass);
                mysql_query(Query);
                mysql_store_result();

                new numrows = mysql_num_rows();
                if(numrows == 1)
                    DB_ACCESSO(playerid);

                if(!numrows)
                {
                    PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                    SendClientMessage(playerid, -1, "SERVER: La password che hai inserito risulta errata. Sei stato kickato.");
                    Kick(playerid);
                }
                mysql_free_result();
                return 1;
            }
        }
    }
    return 1;
}
Edit : Too late. But I would suggest using the else statements instead of checking if response is zero and then checking if it's one.
Reply
#4

Thanks.. but

Dialogs bug for me, I Post the testing gm. I followed the tutorial of [HiC]the killer ..

http://pastebin.com/L4kTihcr

how to resolve this ?
Reply
#5

in how far does it bug?
pawn Код:
/*
 
THIS IS A TEST GAMEMODE
 
*/

 
#include                <a_samp>
#include                <a_mysql>
 
#undef                  MAX_PLAYERS
#define                 MAX_PLAYERS                            (100)
#undef                  MAX_VEHICLES
#define                 MAX_VEHICLES                           (2000)
 
#define                 DB_HOSTNOME                            "localhost"
#define                 DB_NOMEUTENTE                          "root"
#define                 DB_PASSWORD                            ""
#define                 DB_DATABASE                            "server_database"
#define                 DB_TABELLA                             "utenti"
 
#define                 DIALOGO_REG                            (1)
#define                 DIALOGO_ACC                            (2)
 
#define                 SUONO_ERRORE                           (1055)
 
enum STATO_UTENTE
{
        STATO_UTENTE_REGISTRATO,
        STATO_UTENTE_LOGGATO,
        STATO_UTENTE_UCCISIONI,
        STATO_UTENTE_MORTI,
        STATO_UTENTE_PUNTEGGIO,
        STATO_UTENTE_SOLDI
}
new
    UtenteInfo[MAX_PLAYERS][STATO_UTENTE];
new
        Query[200],
        STR[500],
        EscPass[10];
 
main()
{
        print( "TEST TEST GM\n" );
}
 
public OnGameModeInit()
{
        mysql_debug(1);
        mysql_connect(DB_HOSTNOME, DB_NOMEUTENTE, DB_DATABASE, DB_PASSWORD);
        if(mysql_ping()>=1)
        {
        print( "CONNECTION MYSQL ALIVE TEST\n" );
        }
        else
        {
        print( "CONNECTION MYSQL FAILED TEST\n" );
            SendRconCommand("exit");
        }
 
        SetGameModeText("TEST TEST GM");
 
        AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
        return 1;
}
 
public OnGameModeExit()
{
        mysql_close();
        return 1;
}
 
public OnPlayerRequestClass(playerid, classid)
{
        SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
        SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
        SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
        return 1;
}
 
public OnPlayerConnect(playerid)
{
        UtenteInfo[playerid][STATO_UTENTE_UCCISIONI]           = 0;
        UtenteInfo[playerid][STATO_UTENTE_MORTI]               = 0;
        UtenteInfo[playerid][STATO_UTENTE_PUNTEGGIO]           = 0;
        UtenteInfo[playerid][STATO_UTENTE_SOLDI]               = 0;
 
    format(Query, sizeof(Query), "SELECT IP FROM %s WHERE Nome = '%s' LIMIT 1", DB_TABELLA, UtenteNome(playerid));
    mysql_query(Query);
    mysql_store_result();
    new rows = mysql_num_rows();
    if(!rows)
    {
        format(STR, sizeof(STR), "Benvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", UtenteNome(playerid));
        ShowPlayerDialog(playerid, DIALOGO_REG, DIALOG_STYLE_PASSWORD, "Registrazione", STR, "Registra", "Cancella");
    }
    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))
        {
            DB_ACCESSO(playerid);
        }
        else if(!strlen(IP[0]) || strcmp(IP[0], IP[1], true))
        {
            format(STR, sizeof(STR), "Bentornato %s nel server Italian Las Venturas!\n\n Il tuo account risulta registrato.\nInserisci la password per effetuare l'accesso:", UtenteNome(playerid));
            ShowPlayerDialog(playerid, DIALOGO_ACC, DIALOG_STYLE_PASSWORD, "Accesso", STR, "Accedi", "Cancella");
 
                        UtenteInfo[playerid][STATO_UTENTE_REGISTRATO] = 1;
        }
    }
    mysql_free_result();
        return 1;
}
 
public OnPlayerDisconnect(playerid, reason)
{
    if(UtenteInfo[playerid][STATO_UTENTE_LOGGATO] == 1)
    {
        format(Query, sizeof(Query), "UPDATE %s SET Uccisioni=%d, Morti=%d, Punteggio=%d, Soldi=%d WHERE Nome='%s'",
                DB_TABELLA,
                UtenteInfo[playerid][STATO_UTENTE_UCCISIONI],
                UtenteInfo[playerid][STATO_UTENTE_MORTI],
                GetPlayerScore(playerid),
                GetPlayerMoney(playerid),
                UtenteNome(playerid));
 
        mysql_query(Query);
    }
        return 1;
}
 
public OnPlayerSpawn(playerid)
{
    if(UtenteInfo[playerid][STATO_UTENTE_SOLDI] != -1)
    {
        GivePlayerMoney(playerid, UtenteInfo[playerid][STATO_UTENTE_SOLDI]);
        UtenteInfo[playerid][STATO_UTENTE_SOLDI] = -1;
    }
        return 1;
}
 
public OnPlayerRequestSpawn(playerid)
{
    if(UtenteInfo[playerid][STATO_UTENTE_LOGGATO] != -1)
    {
        if(UtenteInfo[playerid][STATO_UTENTE_REGISTRATO] != -1)
        {
            format(STR, sizeof(STR), "Devi registrarti\nBenvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", UtenteNome(playerid));
            ShowPlayerDialog(playerid, DIALOGO_REG, DIALOG_STYLE_PASSWORD, "Registrazione", STR, "Registra", "Cancella");
            return 0;
        }
        if(UtenteInfo[playerid][STATO_UTENTE_REGISTRATO] == 1)
        {
            format(STR, sizeof(STR), "Devi Accedere\nBentornato %s nel server Italian Las Venturas!\n\n Il tuo account risulta registrato.\nInserisci la password per effetuare l'accesso:", UtenteNome(playerid));
            ShowPlayerDialog(playerid, DIALOGO_ACC, DIALOG_STYLE_PASSWORD, "Accesso", STR, "Accedi", "Cancella");
            return 0;
        }
    }
    return 1;
}
 
public OnPlayerDeath(playerid, killerid, reason)
{
    if(killerid != INVALID_PLAYER_ID)
    {
        UtenteInfo[playerid][STATO_UTENTE_UCCISIONI] += 1;
        SetPlayerScore(killerid, GetPlayerScore(killerid) + 1);
    }
    UtenteInfo[playerid][STATO_UTENTE_MORTI] += 1;
    SetPlayerScore(playerid, GetPlayerScore(playerid) - 1);
 
    if(killerid == INVALID_PLAYER_ID)
    {
        SendDeathMessage(INVALID_PLAYER_ID, playerid, reason);
    }
    else
    {
        SendDeathMessage(killerid, playerid, reason);
    }
        return 1;
}
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOGO_REG:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: La registrazione и obbligatoria. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
            else
            {
                if(!strlen(inputtext) || strlen(inputtext) > 10)
                {
                    PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                    format(STR, sizeof(STR), "Massimo 10 caratteri per la password\nBenvenuto %s nel server Italian Las Venturas!\n\n Il tuo account non risulta registrato.\nRegistra un account inserendo la password qui sotto:", UtenteNome(playerid));
                    ShowPlayerDialog(playerid, DIALOGO_REG, DIALOG_STYLE_PASSWORD, "Registrazione", STR, "Registra", "Cancella");
                }
                else if(strlen(inputtext) > 0 && strlen(inputtext) < 10)
                {
                    mysql_real_escape_string(inputtext, EscPass);
                    DB_REGISTRAZIONE(playerid, EscPass);
                }
                return 1;
            }
        }
        case DIALOGO_ACC:
        {
            if(!response)
            {
                PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                SendClientMessage(playerid, -1, "SERVER: L'accesso и obbligatorio. Sei stato kickato.");
                Kick(playerid);
                return 1;
            }
            else
            {
                mysql_real_escape_string(inputtext, EscPass);
                format(Query, sizeof(Query), "SELECT `Nome` FROM %s WHERE Nome = '%s' AND Password = SHA1('%s')", UtenteNome(playerid), DB_TABELLA, EscPass);
                mysql_query(Query);
                mysql_store_result();
 
                new numrows = mysql_num_rows();
                if(numrows == 1)
                    DB_ACCESSO(playerid);
 
                if(!numrows)
                {
                    PlayerPlaySound(playerid, SUONO_ERRORE, 0, 0 ,0);
                    SendClientMessage(playerid, -1, "SERVER: La password che hai inserito risulta errata. Sei stato kickato.");
                    Kick(playerid);
                }
                mysql_free_result();
                return 1;
            }
        }
    }
    return 1;
}
 
stock UtenteNome(playerid) //Uso UtenteNome(playerid)
{
        new Nome[MAX_PLAYER_NAME];
        GetPlayerName(playerid, Nome, sizeof(Nome));
        return Nome;
}
 
stock DB_REGISTRAZIONE(playerid, passwordstr[])
{
    new IP[16];
    GetPlayerIp(playerid, IP, 16);
    format(Query, sizeof(Query), "INSERT INTO %s (Nome, Password, IP, Uccisioni, Morti, Punteggio, Soldi) VALUES('%s', SHA1('%s'), '%s', 0, 0, 0, 0)", DB_TABELLA, UtenteNome(playerid), passwordstr, IP);
    mysql_query(Query);
 
    SendClientMessage(playerid, -1, "SERVER: La registrazione и stata effettuata con successo");
    UtenteInfo[playerid][STATO_UTENTE_LOGGATO] = 1;
    return 1;
}
 
stock DB_ACCESSO(playerid)
{
    new Query2[300], salvastr[20];
    format(Query2, sizeof(Query2), "SELECT * FROM %s WHERE Nome = '%s'", DB_TABELLA, UtenteNome(playerid));
    mysql_query(Query2);
    mysql_store_result();
    while(mysql_fetch_row_format(Query2, "|"))
    {
        mysql_fetch_field_row(salvastr, "Uccisioni"); UtenteInfo[playerid][STATO_UTENTE_UCCISIONI] = strval(salvastr);
        mysql_fetch_field_row(salvastr, "Morti"); UtenteInfo[playerid][STATO_UTENTE_MORTI] = strval(salvastr);
        mysql_fetch_field_row(salvastr, "Punteggio"); SetPlayerScore(playerid, strval(salvastr));
        mysql_fetch_field_row(salvastr, "Soldi"); UtenteInfo[playerid][STATO_UTENTE_SOLDI] = strval(salvastr);
    }
    mysql_free_result();
    SendClientMessage(playerid, -1, "SERVER: L'accesso и stato effettuato con successo");
    UtenteInfo[playerid][STATO_UTENTE_LOGGATO] = 1;
    return 1;
}
Reply
#6

in the dialogs, OnPlayerRequestSpawn, ecc
Reply
#7

try the code I pasted in...
if it still doesn't work, reply again
Reply
#8

Dosent work... Bugs virtually everything, dialogs ecc
Reply
#9

What do u mean "bug" for me ?
Reply
#10

all dialogs is bugghed...
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)