Portal SAMP
[Ajuda] Lista de players - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Lista de players (/showthread.php?tid=4681)



Lista de players - Duzzxls - 08/04/2024

Estou querendo fazer uma lista de players  online/offline e não tenho ideia de como fazer, tipo adicionar os players online na tabela e o id
Estou com mais dúvida na parte de adicionar um player com as informações dele na tabela e também remover ele caso ele se desconecte do servidor.


RE: Lista de players - Carlos Victor - 08/04/2024

Você pode criar na tabela onde armazena os dados do jogador, uma coluna chamada 'Online' e quando os dados do jogador for carregado, você altera esse valor para 1 e quando ele for desconectado, altera para 0. E caso queira retornar uma lista de jogadores que estejam online, apenas faça uma consulta puxando a coluna Online com valores 1.

Código PHP:
SELECT FROM players WHERE Online 1



RE: Lista de players - xbruno1000x - 08/04/2024

Se estiver usando MySQL é tranquilo. Basta setar uma variável booleana que seja setada true na OnPlayerConnect e seja setada false na OnPlayerDisconnect(Essa informação obviamente precisa persistir no looping). Depois dá um select Where variavel = true;

Também dá pra fazer um looping verificando quem está com a variável verdadeira/falsa e listar de alguma forma.


RE: Lista de players - Duzzxls - 10/04/2024

Eu não uso MySQL. Não entendi a primeira resposta, tipo a variável setada para 0 ou 1 e como isso funciona para adicionar os players. De forma mais explicada, eu estou tentando fazer um sistema de exibir VIPs online tipo, aparece os VIPs online e os offline. Eu tava tentando fazer com Format, tipo adicionar uma linha, etc. Eu não achei um vídeo específico para este caso, se alguém puder me falar.


RE: Lista de players - White_Blue - 10/04/2024

(10/04/2024 16:26)Duzzxls Escreveu: Eu não uso MySQL. Não entendi a primeira resposta, tipo a variável setada para 0 ou 1 e como isso funciona para adicionar os players. De forma mais explicada, eu estou tentando fazer um sistema de exibir VIPs online tipo, aparece os VIPs online e os offline. Eu tava tentando fazer com Format, tipo adicionar uma linha, etc. Eu não achei um vídeo específico para este caso, se alguém puder me falar.

Você usa qual lib para salvamento então? Você mencionou tabelas, por isso foi assumido que você estava utilizando MySQL, porém creio que você estava se referindo à tabela da dialog, não uma tabela SQL, nesses casos é melhor ser mais específico no tópico para evitar confusões.


RE: Lista de players - Duzzxls - 10/04/2024

DOF2. Eu quero fazer em diálog tablist ou lista


RE: Lista de players - White_Blue - 10/04/2024

(10/04/2024 17:05)Duzzxls Escreveu: DOF2. Eu quero fazer em diálog tablist ou lista

Se está usando DOF2, creio que você pode fazer um loop que itera por todos os jogadores online e usar strcmp para verificar se este jogador está online ou não.


RE: Lista de players - xbruno1000x - 10/04/2024

Use esse comando como base:
Código:
CMD:vips(playerid)
{
    SendClientMessage(playerid, COR_BARRAS, "** Todos os VIP's online:");
    new count;
    foreach(new i : Player)
    {
        if(Player[i][pLogged]) //essa variavel é setada true no login e false quando desconecta. Ela faz com que todos vips online sejam citados.
           {
            if(Player[i][pVip])
            {
                new str[150];
                format(str, sizeof(str), "Vip %s [Tempo restante %s]", GetPlayerNameEx(i), Convert(Player[i][VipExpira]-Now()));
                SendClientMessage(playerid, 0xE3E3E3FF, str);
                ++count;
            }
        }
       }
    if(count == 0)
        return SendClientMessage(playerid, 0xD8D8D8FF, "Não tem nenhum vip on-line agora!");

    return true;
}

Para listar jogadores vip offline teria que puxar dos arquivos DOF2.


RE: Lista de players - tuznN - 18/04/2024

1º: Quando o player logar no servidor (OnPlayerConnect), você pode setar no arquivo de conta dele uma booleana indicando que está online. Ex: DOF2_SetInt(file, "Online", true);
2º: Da mesma forma quando ele sai do servidor (OnPlayerConnect). Ex: DOF2_SetInt(file, "Online", false);
3º: Na lista, você cria um loop para verificar essa variável nas pastas.