SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 23/08/2014, 06:29 AM   #1
maikonk
Huge Clucker
 
maikonk's Avatar
 
Join Date: Sep 2010
Location: Curitiba
Posts: 247
Reputation: 3
Default Undefined Symbol "DB_Escape"

Pessoal comecei um Gamemode do 0 pelo Sqlite, porem fiz o sistema de registro e tals,
ai aparece que o DB_Escape nao foi definido
porem eu coloquei a stock do DB_Escape e mesmo assim aparece Undefined Symbol "DB_Escape"

Segue os Cod:

PHP Code:
public OnPlayerConnect(playerid)
{
    new
        
DBResultContaExistente
    
;
    
format(StringDBsizeof(StringDB), "SELECT * FROM `Contas` WHERE `Nome` = '%s'"DB_Escape(Nome(playerid)));
    
ContaExistente db_query(DataServerStringDB);
    if(
db_num_rows(ContaExistente))
    {
        
format(String256sizeof(String256), "{FFFFFF}Ola Novamente, {1BCCE0}%s{FFFFFF}\n\nLogue-se usando sua senha :D\nE Tenha um bom jogo !!!"Nome(playerid));
        
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"Logando"String256"Logar""");
    }
    else
    {
        
format(String256sizeof(String256), "{FFFAFA}Bem Vindo {1BCCE0}%s{FFFAFA}\nServidor Renascece RPG (TWGames)\n\nSua senha deve ter mais de 6 e menos de 16 Caracteres!\n\nDigite uma senha abaixo para se registrar:"Nome(playerid));
        
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"COMEÇANDO NO SERVIDOR"String256"Registrar""");
    }
    
db_free_result(ContaExistente));
    return 
1;

PHP Code:
stock DB_Escapetext[ ] )
{
    new
        
ret80 ],
        
ch,
        
i,
        
j
    
;
    while( ( 
ch texti++ ] ) && sizeofret ) )
    {
        if( 
ch == '\'' )
        {
            if( 
sizeofret ) - )
            {
                
retj++ ] = '\'';
                
retj++ ] = '\'';
            }
        }
        else if( 
sizeofret ) )
        {
            
retj++ ] = ch;
        }
        else
        {
            
j++;
        }
    }
    
retsizeofret ) - ] = '\0';
    return 
ret;
}

stock Nome(playerid)
{
    new 
pnome[24];
    
GetPlayerName(playeridpnome24);
    return 
pnome;

maikonk is offline   Reply With Quote
Old 23/08/2014, 06:43 AM   #2
Schocc
High-roller
 
Join Date: Mar 2012
Location: /home
Posts: 3,253
Reputation: 378
Default Re: Undefined Symbol "DB_Escape"

Remova a palavra 'stock' e tente compilar.
Schocc is offline   Reply With Quote
Old 23/08/2014, 06:49 AM   #3
maikonk
Huge Clucker
 
maikonk's Avatar
 
Join Date: Sep 2010
Location: Curitiba
Posts: 247
Reputation: 3
Default Re: Undefined Symbol "DB_Escape"

Não resolveu, mesmo problema ainda ;/

http://pastebin.com/hVL9V9S8 < Codigo inteiro, mas acho q nao seria nescessario pois o problema esta no DB_Escape mesmo ;/
maikonk is offline   Reply With Quote
Old 23/08/2014, 07:01 AM   #4
Schocc
High-roller
 
Join Date: Mar 2012
Location: /home
Posts: 3,253
Reputation: 378
Default Re: Undefined Symbol "DB_Escape"

Negativo, foi oq eu pensei.

Linhas com erros.
Quote:
if(Contas[playerid][Logado] --> falta )



db_free_result(ContaExistente); --> tem um parênteses a mais
Falta mudar também o nome do array PlayerDados para Contas
Schocc is offline   Reply With Quote
Old 23/08/2014, 07:07 AM   #5
maikonk
Huge Clucker
 
maikonk's Avatar
 
Join Date: Sep 2010
Location: Curitiba
Posts: 247
Reputation: 3
Default Re: Undefined Symbol "DB_Escape"

Mesmo assim ainda continua o erro, pois ele da esse erro e fala que tem erros de mais na mesma linha e nao mostra os erros do restante do codigo.

esqueci de posta:

Quote:
C:\Users\Maikon\Desktop\San Andreas Metatron - TW GAMES\Metatron San Andreas (SERVER)\gamemodes\SERVER.pwn(64) : error 017: undefined symbol "DB_Escape"
C:\Users\Maikon\Desktop\San Andreas Metatron - TW GAMES\Metatron San Andreas (SERVER)\gamemodes\SERVER.pwn(64) : warning 215: expression has no effect
C:\Users\Maikon\Desktop\San Andreas Metatron - TW GAMES\Metatron San Andreas (SERVER)\gamemodes\SERVER.pwn(64) : error 001: expected token: ";", but found ")"
C:\Users\Maikon\Desktop\San Andreas Metatron - TW GAMES\Metatron San Andreas (SERVER)\gamemodes\SERVER.pwn(64) : error 029: invalid expression, assumed zero
C:\Users\Maikon\Desktop\San Andreas Metatron - TW GAMES\Metatron San Andreas (SERVER)\gamemodes\SERVER.pwn(64) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.

PHP Code:
public OnPlayerConnect(playerid

    new 
        
DBResultContaExistente 
    

    
format(StringDBsizeof(StringDB), "SELECT * FROM `Contas` WHERE `Nome` = '%s'"DB_Escape(Nome(playerid))); //ESTA E A LINHA 64
    
ContaExistente db_query(DataServerStringDB); 
    if(
db_num_rows(ContaExistente)) 
    { 
        
format(String256sizeof(String256), "{FFFFFF}Ola Novamente, {1BCCE0}%s{FFFFFF}\n\nLogue-se usando sua senha :D\nE Tenha um bom jogo !!!"Nome(playerid)); 
        
ShowPlayerDialog(playeridLOGINDIALOG_STYLE_PASSWORD"Logando"String256"Logar"""); 
    } 
    else 
    { 
        
format(String256sizeof(String256), "{FFFAFA}Bem Vindo {1BCCE0}%s{FFFAFA}\nServidor Renascece RPG (TWGames)\n\nSua senha deve ter mais de 6 e menos de 16 Caracteres!\n\nDigite uma senha abaixo para se registrar:"Nome(playerid)); 
        
ShowPlayerDialog(playeridREGISTRODIALOG_STYLE_INPUT"COMEÇANDO NO SERVIDOR"String256"Registrar"""); 
    } 
    
db_free_result(ContaExistente); 
    return 
1

maikonk is offline   Reply With Quote
Old 23/08/2014, 07:18 AM   #6
Schocc
High-roller
 
Join Date: Mar 2012
Location: /home
Posts: 3,253
Reputation: 378
Default Re: Undefined Symbol "DB_Escape"

Tinha muitos erros, eu acabei resolvendo aqui e deixo o código abaixo.
pawn Code:
#include <a_samp>

#define REGISTRO 1
#define LOGIN 2
#define MAX_INI_ENTRY_TEXT 80



main()
{
    print("----------------------------------\n");
}

//news
new String256[256];

enum Opcao
{
    Nome[MAX_PLAYER_NAME],
    Senha[16],
    Email[64],
    TWS,
    Admin,
    Vip,
    Char1,
    Char2,
    Char3,
    Char4,
    Char5,
    bool:Logado
};
new
    Contas[MAX_PLAYERS][Opcao],
    DB:g_DBHandle,
    StringDB[256]
;

public OnGameModeInit()
{
    // Don't use these lines if it's a filterscript
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    g_DBHandle = db_open("Data.Mttron");
    db_query(g_DBHandle, "CREATE TABLE IF NOT EXISTS `Contas` (`Nome`,`Senha`,`EMail`,`TWS`,`Admin`,`Vip`,`Char1`,`Char2`,`Char3`,`Char4`,`Char5`)");
    //QUANDO PRECISAR ADICIONAR UMA COLUNA :
    //db_query(SQLiteBase,"ALTER TABLE `Contas` ADD `Teste2`");
    return 1;
}

public OnGameModeExit()
{
    db_close(g_DBHandle);
    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)
{
    new DBResult:ContaExistente;
    format(StringDB, sizeof(StringDB), "SELECT * FROM `Contas` WHERE `Nome` = '%s'", DB_Escape(PlayerName(playerid)));

    ContaExistente = db_query(g_DBHandle, StringDB);
    if(db_num_rows(ContaExistente))
    {
        format(String256, sizeof(String256), "{FFFFFF}Ola Novamente, {1BCCE0}%s{FFFFFF}\n\nLogue-se usando sua senha :D\nE Tenha um bom jogo !!!", PlayerName(playerid));
        ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Logando", String256, "Logar", "");
    }
    else
    {
        format(String256, sizeof(String256), "{FFFAFA}Bem Vindo {1BCCE0}%s{FFFAFA}\nServidor Renascece RPG (TWGames)\n\nSua senha deve ter mais de 6 e menos de 16 Caracteres!\n\nDigite uma senha abaixo para se registrar:", PlayerName(playerid));
        ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "COMEÇANDO NO SERVIDOR", String256, "Registrar", "");
    }
    db_free_result(ContaExistente);
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    if(Contas[playerid][Logado])
    {
        Contas[playerid][Logado] = false;
        format(StringDB,sizeof StringDB,"UPDATE `Contas` SET Senha=%i,EMail=%i,TWS=%i,Admin=%i,Vip=%i,Char1=%i,Char2=%i,Char3=%i,Char4=%i,Char5=%i",Contas[playerid][Senha],Contas[playerid][Email],Contas[playerid][TWS],Contas[playerid][Admin],Contas[playerid][Vip],Contas[playerid][Char1],Contas[playerid][Char2],Contas[playerid][Char3],Contas[playerid][Char4],Contas[playerid][Char5]);
        db_query(g_DBHandle, StringDB);
    }
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(!Contas[playerid][Logado])
    {
        SendClientMessage(playerid,-1,"{FF0000}SERVIDOR:{FFFFFF} Voce nao esta logado !");
        Kick(playerid);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{

    if(dialogid == LOGIN)
    {
        if(!response)
            Kick(playerid);

        new DBResult: ContaExistente;  
        format(StringDB,sizeof StringDB,"SELECT * FROM `Contas` WHERE `Nome` = '%s' AND `Senha` = '%s'",DB_Escape(PlayerName(playerid)),DB_Escape(inputtext));
        ContaExistente = db_query(g_DBHandle,StringDB);

        if(db_num_rows(ContaExistente))
        {
            new Campo[64];
            db_get_field_assoc(ContaExistente,"Nome",Campo,50); Contas[playerid][Nome] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Senha",Campo,50); Contas[playerid][Senha] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Email",Campo,50); Contas[playerid][Email] = strval(Campo);
            db_get_field_assoc(ContaExistente,"TWS",Campo,50); Contas[playerid][TWS] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Admin",Campo,50); Contas[playerid][Admin] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Vip",Campo,50); Contas[playerid][Vip] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Char1",Campo,50); Contas[playerid][Char1] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Char2",Campo,50); Contas[playerid][Char2] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Char3",Campo,50); Contas[playerid][Char3] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Char4",Campo,50); Contas[playerid][Char4] = strval(Campo);
            db_get_field_assoc(ContaExistente,"Char5",Campo,50); Contas[playerid][Char5] = strval(Campo);
            Contas[playerid][Logado] = true;
        }
        db_free_result(ContaExistente);
    }
    if(dialogid == REGISTRO)
    {
        if(!response)
            Kick(playerid);

        if(strlen(inputtext) < 5 || strlen(inputtext) > 17)
        {
            format(String256, sizeof(String256), "{FFFAFA}Bem Vindo {1BCCE0}%s{FFFAFA}\nServidor Renascece RPG (TWGames)\n\nSua senha deve ter mais de 6 e menos de 16 Caracteres!\n\nDigite uma senha abaixo para se registrar:", PlayerName(playerid));
            ShowPlayerDialog(playerid, REGISTRO, DIALOG_STYLE_INPUT, "COMEÇANDO NO SERVIDOR", String256, "Registrar", "");
        }
        else
        {
            format(StringDB,sizeof StringDB,"INSERT INTO `Contas` (`Nome`,`Senha`,`Email`,`TWS`,`Admin`,`Vip`,`Char1`,`Char2`,`Char3`,`Char4`,`Char5`) VALUES('%s','%s','0','0','0','0','0','0','0','0')",DB_Escape(PlayerName(playerid)), DB_Escape(inputtext));
            db_query(g_DBHandle, StringDB);
            format(String256, sizeof(String256), "{FFFFFF}Conectando pela primeira vez, {1BCCE0}%s{FFFFFF}\n\nLogue-se usando sua senha :D\nSeja bem Vindo e tenha um otimo jogo !!!", PlayerName(playerid));
            ShowPlayerDialog(playerid, LOGIN, DIALOG_STYLE_PASSWORD, "Logando", String256, "Logar", "");
        }
    }
    return 1;
}

DB_Escape(text[])
{
    new
        ret[80 * 2],
        ch,
        i,
        j;
    while ((ch = text[i++]) && j < sizeof (ret))
    {
        if (ch == '\'')
        {
            if (j < sizeof (ret) - 2)
            {
                ret[j++] = '\'';
                ret[j++] = '\'';
            }
        }
        else if (j < sizeof (ret))
        {
            ret[j++] = ch;
        }
        else
        {
            j++;
        }
    }
    ret[sizeof (ret) - 1] = '\0';
    return ret;
}


PlayerName(playerid){
    new tmpName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, tmpName, sizeof(tmpName));
    return tmpName;
}
Schocc is offline   Reply With Quote
Old 23/08/2014, 08:35 AM   #7
maikonk
Huge Clucker
 
maikonk's Avatar
 
Join Date: Sep 2010
Location: Curitiba
Posts: 247
Reputation: 3
Default Re: Undefined Symbol "DB_Escape"

agora compilo certinho kk
sei la o que tu fez ai, mas vlw ai brother pela ajuda (;
maikonk 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
"Undefined symbol "bagid" " S4t3K Scripting Help 7 14/01/2014 04:36 PM
Need help with the error "undefined symbol "INI_Load" Krakuski Scripting Help 2 19/08/2013 02:10 AM
5 Dialog errors - Input line too long, undefined symbol "t","is" and "only" Deal-or-die Scripting Help 6 01/05/2012 12:08 PM


All times are GMT. The time now is 01:22 AM.


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