[AJUDA]: Pegar nomes de arquivos salvos.
#1

Eu queria que quando o jogador for fazer o comando: /tempos . Pega os nomes de todos que estiverem no local salvo. De preferencia em DIALOG...
Mais pegar oque no arquivo?
Pegar simplesmente o nome de cada um e o id que estiver no local salvo..
O Local que esta localizado й o: ("Tempos.txt")
Resumindo: O player faz: /tempos.. Abre o local ou sejб: ("Tempos.txt") й coloca o nome de cada um que estarб salvo no local. Em uma DIALOG_STYLE_LIST .
Reply
#2

Usa um loop e um GetPlayerPos no comando
Reply
#3

Quote:
Originally Posted by Los
Посмотреть сообщение
Usa um loop e um GetPlayerPos no comando
Irб dar erro.(Posso estar errado)

Pense comigo, vc tem 4 players, 1є Na posiзгo 25, 2є na posiзгo 37, 3є Na posiзгo 10, 4є Na posiзгo 101
Ou seja, como ele irб pegar a pos de todos os players se elas sгo difrentes? ._. Sу se fizer calculo ou seja, a posiзгo seria: 170

Posso estar errado, mas й a minha logica ._.
Reply
#4

Quando ele diz local, acho que estб se referindo ao arquivo.
Reply
#5

Quote:
Originally Posted by Viniborn
Посмотреть сообщение
Quando ele diz local, acho que estб se referindo ao arquivo.
Correto Vini...
Reply
#6

Quote:
Originally Posted by .Skool_.
Посмотреть сообщение
Correto Vini...
Hmmmm, usa FFile
Reply
#7

jб criei um sistema parecido, que pegava dados de players mesmos OFF-Line.
eu postei em um tуpico de dъvida, sу que nгo me lembro mais qual tуpico
Reply
#8

Jб estou fazendo, espera + uns 5 min.
Jaja posto =D
Reply
#9

achei....lк este tуpico inteiro > https://sampforum.blast.hk/showthread.php?tid=293694
Reply
#10

pawn Код:
//OPCT (OnPlayerCommandText)
if(!strcmp("/tempos", cmdtext, true))
{
    if(!fexist("Tempos.txt")) fclose(fopen("Tempos.txt", io_write)); //Se nгo Exisir o Arquivo, irб cria-lo.
    new File:Tempos,
        LerNome[MAX_PLAYER_NAME],
        string[256],
        EscreverNome[40];

    Tempos = fopen("Tempos.txt", io_append);
    format(EscreverNome, sizeof(EscreverNome), "%s\r\n", GetPlayerNameEx(playerid));
    fwrite(Tempos, EscreverNome);
    fclose(Tempos);

    Tempos = fopen("Tempos.txt", io_read);

    new NumeroAtual = 0;

    while(fread(Tempos, LerNome) && NumeroAtual < 10) //Loop
    {
        strdel(LerNome, strlen(LerNome)-2, strlen(LerNome));
        strcat(string, LerNome, 255);
        if(JogadorConectado(LerNome) != INVALID_PLAYER_ID)
        {
            new ID[10];
            format(ID, sizeof(ID), " (%02d)\n", JogadorConectado(LerNome));
            strcat(string, ID, 255);
        }
        else
        {
            strcat(string, " (OffLine)\n", 255);
        }
        NumeroAtual++;
    }
    strcat(string, "\nPrimeiros 10 Players.", 255);
    ShowPlayerDialog(playerid, 200, DIALOG_STYLE_MSGBOX, "Tempos", string, "Fechar", "");
    fclose(Tempos);
    return 1;
}

//Algum Lugar No GM
stock GetPlayerNameEx(playerid)
{
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid, pName, sizeof(pName));
    return pName;
}

stock JogadorConectado(Nome[])
{
    new i = INVALID_PLAYER_ID;
    for(new playerid = 0; playerid < GetMaxPlayers(); playerid++)
    {
        if(IsPlayerConnected(playerid))
        {
            if(!strcmp(GetPlayerNameEx(playerid), Nome))
            {
//              printf("%s(%d) = %s", GetPlayerNameEx(playerid), playerid, Nome);
                i = playerid;
                break;
            }
        }
    }
    return i;
}
Isso ae pega os 10° da Lista.

Sу nгo pega + por causa que se nгo teria que aumentar as celulas da string (256 jб й alto).
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)