Jump to content
Close
Dwarfer

Função mathtime, getStrTime

Recommended Posts

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:

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

 




Share this post


Link to post
Share on other 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




Share this post


Link to post
Share on other 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

 




Share this post


Link to post
Share on other sites

Não faço códigos, mas já tentei criar actions e movements usando tempo e foi muito confuso, sem falar que procurei em diversos lugares e não encontrei o que eu precisava. Belo tópico, organizado e ótimo conteúdo!



• Mapas do Nolis •




Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from 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 começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário 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!

×
×
  • Create New...