Warzone Event
por Killua, antigo amoeba13
Eu fiz o famoso Warzone Event do tibia global e vou disponibilizar pra vcs, pra quem nao conhece, segue video do evento. (Assistam a partir dos 3 minutos.)
PS: Os codigos estao configurados com as posicoes do mapa global "originial"
A primeira parte eh a action (De clicar no cristal verde pra comecar a nascer os monstros)
Crie um arquivo chamado warzone.lua em data/actions/scripts e coloque esse codigo:
--- [[ Warzone Event by Killua, antigo amoeba13 ]] --- local posdotp = {x= 33104, y=31908, z=10} -- Posicao que o tp vai ser criado (Eh o tp que leva pra sala do Deathstriker) local salaDeathstriker = {x=33101, y=31956, z=10} -- Posicao da sala do Deathstriker (Pos pra onde o player vai qd entrar no tp) local posDeathstriker = {x=33108, y=31968, z=10} -- Posicao onde o Deathstriker vai nascer. function removerTp(tp) local t = getTileItemById(posdotp, 1387) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(posdotp, CONST_ME_POFF) end end function TirarCristal() local cristal = getTileItemById(posdotp, 17999) -- Id do cristal azul que some para dar lugar ao tp if cristal then doRemoveItem(cristal.uid, 1) end return true end function onUse(cid, item, fromPosition, itemEx, toPosition) local times = {100, 5000, 15000, 20000, 30000, 35000, 45000, 55000, 60000, 65000, 75000, 85000, 100000, 115000, 120000} local change = false local position = {x = 33094 + math.random(1, 10), y = 31904 + math.random(1, 8), z = 10} if os.time()-getGlobalStorageValue(cid, 96963) > 30*60 then for _, time in ipairs(times) do if(change) then addEvent(doCreateMonster, time, "Humongous Fungus", position) addEvent(doSendMagicEffect, time, position, CONST_ME_TELEPORT) else addEvent(doCreateMonster, time, "Humorless Fungus", position) addEvent(doSendMagicEffect, time, position, CONST_ME_TELEPORT) end addEvent(doCreateMonster, time, "Hideous Fungus", position) addEvent(doSendMagicEffect, time, position, CONST_ME_TELEPORT) change = change and false or true end addEvent(doCreateMonster, 3*60*1000, "Deathstrike", posDeathstriker) addEvent(doSendMagicEffect, 4 * 60 * 1000, posDeathstriker, CONST_ME_TELEPORT) addEvent(TirarCristal, 2*60*1000) addEvent(doCreateTeleport, 121000, 1387, salaDeathstriker, posdotp) setGlobalStorageValue(96963, os.time()) addEvent(removerTp, 60000+121000) addEvent(doCreateItem, 60000+122000, 17999, posdotp) doCreatureSay(cid, "The crystals are damaging!", TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid, "Wait 30 minutes to start again.") end return true end
E em data/actions/actions.xml adicione essa tag:
<action actionid="7231" script="warzone.lua" />
Coloque actionId 7231 no cristal verde.
Configurando: Siga as instrucoes que estao dentro do script e
Em
local position = {x = 33094 + math.random(1, 10), y = 31904 + math.random(1, 8), z = 10}
No lugar do 33094 vc coloca a posicao x minima da area onde vao nascer os monstros.
No lugar do 31904 vc coloca a posicao y minima da area onde vao nascer os monstros.
Agora, a segunda parte eh o movement
Em data/movements/scripts crie warzone.lua e coloque esse codigo:
--- [[ Warzone Event by Killua, antigo amoeba13 ]] --- local kickposs = {x=33000, y=31899, z=9} -- Posicao pra onde o player vai ser kikado se permanecer mais de 30 minutos na sala do Deathstriker.(Se ele sair voluntariamente, vai pra essa pos tbm) function kikar(cid) doTeleportThing(cid, kickposs) doPlayerSendTextMessage(cid, 18, "You have been removed from the boss room, because you can not stay for more than 30 minutes.") return true end function onStepIn(cid, item, position, topos, frompos) if not isPlayer(cid) then return false end if item.actionid == 5157 then doPlayerSendTextMessage(cid, 18, "You have half an hour to heroically defeat Deathstrike. Otherwise you'll be teleported out by the gnomish emergency device.") evento = addEvent(kikar, 3*60*1000, cid) elseif item.actionid == 5158 then doTeleportThing(cid, tpsaida) stopEvent(evento) end return true end
E, em data/movements/movements.xml adicione essa tag:
<movevent type="StepIn" actionid="5158;5157" event="script" value="warzone.lua"/>
Configurando: Simplesmente coloque o actionID 5157 no piso onde eh criado o tp (o local posdotp da action) e o actionID 5158 no piso que vai ser a saida da sala do Deathstriker.
Eh isso ai, espero que ajude alguem.
Fiz esse evento a pedido do usuario UroTTa
Por favor, deixe seu comentario.
Abracos