muito bom o script ganhou meu REP+ quando eu tiver um tempo irei testar ele no meu ot.
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- Warzone Event (Tibia Global)
Warzone Event (Tibia Global)
Por Killua, 10 de nov. de 2013 em Mods, funções e outros
info
Grupo: Cavaleiro
Registrado: 12/06/13
Posts: 187
Reputação: +6

Parece estar muito bom, parabéns ![]()
Editado Novembro 10 por zipter98
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

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 ![]()
info
Grupo: Marquês
Registrado: 16/06/07
Posts: 1.2k
Reputação: +377
Gênero: Masculino
Char no Tibia: Nenhum

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.
info
Grupo: Marquês
Registrado: 02/08/12
Posts: 1k
Reputação: +234
Char no Tibia: Maurolkit

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)
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

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) endEconomizaria 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.
info
Grupo: Conde
Registrado: 20/09/12
Posts: 711
Reputação: +86
Char no Tibia: noé

esse sistema parece ser interessante.
info
Grupo: Campones
Registrado: 30/08/08
Posts: 57
Reputação: +3
Char no Tibia: Termabre Dore

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 por Martelix
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

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.
esse é só warzone 1, e as outras?
info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem

esse é só warzone 1, e as outras?
Como sao as outras? Me explica q eu faço.
info
Grupo: Campones
Registrado: 07/06/08
Posts: 12
Reputação: 0
Char no Tibia: Drax Zaciust

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
info
Grupo: Campones
Registrado: 13/01/12
Posts: 31
Reputação: +6
Char no Tibia: Lost Woods

Killua, poderia editar o script para funcionar na distro 10.37 que é 1.0, um pouco mais antiga.
info
Grupo: Campones
Registrado: 14/06/13
Posts: 11
Reputação: 0
Gênero: Masculino
Char no Tibia: [ADM] Mayk on BaiakME

Citar
poderia fazer a 2 warzone é 3 warzone é se não for pedir muito poderia fazer as recompensas ?
Editado Maio 20 por ricardok10






info
Grupo: Conde
Registrado: 29/04/09
Posts: 904
Reputação: +389
Char no Tibia: Jabuti Selvagem
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 endE em data/actions/actions.xml adicione essa tag:
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 endE, em data/movements/movements.xml adicione essa tag:
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 por Killua