O usuário alex me pediu ontem um tutorial explicando melhor como fiz meu sistema VIP, para ser baseado em dias, horas, minutos e segundos.
A resposta é storage value + os.time.
Explicação de os.time:
os.time() - Uma function que retorna o tempo atual do CPU em segundos, sendo contado desde a criação da linguagem LUA.
Exemplo:
os.time()
989013659
Não sei que data é esta 989013659 nem que hora, se o seu objetivo é saber isto.
Tem que usar a function os.date, pesquise mais sobre a mesma pelo google, você encontrará bastante explicações.
Agora, vamos entender como funciona meu sistema VIP.
É o seguinte, no script de adicionar a VIP, eu coloquei um os.time() dentro da function, para retornar o tempo em segundos daquele exato momento, quando foi colocado a VIP, somei este valor com os segundos que são precisos para no caso, 30 dias de VIP e adicionei este valor em um storage value qualquer, no caso foi o 29000.
3600 segundos = 1 hora
3600 segundos *24 = 24 horas = 1 dia
3600 segundos * 24 * 30 = 1 mês comercial
Exemplo:
local tempo_em_segundos_agora = os.time() -- segundos retornados pelo CPUlocal tempo_da_vip = 3600*24*30 -- 30 dias
tempo_total = tempo_em_segundos_agora+tempo_da_vip
setPlayerStorageValue(player,29000,tempo_total)
Player pode ser qualquer player, param UID, cid e etc... O importante é entender que quando eu adicionei a VIP, eu simplesmente guardei um valor de quando foi que eu coloquei somado com os segundos para a quantidade de dias de tal VIP para o player.
Agora, checando se essa VIP ainda é válida.
Este é bem simples também, você pega o tempo em segundos do exato momento, onde o player quer executar uma ação de VIP, subtrai pelo valor que colocamos na storage value anteriormente, de quando foi adicionada a VIP, e então se este valor for maior que 0, ele é vip, caso contrário não.
Olhe o exemplo:
local tempo_da_vip = getPlayerStorageValue(player,29000)local tempo_em_segundos_agora = os.time() -- segundos retornados pelo CPU
tempo_restante = tempo_da_vip-tempo_em_segundos_agora
if tempo_restante > 0 then
-- é vip, executa quaisquer ações vips
else
-- não é vip, retorna algum erro
end
Existem outras formas de ver se ele é VIP, mas são mais complexas, esta é forma mais simples.
Caso tenham dúvidas, podem postar sem medo, assim que eu ver, respondo
//Yunie~