[Ajuda] Como colocar para salvar com letras DOF2
#1

Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new nome[MAX_PLAYER_NAME];
    new arquivo[40];
	GetPlayerName(playerid, nome, 32);
    format(arquivo, 40, "players/%s.ini", nome);
    if(dialogid == DIALOG_REGISTRO)
    {
    if(!strval(inputtext))
    {
    ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "servidor", "digite a senha para cadastrar","Cadastrar", "Sair");
    return 1;
    }
    if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
		{
			Player[playerid][Senha] = strval(inputtext);
            DOF2_CreateFile(arquivo);
            DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]); 
            DOF2_SaveFile();
            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)){
    
            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");
            return 1;
        }
        if(!response)
        {
            Kick(playerid);
            return 1;
        }
        else
        {
            Player[playerid][Senha] = DOF2_GetInt(arquivo, "Senha");
            if(strval(inputtext) == Player[playerid][Senha])
            { 
                SpawnPlayer(playerid); 
                return 1;
    }
    }
    }
	return 1;
}
Atй agora sу salva em numeros...

================================================== ===========
Quem puder me ajudar sу tenho a agradecer !
Reply
#2

Troque
pawn Код:
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
Por:

pawn Код:
DOF2_SetString(arquivo, "Senha", Player[playerid][Senha]);
Se nгo funcionar veja o link abaixo:

Sobre as funзoes do DOF2: https://sampforum.blast.hk/showthread.php?tid=483705
Reply
#3

Quote:
Originally Posted by CLANdok
Посмотреть сообщение
Troque
pawn Код:
DOF2_SetInt(arquivo, "Senha", Player[playerid][Senha]);
Por:

pawn Код:
DOF2_SetString(arquivo, "Senha", Player[playerid][Senha]);
Se nгo funcionar veja o link abaixo:

Sobre as funзoes do DOF2: https://sampforum.blast.hk/showthread.php?tid=483705
Nгo й sу isso nгo...

Tem como fazer de um jeito mais simples, sem precisar ficar usando 'Player[playerid][Senha]'. Dei uma "ajeitada" no code, tente compreendк-lo.


pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new nome[MAX_PLAYER_NAME], arquivo[40];
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), "players/%s.ini", nome);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "servidor", "digite a senha para cadastrar","Cadastrar", "Sair");
        DOF2_CreateFile(arquivo);
        DOF2_SetString(arquivo, "Senha", inputtext);
        DOF2_SaveFile();
        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(!response) return Kick(playerid);
        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(strcmp(DOF2_GetString(arquivo, "Senha"), inputtext, true) == 0)
        {
            SpawnPlayer(playerid);
        }
        return 1;
    }
    return 1;
}

Qualquer erro ou bug, sу avisar que eu corrijo. Fiz o cуdigo com pressa e estou com sono kk'
Reply
#4

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Nгo й sу isso nгo...

Tem como fazer de um jeito mais simples, sem precisar ficar usando 'Player[playerid][Senha]'. Dei uma "ajeitada" no code, tente compreendк-lo.


pawn Код:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    new nome[MAX_PLAYER_NAME], arquivo[40];
    GetPlayerName(playerid, nome, sizeof(nome));
    format(arquivo, sizeof(arquivo), "players/%s.ini", nome);
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "servidor", "digite a senha para cadastrar","Cadastrar", "Sair");
        DOF2_CreateFile(arquivo);
        DOF2_SetString(arquivo, "Senha", inputtext);
        DOF2_SaveFile();
        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(!response) return Kick(playerid);
        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(strcmp(DOF2_GetString(arquivo, "Senha"), inputtext, true) == 0)
        {
            SpawnPlayer(playerid);
        }
        return 1;
    }
    return 1;
}

Qualquer erro ou bug, sу avisar que eu corrijo. Fiz o cуdigo com pressa e estou com sono kk'
Obrigado mais ta dando isso no bloco de notas la ... Senha = (null)
Reply
#5

@Edit esquece
Reply
#6

Quote:
Originally Posted by Leopawno
Посмотреть сообщение
Obrigado mais ta dando isso no bloco de notas la ... Senha = (null)
Acabei de realizar os testes e estб funcionando corretamente. Ainda adicionei mais algumas coisas ao cуdigo e testei outras vezes, e estб tudo certo. Teste usando sу esse script.

OBS: Jб coloquei pra banir quando errar a senha 5 vezes.


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

#define DIALOG_LOGAR 1
#define DIALOG_REGISTRO 2

new ErrouSenha[MAX_PLAYERS];

main()
{
    print("\n----------------------------------");
    print(" Testes HEUHEU");
    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)
{
    ErrouSenha[playerid] = 0;
    if(!DOF2_FileExists(Conta(playerid)))
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Servidor", "Digite a senha para cadastrar","Cadastrar", "Sair");
    }
    else if (DOF2_FileExists(Conta(playerid)))
    {
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite sua senha para logar.\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Servidor", "Digite a senha para cadastrar","Cadastrar", "Sair");
        DOF2_CreateFile(Conta(playerid));
        DOF2_SetString(Conta(playerid), "Senha", inputtext);
        DOF2_SaveFile();
        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(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite sua senha para logar.\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(strcmp(DOF2_GetString(Conta(playerid), "Senha"), inputtext, true) == 0)
        {
            SpawnPlayer(playerid);
            SendClientMessage(playerid, -1, "LOOOOGADO COM SUCESSO! EEEEE o/");
        }
        else
        {
            ErrouSenha[playerid] ++;
            if(ErrouSenha[playerid] == 5)
            {
                SendClientMessage(playerid, -1, "Errou a senha 5 vezes e foi banido.");
                Ban(playerid);
            }
            else if(ErrouSenha[playerid] < 5) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD,"Logar","Senha incorreta, tente outra vez.\nSe errar 5 vezes sua conta serб banida!","Confirma","Cancelar");
        }
        return 1;
    }
    return 1;
}

Nome(playerid)
{
    new np[MAX_PLAYER_NAME];
    GetPlayerName(playerid, np, sizeof(np));
    return np;
}
Conta(playerid)
{
    new arq[56];
    format(arq, sizeof(arq),"players/%s.ini", Nome(playerid));
    return arq;
}
Reply
#7

Quote:
Originally Posted by humildadeforever
Посмотреть сообщение
Acabei de realizar os testes e estб funcionando corretamente. Ainda adicionei mais algumas coisas ao cуdigo e testei outras vezes, e estб tudo certo. Teste usando sу esse script.

OBS: Jб coloquei pra banir quando errar a senha 5 vezes.


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

#define DIALOG_LOGAR 1
#define DIALOG_REGISTRO 2

new ErrouSenha[MAX_PLAYERS];

main()
{
    print("\n----------------------------------");
    print(" Testes HEUHEU");
    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)
{
    ErrouSenha[playerid] = 0;
    if(!DOF2_FileExists(Conta(playerid)))
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Servidor", "Digite a senha para cadastrar","Cadastrar", "Sair");
    }
    else if (DOF2_FileExists(Conta(playerid)))
    {
        ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite sua senha para logar.\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
    }
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_REGISTRO)
    {
        if(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_PASSWORD, "Servidor", "Digite a senha para cadastrar","Cadastrar", "Sair");
        DOF2_CreateFile(Conta(playerid));
        DOF2_SetString(Conta(playerid), "Senha", inputtext);
        DOF2_SaveFile();
        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(!response) return Kick(playerid);
        if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD, "Logar", "Digite sua senha para logar.\nSe errar 5 vezes sua conta serб banida!", "Confirma", "Cancelar");
        if(strcmp(DOF2_GetString(Conta(playerid), "Senha"), inputtext, true) == 0)
        {
            SpawnPlayer(playerid);
            SendClientMessage(playerid, -1, "LOOOOGADO COM SUCESSO! EEEEE o/");
        }
        else
        {
            ErrouSenha[playerid] ++;
            if(ErrouSenha[playerid] == 5)
            {
                SendClientMessage(playerid, -1, "Errou a senha 5 vezes e foi banido.");
                Ban(playerid);
            }
            else if(ErrouSenha[playerid] < 5) return ShowPlayerDialog(playerid, DIALOG_LOGAR, DIALOG_STYLE_PASSWORD,"Logar","Senha incorreta, tente outra vez.\nSe errar 5 vezes sua conta serб banida!","Confirma","Cancelar");
        }
        return 1;
    }
    return 1;
}

Nome(playerid)
{
    new np[MAX_PLAYER_NAME];
    GetPlayerName(playerid, np, sizeof(np));
    return np;
}
Conta(playerid)
{
    new arq[56];
    format(arq, sizeof(arq),"players/%s.ini", Nome(playerid));
    return arq;
}
Ana muiiitttoooo obrigaaaaaaaaaadoooooooo !
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)