SA-MP Forums Archive
[Ajuda] Verificar se conta existe, MYSQL - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] Verificar se conta existe, MYSQL (/showthread.php?tid=659841)



Verificar se conta existe, MYSQL - GSantana - 18.10.2018

Olб amigos do fуrum, estou com o seguinte problema, estou fazendo um sistema de criaзгo de conta bancaria, as informaзхes do player estгo sendo inseridas na tabela corretamente, porйm quando й para fazer a verificaзгo para ver se a conta existe, aparece para criar a conta novamente, usei printf para ver se a String estava sendo formatada corretamente, e pelo que parece a funзгo estб sendo chamada varias vezes, cуdigo e print segue anexo.

PHP код:

public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
{
    new 
aname[MAX_PLAYER_NAME],
                                
STRX[150];
    
    
GetPlayerName(playeridanameMAX_PLAYER_NAME);
    
    
format(STRXsizeof(STRX), "SELECT * FROM `bancosf` WHERE `nome` = '%s'",aname);
    
mysql_tquery(ConexaoSTRX);
    
    if(
newkeys == KEY_YES)
     {
      if(
IsPlayerInRangeOfPoint(playerid2.0, -2141.0303,59.8233,35.3363))
       {
        if(
cache_num_rows() > 0)
         {
         
         }
          else
           {
           
format(STRXsizeof(STRX), "{FFFF00}>>Digite uma senha para criar sua conta bancaria \n>>Sua senha deve conter no minimo 8 e no mбximo 16 caracteres\n\n{FFFFFF}>>Digite sua senha");
           
ShowPlayerDialog(playeridDIALOG_CONTA_BANCODIALOG_STYLE_PASSWORD"{FFFFFF}Criar Conta"STRX"Criar""");
           }
       }
     
     }
    return 
1;
}
if(
dialogid == DIALOG_CONTA_BANCO)
     {
      if(
strlen(inputtext) >= && strlen(inputtext) <= 16)
       {
        
GetPlayerName(playeridanamesizeof(aname));
        
tConta 6000 random(8999);
        
        
format(Querysizeof(Query), "INSERT INTO `bancosf` (`nome`, `senha`, `conta`, `dinheiro`) VALUES ('%s', '%s', '%d', '%d')"anameinputtexttConta4000);
         
mysql_tquery(ConexaoQuery);
         
printf(Query);
         
         
format(Querysizeof(Query), ">>Sua conta й: %d \n\n>>Sua senha й: %s \n\n>>Seu saldo й de: 4000"tContainputtext);
         
ShowPlayerDialog(playeridDIALOG_CONFIRMADIALOG_STYLE_MSGBOX"BANCO"Query"Fechar""");
       }
        else
         {
          
format(STRXsizeof(STRX), "{FFFF00}>>Digite uma senha para criar sua conta bancaria \n>>{FFFFFF}Sua senha deve conter no minimo 8 e no mбximo 16 caracteres\n\n{FFFF00}>>Digite sua senha");
          
ShowPlayerDialog(playeridDIALOG_CONTA_BANCODIALOG_STYLE_PASSWORD"{FFFFFF}Criar Conta"STRX"Criar""");
         }
     
     } 



Re: Verificar se conta existe, MYSQL - Ermanhaut - 18.10.2018

Este modo й ruim para comparar teclas
Код:
if(newkeys == KEY_YES)
Tente utilizar
Код:
if(newkeys & KEY_YES)
Mais informaзхes: OnPlayerKeyStageChange


Re: Verificar se conta existe, MYSQL - GSantana - 18.10.2018

Quote:
Originally Posted by Ermanhaut
Посмотреть сообщение
Este modo й ruim para comparar teclas
Код:
if(newkeys == KEY_YES)
Tente utilizar
Код:
if(newkeys & KEY_YES)
Mais informaзхes: OnPlayerKeyStageChange
Obrigado amigo, verifiquei a wiki sa-mp e vi que realmente este й o melhor modo, aproveitando o tуpico, poderia me tirar uma dъvida, qual a diferenзa de newkeys e oldkeys jб que as duas "verificam" se o jogador pressionou uma tecla, nгo seria correto newkeys e pressedkeys assim verificaria se estб sendo pressionada ou se pressionou !?


Re: Verificar se conta existe, MYSQL - Ermanhaut - 18.10.2018

A diferenзa й a seguinte:

newkeys se refere ao estado das teclas do frame atual do player.
oldkeys se refere ao estado das teclas do frame anterior.

Quando o player pressiona qualquer tecla, como por exemplo a tecla C (KEY_CROUCH), na variбvel newkeys й modificada a informaзгo de que o player apertou aquela tecla.
Apуs um frame, a informaзгo do newkeys й redirecionada para oldkeys e o novo estado de teclas do player й atribuнdo a newkeys.
Deste forma, se o player pressionou a tecla C e a manteve pressionada durante um segundo, oldkeys e newkeys terгo a informaзгo de que KEY_CROUCH estб pressionada, mas no frame que o player soltar a tecla, newkeys nгo terб mais o valor atribuнdo а tecla, mas oldkeys sim.

Entгo, vocк pode fazer trкs verificaзхes distintas: quando o player pressiona uma tecla, quando ele estб segurando um tecla e quando ele solta a tecla. Tudo relacionado a estas informaзхes.

Espero que eu tenha explicado bem.