[Ajuda] Salvamento e senha sу com nъmeros
#1

Bom galera, tipo, eu to querendo comeзar meu GM, mas esse sistema de registro ta me dando nos nervo kkk', tipo... eu digito a senha, aн quando vou logar com a senha, diz que ta errado! =/ alguem ajuda ae

pawn Код:
#include <a_samp>
#include <sscanf>
#include <zcmd>
#include <DOF2>

#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2

new Erro[MAX_PLAYERS];
new Profissao[MAX_PLAYERS];

enum zInfo
{
    zAdmin,
    zDinheiro,
    Senha
}
new Info[MAX_PLAYERS][zInfo];

main()
{
    print("\n----------------------------------");
    print(" [GAMEMODE] Brazuka MultiPlayer RPG");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    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)
{
    if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
    else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SalvarContas(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(Profissao[playerid] == 0)
    {
        SetPlayerPos(playerid, 1567.27465820, -1895.38049316, 13.56024456);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            Info[playerid][Senha] = strval(inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strval(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            Info[playerid][Senha] = DOF2_GetInt(Contas(playerid), "Senha");
            if(strval(inputtext) == Info[playerid][Senha])
            {
                Info[playerid][zAdmin] = DOF2_GetInt(Contas(playerid), "Admin");
                Info[playerid][zDinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
                Profissao[playerid] = DOF2_GetInt(Contas(playerid), "Profissao");
                GivePlayerMoney(playerid, Info[playerid][zDinheiro]);
                DOF2_SaveFile();
                SpawnPlayer(playerid);
            }
            else
            {
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    Ban(playerid);
                    return 1;
                }
            }
        }
    }
    return 1;
}

stock Contas(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, 32);
    format(arquivo, 40, "Contas/%s.ini", name);
    return arquivo;
}

stock SalvarContas(playerid)
{
    if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        DOF2_SetInt(Contas(playerid), "Senha", Info[playerid][Senha]);
        DOF2_SetInt(Contas(playerid), "Admin", Info[playerid][zAdmin]);
        DOF2_SetInt(Contas(playerid), "Profissao", Profissao[playerid]);
        DOF2_SetInt(Contas(playerid), "Dinheiro", Info[playerid][zDinheiro]);
        Info[playerid][zDinheiro] = GetPlayerMoney(playerid);
        DOF2_SaveFile();
    }
    return 1;
}

CMD:beneficios(playerid)
{
    Info[playerid][zAdmin] = 5;
    Profissao[playerid] = 1;
    GivePlayerMoney(playerid, 10000);
    return 1;
}
Reply
#2

Ajeitei tudo, deleta esta sua merda que se fez, e substitui por esta aqui.

pawn Код:
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <DOF2>

#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2

new
Erro[MAX_PLAYERS],
Profissao[MAX_PLAYERS];

enum zInfo
{
    zAdmin,
    Senha[50]
}
new Info[MAX_PLAYERS][zInfo];

main()
{
    print("\n----------------------------------");
    print(" [GAMEMODE] Brazuka MultiPlayer RPG");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    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)
{
    if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
    else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SalvarContas(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(Profissao[playerid] == 0)
    {
        SetPlayerPos(playerid, 1567.27465820, -1895.38049316, 13.56024456);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            format(Info[playerid][Senha],50,inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
        return 1;
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            if(!strcmp(DOF2_GetString(Contas(playerid), "Senha"),inputtext,true))
            {
                carregar(playerid);
                SpawnPlayer(playerid);
            }
            else
            {
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    Ban(playerid);
                    return 1;
                }
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
            }
        }
        return 1;
    }
    return 0;
}

stock Contas(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    format(arquivo, 40, "Contas/%s.ini", name);
    return arquivo;
}
stock carregar(playerid)
{
    Info[playerid][zAdmin] = DOF2_GetInt(Contas(playerid), "Admin");
    Profissao[playerid] = DOF2_GetInt(Contas(playerid), "Profissao");
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,DOF2_GetInt(Contas(playerid), "Dinheiro"));
    return 1;
}
stock SalvarContas(playerid)
{
    if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        DOF2_SetInt(Contas(playerid), "Senha", Info[playerid][Senha]);
        DOF2_SetInt(Contas(playerid), "Admin", Info[playerid][zAdmin]);
        DOF2_SetInt(Contas(playerid), "Profissao", Profissao[playerid]);
        DOF2_SetInt(Contas(playerid), "Dinheiro", GetPlayerMoney(playerid));
        DOF2_SaveFile();
    }
    return 1;
}

CMD:beneficios(playerid)
{
    Info[playerid][zAdmin] = 5;
    Profissao[playerid] = 1;
    GivePlayerMoney(playerid, 10000);
    return 1;
}
Reply
#3

WTF? YouLord, quem й tu pra falar alguma bosta? Tu й o rei do samp? Pai do GTA? Fica de boa tio! Tu nгo passa de um newbie querendo se pagar aqui no fуrum! Tu nгo tem moral nгo!
Reply
#4

Desde quando precisa ser high roller pra ter voz? desde quando preciso de reputation para ter voz? Se nгo queres sentir minha opiniгo, nem leia entгo.
Reply
#5

Mas precisa chamar as coisas dos outros usuarios de merda? Tu tem que respeitar, pois vocк nгo passa de um mlk querendo se pagar de espertгo, se quer se achar, vai na merda da sua rua e danзa pelado!
Reply
#6

Exato Lord_Style e danзar pelado й exagero, YourLord e se o cara fez ele ta tentando errar й humano e vc gostaria que eu chegasse e falasse para vc jogar fora essa merda de pc que vc tem e montar outro?

edit: Esqueci de colocar o code eu colocaria no lugar de
pawn Код:
if(strval(inputtext) == Info[playerid][Senha])
isso
pawn Код:
if(inputtext != DOF2_GetInt(Contas(playerid), "Senha")
dnv se eu tiver falando besteira me corrija e nгo entendo para que usar strcmp nesse caso entгo me explique pq fiz assim aqui no meu sу que usando bini e com uns detalhes.
Reply
#7

strcmp й um comparador de strings, sobre a parte do pc, eu levaria na boa, jб que й a opiniгo dele para com o meu pc.
Reply
#8

uma pergunta vc tem dupla personalidade? Vc escreveu tгo gentil agora e a parte do pc eu tb levaria na boa ja que eu sei que meu pc pode n ser um core i7 ou um fx mais ao menos й um core i3. Mas do meu geito funcionaria ou n ? eu acho strcmp util para outras ocasiхes mas nesse caso n.
Reply
#9

Nгo funcionaria, seria a mesma coisa que fazer isto.

pawn Код:
new
a[6] = "funfa";
if(a == funcB("funfa"))
{
}

stock funcB(str[])
{
    return str;
}
Caso teste, vai dar erro. eu fiz uma suposiзгo que a senha dele tem que ser uma string(normalmente deve ser), pois esta em nъmeros, apenas bastava comparar o inputtext e o nъmero que tem no arquivo, Mas enfim, mudei para poder colocar qualquer coisa, pois й bem melhor.
Reply
#10

Quote:
Originally Posted by YourLord
Посмотреть сообщение
Ajeitei tudo, deleta esta sua merda que se fez, e substitui por esta aqui.

pawn Код:
#include <a_samp>
#include <sscanf2>
#include <zcmd>
#include <DOF2>

#define     DIALOG_REGISTRO         1
#define     DIALOG_LOGAR            2

new
Erro[MAX_PLAYERS],
Profissao[MAX_PLAYERS];

enum zInfo
{
    zAdmin,
    Senha[50]
}
new Info[MAX_PLAYERS][zInfo];

main()
{
    print("\n----------------------------------");
    print(" [GAMEMODE] Brazuka MultiPlayer RPG");
    print("----------------------------------\n");
}

public OnGameModeInit()
{
    SetGameModeText("Blank Script");
    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    return 1;
}

public OnGameModeExit()
{
    DOF2_Exit();
    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)
{
    if(DOF2_FileExists(Contas(playerid))) ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк й Registrado, digite sua senha para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
    else ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Vocк ainda nгo й Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    SalvarContas(playerid);
    return 1;
}

public OnPlayerSpawn(playerid)
{
    if(Profissao[playerid] == 0)
    {
        SetPlayerPos(playerid, 1567.27465820, -1895.38049316, 13.56024456);
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT, "Registro", "Digite apenas nъmeros!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            format(Info[playerid][Senha],50,inputtext);
            SalvarContas(playerid);
            ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк se cadastrou, agora й sу logar com sua senha registrada!", "Confirma", "Cancelar");
        }
        return 1;
    }
    if(dialogid == DIALOG_LOGAR)
    {
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas nъmeros!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(!response) return Kick(playerid);
        else
        {
            if(!strcmp(DOF2_GetString(Contas(playerid), "Senha"),inputtext,true))
            {
                carregar(playerid);
                SpawnPlayer(playerid);
            }
            else
            {
                if(Erro[playerid] == 5)
                {
                    SendClientMessage(playerid, -1, "Sua conta estб banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
                    Ban(playerid);
                    return 1;
                }
                ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Vocк digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
                Erro[playerid]++;
            }
        }
        return 1;
    }
    return 0;
}

stock Contas(playerid)
{
    new arquivo[40], name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof name);
    format(arquivo, 40, "Contas/%s.ini", name);
    return arquivo;
}
stock carregar(playerid)
{
    Info[playerid][zAdmin] = DOF2_GetInt(Contas(playerid), "Admin");
    Profissao[playerid] = DOF2_GetInt(Contas(playerid), "Profissao");
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid,DOF2_GetInt(Contas(playerid), "Dinheiro"));
    return 1;
}
stock SalvarContas(playerid)
{
    if(!DOF2_FileExists(Contas(playerid))) DOF2_CreateFile(Contas(playerid));
    else
    {
        DOF2_SetInt(Contas(playerid), "Senha", Info[playerid][Senha]);
        DOF2_SetInt(Contas(playerid), "Admin", Info[playerid][zAdmin]);
        DOF2_SetInt(Contas(playerid), "Profissao", Profissao[playerid]);
        DOF2_SetInt(Contas(playerid), "Dinheiro", GetPlayerMoney(playerid));
        DOF2_SaveFile();
    }
    return 1;
}

CMD:beneficios(playerid)
{
    Info[playerid][zAdmin] = 5;
    Profissao[playerid] = 1;
    GivePlayerMoney(playerid, 10000);
    return 1;
}
Cara, estб a mesma coisa, eu me registrei, loguei certinho, mas quando fui logar denovo, diz que ta errado a senha....
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)