Postado Dezembro 2, 2020 4 anos Olá galera do TK Bom, como o título acima aponta, eu gostaria de uma Poção ou qualquer outro Item que eu configurar no Script faça com que eu upe um certo Skill Mais rápido, como um Boost, por exemplo: -Parabéns, você usou a Skill Potion e Agora sua magia está 5 por Cento mais fácil de upar-- -Parabéns, você usou a Skill Potion e Agora seu Fist está 5 por Cento mais fácil de upar-- -Parabéns, você usou a Skill Potion e Agora seu Distance está 5 por Cento mais fácil de upar-- ETC.. Meu Servidor é de Narutitiba [DERIVADO] - TFS 0.4.4 - 8.60 Eu tentei alterar um Script do @Vodkart e Alterar, mas sem Sucesso. OBS: O Script da Potion Exp Está funcionando perfeitamente, Eu gostaria apenas de adaptar pra Um X Skill Pode ser Todos Skills de uma vez, ou vários Scripts, cada um aumentando x Velocidade de Upar Skill ? Segue o Script da Base da Exp Potion ---> Pasta Mods Agradeço Desde Já. Você tem o código disponível? Se tiver publique-o aqui: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Exp Potion" version="1.0" author="Vodkart" contact="DISCORD: vodkart#6090" enabled="yes"> <config name="exppotion"><![CDATA[ exp_info = {rate = 0.2, storage = {354870,354871,354872}, minutes = 30} -- rate 0.2 = 20% 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 ]]></config> <event type="login" name="ExpPotionLogin" event="script"><![CDATA[ domodlib('exppotion') function onLogin(cid) if getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() > 0 then registerCreatureEvent(cid, "ExpPotionThink") local rates = getPlayerRates(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ainda tem "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time()).." de Ex Scroll.") doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+exp_info.rate) setPlayerStorageValue(cid, exp_info.storage[3], 1) -- registro end return true end]]></event> <event type="think" name="ExpPotionThink" event="script"><![CDATA[ domodlib('exppotion') function onThink(cid, interval) if getPlayerStorageValue(cid, exp_info.storage[3]) > 0 and getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Exp Scroll acabou!") -- doPlayerSetExperienceRate(cid, getPlayerStorageValue(cid, exp_info.storage[2])) local rates = getPlayerRates(cid) doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]-exp_info.rate) setPlayerStorageValue(cid, exp_info.storage[3], 0) -- registro end return true end]]></event> <talkaction words="!XpScroll;/ExpScroll;!xp;/XpScroll" event="buffer"><![CDATA[ domodlib('exppotion') return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() <= 0 and "Você não possui Exp Scroll ativa no momento." or "Você tem "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time()).." de Xp Scroll.")]]></talkaction> <action itemid="14562" event="script"><![CDATA[ domodlib('exppotion') function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não pode usar outra Exp Scroll. Você já possui uma Ativa. E Ainda restam: "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time())..".") return true end local rates = getPlayerRates(cid) -- setPlayerStorageValue(cid, exp_info.storage[2], rates[SKILL__LEVEL]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ativou Exp Scroll por "..exp_info.minutes.." minutos! Durante este tempo, você receberá +20% Xp Extra de Qualquer Mob. Para saber o tempo, digite: /xpScroll") setPlayerStorageValue(cid, exp_info.storage[1], os.time()+exp_info.minutes*60) setPlayerStorageValue(cid, exp_info.storage[3], 1) -- registro doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+exp_info.rate) registerCreatureEvent(cid, "ExpPotionThink") doRemoveItem(item.uid,1) return true end]]></action> </mod> Editado Dezembro 2, 2020 4 anos por AidanNarutoHellDust Remover ultima Linha. (veja o histórico de edições)
Postado Dezembro 3, 2020 4 anos Creio que se editar essa parte da skill resulte: doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+exp_info.rate) SKILL__LEVEL para a skill desejada, confere se está adicionando uma skill existente. troque todos.
Postado Dezembro 3, 2020 4 anos Autor 1 hora atrás, Nysman disse: Creio que se editar essa parte da skill resulte: doPlayerSetExperienceRate(cid, rates[SKILL__LEVEL]+exp_info.rate) SKILL__LEVEL para a skill desejada, confere se está adicionando uma skill existente. troque todos. Agradeço a atenção. Vou Alterar o Script e Testar, caso haja algum erro ou algo inalterado eu te retorno. Só uma dúvida, como eu já possuo o Exp Scroll, é só alterar a storage e o nome dos Eventos no Script, certo?
Postado Dezembro 3, 2020 4 anos 27 minutos atrás, AidanNarutoHellDust disse: Agradeço a atenção. Vou Alterar o Script e Testar, caso haja algum erro ou algo inalterado eu te retorno. Só uma dúvida, como eu já possuo o Exp Scroll, é só alterar a storage e o nome dos Eventos no Script, certo? Exato.
Postado Dezembro 3, 2020 4 anos Autor 20 minutos atrás, Nysman disse: Exato. Erro, troquei os storages e o Nome dos Eventos, mesmo assim deu bug. só aparece a mensagem, mas não remove o Scroll também: Segue o Script: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Taijutsu Potion" version="1.0" author="Vodkart" contact="DISCORD: vodkart#6090" enabled="yes"> <config name="fistpotion"><![CDATA[ exp_info = {rate = 0.2, storage = {354875,354876,354877}, minutes = 30} -- rate 0.2 = 20% 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 ]]></config> <event type="login" name="Taijutsupotionlogin" event="script"><![CDATA[ domodlib('fistpotion') function onLogin(cid) if getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() > 0 then registerCreatureEvent(cid, "FistPotionThink") local rates = getPlayerRates(cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ainda tem "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time()).." de Ex Scroll.") doPlayerSetExperienceRate(cid, rates[SKILL__FIST]+exp_info.rate) setPlayerStorageValue(cid, exp_info.storage[3], 1) -- registro end return true end]]></event> <event type="think" name="FistPotionThink" event="script"><![CDATA[ domodlib('fistpotion') function onThink(cid, interval) if getPlayerStorageValue(cid, exp_info.storage[3]) > 0 and getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sua Taijutsu Scroll acabou!") -- doPlayerSetExperienceRate(cid, getPlayerStorageValue(cid, exp_info.storage[2])) local rates = getPlayerRates(cid) doPlayerSetExperienceRate(cid, rates[SKILL__FIST]-exp_info.rate) setPlayerStorageValue(cid, exp_info.storage[3], 0) -- registro end return true end]]></event> <talkaction words="!TaijutsuScroll;/TaijutsuScroll;!Tj;/TaijutsuScroll" event="buffer"><![CDATA[ domodlib('fistpotion') return doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() <= 0 and "Você não possui Taijutsu Scroll ativa no momento." or "Você tem "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time()).." de Xp Scroll.")]]></talkaction> <action itemid="14565" event="script"><![CDATA[ domodlib('fistpotion') function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, exp_info.storage[1]) - os.time() > 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você não pode usar outro Taijutsu Scroll. Você já possui uma Ativa. E Ainda restam: "..convertTime(getPlayerStorageValue(cid, exp_info.storage[1]) - os.time())..".") return true end local rates = getPlayerRates(cid) -- setPlayerStorageValue(cid, exp_info.storage[2], rates[SKILL__FIST]) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Você ativou o Taijutsu Scroll por "..exp_info.minutes.." minutos! Durante este tempo, você irá Upar Taijutsu +20% Mais Rápido Para saber o tempo, digite: /TaijutsuScroll") setPlayerStorageValue(cid, exp_info.storage[1], os.time()+exp_info.minutes*60) setPlayerStorageValue(cid, exp_info.storage[3], 1) -- registro doPlayerSetExperienceRate(cid, rates[SKILL__FIST]+exp_info.rate) registerCreatureEvent(cid, "FistPotionThink") doRemoveItem(item.uid,1) return true end]]></action> </mod>
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.