[Ajuda] Undefined Symbol "DB_Escape"
#1

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 код:
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 код:
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;

Reply
#2

Remova a palavra 'stock' e tente compilar.
Reply
#3

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 ;/
Reply
#4

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
Reply
#5

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 © 1997-2006, ITB CompuPhase


4 Errors.

PHP код:
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

Reply
#6

Tinha muitos erros, eu acabei resolvendo aqui e deixo o cуdigo abaixo.
pawn Код:
#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;
}
Reply
#7

agora compilo certinho kk
sei la o que tu fez ai, mas vlw ai brother pela ajuda (;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)