SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Scripting Help

Reply
 
Thread Tools Display Modes
Old 14/11/2011, 05:50 PM   #1
TheBluec0de
Gangsta
 
TheBluec0de's Avatar
 
Join Date: Mar 2011
Posts: 571
Reputation: 12
Unhappy [HELP]OnDialogResponse

how to resolve this error ?

Code:
(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:

Code:
case DIALOGO_ACC:
All code OnDialogResponse:

Code:
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;
}
TheBluec0de is offline   Reply With Quote
Old 14/11/2011, 05:53 PM   #2
SmiT
Huge Clucker
 
Join Date: Oct 2011
Posts: 352
Reputation: 63
Default Re: [HELP]OnDialogResponse

You forget some brackets:
pawn Code:
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;
}
SmiT is offline   Reply With Quote
Old 14/11/2011, 05:57 PM   #3
Backwardsman97
High-roller
 
Backwardsman97's Avatar
 
Join Date: Nov 2007
Posts: 2,193
Reputation: 36
Default Re: [HELP]OnDialogResponse

Looks like you're missing brackets. Try this.

pawn Code:
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.
Backwardsman97 is offline   Reply With Quote
Old 14/11/2011, 06:20 PM   #4
TheBluec0de
Gangsta
 
TheBluec0de's Avatar
 
Join Date: Mar 2011
Posts: 571
Reputation: 12
Default Re: [HELP]OnDialogResponse

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 ?
TheBluec0de is offline   Reply With Quote
Old 14/11/2011, 09:03 PM   #5
Sascha
High-roller
 
Sascha's Avatar
 
Join Date: Jul 2009
Location: Germany
Posts: 1,495
Reputation: 70
Default Re: [HELP]OnDialogResponse

in how far does it bug?
pawn Code:
/*
 
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;
}
__________________
Don't bother to contact me, I'm out of SA-MP
Sascha is offline   Reply With Quote
Old 14/11/2011, 09:04 PM   #6
TheBluec0de
Gangsta
 
TheBluec0de's Avatar
 
Join Date: Mar 2011
Posts: 571
Reputation: 12
Default Re: [HELP]OnDialogResponse

in the dialogs, OnPlayerRequestSpawn, ecc
TheBluec0de is offline   Reply With Quote
Old 14/11/2011, 09:17 PM   #7
Sascha
High-roller
 
Sascha's Avatar
 
Join Date: Jul 2009
Location: Germany
Posts: 1,495
Reputation: 70
Default Re: [HELP]OnDialogResponse

try the code I pasted in...
if it still doesn't work, reply again
__________________
Don't bother to contact me, I'm out of SA-MP
Sascha is offline   Reply With Quote
Old 15/11/2011, 12:38 PM   #8
TheBluec0de
Gangsta
 
TheBluec0de's Avatar
 
Join Date: Mar 2011
Posts: 571
Reputation: 12
Default Re: [HELP]OnDialogResponse

Dosent work... Bugs virtually everything, dialogs ecc
TheBluec0de is offline   Reply With Quote
Old 15/11/2011, 12:57 PM   #9
Elka_Blazer
Big Clucker
 
Elka_Blazer's Avatar
 
Join Date: Apr 2011
Posts: 160
Reputation: 1
Default Re: [HELP]OnDialogResponse

What do u mean "bug" for me ?
__________________
Did I help you ? well you can help me too by pressing this star(on my post)


[/COLOR]
Elka_Blazer is offline   Reply With Quote
Old 15/11/2011, 12:59 PM   #10
TheBluec0de
Gangsta
 
TheBluec0de's Avatar
 
Join Date: Mar 2011
Posts: 571
Reputation: 12
Default Re: [HELP]OnDialogResponse

all dialogs is bugghed...

Last edited by TheBluec0de; 15/11/2011 at 01:35 PM.
TheBluec0de is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
OnDialogResponse fissekarl Help Archive 1 17/04/2011 04:21 AM
OnDialogResponse Antonio [G-RP] Help Archive 4 27/07/2010 06:16 PM
OnDialogResponse Mr.Dzx Help Archive 5 13/05/2010 08:31 AM
OnDialogResponse only on 1 FS Doman Help Archive 8 08/05/2010 01:30 PM
OnDialogResponse Help please! odyvan Help Archive 0 01/12/2009 06:13 PM


All times are GMT. The time now is 06:40 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.