Ir para conteúdo

Ajuda com raid!


VitinhoMapp

Posts Recomendados

Tenho uma raid aqui que eu peguei de um outro fórum, quero que nasça um monstro a cada 2 horas (7200 segundos). Não ficou claro pra mim quando que o monstro vai nascer nesse script, deem uma olhada:

<?xml version="1.0" encoding="UTF-8"?>
<raid>

<announce delay="0" type="warning" message="Dark evil is coming our way..." />
<announce delay="10000" type="event" message="Morgaroth has stepped out of the shadows in town!" />

<singlespawn delay="11000" name="Oceanus" x="501" y="831" z="7" />



</raid>

E no arquivo raids.xml:

<raid name="Oceanus Raid" file="oceanus.xml" interval2="30" margin="1000" enabled="yes"/>

Eu não tinha nenhuma raid no meu ot, tive que copiar esse raids.xml de um global que eu tenho aqui

Bom, era isso se puderem dar uma força :D

Editado por VitinhoMapp
Link para o comentário
Compartilhar em outros sites

crie um lua na pasta mods do servidor e coloca isso

<?xml version="1.0" encoding="UTF-8"?>  
<mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="tibiaking.com" enabled="yes">  
<config name="raids_func"><![CDATA[
days = {
["Monday"] = {
["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 15},
["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 20}
},
["Sunday"] = {
["10:08"] = {nome = "Demon", pos = {fromPosition = {x=202, y=11, z=7},toPosition = {x=204, y=12, z=7}}, m = {"1 Demon"}, Time = 15},
["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 20}
}
}
]]></config>    
<globalevent name="AutomaticRaids" interval="60" event="script"><![CDATA[
domodlib('raids_func')
function onThink(interval, lastExecution)  
if days[os.date("%A")] then
hours = tostring(os.date("%X")):sub(1, 5)       
tb = days[os.date("%A")][hours] 
if tb then        
function removeCreature(tb)
for x = ((tb.pos.fromPosition.x)-10), ((tb.pos.toPosition.x)+10) do
for y = ((tb.pos.fromPosition.y)-10), ((tb.pos.toPosition.y)+10) do
local m = getTopCreature({x=x, y=y, z= tb.pos.fromPosition.z}).uid
if m ~= 0 and isMonster(m) then
doRemoveCreature(m)
end
end
end
end
doBroadcastMessage("The invasion of " .. tb.nome .. " started")
for _,x in pairs(tb.m) do
for s = 1, tonumber(x:match("%d+")) do
pos = {x = math.random(tb.pos.fromPosition.x, tb.pos.toPosition.x), y = math.random(tb.pos.fromPosition.y, tb.pos.toPosition.y), z = tb.pos.fromPosition.z}
doSummonCreature(x:match("%s(.+)"), pos)
end
end
addEvent(removeCreature, tb.Time*60*1000, tb)
end
end
return true
end
]]></globalevent>
</mod>

Configuração:

days = {
["Monday"] = {
["21:30"] = {nome = "Orshabaal", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}},m = {"5 Fire Devil", "2 Orshabaal"}, Time = 1},
["21:33"] = {nome = "Dragon", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}},m = {"100 Dragon"}, Time = 2}
},
["Tuesday"] = {
["10:44"] = {nome = "Demon", pos = {fromPosition = {x=184, y=55, z=7},toPosition = {x=188, y=58, z=7}}, m = {"5 Demon", "8 Fire Devil"}, Time = 1},
["10:46"] = {nome = "Hydra", pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}, m = {"7 Hydra", "4 Cyclops"}, Time = 2}
}
}
["DIA"] = {
["HORA DA INVASÃO"] = {nome = "NOME DA INVASÃO", pos = {começo e final da área}, monster = {"MONSTROS"}, Time = para remover os monstro}
}

O dia da invasão é colocada entre " " e somente dia em inglês e a primeira letra maiúscula, exemplo:
"Saturday"

Depois são as hora da invasão, que é colocada entre " " e somente a hora e minuto, segundos não precisa exemplo:
"15:00"

As Posições estão entre { } adicionando as posições x, y e z, é o começo e final da área exemplo:

pos = {fromPosition = {x=197, y=57, z=7},toPosition = {x=203, y=60, z=7}}
fromPosition -- começo da área onde vai acontecer a raid
toPosition -- final da área onde vai acontecer a raid

Os monters tem um modo especial de configurar, vc coloca entre { }, e cada monstro entre " ", e entre as " " vc adiciona "QUANTIDADE MONSTRO", e para adicionar mais tipos de monstro se separa por virgulas, exemplo:
{"40 Water Elemental", "5 Cyclops"}
Time é uma função extra, é para caso ninguém participe do evento os monstros não fiquem pelo mapa, e é em minutos, exemplo:

Time = 15

 

 

 

 

 

Creditos ao Vodkart

original topic

http://www.tibiaking.com/forum/topic/13540-mod-automatic-raids-dia-e-hora-marcada/

Link para o comentário
Compartilhar em outros sites

** Foi mal, não vi o post do Valakas ...

 

 

Temos em data\raids o arquivo Ferumbras.xml

<?xml version="1.0" encoding="utf-8"?>
<raid>

  <!--Announcements-->
  <announce delay="1000" type="Event" message="The seals on Ferumbras old cidatel are glowing. Prepare for HIS return mortals." />
  <announce delay="50000" type="Event" message="Ferumbras return is at hand. The Academy Tower calls for Heroes to fight that evil." />
  <announce delay="60000" type="Event" message="Ferumbras has returned to his citadel once more. Stop him before its too late." />
  
  <!--Single Spawns-->
  <singlespawn delay="60000" name="Ferumbras" x="9999" y="9999" z="99" />
</raid>

Temos em data\raids o arquivo raids.xml com a linha a seguir no documento...

<raid name="Ferumbras" file="Ferumbras.xml" interval2="30" margin="1000" enabled="yes"/>

// Com os dois acima, você pode realizar MANUALMENTE, dar um /raid Ferumbras no ADMIN...

// Mas...

 

Temos em data\globalevents\scripts o arquivo raid.lua com o seguinte codigo...

 

 

local raids =
{
[1] =
{
name = 'Ferumbras',
type = 'weekly',
days = {'monday'},
hour = 15,
minu = 00
},
[2] =
{
name = 'The Horned Fox',
type = 'weekly',
days = {'tuesday'},
hour = 16,
minu = 00
},
}
local last_execsutes = {}
function onThink(interval, lastExecution, thinkInterval)
local static_time = os.time()
for k, raid in ipairs(raids) do
if (raid.type == 'weekly') then
local day = os.date("%A", static_time):lower()
if isInArray(raid.days, day) then
local hour = tonumber(os.date("%H", static_time))
if (raid.hour == hour) then
local minute = tonumber(os.date("%M", static_time))
if (raid.minu == minute) then
local day_number = tonumber(os.date("%d", static_time))
if (last_execsutes[k] ~= day_number) then
last_execsutes[k] = day_number
doExecuteRaid(raid.name)
end
end
end
end
elseif (raid.type == 'exact') then
local month = tonumber(os.date("%m", static_time))
if (raid.date.month == month) then
local day = tonumber(os.date("%d", static_time))
if (raid.date.day == day) then
local hour = tonumber(os.date("%H", static_time))
if (raid.hour == hour) then
local minute = tonumber(os.date("%M", static_time))
if (raid.minu == minute) then
if (last_execsutes[k] ~= day) then
last_execsutes[k] = day
doExecuteRaid(raid.name)
end
end
end
end
end
end
end
return true
end

 

 

 

E em globalevents.xml esta linha:

<globalevent name="raids" interval="15000" event="script" value="raid.lua"/>

Isso é o ideal para fazer raids em tempos determinados...

Ou então você pode setar no map editor 3600 segs = 1 hora.

 

2qbuha9.png

 

Tentei ajudar mano, flw.

Editado por Helflin
Link para o comentário
Compartilhar em outros sites

vlw pessoal, só esqueci de mencionar uma coisa ali, desculpa pois isso faz toda a diferença kkkk, eu fiz um sistema de globalevent uma invasão, mas acontecia o seguinte: a invasão ocorria, e se ninguém matasse os monstros nasciam de novo dai enxia então eu gostaria que se em 10 minutos ninguém matasse.

 

@edit

eu vo tenetar usar o valakas, agora to sem tempo quando eu puder eu comento aqui de volta

 

@edit2

bom aqui deu o seguinte erro nesse sistema que o valakas mandou:

8AiojgE.png

 

oque pode ser???


@up

 

Editado por VitinhoMapp
Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

O tópico foi fechado e movido para lixeira por estar inativo a mais de 10 dias. Caso seja preciso reabrir o mesmo, favor entrar em contato com a equipe.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...