Postado Maio 1, 2018 7 anos Boa tarde TK! Tenho um script de potion exp, que vou postar abaixo, o que eu queria é que tivesse um comando exemplo: !tempopotion para mostrar o tempo restante de todas as potions (é que meu servidor tem potions x2,x3,x4...) Exemplo: Você ainda possui tempo restante de: X2 = 23 minutos e 30 segundos X3 = 50 minutos e 21 segundos X4 = não ativada X5 = não ativada Meu código da potion de x2 abaixo: Caso conseguir me ajudar, pode fazer com todas as storages do x2, depois eu arrumo com a storage de cada uma! Spoiler local config = { rate = 2, storage = 61002, expstorage = 61102, register = 61202, time = 1800, } function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, config.storage) <= 0 then local rates = getPlayerRates(cid) setPlayerStorageValue(cid, config.expstorage, rates[SKILL__LEVEL]) setPlayerStorageValue(cid, config.register, 1) itemEx=itemid == 7439 doCreatureSay(cid, "Seu EXP x2 [30 min] foi ativado!", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, config.storage, os.time()+config.time) doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+config.rate) doRemoveItem(item.uid,1) registerCreatureEvent(cid, "ExpStagex2") else doCreatureSay(cid, "Você já esta com efeito de x2!", TALKTYPE_ORANGE_1, true, cid) end return true end function onThink(cid, interval) if getPlayerStorageValue(cid, config.register) == 1 then if getPlayerStorageValue(cid, config.storage) <= os.time() then doCreatureSay(cid, "Sua EXP x2 acabou!", TALKTYPE_ORANGE_1, true, cid) setPlayerStorageValue(cid, config.storage, 0) setPlayerStorageValue(cid, config.register, 0) local oldexp = getPlayerStorageValue(cid, config.expstorage) doPlayerSetExperienceRate(cid, oldexp) unregisterCreatureEvent(cid, "ExpStagex2") end end return true end function onLogin(cid) if getPlayerStorageValue(cid, config.register) == 1 then registerCreatureEvent(cid, "ExpStagex2") local rates = getPlayerRates(cid) doCreatureSay(cid, "Seu EXP x2 [30 min] ainda está ativado!", TALKTYPE_ORANGE_1, true, cid) if getPlayerStorageValue(cid, config.storage) > os.time() then local oldexp = getPlayerStorageValue(cid, config.expstorage) doPlayerSetExperienceRate(cid, oldexp+config.rate) end end return true end Editado Maio 1, 2018 7 anos por Toulouse (veja o histórico de edições)
Postado Maio 3, 2018 7 anos Aqui no TibiaKing mensagens como UP e BUMP são proibidas, utilize o botão subir este tópico. Esta é uma mensagem automática!Pedimos que leia as regras do fórum! Spoiler Here in TibiaKing messages like UP and BUMP are prohibited, use the button raise this topic. This is an automated message!Please read the forum rules. Talvez você queira ver: BestBaiak [FAQ]Remere's Map Editor - Dúvidas e soluções de bugs Contato: Discord:
Postado Maio 4, 2018 7 anos joga essa função na sua lib: 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 e a talk vc usa assim: function onSay(cid, words, param, channel) local potion_storage = 61002 return doPlayerSendTextMessage(cid, 25, getPlayerStorageValue(cid, potion_storage) - os.time() <= 0 and "voce nao tem exp potion no momento." or "voce tem "..convertTime(getPlayerStorageValue(cid, potion_storage) - os.time()).." de exp potion") end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Maio 4, 2018 7 anos Autor @Vodkart Funciona usando exatamente como você manda vod, eu já tinha criado um com gambis, por que eu uso 1 comando que mostra ao mesmo tempo todas potions ex: doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "# INFO EXP Potions #\n\n[X2] -> "..storagex2.."\n[X3] -> "..storagex3.."\n[X4] -> "..storagex4.."\n[X5] -> "..storagex5.."") Teria como adaptar por favor? Eu tentei muito mas não rolou Para a mensagem em si ficar: # INFO EXP Potions # [X2] -> 30 minutos e 20 segundos [X3] -> Não ativo .... Ao invés de se ele não tiver nenhuma ativa simplesmente não falar nada, mostrar mesmo assim porém tudo 'não ativo' Obrigado pela atenção! você sempre sendo um god
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.