Ir para conteúdo
Close
Dwarfer

Função mathtime, getStrTime

Posts Recomendados

Bem, resolvi trazer duas funções simples que já utilizo há um bom tempo e que creio que é realmente útil para o desenvolvimento de alguns scripts que envolvem operações com "tempo". Basicamente, elas evitam aqueles comentários "-- tempo em segundos" ou "-- tempo em minutos" e por aí vai, que acabam por diminuir a flexibilidade do script (uma das maiores vantagens da nossa querida linguagem Lua!).

 

São elas:

  • mathtime
function mathtime(table) -- by dwarfer
local unit = {"sec", "min", "hour", "day"}
for i, v in pairs(unit) do
if v == table[2] then
return table[1]*(60^(v == unit[4] and 2 or i-1))*(v == unit[4] and 24 or 1)
end
end
return error("Bad declaration in mathtime function.")
end

Explicação: Essa função converte o tempo (especificado em um vetor que será o argumento da função) sempre para segundos. O primeiro elemento do vetor deve ser um número e o segundo a unidade de tempo.

 

As unidades de tempo aceitáveis são:

 

"sec" - segundo(s)

"min" - minuto(s)

"hour" - hora(s)

"day" - dia(s)

 

Exemplo: 

local tempo = {2, "min"}

print(mathtime(tempo))

-- valor retornado: 120

 

  • getStrTime
function getStrTime(table) -- by dwarfer
local unit = {["sec"] = "second",["min"] = "minute",["hour"] = "hour",["day"] = "day"}
return tostring(table[1].." "..unit[table[2]]..(table[1] > 1 and "s" or ""))
end

Explicação: Essa função bem simples é basicamente para converter o tempo especificado em texto (em inglês) como um complemento à função mathtime.

 

Exemplo:

local tempo = {3, "hour"}

print(getStrTime(tempo))

-- valor retornado: 3 hours

 

Um exemplo simples e prático de um script utilizando ambas as funções acima e que envia uma mensagem depois de determinado tempo do player ter clicado em um item é demonstrado abaixo:

local tempo_para_receber_msg = {3, "min"}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will receive the surprise message in "..getStrTime(tempo_para_receber_msg)..".")
    addEvent(function()
        if isPlayer(cid) then
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Tibia King: All about Tibia, bots and Ot servers!")
        end
    end, mathtime(tempo_para_receber_msg) * 1000)
    return true
end

Quem quiser ver para crer é só testar! :)



Contato:  (Não dou suporte! Sem exceções)

  • Email: dwarfer@sapo.pt
  • Discord: Dwarfer#2715

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Dwarfer belas funções, muito úteis. Parabéns!! 



Não esqueçam de me marca quando eu responder em seu tópico, assim recebo a notificação e volto em seu tópico.
Não dou suporte em mensagem privada ou fora do fórum.
Não esqueça de reputa e agradecer a pessoa que lhe ajudou em algum tópico seu.
"Só ajudo quem eu vejo ajudando." xD

Não esqueça de reputa alguém que lhe ajudou ou tentou lhe ajudar, e agradeça com suas palavras. Seja grato por alguém ter lhe ajudado ou tentado lhe ajudar!

O coitadismo e o conformismo potencializado é a arte de sentir compaixão de si mesmo para você não utilize ferramentas capazes de transformar
sua história!!

-- Augusto Cury

 

                                                               ezgif-1-98aab239f3.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Parabéns por disponibilizar essa funções, são realmente uteis, até acho que vou usar!



vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

Dota System 8.6 Com Buffs Automáticos + MAPA (100%) - PVP

Link para Downloadhttps://www.4shared.com/rar/SMta8CQ8fi/Dota_Venda.html?

[+]--------------------------------------[+]-------------------------------------------[+]

 

DISCORDvodkart#6090

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.


Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia partindo do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer publicidade para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução! A publicação do seu anuncio é instantânea!

×
×
  • Criar Novo...