[Ajuda] fcreat nгo lк
#1

pawn Код:
stock SalvarDados(playerid)
{
    new string[128]; // cria a string que vai alojar o diretуrio da conta do jogador
    format(string, sizeof(string), "Arquivos/Users/%s.ini", PlayerName(playerid)); // formata a string com o diretуrio como conteъdo da mesma
    new File:file = fopen(string, io_write); // cria uma variбvel file, que abre o arquivo com permissгo para escrever e o cria se ainda nгo existir
    if(file) // se o arquivo a abrir й o arquivo correto
    {
        new var[32]; // variбvel que vai alojar os dados que queremos salvar
        format(var, sizeof(var), "Dinheiro:%d", GetPlayerMoney(playerid)); fwrite(file, var); // no caso aqui vai format 'var' com o dinheiro do jogador e escrever (fwrite) no arquivo o dinheiro
        format(var, sizeof(var), "SkinID:%d", GetPlayerSkin(playerid)); fwrite(file, var); // aqui vai salvar a skin
        format(var, sizeof(var), "ProfID:%d", gTeam[playerid]); fwrite(file, var); //salva o gteam
       
       
        fclose(file); // depois de mexer no arquivo se deve fechб-lo para nгo corromper e para nгo ficar aberto, podendo perder dados
    }
}

stock PlayerName(playerid)
{
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, sizeof(name));
    return name;
}
Criei ele, funciono certinho ...
Mas quando volto oque ele tinha salvado volta do zero..
Como fasso para ele fazer um Loader dos arquivos??

OBS: coloquei essa stock na callback "OnPlayerConnect" e "OnPlayerDisconnect"...
Reply
#2

Nгo precisa colocar a stock na callback tem de ser fora dela.
Tenta pode ser isso.
Reply
#3

Esse nгo й o problema...
Reply
#4

jamais uma stock deve por dentro de uma public'_'

tenta isso

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
SalvarDados(playerid);
Reply
#5

Quote:
Originally Posted by zbt_Daimyo
Посмотреть сообщение
jamais uma stock deve por dentro de uma public'_'

tenta isso

pawn Код:
public OnPlayerDisconnect(playerid, reason)
{
SalvarDados(playerid);
No caso seria OnPlayerConnect.
Reply
#6

Mude isso:
Код:
        format(var, sizeof(var), "Dinheiro:%d", GetPlayerMoney(playerid)); fwrite(file, var); // no caso aqui vai format 'var' com o dinheiro do jogador e escrever (fwrite) no arquivo o dinheiro
        format(var, sizeof(var), "SkinID:%d", GetPlayerSkin(playerid)); fwrite(file, var); // aqui vai salvar a skin
        format(var, sizeof(var), "ProfID:%d", gTeam[playerid]); fwrite(file, var); //salva o gteam
por isso:
Код:
        format(var, sizeof(var), "Dinheiro=%d,", GetPlayerMoney(playerid)); fwrite(file, var); // no caso aqui vai format 'var' com o dinheiro do jogador e escrever (fwrite) no arquivo o dinheiro
        format(var, sizeof(var), "SkinID=%d,", GetPlayerSkin(playerid)); fwrite(file, var); // aqui vai salvar a skin
        format(var, sizeof(var), "ProfID=%d,", gTeam[playerid]); fwrite(file, var); //salva o gteam
depois adicione isso:
pawn Код:
forward CarregarDados(playerid);
forward split(const strsrc[], strdest[][], delimiter);
public CarregarDados(playerid);
{
    new Status[3][64];// o [3] й o numero de coisas que vocк salvou
    new string[256];
    format(string, 256, "Arquivos/Users/%s.ini", PlayerName(playerid));
    if (fexist(string)
    {
        new idx;
        while (idx < sizeof(Status))//Carrega as Strings
        {
            new File: file = fopen(string, io_read), dinheiro, skin;
            fread(file, string);
            split(string, Status, ',');
            dinheiro = strval(Status[0]); GivePlayerMoney(playerid, dinheiro);// o [0] й a 1° coisa que salvou
            skin = strval(Status[1]); SetPlayerSkin(playerid, skin);// o [1] й a 2° coisa que salvou
            gTeam[playerid] = strval(Status[2]);// o [2] й a 3° coisa que salvou
            idx++
        }
        fclose(file);
    }
    else
    {
        SendClientMessage(playerid, 0x666666AA, "Vocк nгo й registrado.");
    }
    return 1;
}
public split(const strsrc[], strdest[][], delimiter)
{
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
        if(strsrc[i]==delimiter || i==strlen(strsrc)){
            len = strmid(strdest[aNum], strsrc, li, i, 128);
            strdest[aNum][len] = 0;
            li = i+1;
            aNum++;
        }
        i++;
    }
    return 1;
}
Espero que funcione =D
Reply
#7

Sua stock SalvarDados nгo estб retornando valor algum .

Para fazer com que sua stock seja lida ao simplesmente ser chamada para atuar em alguma parte do cуdigo, coloque o return true; ou return 1; antes da chave que fecha a funзгo .


Espero ter ajudado .
Reply
#8

https://sampforum.blast.hk/showthread.php?tid=180237
Reply
#9

Dini nгo й recomendavel

------

Dr_PAWNO

pode postar em PasteBin ??
porque isso vai em uma linha sу...
Reply
#10

Returna o valor verdadeiro como o Rjjj falou

pawn Код:
stock SalvarDados(playerid)
{
    new string[128]; // cria a string que vai alojar o diretуrio da conta do jogador
    format(string, sizeof(string), "Arquivos/Users/%s.ini", PlayerName(playerid)); // formata a string com o diretуrio como conteъdo da mesma
    new File:file = fopen(string, io_write); // cria uma variбvel file, que abre o arquivo com permissгo para escrever e o cria se ainda nгo existir
    if(file) // se o arquivo a abrir й o arquivo correto
    {
        new var[32]; // variбvel que vai alojar os dados que queremos salvar
        format(var, sizeof(var), "Dinheiro:%d", GetPlayerMoney(playerid)); fwrite(file, var); // no caso aqui vai format 'var' com o dinheiro do jogador e escrever (fwrite) no arquivo o dinheiro
        format(var, sizeof(var), "SkinID:%d", GetPlayerSkin(playerid)); fwrite(file, var); // aqui vai salvar a skin
        format(var, sizeof(var), "ProfID:%d", gTeam[playerid]); fwrite(file, var); //salva o gteam
        fclose(file); // depois de mexer no arquivo se deve fechб-lo para nгo corromper e para nгo ficar aberto, podendo perder dados
        return 1;
    }
 return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)