[Ajuda] MySql Verificar se o player jб tem conta no banco de dados
#1

Olб galera, bom eu jб sei mexer com pawn porйm estou mudando meu servidor para mysql e estou com dificuldades.
Jб procurei exemplos e estou indo direto na wiki samp porйm nгo estб resolvendo muito meu problema.

Meu problema й que quando o player entra no servidor, eu acho que nгo estб verificando se ele tem conta no banco de dados, porque se ele tiver irб aparecer a dialog login, esse ele nгo tiver conta no banco de dados eu quero que apareзa a dialog registro e crie a conta dele com as propriedades abaixo.
Obs: a conexгo com o banco de dados estб funcionando normalmente, o erro й em um dos cуdigos abaixo.

Quem puder e conseguir me ajudar irei dar reputaзгo

Informaзхes:
Nome do banco de dados: samp
Nome da tabela: usuarios

Informaзхes da tabela:
id MEDIUMINT PRIMARY KEY NOT NULL AUTO_INCREMENT
usuario VARCHAR( 24 )
senha VARCHAR( 40 )
level INT( 20 )
dinheiro INT( 20 )

Comeзo para verificar se o player tem conta no banco de dados
PHP Code:
public OnPlayerRequestClass(playeridclassid)
{
    new 
query[255];
    
format(query,sizeof(query),"SELECT * FROM `usuarios` WHERE usuario='%s'"aname);
    
mysql_function_query(dbhandlequerytrue"MySQL_Verificando""d"playerid);
    return 
1;

Stock para verificar se o player tem conta no banco de dados
PHP Code:
stock MySQL_Verificando(playerid)
{
    static 
rows,fields;
    
cache_get_data(rowsfieldsdbhandle);
    if(
rows)
    {
        
formatstring1sizeofstring1 ) ,"{FFFFFF}          » Logando em sua conta.\n\nSeja bem vindo( a )  novamente ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00}          Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00}          Status da conta: {3366FF}Registrada\n\n {FFFFFF}Insira sua senha abaixo para logar:"aname ) ;
        
ShowPlayerDialogplayeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™"string1"Login""Cancelar" ) ;
    }
    else
    {
        
formatstring1sizeofstring1 ) ,"{FFFFFF}          » Registrando sua conta.\n\nSeja bem vindo( a )  ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00}          Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00}          Status da conta: {FF0000}Nгo registrada\n\n {FFFFFF}Insira uma senha abaixo para registrar-se:"aname ) ;
        
ShowPlayerDialogplayeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™"string1"Registrar""Cancelar" ) ;
    }
    return 
1;

Stock para checar a senha do Login
PHP Code:
stock MySql_ChecarSenha(playerid)
{
    static 
rows,fields;
    
cache_get_data(rowsfieldsdbhandle);
    if(
rows)
    {
        new 
string[255];
        
formatstringsizeof( string ) , "{FFFF00}[ > ] Seu ъltimo login foi dia {FFFFFF}%s бs %s"dini_Get(file"UltimoLoginData"), dini_Get(file"UltimoLoginHora")) ;
        
SendClientMessageplayerid, -1string ) ;
        
SendClientMessageplayerid, -1"{a9c4e4}[ > ] Caso queira continuar da sua ъltima posiзгo salva, digite: {FFFFFF}/Continuar");
        
SendClientMessageplayerid, -1"{a9c4e4}[ > ] Vocк tem 30 segundos para usar este comando!");
        
TimerContinuar playerid ] = SetTimerEx"BloquearContinuar"30000false"i"playerid ) ;
        
LiberadoContinuar[playerid] = 1;
        
CarregarDadosplayerid ) ;
        
SetPlayerColorplayerid,-) ;
        
SpawnPlayerplayerid ) ;
    }
    else
    {
       
SendClientMessageplayerid, -1" [ x ] {FF0000}Senha invбlida, Digite a senha correta!" ) ;
       
formatstring1sizeofstring1 ) ,"{FFFFFF}          » Logando em sua conta.\n\nSeja bem vindo( a )  novamente ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00}          Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00}          Status da conta: {3366FF}Registrada\n\n {FFFFFF}Insira sua senha abaixo para logar:"aname ) ;
       
ShowPlayerDialogplayeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™"string1"Login""Cancelar" ) ;
    }
    return 
1;

Dialog de Login
PHP Code:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    if( 
dialogid == DIALOG_LOGIN )
     {
         if( 
response )
         {
            new 
aname MAX_PLAYER_NAME ], string1 450 ];
            
GetPlayerNameplayerid,anamesizeofaname ) ) ;
            if( !
strleninputtext ) )
            {
                  
SendClientMessageplayerid, -1" [ x ] {FF0000}Digite uma senha para sua conta!" ) ;
                
formatstring1sizeofstring1 ) ,"{FFFFFF}          » Logando em sua conta.\n\nSeja bem vindo( a )  novamente ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00}          Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00}          Status da conta: {3366FF}Registrada\n\n {FFFFFF}Insira sua senha abaixo para logar:"aname ) ;
                
ShowPlayerDialogplayeridDIALOG_LOGINDIALOG_STYLE_PASSWORD"{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™"string1"Login""Cancelar" ) ;
            }
            new 
query[255];
            
format(query,sizeof(query),"SELECT * FROM `usuarios` WHERE usuario='%s' and senha='%s'"anameinputtext);
            
mysql_function_query(dbhandlequerytrue"MySql_ChecarSenha""d"playerid);
        }
        else
        {
            new 
stringz 148 ];
            
formatstringzsizeofstringz ) ," [ x ] O( a )  player %s foi kickado( a )  por nгo efetuar Login." ) ;
            
SendClientMessageToAll( -1stringz ) ;
            
Kickplayerid ) ;
        }
     }
    return 
1;

Dialog de Registro
PHP Code:
public OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
     if( 
dialogid == DIALOG_REGISTRO )
     {
         if( 
response )
         {
            new 
aname MAX_PLAYER_NAME ], string1 450 ];
            
GetPlayerNameplayerid,anamesizeofaname ) ) ;
            if( !
strleninputtext ) )
            {
                  
SendClientMessageplayerid, -1" [ x ] {FF0000}Digite uma senha para sua conta!" ) ;
                 
formatstring1sizeofstring1 ) ,"{FFFFFF}          » Registrando sua conta.\n\nSeja bem vindo( a )  ao {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™\n\n{00FF00}          Usuбrio( a ) : {FFFFFF}%s\n\n{00FF00}          Status da conta: {FF0000}Nгo registrada\n\n {FFFFFF}Insira uma senha abaixo para registrar-se:"aname ) ;
                
ShowPlayerDialogplayeridDIALOG_REGISTRODIALOG_STYLE_PASSWORD"{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™"string1"Registrar""Cancelar" ) ;
            }
            else
            {
                new 
query[255];
                
format(querysizeof(query),"INSERT INTO usuarios (usuario, senha, morreu, matou, dinheiro, minuto1, minuto2, segundo1, segundo2) VALUES('%s', SHA1('%s'), 0, 0, 5000, 0, 9, 5, 9)"anameinputtext);
                
mysql_query(dbhandlequery);
                
formatstring1sizeofstring1 ) ,"{FFFFFF}» {FF0000}COLOQUE ABAIXO SEU E-MAIL PARA RECUPERACAO DE SENHA!\n{FFFFFF}» {FF0000}COLOQUE UM E-MAIL VБLIDO!\n{FFFFFF}» {FF0000}NГO SEREMOS RESPONSAVEIS A RECUPERAR CONTAS SEM E-MAIL!\n\n{FFFFFF}Insira um e-mail vбlido para recuperaзгo de senha:"aname ) ;
                
ShowPlayerDialogplayeridDIALOG_EMAILDIALOG_STYLE_INPUT"{FFFFFF}•» {FFFF00}B{00FF00}r{3366FF}a{FFFF00}s{00FF00}i{3366FF}l {FFFFFF}PlayBoy City RPG {FF0000}№.°™"string1"Salvar""Cancelar" ) ;
                return 
1;
            }
        }
        else
        {
            new 
stringz 148 ];
            
formatstringzsizeofstringz ) ," [ x ] O( a )  player %s foi kickado( a )  por nгo efetuar um registro." ) ;
            
SendClientMessageToAll( -1stringz ) ;
            
Kickplayerid ) ;
        }
     }
    return 
1;

Reply
#2

https://sampforum.blast.hk/showthread.php?tid=484430

tem exemplo de como fazer isso q vc quer

@edit
pelo o q aprendi vc n pode criar stock para passar como parвmetro para a function mysql_function_query. tem que ser uma public!
Reply
#3

Quote:
Originally Posted by WooPz
View Post
pelo o q aprendi vc n pode criar stock para passar como parвmetro para a function mysql_function_query. tem que ser uma public!
Vocк viu isso aonde?

@Topic: Faltou obter o nickname, para verificar se a conta existe.
Variбvel: aname

Quote:
Originally Posted by [BOPE]Seu._.Madruga
View Post
PHP Code:
public OnPlayerRequestClass(playeridclassid)
{
    new 
query[255];
    
format(query,sizeof(query),"SELECT * FROM `usuarios` WHERE usuario='%s'"aname);
    
mysql_function_query(dbhandlequerytrue"MySQL_Verificando""d"playerid);
    return 
1;

Reply
#4

Quote:
Originally Posted by Schocc
View Post
Vocк viu isso aonde?

@Topic: Faltou obter o nickname, para verificar se a conta existe.
Variбvel: aname
com o criador do tutorial
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)