Ir para conteúdo

Featured Replies

Postado

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+

 

  • 2 weeks later...
Postado

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Conteúdo Similar

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo