LeoTK 173 Postado Janeiro 20, 2019 Share Postado Janeiro 20, 2019 (editado) Salve galera bom eu procurei bastante nos fóruns por ai, podemos dizer que tem muita coisa do tipo, mesmo assim eu resolvi trazer esse conteúdo, achei bem interessante e claro para quem gosta de detalhes como eu vai ser muito útil, espero que gostem. Requisitos Alteração na 050-Functions Caminho: Pasta do servidor/data/lib Ir até o final de tudo dar dois enters e adicionar o seguinte código Spoiler function convertTime(a) if(type(tonumber(a)) == "number" and a > 0) then if (a <= 3599) then local minute = math.floor(a/60) local second = a - (60 * minute) if(second == 0) then return ((minute)..((minute > 1) and " minutos" or " minuto")) else return ((minute ~= 0) and ((minute>1) and minute.." minutos e " or minute.." minuto e ").. ((second>1) and second.." segundos" or second.." segundo") or ((second>1) and second.." segundos" or second.. " segundo")) end else local hour = math.floor(a/3600) local minute = math.floor((a - (hour * 3600))/60) local second = (a - (3600 * hour) - (minute * 60)) if (minute == 0 and second > 0) then return (hour..((hour > 1) and " horas e " or " hora e "))..(second..((second > 1) and " segundos" or " segundo")) elseif (second == 0 and minute > 0) then return (hour..((hour > 1) and " horas e " or " hora e "))..(minute..((minute > 1) and " minutos" or " minuto")) elseif (second == 0 and minute == 0) then return (hour..((hour > 1) and " horas" or " hora")) end return (hour..((hour > 1) and " horas, " or " hora, "))..(minute..((minute > 1) and " minutos e " or " minuto e "))..(second..((second > 1) and " segundos" or " segundo")) end end end Configuração Explicada no próprio script storage = 62163, -- Storage para após usar começar a contagem de tempo após o próximo uso tempo = 120, -- Tempo em minutos que vai curar a stamina 120 = 2 horas delay = 12, -- Tempo em horas que vai demorar para usar novamente 1 = 1 hora effect = 592, -- Efeito que vai aparecer ao usar o item para regenerar a stamina remove_on_use = true, -- Se o item vai sumir ao usar ou não sendo true = sim e false = nao stamina_full = 42 * 60 -- aqui é o valor da stamina completa em MINUTOS OBS: NÃO MEXER Actions.xml Tag <action itemid="ITEM ID" event="script" value="NOME DO ARQUIVO.lua"/> ATENÇÃO: O script esta utilizando uma configuração para enviar a mensagem de erro para uma channel, quase certeza que pode dar erro em seu servidor caso quiser colocar a função no seu servidor de criar novas channels e ao logar aparecer as channels Clique Aqui Caso quiser que o script mande a mensagem de aviso para o default basta editar essa parte return doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE, "Voce precisa esperar " .. timeString(getPlayerStorageValue(cid, config.storage) - os.time()) ..", para regenerar a stamina novamente.", TALKTYPE_CHANNEL_O, CHANNEL_INFO) Por essa return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, "Voce precisa esperar " .. timeString(getPlayerStorageValue(cid, config.storage) - os.time()) ..", para regenerar a stamina novamente.") Script Obs: O script vai mostrar o tempo em horas, minutos e segundos que falta para usar novamente Spoiler local config = { storage = 62163, -- Storage para após usar começar a contagem de tempo após o próximo uso tempo = 120, -- Tempo em minutos que vai curar a stamina 120 = 2 horas delay = 12, -- Tempo em horas que vai demorar para usar novamente 1 = 1 hora effect = 592, -- Efeito que vai aparecer ao usar o item para regenerar a stamina remove_on_use = true, -- Se o item vai sumir ao usar ou não sendo true = sim e false = nao stamina_full = 42 * 60 -- aqui é o valor da stamina completa em MINUTOS OBS: NÃO MEXER } function timeString(timeDiff) local dateFormat = { {"dia", timeDiff / 60 / 60 / 24}, {"hora", timeDiff / 60 / 60 % 24}, {"minuto", timeDiff / 60 % 60}, {"segundo", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" e ") ret = ret:sub(b+1) end return ret end function onUse(cid, item, frompos, item2, topos) if (getPlayerStorageValue(cid, config.storage) >= os.time()) then return doPlayerSendChannelMessage(cid, MESSAGE_STATUS_CONSOLE, "Voce precisa esperar " .. timeString(getPlayerStorageValue(cid, config.storage) - os.time()) ..", para regenerar a stamina novamente.", TALKTYPE_CHANNEL_O, CHANNEL_INFO) elseif getPlayerStamina(cid) >= config.stamina_full then return doPlayerSendCancel(cid, "Sua stamina ja esta cheia!") end doPlayerAddStamina(cid, config.tempo) doSendMagicEffect(getThingPos(cid), config.effect) setPlayerStorageValue(cid, config.storage, os.time() + config.delay * 60 * 60) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sua stamina foi regenerada em 2 horas.") -- Mensagem quando a stamina for regenerada if config.remove_on_use then doRemoveItem(item.uid, 1) end return true end Créditos: Brunds @Vodkart gryLLo Editado Janeiro 20, 2019 por Brunds Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados