[Ajuda] Login e salvamento!
#1

Saudaзхes pessoas de outro planetas, estou precisando de ajuda na mysql! Deem uma olhada:
PHP код:
public OnPlayerConnect(playerid)
{
       
mysql_format(Conexaocfilesizeof(cfile), "SELECT `Senha`, `Id` FROM `Contas` WHERE `Nome`='%s'"Pname(playerid));
    
mysql_tquery(Conexaocfile"CheckCount""i"playerid);
forward CheckCount(playerid);
public 
CheckCount(playerid)
{
    new 
string[100];
    if(
cache_num_rows() > 0)
    {
        
format(stringsizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!"Pname(playerid), Pname(playerid), PlayerIP(playerid));
        
ShowPlayerDialog(playeridD_LOGINDIALOG_STYLE_PASSWORD"{FF0000}Login"string"Confirmar""Cancelar");
    }
    else
    {
        
format(stringsizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!"Pname(playerid), Pname(playerid), PlayerIP(playerid));
        
ShowPlayerDialog(playeridD_REGISTRODIALOG_STYLE_INPUT"{FF0000}Registro"string"Confirmar""Cancelar");
    }
    return 
1;
}
public 
OnDialogResponse(playeriddialogidresponselistiteminputtext[])
{
    new 
string[100];
    switch(
dialogid)
    {
        case 
D_REGISTRO:
        {
            new 
query[300];
            if(!
responsekick(playerid);
            if(
strlen(inputtext) < || strlen(inputtext) > 20)
            {
                
format(stringsizeof(string), "{1E90FF}Seja bem vindo ao servidor %s!\n{FF0000}Conta: Nгo registrada!\nIp:{1E90FF}%d!"Pname(playerid), PlayerIP(playerid));
                
ShowPlayerDialog(playeridD_REGISTRODIALOG_STYLE_INPUT"{FF0000}Registro"string"Confirmar""Cancelar");
                
Tentativas[playerid]++;
                
SendClientMessage(playerid0xFF0000AA"[ ERRO ]Senhas variam de 4 a 20 caracteres!");
                return 
1;
            }
            else
            {
                
mysql_format(Conexaoquerysizeof(query), "INSERT INTO `Contas`(`Nome`, `Senha`) VALUES ('%s', '%s')"Pname(playerid), inputtext);
                
mysql_query(Conexaoqueryfalse);
                
RegistrarDados(playerid);
            }
        }
        case 
D_LOGIN:
        {
            new 
query[300];
            if(!
response) return kick(playerid);
            if(
strlen(inputtext) < || strlen(inputtext) > 20)
            {
                
Tentativas[playerid]++;
                
SendClientMessage(playerid0xFF0000AA"[ ERRO ]Senha de 4 a 20 caracteres!");
                
format(stringsizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!"Pname(playerid), Pname(playerid), PlayerIP(playerid));
                
ShowPlayerDialog(playeridD_LOGINDIALOG_STYLE_PASSWORD"{FF0000}Login"string"Confirmar""Cancelar");
                return 
true;
            }
            if(
Tentativas[playerid] == 3) return Kick(playerid);
            
mysql_format(Conexaoquerysizeof(query), "SELECT `Senha` FROM `Contas` WHERE `Nome`='%s'"Pname(playerid));
            
mysql_query(Conexaoquerytrue);
            
cache_get_value(0"Senha"pInfo[playerid][Senha], 20);
            if(
strcmp(inputtextpInfo[playerid][Senha]) == 0)
            {
                
mysql_format(Conexaoquerysizeof(query), "SELECT * FROM `Contas` WHERE `Nome`='%s'"Pname(playerid));
                
mysql_tquery(Conexaoquery"LogarConta""i"playerid);
                
SendClientMessage(playerid0xFF0000AA"[ PB ]A conta foi carregada com sucesso!");
            }
            else
            {
                
SendClientMessage(playerid0xFF0000AA"[ ERRO ]Sua senha esta errada!");
                
format(stringsizeof(string), "{1E90FF}Seja bem vindo novamente %s\nSeu Nick: %s\nSeu IP: %d!"Pname(playerid), Pname(playerid), PlayerIP(playerid));
                
ShowPlayerDialog(playeridD_LOGINDIALOG_STYLE_PASSWORD"{FF0000}Login""Digite uma senha pra se logar!""Confirmar""Cancelar");
                return 
1;
            }
        }
    }
    return 
1;
}
forward LogarConta(playerid);
public 
LogarConta(playerid)
{
    
printf("A conta do player %d foi logada com sucesso!"playerid);
    
cache_get_value_int(0"Skin"pInfo[playerid][Skin]);
    
cache_get_value_int(0"Dinheiro"pInfo[playerid][Dinheiro]);
    
cache_get_value_int(0"Level"pInfo[playerid][Level]);
    
cache_get_value_float(0"Vida"pInfo[playerid][Vida]);
    
cache_get_value_float(0"Colete"pInfo[playerid][Colete]);
    
cache_get_value_int(0"Procurado"pInfo[playerid][Procurado]);
    
cache_get_value_int(0"Administrador"pInfo[playerid][Administrador]);
    
cache_get_value_int(0"Moderador"pInfo[playerid][Moderador]);
    
cache_get_value_int(0"Comandante"pInfo[playerid][Comandante]);
    
cache_get_value_int(0"Patente"pInfo[playerid][Patente]);
    
cache_get_value_int(0"Ajudante"pInfo[playerid][Ajudante]);
    
cache_get_value_int(0"TemJetpack"pInfo[playerid][TemJetpack]);
    
cache_get_value_int(0"Profissao"pInfo[playerid][Profissao]);
    
SpawnPlayer(playerid);
    return 
1;
}
stock SalvarDados(playerid) {
    new 
query[800], Float:ViidaFloat:Culete;
    
GetPlayerHealth(playeridViida); GetPlayerArmour(playeridCulete);
    
mysql_format(Conexaoquerysizeof(query), "UPDATE Contas SET Nome='%s', Senha='%s', Skin=%d, Dinheiro=%d, Level=%d, Vida=%f, Colete=%f, Procurado=%d, Administrador=%d, Moderador=%d, Corregedor=%d, Comandante=%d,Patente=%d, Ajudante=%d, TemJetpack=%d, Profissao=%d WHERE `Nome`='%s'",
    
Pname(playerid),
    
pInfo[playerid][Senha],
    
GetPlayerSkin(playerid),
    
GetPlayerMoney(playerid),
    
GetPlayerScore(playerid),
    
Viida,
    
Culete,
    
GetPlayerWantedLevel(playerid),
    
pInfo[playerid][Administrador],
    
pInfo[playerid][Moderador],
    
pInfo[playerid][Corregedor],
    
pInfo[playerid][Comandante],
    
pInfo[playerid][Patente],
    
pInfo[playerid][Ajudante],
    
pInfo[playerid][TemJetpack],
    
pInfo[playerid][Profissao],
    
Pname(playerid));
    
mysql_query(Conexaoqueryfalse);
    
pInfo[playerid][Administrador] = 0;
    
pInfo[playerid][TemJetpack] = 0;
    
pInfo[playerid][Punicao] = 0;
    
pInfo[playerid][Profissao] = 0;
    
pInfo[playerid][Procurado] = 0;
    
pInfo[playerid][Banimentos] = 0;
    
pInfo[playerid][Moderador] = 0;
    
pInfo[playerid][Corregedor] = 0;
    
pInfo[playerid][Comandante] = 0;
    
pInfo[playerid][Patente] = 0;
    
pInfo[playerid][Ajudante] = 0;
    
pInfo[playerid][Aviso] = 0;
    
pInfo[playerid][Skin] = 0;
    
pInfo[playerid][Preso] = 0;
    
pInfo[playerid][Vida] = 0;
    
pInfo[playerid][Colete] = 0;
    
pInfo[playerid][Dinheiro] = 0;
    
pInfo[playerid][Level] = 0;
    
pInfo[playerid][Oculto] = false;
    return 
1;

Os problemas sгo que as vezes as skin nao setam e nao carregam, as vezes o persom morre igual trouxa!
print database:
https://imgur.com/a/QzC6PQo
Reply
#2

pInfo[playerid][Skin] = GetPlayerSkin(playerid);
Coloca junto com GetPlayerHealth e o Armour
Reply
#3

Sistema de salvamento ok, carregamento esta dando pau!
As vezes ele carrega normalmente, mas de vez em quando nгo, e vc compreende que para abrir um servidor precisa ter 100% de certeza q pelo menos o sistema de login precisa estar correto!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)