tambem queria saber
- Fórum
- xTibia - Notícias e Suporte
- Soluções
- Archived
- Time; Duvida Em Relação Ao Formato
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

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))


info
Grupo: Campones
Registrado: 13/08/10
Posts: 8
Reputação: 0
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 TRUEEle 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!