SA-MP Forums Archive
[Ajuda] fcreat nгo lк - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] fcreat nгo lк (/showthread.php?tid=248161)



[Ajuda] fcreat nгo lк - JOKERBOY - 12.04.2011

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"...


Re: [help] fcreat nгo lк - Macintosh - 12.04.2011

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


Re: [help] fcreat nгo lк - JOKERBOY - 12.04.2011

Esse nгo й o problema...


Re: [Ajuda] fcreat nгo lк - zbt_Daimyo - 12.04.2011

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

tenta isso

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



Re: [Ajuda] fcreat nгo lк - Macintosh - 12.04.2011

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.


Re: [Ajuda] fcreat nгo lк - Dr_Pawno - 12.04.2011

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


Re: [Ajuda] fcreat nгo lк - rjjj - 12.04.2011

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 .


Re: [Ajuda] fcreat nгo lк - zSuYaNw - 12.04.2011

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


Re: [Ajuda] fcreat nгo lк - JOKERBOY - 12.04.2011

Dini nгo й recomendavel

------

Dr_PAWNO

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


Re: [Ajuda] fcreat nгo lк - Macintosh - 12.04.2011

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;
}