[AJUDA] MySql Carregamento
#1

Eae Pessoal To Com Um Problema Aque No MySQL Nao Quer Carregar!

stock:
pawn Код:
stock CarregarPlayer(playerid)
{
    new arquivo[150],result[150];
    format(arquivo,sizeof(arquivo),"SELECT * FROM jogadores WHERE player = '%s'",Nome(playerid));
    mysql_query(arquivo);
    mysql_store_result();
    if(mysql_fetch_row(result))
    {
    sscanf(result,"e<p<|>s[25]s[100]s[16]iiiiiiiii>",PlayerInfo[playerid]);
    }
    mysql_free_result();
    GivePlayerCash(playerid,PlayerInfo[playerid][Dinheiro]);
    SetPlayerScore(playerid,PlayerInfo[playerid][Score]);
    return 1;
}
chamada stock:
pawn Код:
if(dialogid == 18)
    {
        new str[150];
        if(response)
        {
        format(str, sizeof(str),"SELECT * FROM jogadores WHERE player = '%s' AND senha = sha1('%s')",Nome(playerid),inputtext);
        mysql_query(str);
        mysql_store_result();
        if(mysql_num_rows() == 0)
        {
        PlayerInfo[playerid][TLogin] ++;
        if(PlayerInfo[playerid][TLogin] == MAX_LOGIN)
        {
        format(str, sizeof(str),"[HS]--> %s Foi Automaticamente Kickado Motivo: Nгo Conseguiou Logar-se",Nome(playerid));
        SendClientMessageToAll(cinza,str);
        return 0;
        }
        format(str, sizeof(str),"[CONTA]: Senha Incorreta! Tentativa %d/%d",PlayerInfo[playerid][TLogin],MAX_LOGIN);
        SendClientMessage(playerid,fail,str);
        return ShowPlayerDialog(playerid,18,DIALOG_STYLE_PASSWORD,"Login","Conta Registrada Por Favor\nDigite Sua Senha Para\nPoder Jogar:","Logar","Sair");
        }else{
        SendClientMessage(playerid,verde,"[CONTA]: Logado Com Sucesso!");
        CarregarPlayer(playerid);//chamada ake ===========================
        PlayerInfo[playerid][Logado] = 1;
        new ip[16];
        GetPlayerIp(playerid,ip,sizeof(ip));
        format(str,sizeof(str),"UPDATE jogadores SET ip='%s' WHERE player = '%s'",ip,Nome(playerid));
        mysql_query(str);
        }
        mysql_free_result();
        }else{
        format(str, sizeof(str),"[HS]--> %s Foi Automaticamente Kickado Motivo: Nгo Quis Se Logar-se",Nome(playerid));
        SendClientMessageToAll(verde,str);
        Kick(playerid);
        }
    }
enum:
pawn Код:
enum PINFO{
    Nick[26],
    Senha[100],
    PIP[16],
    Level,
    GODCAR,
    Banido,
    Kill,
    Dinheiro,
    Score,
    PMorreu,
    Preso,
    CTrancado,
    Avisos,
    Logado,
    TPreso,
    UPM[128],
    ULTMSG[130],
    Din,
    MG,
    BZ,
    ARE,
    MIP,
    TeMPL,
    Speed,
    SPR,
    Calado,
    msgold,
    X1,
    BPM,
    CMD,
    MD,
    X1W,
    SNP,
    PisN,
    Evento,
    Carro,
    Radio,
    DBArma[13],
    DBBalas[13],
    AFDC,
    Votei,
    TLogin,
};
myadmin:


Todas Informaзoes Estбo Ae Me Ajudem Por Favor Ja Tendei De Tudo Esse Trem Nao Vai Affe!
Reply
#2

Vish , meu йr Totalmente diferente ;(
Reply
#3

sscanf(result,"p<|>e<s[25]s[100]s[16]iiiiiiiii>",PlayerInfo[playerid]);
Reply
#4

Nao Deu Stewie :S Continuo Nao Carregando

Eu Botei Para Printar Uma Variavel Dps DO Carregamento
pawn Код:
sscanf(result,"p<|>e<s[25]s[100]s[16]iiiiiiiii>",PlayerInfo[playerid]);
    print(PlayerInfo[playerid][GODCAR]);
Pritou :
Reply
#5

Assim o sscanf farб o que vocк quer :


pawn Код:
sscanf
(
    result, "p<|>s[26]s[100]s[16]iiiiiiiii",
    PlayerInfo[playerid][Nick],
    PlayerInfo[playerid][Senha],
    PlayerInfo[playerid][PIP],
    PlayerInfo[playerid][Level],
    PlayerInfo[playerid][GODCAR],
    PlayerInfo[playerid][Banido],
    PlayerInfo[playerid][SPR], //Correspondente а coluna spree ?
    PlayerInfo[playerid][Dinheiro],
    PlayerInfo[playerid][Score],
    PlayerInfo[playerid][PMorreu],
    PlayerInfo[playerid][Preso], //Correspondente а coluna preso ?
    PlayerInfo[playerid][Carro]  //Correspondente а coluna carrot ?
);


Espero ter ajudado .
Reply
#6

Deu Certo Rjj Vlw. Mais o Certo Nao Seria Daquele Geito? Eu Usei Uma Vez e Deu Certo Nakele Tipo :S
Reply
#7

Quote:
Originally Posted by ReDKiiL
Посмотреть сообщение
Deu Certo Rjj Vlw. Mais o Certo Nao Seria Daquele Geito? Eu Usei Uma Vez e Deu Certo Nakele Tipo :S
Й que o especificador "e" do sscanf faz as substrings serem armazenadas de acordo com a ordem das constantes da enum .


Exemplo:

pawn Код:
enum x
{
    a, //Primeira constante.
    b, //Segunda constante.
    c, //Terceira constante.
    d, //Quarta constante.
    e //Quinta constante.
}
new y[10][x];



public OnFilterScriptInit()
{
    sscanf("3 4 5", "e<iii>", y[0]);
    printf("%d", y[0][a]); //Imprime 3.
    printf("%d", y[0][b]); //Imprime 4.
    printf("%d", y[0][c]); //Imprime 5.
    //Nenhum valor й transferido a y[0][d], entгo fica 0.
    //Nenhum valor й transferido a y[0][e], entгo fica 0.
    return 1;
}


O sscanf passa o 3 para a parte da segunda dimensгo da array y de нndice igual ao valor da primeira constante, depois faz isso com 4 e a segunda constante, e por fim, 5 e a terceira constante .


Como as constantes com as quais vocк iria trabalhar nгo estavam nessa ordem em sua enum, o "e" nгo fazia o esperado.



Espero ter ajudado .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)