Killua 389 Postado Novembro 10, 2013 Share Postado Novembro 10, 2013 (editado) 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 Editado Janeiro 24, 2014 por Killua Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/ Compartilhar em outros sites More sharing options...
kleitonalan321 6 Postado Novembro 10, 2013 Share Postado Novembro 10, 2013 muito bom o script ganhou meu REP+ quando eu tiver um tempo irei testar ele no meu ot. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581033 Compartilhar em outros sites More sharing options...
zipter98 1102 Postado Novembro 10, 2013 Share Postado Novembro 10, 2013 (editado) Parece estar muito bom, parabéns Editado Novembro 10, 2013 por zipter98 Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581034 Compartilhar em outros sites More sharing options...
Killua 389 Postado Novembro 10, 2013 Autor Share Postado Novembro 10, 2013 muito bom o script ganhou meu REP+ quando eu tiver um tempo irei testar ele no meu ot. Parece estar muito bom, parabéns Obrigado gente Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581037 Compartilhar em outros sites More sharing options...
Omega 377 Postado Novembro 11, 2013 Share Postado Novembro 11, 2013 Acho que você poderia ter substituído todos esses doCreateMonster("Hideous Fungus", {x=33097, y=31904, z=10}) doSendMagicEffect({x=33097, y=31904, z=10}, CONST_ME_TELEPORT) Por uma tabela com: local monsters = { {pos = {x=123, y=123, z=7}, name = "Hideous Fungus"}, {pos = {...}, name = ...}, } E usado um loop pra criar cada um: for _, monster in pairs(monsters) do doCreateMonster(monster.name, monster.pos) doSendMagicEffect(monster.pos, 10) end Economizaria muitas linhas e muito trabalho. Além disso, o que acontece se o grupo não completar a quest? Acho que você deveria ter adicionado uma remoção pros monstros que já estão na área. Mesmo assim, aposto que ajudará muitas pessoas que querem esse evento no servidor. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581076 Compartilhar em outros sites More sharing options...
Skymagnum 234 Postado Novembro 11, 2013 Share Postado Novembro 11, 2013 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} for _, time in ipairs(times) do if(change) then addEvent(doCreateMonster, time, "Humongous Fungus", position) else addEvent(doCreateMonster, time, "Humorless Fungus", position) end addEvent(doCreateMonster, time, "Hideous Fungus", position) change = change and false or true end addEvent(doCreateMonster, 3 * 60 * 1000, "Deathstrike", {x = 33108, y = 31968, z = 10}) addEvent(doSendMagicEffect, 4 * 60 * 1000, {x = 33108, y = 31968, z = 10}, CONST_ME_TELEPORT) Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581077 Compartilhar em outros sites More sharing options...
Killua 389 Postado Novembro 11, 2013 Autor Share Postado Novembro 11, 2013 Acho que você poderia ter substituído todos esses doCreateMonster("Hideous Fungus", {x=33097, y=31904, z=10}) doSendMagicEffect({x=33097, y=31904, z=10}, CONST_ME_TELEPORT) Por uma tabela com: local monsters = { {pos = {x=123, y=123, z=7}, name = "Hideous Fungus"}, {pos = {...}, name = ...}, } E usado um loop pra criar cada um: for _, monster in pairs(monsters) do doCreateMonster(monster.name, monster.pos) doSendMagicEffect(monster.pos, 10) end Economizaria muitas linhas e muito trabalho. Além disso, o que acontece se o grupo não completar a quest? Acho que você deveria ter adicionado uma remoção pros monstros que já estão na área. Mesmo assim, aposto que ajudará muitas pessoas que querem esse evento no servidor. 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} for _, time in ipairs(times) do if(change) then addEvent(doCreateMonster, time, "Humongous Fungus", position) else addEvent(doCreateMonster, time, "Humorless Fungus", position) end addEvent(doCreateMonster, time, "Hideous Fungus", position) change = change and false or true end addEvent(doCreateMonster, 3 * 60 * 1000, "Deathstrike", {x = 33108, y = 31968, z = 10}) addEvent(doSendMagicEffect, 4 * 60 * 1000, {x = 33108, y = 31968, z = 10}, CONST_ME_TELEPORT) Obrigado vcs dois! No dia que eu fiz esse script eu nem sabia usar o for x, y in pairs do.... Ficou realmente mt melhor. No global, os monstros nao somem quando o time entra no tp. Eles continuam la e o proximo time que for tem que matar eles (Pelo menos foi isso que me foi dito, eu nunca vi esse evento pessoalmente) Abracos. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581100 Compartilhar em outros sites More sharing options...
Maenilse 86 Postado Novembro 11, 2013 Share Postado Novembro 11, 2013 esse sistema parece ser interessante. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581168 Compartilhar em outros sites More sharing options...
Martelix 3 Postado Novembro 11, 2013 Share Postado Novembro 11, 2013 (editado) Muito legal este script, estilo uma demon oak automática ;p Porém, eu acredito que os players serão kickados 3 minutos após entrar na sala não? porque: addEvent(kikar, 3*60*1000 Acredito que seja: addEvent(kikar, 30*60*1000 Editado Novembro 11, 2013 por Martelix Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581179 Compartilhar em outros sites More sharing options...
Killua 389 Postado Novembro 11, 2013 Autor Share Postado Novembro 11, 2013 Muito legal este script, estilo uma demon oak automática ;p Porém, eu acredito que os players serão kickados 3 minutos após entrar na sala não? porque: addEvent(kikar, 3*60*1000 Acredito que seja: addEvent(kikar, 30*60*1000 Realmente faltoum um 0 ali, vlw por avisar vou por. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581187 Compartilhar em outros sites More sharing options...
shumagora 5 Postado Novembro 11, 2013 Share Postado Novembro 11, 2013 esse é só warzone 1, e as outras? Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581321 Compartilhar em outros sites More sharing options...
Killua 389 Postado Novembro 11, 2013 Autor Share Postado Novembro 11, 2013 esse é só warzone 1, e as outras? Como sao as outras? Me explica q eu faço. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1581333 Compartilhar em outros sites More sharing options...
login12 0 Postado Novembro 16, 2013 Share Postado Novembro 16, 2013 Errado, no global os monstros são removidos sim. O que acontece, é que o TP do BOSS, só é liberado, quando e removido um certo crystal, quando nasce monstros até não ter mais sqm para nascer... Quando nao tem nenhum SQM mais para nenhum monstro narcer, o Teleport é liberado, para os times entrar Depois de um certo tempo, sem player la mais, os monstro são removidos, só fica lá ainda, o leve respawn da area mesmo Se quiser podemos marca uma hora, e eu abro cast pra você ver meu time fazendo, todos os dias a gente faz, em Azura (World PVP) Abraços Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1582767 Compartilhar em outros sites More sharing options...
UroTTa 6 Postado Abril 8, 2014 Share Postado Abril 8, 2014 Killua, poderia editar o script para funcionar na distro 10.37 que é 1.0, um pouco mais antiga. Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1635250 Compartilhar em outros sites More sharing options...
ricardok10 0 Postado Maio 20, 2018 Share Postado Maio 20, 2018 (editado) Citar @Killua poderia fazer a 2 warzone é 3 warzone é se não for pedir muito poderia fazer as recompensas ? Editado Maio 20, 2018 por ricardok10 Link para o comentário https://xtibia.com/forum/topic/223773-warzone-event-tibia-global/#findComment-1740814 Compartilhar em outros sites More sharing options...
Posts Recomendados