Postado Janeiro 20, 2019 6 anos 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 Projeto ATS (Naruto)Informações AbaixoFacebookYoutubeDiscord Tutoriais / ConteúdosClique Aqui
Postado Janeiro 20, 2019 6 anos show de bola, muitos membros procuram por isso! parabéns. [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Janeiro 20, 2019 6 anos Autor @Vodkart Dei uma editada falando sobre o detalhe de channels acho que agora ficou completo Projeto ATS (Naruto)Informações AbaixoFacebookYoutubeDiscord Tutoriais / ConteúdosClique Aqui
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.