[Ajuda] gettime()
#1

Eu fiz um sistema vip por gettime, sу que eu gostaria de ver quanto falta para ele terminar o vip...

eu fiz mais ou menos isso aqui:

pawn Код:
YCMD:vertempo(playerid, params[], help)
{
    new tempo = gettime();
    format(Texto, sizeof(Texto), "[INFO]: Vocк tem %d dias de vip e %d de horas vip.", Vip[playerid][TmpVip] / tempo / 84600000, Vip[playerid][TmpVip] / tempo / 3600000);
    SCM(playerid, Amarelo, Texto);
    return 1;
}
Sу que sу aparece 0 Horas e 0 Dias, creio que esteja alguma coisa errada...

Alguйm que possa me auxiliar a arrumar o comando? ou me arranjar uma soluзгo?
Reply
#2

gettime e para usar tipo a hora atual https://sampwiki.blast.hk/wiki/Gettime
agora sobre sua questao tente usar esta stock:
pawn Код:
stock ConvertSecondsToMins(number)
{
    new hours, mins, secs, string[64];
    hours = floatround(number / 3600.0, floatround_floor);
    mins = floatround((number / 60.0) - (hours * 60.0), floatround_floor);
    secs = floatround(number - ((hours * 3600.0) + (mins * 60.0)), floatround_floor);
    new days = 0;

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

    if(days > 0)
        format(string, 64, "%dd %02d:%02d:%02d", days, hours, mins, secs);
    else if(hours > 0)
        format(string, 64, "%02d:%02d:%02d", hours, mins, secs);
    else
        format(string, 64, "%02d:%02d", mins, secs);

    return string;
}

stock Convert(number)
{
    new hours = 0, mins = 0, secs = 0, string[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(string, 100, "%d, %dh %dm e %ds", days, hours, mins, secs);
    }
    else if(hours > 0)
    {
        format(string, 100, "%dh %dm e %ds", hours, mins, secs);
    }
    else
    {
        format(string, 100, "%dm e %ds", mins, secs);
    }
    return string;
}
Reply
#3

Nгo gosto muito de copiar os outros...

Eu criei um tуpico ajuda... eu queria ajuda com o comando *-*, mas valeu ae.
Reply
#4



Atй consegui fazer uma lуgica para colocar pro 1 Dia.

Porйm, quando coloco 30 dias, ele vai e deixa 719 Horas, alguйm tem uma lуgica melhor para deixar em atй 24 Horas ?

pawn Код:
new tempo = gettime();
    new tmres = TEMPOVIP[playerid][TEMPOVIP] - tempo;
    new diasvip = tmres / 60 / 60 / 24;
    new horasvip = tmres / 60 / 60;
Reply
#5

Isso talvez possa te ajudar: https://sampforum.blast.hk/showthread.php?tid=468710
Ou se quiser entender como tratar o valor retornado pelo gettime (que vem em unix timestamp), tem esse tуpico em inglкs: https://sampforum.blast.hk/showthread.php?tid=254915
Reply
#6

Quote:
Originally Posted by kreison
Посмотреть сообщение
Isso talvez possa te ajudar: https://sampforum.blast.hk/showthread.php?tid=468710
Ou se quiser entender como tratar o valor retornado pelo gettime (que vem em unix timestamp), tem esse tуpico em inglкs: https://sampforum.blast.hk/showthread.php?tid=254915
Kreison, valeu tentar ajudar, porйm nгo quero um projeto de vбrias includes, gostaria de implantar meu prуprio sistema, sу queria arrumar 1 Ponto, jб que no outro consegui... e o Unix timestamp, foi justamente onde eu aprendi a criar o meu prуprio sistema vip.

Abraзos.
Reply
#7

Quote:
Originally Posted by Pitter
Посмотреть сообщение
Kreison, valeu tentar ajudar, porйm nгo quero um projeto de vбrias includes, gostaria de implantar meu prуprio sistema, sу queria arrumar 1 Ponto, jб que no outro consegui... e o Unix timestamp, foi justamente onde eu aprendi a criar o meu prуprio sistema vip.

Abraзos.
Acho que seu problema й porque o numero de horas que mostra й o valor total de horas, logo quando tem 1 dia ele vai mostrar 1 dia e 24 horas.
Entгo faz o seguinte:
horas = horas - (dias*24)

Usando o exemplo da imagem pra vocк entender
horas = 719 - (29*24)
29*24 vai dar 696 horas e tirando do 719 horas vai dar 23 horas. Ai fica os 29 dias e 23 horas.

Seguindo o seu cуdigo:
Код:
new tempo = gettime();
new tmres = TEMPOVIP[playerid][TEMPOVIP] - tempo;
new diasvip = tmres / 60 / 60 / 24;
new horasvip = tmres / 60 / 60;
horasvip = horasvip - (diasvip*24);
Reply
#8

Quote:
Originally Posted by kreison
Посмотреть сообщение
Acho que seu problema й porque o numero de horas que mostra й o valor total de horas, logo quando tem 1 dia ele vai mostrar 1 dia e 24 horas.
Entгo faz o seguinte:
horas = horas - (dias*24)

Usando o exemplo da imagem pra vocк entender
horas = 719 - (29*24)
29*24 vai dar 696 horas e tirando do 719 horas vai dar 23 horas. Ai fica os 29 dias e 23 horas.
Caramba, pensei tudo que forma, pensei que nгo tinha jeito, mas vocк me deu a Luz, obrigado cara!
Reply
#9

Quote:
Originally Posted by Pitter
Посмотреть сообщение
Caramba, pensei tudo que forma, pensei que nгo tinha jeito, mas vocк me deu a Luz, obrigado cara!
Que nada cara, precisar й sу chamar... Se quiser pode atй mandar MP, hehe.
Й raro aparecer alguйm aqui no fуrum que tenha uma dъvida real e que nгo queira tudo na mгo. Entгo faзo questгo de ajudar (quando eu sei) quem realmente quer aprender e nгo sу chegar aqui e pedir tudo pronto.

Boa sorte ai com seu projeto
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)