Portal SAMP
[Ajuda] Sistema vip - 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] Sistema vip (/showthread.php?tid=2862)



Sistema vip - GUI_DA_Z5 - 05/10/2022

Olá eu queria saber como fazer um sistema vip que funciona por minutos/horas alguem pode me ajudar tentei diversas vezes mais sem resultado


RE: Sistema vip - Device-Black - 05/10/2022

Código:
#include    <a_samp>
#include    <sscanf2>
#include    <zcmd>

new playerVip[MAX_PLAYERS];

CMD:darvip(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Voce nao esta logado no rcon!");

    static id, tempo, ch[1];
    if(sscanf(params, "dds[1]", id, tempo, ch))
        return SendClientMessage(playerid, -1, "/darvip [id] [tempo] [M ou H]");

    switch(ch[0])
    {
        case 'm', 'M': playerVip[id] = (gettime() + (tempo * 60));
        case 'h', 'H': playerVip[id] = (gettime() + (tempo * 3600));
        default:
        {
            SendClientMessage(playerid, -1, "Use M para minutos ou H para horas");
            return cmd_darvip(playerid, "");
        }
    }
    
    SendClientMessage(playerid, -1, "O vip foi entregue ao jogador");
    SendClientMessage(id, -1, "Voce foi agraciado com um vip por um tempo determinado!");
    return 1;
}
Voce deve dar uma olhada em como gettime foi usado
Ele retorna um timestamp que é uma contagem de segundos de determinada época

1 minuto = 60 segundos
1 hora = 3600 segundos

Entao pegue o valor inserido no comando e multiplique por um desses valores acima, depois some com gettime e guarde em uma variavel


RE: Sistema vip - GUI_DA_Z5 - 05/10/2022

(05/10/2022 01:12)Device-Black Escreveu:
Código:
#include    <a_samp>
#include    <sscanf2>
#include    <zcmd>

new playerVip[MAX_PLAYERS];

CMD:darvip(playerid, params[])
{
    if(!IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Voce nao esta logado no rcon!");

    static id, tempo, ch[1];
    if(sscanf(params, "dds[1]", id, tempo, ch))
        return SendClientMessage(playerid, -1, "/darvip [id] [tempo] [M ou H]");

    switch(ch[0])
    {
        case 'm', 'M': playerVip[id] = (gettime() + (tempo * 60));
        case 'h', 'H': playerVip[id] = (gettime() + (tempo * 3600));
        default:
        {
            SendClientMessage(playerid, -1, "Use M para minutos ou H para horas");
            return cmd_darvip(playerid, "");
        }
    }
    
    SendClientMessage(playerid, -1, "O vip foi entregue ao jogador");
    SendClientMessage(id, -1, "Voce foi agraciado com um vip por um tempo determinado!");
    return 1;
}
Voce deve dar uma olhada em como gettime foi usado
Ele retorna um timestamp que é uma contagem de segundos de determinada época

1 minuto = 60 segundos
1 hora = 3600 segundos

Entao pegue o valor inserido no comando e multiplique por um desses valores acima, depois some com gettime e guarde em uma variavel

Eu estava fazendo certo só a minha verificação estava errada verifiquei aqui muito obrigado pela sua atenção!!!