[Ajuda] Sobre sistema de Registro/Login
#1

Vejam, peguei um sistema de registro mesmo que quero estudar de outra pessoa.
Tava colocando no meu gamemode, que tou comeзando, ai copilou normalmente!
Ai entrei pra testar e mim cadastrei, atй ai tб tudo normal. DEU GMX NO SERVIDOR.
Quando coloquei pra logar pede pra senha pra login mais nem precisei, sу apertei Enter e funcionou, e tinha que pedi a senha, tem como alguns de vocкs ajeitar isso.

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

#define arquivo "Contas/%s.ini"

enum PlayerDados
{
    Senha[16],
    Score,
    Dinheiro,
    Admin,
    bool:Cadastrado
}
new pDados[MAX_PLAYERS][PlayerDados];

main()
{
    print("\n");
    print(" ");
    print("\n");
}

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

public OnGameModeExit()
{
    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)
{
    new string[128];
    pDados[playerid][Cadastrado] = DOF2_GetBool(GetarConta(playerid), "Cadastro");
    if(pDados[playerid][Cadastrado] == false)
    {
        format(string, sizeof(string), "Seja bem vindo, %s!\nVocк ainda nгo estб Cadastrado, digite sua Senha abaixo para se Cadastrar:", pName(playerid));
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro", string, "Cadastrar", "");
    }
    else
    {
        format(string, sizeof(string), "Seja bem vindo, %s!\nVocк estб Cadastrado, digite sua Senha abaixo para se Logar:", pName(playerid));
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", string, "Login", "");
    }
    return 1;
}

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

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[128];
    if(dialogid == 1)
    {
        if(response)
        {
            if(strlen(inputtext) < 8)
            {
                SendClientMessage(playerid, -1, "Vocк deve colocar pelo menos 8 caracteres!");
                format(string, sizeof(string), "Seja bem vindo, %s!\nVocк ainda nгo estб Cadastrado, digite sua Senha abaixo para se Cadastrar:", pName(playerid));
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro", string, "Cadastrar", "");
            }
            else
            {
                new senha[16];
                pDados[playerid][Cadastrado] = true;
                SendClientMessage(playerid, -1, "Vocк acaba de ser Resgistrar neste Servidor, bem vindo!");
                format(senha, sizeof(senha), "%s", inputtext);
                pDados[playerid][Senha] = senha;
                pDados[playerid][Admin] = 0;
                pDados[playerid][Score] = 1;
                pDados[playerid][Dinheiro] = 10000;
                SetPlayerScore(playerid, 1);
                GivePlayerMoney(playerid, 10000);
                DOF2_CreateFile(GetarConta(playerid));
                DOF2_SetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]);
                DOF2_SaveFile();
                SalvarConta(playerid);
            }
        }
        else
        {
            SendClientMessage(playerid, -1, "Registro Cancelado.");
            Kick(playerid);
        }
    }
    else if(dialogid == 2)
    {
        if(response)
        {
            if(strlen(inputtext))
            {
                SendClientMessage(playerid, -1, "Digite algo para Logar!");
                format(string, sizeof(string), "Seja bem vindo, %s!\nVocк estб Cadastrado, digite sua Senha abaixo para se Logar:", pName(playerid));
                ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", string, "Login", "");
            }
            else
            {
                if(strcmp(DOF2_GetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]), inputtext, true, 10) == 0)
                {
                    SendClientMessage(playerid, -1, "Logado com Sucesso.");
                    CarregarConta(playerid);
                    SpawnPlayer(playerid);
                }
                else
                {
                    SendClientMessage(playerid, -1, "Senha Errada, tente outra vez depois!");
                    Kick(playerid);
                }
            }
        }
        else
        {
            SendClientMessage(playerid, -1, "Login Cancelado.");
            Kick(playerid);
        }
    }
    return 1;
}

stock SalvarConta(playerid)
{
    DOF2_SetInt(GetarConta(playerid), "AdiminLevel", pDados[playerid][Admin]);
    DOF2_SetInt(GetarConta(playerid), "Score", GetPlayerScore(playerid));
    DOF2_SetInt(GetarConta(playerid), "Dinheiro", GetPlayerMoney(playerid));
    DOF2_SetBool(GetarConta(playerid), "Cadastro", pDados[playerid][Cadastrado]);
    DOF2_SaveFile();
    return 1;
}

stock CarregarConta(playerid)
{
    pDados[playerid][Admin] = DOF2_GetInt(GetarConta(playerid), "AdiminLevel");
    SetPlayerScore(playerid, DOF2_GetInt(GetarConta(playerid), "Score"));
    GivePlayerMoney(playerid, DOF2_GetInt(GetarConta(playerid), "Dinheiro"));
    return 1;
}

stock GetarConta(playerid)
{
    new arq[40];
    format(arq, sizeof(arq), arquivo, pName(playerid));
    return arq;
}

stock pName(playerid)
{
    new name[24];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
}

CMD:viraradminfodaoaquiporra(playerid)
{
    if(pDados[playerid][Cadastrado] == true)
    {
        pDados[playerid][Admin] = 9999;
        SendClientMessage(playerid, -1, "Isso ae mano, bota moral nisso!");
    }
    return 1;
}

CMD:dargranatodos(playerid)
{
    if(pDados[playerid][Admin] < 1342) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando!");
    new i;
    while(i < MAX_PLAYERS)
    {
        GivePlayerMoney(i, 10000);
        SendClientMessage(i, -1, "Vocк recebeu $10.000,00!");
        i ++;
    }
    return 1;
}

CMD:kikartodos(playerid)
{
    if(pDados[playerid][Admin] < 1342) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando!");
    new i;
    while(i < MAX_PLAYERS)
    {
        Kick(i);
        SendClientMessage(i, -1, "Vocк foi Kikado!");
        i ++;
    }
    return 1;
}
Reply
#2

pawn Код:
if(!strlen(inputtext)) // Se o jogador tentou logar sem escrever uma senha
                    {
                        // Vamos mostrar o dialogo pra ele novamente.
                        ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","VOCE TEM QUE DIGITAR SENHA NE LERDAO!","Logar","Sair");
                        return 1;
                    }
@Edit ta ae doido:

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

#define arquivo "Contas/%s.ini"

enum PlayerDados
{
    Senha[16],
    Score,
    Dinheiro,
    Admin,
    bool:Cadastrado
}
new pDados[MAX_PLAYERS][PlayerDados];

main()
{
    print("\n");
    print(" ");
    print("\n");
}

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

public OnGameModeExit()
{
    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)
{
    new string[128];
    pDados[playerid][Cadastrado] = DOF2_GetBool(GetarConta(playerid), "Cadastro");
    if(pDados[playerid][Cadastrado] == false)
    {
        format(string, sizeof(string), "Seja bem vindo, %s!\nVocк ainda nгo estб Cadastrado, digite sua Senha abaixo para se Cadastrar:", pName(playerid));
        ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro", string, "Cadastrar", "");
    }
    else
    {
        format(string, sizeof(string), "Seja bem vindo, %s!\nVocк estб Cadastrado, digite sua Senha abaixo para se Logar:", pName(playerid));
        ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", string, "Login", "");
    }
    return 1;
}

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

public OnPlayerSpawn(playerid)
{
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    return 1;
}

public OnVehicleSpawn(vehicleid)
{
    return 1;
}

public OnVehicleDeath(vehicleid, killerid)
{
    return 1;
}

public OnPlayerText(playerid, text[])
{
    return 1;
}

public OnPlayerCommandText(playerid, cmdtext[])
{
    return 1;
}

public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
    return 1;
}

public OnPlayerExitVehicle(playerid, vehicleid)
{
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    return 1;
}

public OnPlayerEnterCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveCheckpoint(playerid)
{
    return 1;
}

public OnPlayerEnterRaceCheckpoint(playerid)
{
    return 1;
}

public OnPlayerLeaveRaceCheckpoint(playerid)
{
    return 1;
}

public OnRconCommand(cmd[])
{
    return 1;
}

public OnPlayerRequestSpawn(playerid)
{
    return 1;
}

public OnObjectMoved(objectid)
{
    return 1;
}

public OnPlayerObjectMoved(playerid, objectid)
{
    return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
    return 1;
}

public OnVehicleMod(playerid, vehicleid, componentid)
{
    return 1;
}

public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
    return 1;
}

public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
    return 1;
}

public OnPlayerSelectedMenuRow(playerid, row)
{
    return 1;
}

public OnPlayerExitedMenu(playerid)
{
    return 1;
}

public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
    return 1;
}

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    return 1;
}

public OnRconLoginAttempt(ip[], password[], success)
{
    return 1;
}

public OnPlayerUpdate(playerid)
{
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    return 1;
}

public OnPlayerStreamOut(playerid, forplayerid)
{
    return 1;
}

public OnVehicleStreamIn(vehicleid, forplayerid)
{
    return 1;
}

public OnVehicleStreamOut(vehicleid, forplayerid)
{
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new string[128];
    if(dialogid == 1)
    {
        if(response)
        {
            if(strlen(inputtext) < 8)
            {
                SendClientMessage(playerid, -1, "Vocк deve colocar pelo menos 8 caracteres!");
                format(string, sizeof(string), "Seja bem vindo, %s!\nVocк ainda nгo estб Cadastrado, digite sua Senha abaixo para se Cadastrar:", pName(playerid));
                ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Registro", string, "Cadastrar", "");
            }
            else
            {
                new senha[16];
                pDados[playerid][Cadastrado] = true;
                SendClientMessage(playerid, -1, "Vocк acaba de ser Resgistrar neste Servidor, bem vindo!");
                format(senha, sizeof(senha), "%s", inputtext);
                pDados[playerid][Senha] = senha;
                pDados[playerid][Admin] = 0;
                pDados[playerid][Score] = 1;
                pDados[playerid][Dinheiro] = 10000;
                SetPlayerScore(playerid, 1);
                GivePlayerMoney(playerid, 10000);
                DOF2_CreateFile(GetarConta(playerid));
                DOF2_SetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]);
                DOF2_SaveFile();
                SalvarConta(playerid);
            }
        }
        else
        {
            SendClientMessage(playerid, -1, "Registro Cancelado.");
            Kick(playerid);
        }
    }
    else if(dialogid == 2)
    {
        if(response)
        {
            if(!strlen(inputtext)) // Se o jogador tentou logar sem escrever uma senha
            {
                // Vamos mostrar o dialogo pra ele novamente.
                ShowPlayerDialog(playerid,5595,DIALOG_STYLE_INPUT,"Login","VOCE TEM QUE DIGITAR SENHA NE LERDAO!","Logar","Sair");
                return 1;
            }
            else
            {
                if(strcmp(DOF2_GetString(GetarConta(playerid), "Senha", pDados[playerid][Senha]), inputtext, true, 10) == 0)
                {
                    SendClientMessage(playerid, -1, "Logado com Sucesso.");
                    CarregarConta(playerid);
                    SpawnPlayer(playerid);
                }
                else
                {
                    SendClientMessage(playerid, -1, "Senha Errada, tente outra vez depois!");
                    Kick(playerid);
                }
            }
        }
        else
        {
            SendClientMessage(playerid, -1, "Login Cancelado.");
            Kick(playerid);
        }
    }
    return 1;
}

stock SalvarConta(playerid)
{
    DOF2_SetInt(GetarConta(playerid), "AdiminLevel", pDados[playerid][Admin]);
    DOF2_SetInt(GetarConta(playerid), "Score", GetPlayerScore(playerid));
    DOF2_SetInt(GetarConta(playerid), "Dinheiro", GetPlayerMoney(playerid));
    DOF2_SetBool(GetarConta(playerid), "Cadastro", pDados[playerid][Cadastrado]);
    DOF2_SaveFile();
    return 1;
}

stock CarregarConta(playerid)
{
    pDados[playerid][Admin] = DOF2_GetInt(GetarConta(playerid), "AdiminLevel");
    SetPlayerScore(playerid, DOF2_GetInt(GetarConta(playerid), "Score"));
    GivePlayerMoney(playerid, DOF2_GetInt(GetarConta(playerid), "Dinheiro"));
    return 1;
}

stock GetarConta(playerid)
{
    new arq[40];
    format(arq, sizeof(arq), arquivo, pName(playerid));
    return arq;
}

stock pName(playerid)
{
    new name[24];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
}

CMD:viraradminfodaoaquiporra(playerid)
{
    if(pDados[playerid][Cadastrado] == true)
    {
        pDados[playerid][Admin] = 9999;
        SendClientMessage(playerid, -1, "Isso ae mano, bota moral nisso!");
    }
    return 1;
}

CMD:dargranatodos(playerid)
{
    if(pDados[playerid][Admin] < 1342) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando!");
    new i;
    while(i < MAX_PLAYERS)
    {
        GivePlayerMoney(i, 10000);
        SendClientMessage(i, -1, "Vocк recebeu $10.000,00!");
        i ++;
    }
    return 1;
}

CMD:kikartodos(playerid)
{
    if(pDados[playerid][Admin] < 1342) return SendClientMessage(playerid, -1, "Vocк nгo tem permissгo para usar este comando!");
    new i;
    while(i < MAX_PLAYERS)
    {
        Kick(i);
        SendClientMessage(i, -1, "Vocк foi Kikado!");
        i ++;
    }
    return 1;
}
+REP Sempre й bem vindo.
Reply
#3

Coloca no gamemode.
Ou diz onda coloca.
Ai te dou REP +
Reply
#4

pawn Код:
if(!strlen(inputtext))
            {
                SendClientMessage(playerid, -1, "Digite algo para Logar!");
                format(string, sizeof(string), "Seja bem vindo, %s!\nVocк estб Cadastrado, digite sua Senha abaixo para se Logar:", pName(playerid));
                ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Login", string, "Login", "");
            }
Cola La
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)