Postado Junho 12, 2021 3 anos TFS 0.4 1) Quando clicar no item ele ira desaparecer. 2) Uma mensagem no chat para todos os players avisando que o Fulano ativou double exp por 1 hora 3) Quando utilizado outro double exp enquanto já estiver sobre efeito de double exp a mensagem para os players irá ser atualizada: Outro Fulano ativou double exp (mais uma hora é adicionada no contador) REP+
Postado Junho 22, 2021 3 anos Estou com o tempo bem apertado, mas pode usar isso como base Servidor/mods/nome.xml <?xml version="1.0" encoding="UTF-8"?> <mod name="Double Exp Global" enabled="yes" author="MatheusMkalo/Tio Rusher" forum="Xtibia/Tibia King"> <!-- Configuração --> <config name="PotionExpConfigs"><![CDATA[ ------ CONFIGURE SEU SCRIPT ------ TRUE ou FALSE configs = { time = 720, ---- Tempo em minutos needpa = FALSE, needlvl = {FALSE, level = 1}, costmana = {FALSE, mana = 1}, addrate = 100, -- Exp que vai adicionar em % removeonuse = TRUE } function getTime(s) local n = math.floor(s / 60) s = s - (60 * n) return n, s end CreatureEventChecker = function(event, ...) if isCreature(arg[1]) then event(unpack(arg)) end end creatureEvent = function(event, delay, ...) addEvent(CreatureEventChecker, delay, event, unpack(arg)) end function getPlayerExtraExpRate(cid) return (getPlayerRates(cid)[8]-1)*100 end ]]></config> <!-- exppotion.lua --> <action itemid="7440" event="script"><![CDATA[ -- ID do item domodlib('PotionExpConfigs') if getPlayerStorageValue(cid, 62164) >= 1 then doRemoveItem(item.uid, 1) return broadcastMessage("Um Double Exp foi ativado, e bla bla bla", MESSAGE_STATUS_CONSOLE_BLUE) end if configs.needpa and not isPremium(cid) then return doPlayerSendCancel(cid, "Voce precisa ser uma conta premmium para usar este item.") end if configs.needlvl[1] and getPlayerLevel(cid) < configs.needlvl.level then return doPlayerSendCancel(cid, "Voce precisa do nivel " .. configs.needlvl.level .. " para usar este item") end if configs.costmana[1] then if getCreatureMana(cid) < configs.costmana.mana then return doPlayerSendCancel(cid, "Voce precisa " .. configs.costmana.mana .. " mana para usar este item") else doCreatureAddMana(cid, -configs.costmana.mana) end end if configs.removeonuse then doRemoveItem(item.uid, 1) end for i = configs.time*60, 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == configs.time*60 then creatureEvent(doPlayerSendCancel, configs.time*60*1000, cid, "O efeito do Elexir do Conhecimento se esgotou") end creatureEvent(doPlayerSendCancel, (configs.time*60-i)*1000, cid, "O Efeito do Elixir do conhecimento expira em: "..a.."minutos") end doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, configs.time *60*1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) doPlayerSendTextMessage(cid, 22, "Agora voce esta sob o efeito do Elixir do conhecimento e ganhara double exp") setPlayerStorageValue(cid, 62164, os.time()) caixinha = creatureEvent(setPlayerStorageValue, configs.time *60*1000, cid, 62164, 0) return TRUE ]]></action> <creaturescript type="login" name="ExpPotion" event="script"><![CDATA[ domodlib('PotionExpConfigs') local time = configs.time if os.time()-getPlayerStorageValue(cid, 62164) < time *60 then doPlayerSetExperienceRate(cid, (1+(configs.addrate/100))+(getPlayerExtraExpRate(cid)/100)) creatureEvent(doPlayerSetExperienceRate, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000, cid, 1+(getPlayerExtraExpRate(cid)/100-(configs.addrate/100))) creatureEvent(setPlayerStorageValue, (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) * 1000 , cid, 62164, 0) for i = (time*60-(os.time()-getPlayerStorageValue(cid, 62164))), 1, -1 do local a = math.floor(i/60) .. ":" .. i - (60 * math.floor(i/60)) if #a < 4 then a = string.sub(a,1,2) .. "0" .. string.sub(a, 3) end if i == (time*60-(os.time()-getPlayerStorageValue(cid, 62164))) then creatureEvent(doPlayerSendCancel, (time*60-(os.time()-getPlayerStorageValue(cid, 62164)))*1000, cid, "O Efeito do Elixir do conhecimento chegou ao fim") end creatureEvent(doPlayerSendCancel, ((time*60-(os.time()-getPlayerStorageValue(cid, 62164)))-i)*1000, cid, "O Efeito do Elixir do conhecimento expira em: "..a.." minutos") end end return TRUE ]]></creaturescript> </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.