Ir para conteúdo

[Mod] Automatic Raids [Dia E Hora Marcada]


Vodkart

Posts Recomendados

eita TFS 0.4 sempre fudendo meu cuzinho

 

tenta assim então

 

 

nome do seu script.lua

function onThink(interval, lastExecution)

local days = {
["Friday"] = {npc = "Rashid", pos = {x = 160, y = 54, z = 7}},
["Saturday"] = {npc = "Rashid", pos = {x = 165, y = 54, z = 7}},
["Sunday"] = {npc = "Rashid", pos = {x = 150, y = 56, z = 7}},
["Monday"] = {npc = "Rashid", pos = {x = 160, y = 54, z = 7}}
}

local RemoveTime = 1 -- em minutos
local t = days[os.date("%A")]

if tostring(os.date("%X")):sub(1, 5) == "00:00" and t then
doCreateNpc(t.npc, t.pos)
doBroadcastMessage("O Npc "..t.npc.." apareceu na cidade! ele irá embora em "..RemoveTime .." minuto(s).")
addEvent(doRemoveCreature, RemoveTime*60*1000, getCreatureByName(t.npc))
end
return true
end

 

globalevents.xml

 

<globalevent name="CityNpc" interval="60" event="script" value="nome do seu script.lua"/>

Link para o comentário
Compartilhar em outros sites

desculpe Vodkart não é function onTime(), e sim Event onTime not found,

 

e aproveitando, na sua opnião, qual melhor distro?

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

hm é pq no teu server assim como nos demais 9.1+, retiraram a função onTimer()

 

enfim, acho que o melhor server é o TFS mesmo, só que eu não tenho ele aqui para dar uma olhada e ver as funções que são diferentes '-'

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

  • 3 weeks later...
  • 1 month later...

teria como fazer um update para mandar as msgs de invasao?

 

ex:

 

message="The seals on Ferumbras old cidatel are glowing. Prepare for HIS return mortals." />

message="Ferumbras return is at hand. The Edron Academy calls for Heroes to fight that evil." />

message="Ferumbras has returned to his citadel once more. Stop him before its too late." />

Link para o comentário
Compartilhar em outros sites

teria como fazer um update para mandar as msgs de invasao?

 

ex:

 

message="The seals on Ferumbras old cidatel are glowing. Prepare for HIS return mortals." />

message="Ferumbras return is at hand. The Edron Academy calls for Heroes to fight that evil." />

message="Ferumbras has returned to his citadel once more. Stop him before its too late." />

 

mas cada tipo invasão teria uma mensagem?

e seria enviado varias mensagens ou somente uma?

Link para o comentário
Compartilhar em outros sites

eu digo pra ficar mais completo q nem o da pasta raids, ter um announce delay entre as msg e assim dar o respaw

 

no caso 19:00hrs começa message= "The seals on Ferumbras old cidatel are glowing. Prepare for HIS return mortals." 5min depois message="Ferumbras return is at hand. The Edron Academy calls for Heroes to fight that evil." 5min message="Ferumbras has returned to his citadel once more. Stop him before its too late." AI RESPAW

 

 

e ai é possivel? queria usar o seu mod, muito mais simples de editar :p

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

  • 4 months later...

@Vodkart, aqui no meu OT,9.60, em vez o script sumonar somente 1 mostro, ele sumonou 5. E tambem, a mensagem falando que o evento começou não sai da tela. Tem como arrumar ? Obrigado

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

  • 3 months later...
  • 1 month later...

Estou com o seguinte erro:

 

[Error - LuaInterface::loadFile] data/globalevents/scripts/boss.lua:1: unexpected symbol near '<'
[Warning - Event::loadScript] Cannot load script (data/globalevents/scripts/boss.lua)
Creio que o erro esteja na primeira linha.. onde está o "<", tentei deleta-lo. mas ai o error passa pra linha 2.. e assim por diante..
Qual o motivo deste error ?
Script \/
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="xtibia.com" enabled="yes">
<config name="raids_func"><![CDATA[
days = {
["Monday"] = {
["22:10"] = {nome = "Ghazbaran", pos = {fromPosition = {x=203, y=281, z=12},toPosition = {x=203, y=580, z=12}},m = {"1 Deathslicer", "1 Deathslicer"}, Time = 15},
["21:33"] = {nome = "Ferumbras", pos = {fromPosition = {x=143, y=479, z=10},toPosition = {x=143, y=475, z=10}},m = {"2 Fire elemental"}, 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 .. " is 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
Editado por ewertonsilva157
Link para o comentário
Compartilhar em outros sites

Vodkart, os monstros não estão sumindo...

 

testei aqui no 8.6 e funfo, qual erro e versão do servidor?

 

@

ewertonsilva157

 

Esse código não é em LUA, é um código em XML que deve ser colocado na pasta MODS

Link para o comentário
Compartilhar em outros sites

Vodkart..

 

Consegui colocar na pasta certa.. é que tipo, não sou experiente nisso tudo.. sou apenas um maper sem preguiça de aprender mais..

 

Mas o problema é que na maioria dos seus tutoriais não vem explicando onde por tal script...

 

Um exemplo é este.. o outro é o de task que você fez e eu não entendi muito bem onde por cada script..

 

Mas é isso ai, nesse aqui você me ajudou.. Muito OBRIGADOOOO !

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

  • 2 weeks later...

Esta com um Probleminha, o monstro esta sendo criado sem parar!

Sendo que coloquei para ser Removido em 1 minuto, então nem removeu xP

 

Uso TFS 0.3

 

Script:

<?xml version="1.0" encoding="UTF-8"?>  
<mod name="Automatic Raids" version="1.0" author="Vodkart And xotservx" contact="xtibia.com" enabled="no">  
<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},
["14:08"] = {nome = "Demon", pos = {fromPosition = {x=33096, y=32656, z=6},toPosition = {x=33096, y=32656, z=6}}, m = {"1 Demon"}, Time = 1}
}
}
]]></config> 
<globalevent name="AutomaticRaids" interval="6000" 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>

 

Att,

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

×
×
  • Criar Novo...