Por
Lurk
Salve pessoal, eu amo tibia e a comunidade já me deu muito, hoje finalmente sinto que posso dar algo de volta e vou estar disponibilizando esse código pra evento que eu fiz pro meu servidor. Esse código pode ser melhorado bastante mas é funcional e acredito ter pensando em todas as possibilidades de abuso e ter corrigido, ainda assim caso você faça alguma melhora por favor compartilhe aqui nos comentários :). Vou disponibilizar também a hotkey de elfbot no fim do tópico.
Durante o evento (duração de 15 min que você pode diminuir/aumentar), quando um player clica no item ele vai receber x leveis e a cada 2 clicks ele vai ganhar um item (no meu caso, uma event coin). Tem um exhaust de 2 secs a cada click pra evitar abuso com elfbot/auto click e eu não recomendo tirar, embora você possa diminuir/aumentar tranquilamente
Em globalevents.xml adicione
<globalevent name="clickupstart" time="19:00" event="script" value="clickupstart.lua"/>
<globalevent name="clickupclose" time="19:15" event="script" value="clickupend.lua"/>
Em globalevents/scripts crie um novo arquivo e nomeie de clickupend.lua e cole isso dentro
local storage = 64242 -- storage
function onTime()
setGlobalStorageValue (storage, -1)
doBroadcastMessage("THE CLICK UP EVENT HAS ENDED")
return true
end
Ainda em globalevents/scripts crie um novo arquivo e nomeie de clickupstart.lua e cole isso dentro
local storage = 64242 -- storage que você quer zerar.
function onTime()
setGlobalStorageValue (storage, 1)
doBroadcastMessage("THE CLICK UP EVENT HAS STARTED")
return true
end
Agora em actions.xml adicione a tag
<action actionid="42113" script="clickup.lua"/>
Em actions/scripts crie um arquivo chamado clickup.lua e cole isso dentro
local tempo = 2 -- segundos para usar novamente
function onUse(cid, item, frompos, item2, topos)
if getGlobalStorageValue(64242) == 1 then
if getPlayerStorageValue(cid, 45890) > os.time() or getPlayerLevel(cid) >= 717217 then -- se estiver no cooldown ou se for level maximo
return doPlayerSendCancel(cid, "Voce deve esperar "..(getPlayerStorageValue(cid, 45890) - os.time()).. " segundos para usar novamente e nao pode ser nivel maximo.")
end
if getPlayerStorageValue(cid, 45891) < 1 then
doPlayerAddLevel(cid, 32)
doCreatureSay(cid, "LEVEL UP", TALKTYPE_ORANGE_1, true, cid)
setPlayerStorageValue(cid, 45890, 2 + os.time())
local bah = getPlayerStorageValue(cid, 45891)
doPlayerSetStorageValue(cid, 45891, bah+1)
return true
else
doPlayerAddLevel(cid, 32)
doCreatureSay(cid, "LEVEL UP + EVENT COIN", TALKTYPE_ORANGE_1, true, cid)
doPlayerAddItem(cid,10558,1)
setPlayerStorageValue(cid, 45890, 2 + os.time())
doPlayerSetStorageValue(cid, 45891, -1)
return true
end
else -- msg quando o evento não ta rolando
return doPlayerSendCancel(cid, "The event haven't started yet.")
end
end
Agora você abre seu mapa, cria uma area pro evento e você coloca a actions 42113 na statua/pedra/cristal que o player vai precisar dar use pra ganhar os leveis (eu uso o id 9779)
NÃO SE ESQUEÇA QUE A HOTKEY DE ELFBOT VAI MUDAR SE VOCÊ NÃO USAR O MESMO ID QUE EU
auto 200 listas 'Evento' | usegrounditem 8865
Posts Recomendados
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.