[Ajuda] Salvamento
#1

Bom, eu sempre trabalhei com filter scripts, nunca tive vontade de criar um game mode, mais agora estou criando um filter script de administraзгo, mais nгo sei nada sobre salvamento de dados, queria que me ajudassem a salva: Admin, Score, Dinheiro, Skin, IP e Banido ou Nгo.

OBS: Jб li vбrios tutoriais, mais nenhum me deu um apoio suficiente.
Reply
#2

Use DOF2, bem facil de se usar

https://sampforum.blast.hk/showthread.php?pid=1819178#pid1819178
http://forum.sa-mp.com/showthread.ph...highlight=DOF2
http://forum.sa-mp.com/showthread.ph...highlight=DOF2
Reply
#3

Usa o <SII>, Bem simples.

pawn Код:
enum pInfo
{
    Adm,
    Skin,
};
new PlayerInfo[MAX_PLAYERS][pInfo];
stock SalvarPlayer(playerid)//Inicio da Stock de salvar os dados do player
{//abre a stock
    new file[70],nome[MAX_PLAYER_NAME];//File = Serб usada para formatar um texto com a pasta de onde й salvo as contas e o nome do player
    //nome = onde serб armazenado o nome do player
    GetPlayerName(playerid, nome, sizeof(nome));//Pega o nome do player
    format(file,sizeof(file),"Contas/%s.ini", nome);//formata o texto falado acima
    INI_Open(file);//abre o arquivo e caso nгo exista ele cria
    PlayerInfo[playerid][Skin] = GetPlayerSkin(playerid);
    INI_WriteInt("Skin", PlayerInfo[playerid][Skin]);//Seta o  valor de PlayerDados[playerid][Skin] no arquivo
    INI_WriteInt("Admin", PlayerInfo[playerid][Adm]);//Seta o valor de PlayerInfo[playerid][Adm] no arquivo
    INI_WriteInt("Score", GetPlayerScore(playerid));//Seta o score "Getado" no arquivo
    INI_Save();//Salva o arquivo
    INI_Close();//fecha o arquivo
    return 1;//retorna 1
}//fecha a stock

stock CarregarPlayer(playerid)//inicio da stock de carregar os dados do player
{//abre a stock
    new file[70],nome[MAX_PLAYER_NAME];//File = Serб usada para formatar um texto com a pasta de onde й salvo as contas e o nome do player
    //nome = onde serб armazenado o nome do player
    GetPlayerName(playerid, nome, sizeof(nome));//Pega o nome do player
    format(file,sizeof(file),"Contas/%s.ini", nome);//formata o texto falado acima
    INI_Open(file);//abre o arquivo
    PlayerInfo[playerid][Skin] = INI_ReadInt("Skin");//le o valor que esta na tag Skin dentro do arquivo e iguala a variavel do player
    SetPlayerScore(playerid, INI_ReadInt("Score"));//le o valor que esta na tag Score dentro do arquivo e seta como Score do player
    PlayerInfo[playerid][Adm] = INI_ReadInt("Admin");//le o valor que esta na tag Admin dentro do arquivo e seta como nivel de adm do player
    INI_Close();//fecha o arquivo
    return 1;//retorna 1
}//fecha a stock

By humildadeforever
https://sampforum.blast.hk/showthread.php?tid=346993
Reply
#4

pawn Код:
#define DIALOG_REGISTER 1 //Dialog de registro
#define DIALOG_LOGIN 2 //Dialog de login

enum player_info
{
        pAdmin,
    pGrana,
    pMatou,
    pMorreu,
}
new PlayerInfo[MAX_PLAYERS][player_info];
public OnPlayerConnect(playerid)
{

    new nome[128];
    GetPlayerName(playerid,nome,sizeof(nome));
    format(nome,sizeof(nome),DOF2_File(nome));
    if(DOF2_FileExists(nome))
    {
        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Logando-se","{FFFFFF}Bem vindo novamente. para pode jogar digite sua senha abaixo:","Logar","Sair");
    }
    else
    {
        ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registrando-se","{FFFFFF}Bem vindo ao servidor, para pode jogar registre\numa conta e assim tambйm seus dados serгo salvos.","Registrar","Cancelar");
    }
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    new file[64];
    GetPlayerName(playerid,file,sizeof(file));
    format(file,sizeof(file),DOF2_File(file));
    DOF2_SetInt(file,"Matou",PlayerInfo[playerid][pMatou]);
    DOF2_SetInt(file,"Morreu",PlayerInfo[playerid][pMorreu]);
    DOF2_SetInt(file,"Grana",PlayerInfo[playerid][pGrana]);
    DOF2_SetInt(file,"Admin",PlayerInfo[playerid][pAdmin]);
    return 1;
}

public OnPlayerDeath(playerid, killerid, reason)
{
    PlayerInfo[killerid][pMatou]++;
    PlayerInfo[playerid][pMorreu]++;
    return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    switch(dialogid)
    {
        case DIALOG_REGISTER:
        {
            if(!response) Kick(playerid);
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,"Registrando-se","{FFFFFF}Bem vindo ao servidor, para pode jogar registre\numa conta e assim tambйm seus dados serгo salvos.","Registrar","Sair");
            if(response)
            {
                new file[64];
                GetPlayerName(playerid,file,sizeof(file));
                format(file,sizeof(file),DOF2_File(file));
                DOF2_CreateFile(file, inputtext);
                DOF2_SetInt(file,"Matou", 0);
                DOF2_SetInt(file,"Morreu", 0);
                DOF2_SetInt(file,"Grana", 0);
                DOF2_SetInt(file,"Admin", 0);
                DOF2_SaveFile();
                SpawnPlayer(playerid);
            }
        }
        case DIALOG_LOGIN:
        {
            if(!response) Kick(playerid);
            if(response)
            {
                new file[64];
                GetPlayerName(playerid,file,sizeof(file)); // We get the file name
                format(file,sizeof(file),DOF2_File(file)); // We get the user path from DOF2_File ( folder Users )
                if(DOF2_FileExists(file)) // If he is registered
                {
                    if(DOF2_CheckLogin(file,inputtext)) // We check if the password match
                    {
                        PlayerInfo[playerid][pMatou] = DOF2_GetInt(file,"Matou");
                        PlayerInfo[playerid][pMorreu] = DOF2_GetInt(file,"Morreu");
                        PlayerInfo[playerid][pGrana] = DOF2_GetInt(file,"Grana");
                        PlayerInfo[playerid][pAdmin] = DOF2_GetInt(file,"Admin");
                        SpawnPlayer(playerid);
                        GivePlayerMoney(playerid, PlayerInfo[playerid][pGrana]);
                        return 1;
                    }
                    else
                    {
                        ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,"Senha Incorreta","{FFFFFF}Vocк digitou a senha errada para essa conta!","Logar","Cancelar");
                        return 1;
                    }
                }
            }
        }
    }
    return 1;
}

public OnFilterScriptExit()
{
    DOF2_Exit();
    return 1;
}
Sу salva o admin! AJUDA?
Reply
#5

Esqueceu da funзгo "DOF2_SaveFile();"
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)