Portal SAMP
[Ajuda] Tempo Na Org - 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] Tempo Na Org (/showthread.php?tid=2033)



Tempo Na Org - Hiagou - 13/01/2022

Eu gostaria de um fazer um comando assim, queria saber quanto tempo estou na organização. 
alguem pode ajudar ? clique na imagem
[/url]
[url=https://imgur.com/a/xyDO03x]


RE: Tempo Na Org - k2bi_YT - 13/01/2022

Assim que o jogador entrar na organização, você deve iniciar um timer continuo e salvar em uma variavel só para o player(não use variavel global)
Exemplo:
Código PHP:
new variavelPlayer[MAX_PLAYERS];

SetTimerEx("SalvarTempoPlayer"10001"i"playerid);

SalvarTempoPlayer(playerid) {variavelPlayer[playerid]++;} 

Então, a cada 1 segundo, a função ira ser chamada e adicionara +1 ponto na variavel.

Quando for listar o tempo, recomendo que use essa função:
ConvertTime(variavelPlayer[playerid])
Código PHP:
ConvertTime(number)
{
    new 
hours 0mins 0secs 0string[100];
    
hours floatround(number 3600);
    
mins floatround((number 60) - (hours 60));
    
secs floatround(number - ((hours 3600) + (mins 60)));
    new 
days 0;

    if(
hours >= 24)
    {
        
days floatround((hours/24), floatround_floor);
        
hours hours 24;
    }

    if(
days 0)
    {
        
format(string100"%d dias, %02d:%02d:%02d"dayshoursminssecs);
    }
    else if(
hours 0)
    {
        
format(string100"%02d:%02d:%02d"hoursminssecs);
    }
    else
    {
        
format(string100"%02d:%02d"minssecs);
    }
    return 
string;


Também é possivel fazer com gettime() que é mais optimizado, porém envolve um pouco mais de cálculos na hora da listagem


RE: Tempo Na Org - DeviceBlack - 16/01/2022

Um jeito melhor seria salvar o valor de gettime no momento em que o jogador entra pra org

quando o jogador aceitar convite
Código:
dini_IntSet(Conta(playerid), "ORG_TEMPO", gettime());
quando for verificar o tempo
Código:
new timestamp = gettime();
timestamp -= dini_Int(Conta(playerid), "ORG_TEMPO");
printf("Tempo na org: %s", ConvertTime(timestamp));