Ir para conteúdo

Time; Duvida Em Relação Ao Formato


xkvd

Posts Recomendados

Estou com uma duvida um pouco mais aprofundada.

Estou a combinar um vip system com o gesior

Mudei as tables premdays para vipsystem, assim, o valor vai direto para a tabela do vip system.

Só que vejamos:

 

Percebi que o vip system nao funciona como dias normais, e sim como um numero grande.

Por exemplo:

 

Se eu adicionar 15 dias em um jogador, eu vou no mysql e encontro o seguinte valor no viptime

viptime 1287808282

 

Se eu adicionar 30 dias em um jogador, eu vou no mysql e encontro o seguinte valor no viptime

viptime 1289104983

 

Consegui fazer um multiplicador no shopsystem.php, que vai multiplicar os dias comprados para xega nesse grande valor.

Mas eu preciso saber o quanto equivale cada dia. Dai eu multiplico.

 

Mas a pergunta é:

 

Que conta louca é feita para chegar neste numero enorme?

 

No script diz:

 

local daysValue = days * 24 * 60 * 60
               local vipTime = getVipTimeByAccount(acc)
               local timeNow = os.time()
               local time = getVipDaysByAccount(acc) == 0 and (timeNow + daysValue) or (vipTime + daysValue)
               setVipTimeByAccount(acc, time)
               return TRUE

 

Ele diz:

(timeNow + daysValue)

 

Oque é este TimeNow? Qual o formato dele?

Digamos, 12:00:00 (Sem os ":") para meio dia ou 08/10/2010 12:00:00 (sem espaços, sem barras e sem ":"_

 

 

Só que 15 * 24 * 60 * 60 é igual a 1296000 e não a 1287808282.

 

Gostaria de saber qual a linha de raciocinio para chegar neste valor para chegar em um multiplicador comum e colocar no gesior para que a viptime seja comprada diretamente pelo site.

 

 

Estou no aguardo da resposta!

Obrigado pela atenção!

Link para o comentário
Compartilhar em outros sites

  • 7 months later...

Haha, vamos lá.

 

Veja bem, neste código temos o timeNow que é igual a função os.time(). Essa função retorna o tempo da CPU em segundos.

 

Depois temos o tempo, também em segundos, na seguinte variável:

 

local daysValue = days * 24 * 60 * 60

 

Pense comigo, 60 segundos vezes 60 equivale a 1 hora. 1 hora vezes 24 equivale a 1 dia. Então temos days que é a variável que vai multiplicar 1 dia. Se days for 4, por exemplo, vai ser 4 multiplicando 1 dia, totalizando 4 dias em segundos.

 

Depois é somada a função os.time e a conta dos dias.

 

--

 

Para conseguirmos ver quanto tempo ainda resta, revertemos isso, deste jeito:

 

math.floor(tempo - os.time())

 

Onde tempo é viptime. O valor retornado será em segundos; caso queira em dias, use assim:

 

math.floor((tempo - os.time())/(24*60*60))

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...