Para usar essa função para sumonar NPC, eu uso que função no lugar de "doSummonCreature"?
- Forums
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- [Mod] Automatic Raids [Dia E Hora Marcada]
[Mod] Automatic Raids [Dia E Hora Marcada]
By Vodkart, 29 de mai. de 2012 in Mods, funções e outros
info
Group: Artesão
Joined: 03/12/11
Posts: 137
Reputation: +5
Tibia Character: Surionz

info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

acho que 'doCreateNpc'
info
Group: Artesão
Joined: 03/12/11
Posts: 137
Reputation: +5
Tibia Character: Surionz

Os parâmetros são os mesmos?
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

são, mas n é melhor fazer um script novo não? eu posso fazer de boa, só fazer lá na área de pedidos
tbm tem esse script aqui q achei da otland:
function getDayName()
local days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
return days[os.date("*t")["wday"]]
end
local config =
{
respawnPlaces =
{
["Sunday"] = {x =, y = , z =},
["Monday"] = {x =, y = , z =},
["Tuesday"] = {x =, y = , z =},
["Wednesday"] = {x =, y = , z =},
["Thursday"] = {x =, y = , z =},
["Friday"] = {x =, y = , z =},
["Saturday"] = {x =, y = , z =}
},
npcName = "Rashid"
}
function onTimer()
doRemoveCreature(getCreatureByName(config.npcName) )
doCreateNpc(config.npcName, config.respawnPlaces[getDayName()])
return true
end
info
Group: Artesão
Joined: 03/12/11
Posts: 137
Reputation: +5
Tibia Character: Surionz

@Vodkart,
sim, eu tenho esses script ai, só que esse script gera um NPC a cada vez que você abre o OT, então o rashid continuaria no mesmo local até o Ot ser reiniciado.
já aquele script de cima deleta os monstros depois de um certo tempo e gera outro, sem a necessidade de reiniciar.
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

@up
function onThink(interval, lastExecution)
local days = {
{"Thursday", "19:00", "Rashid", {x = 160, y = 54, z = 7}},
{"Friday", "18:54", "Ludger", {x = 160, y = 54, z = 7}}
}
local RemoveTime = 1 -- em minutos
for i = 1, #days do
if isInArray(days[i][1], os.date("%A")) and isInArray(days[i][2], tostring(os.date("%X")):sub(1, 5)) then
doCreateNpc(days[i][3], days[i][4])
doBroadcastMessage("O Npc "..days[i][3].." apareceu na cidade! ele irá embora em "..RemoveTime .." minuto(s).")
addEvent(doRemoveCreature, RemoveTime*60*1000, getCreatureByName(days[i][3]))
break
end
end
return true
end
configuração:
{"Thursday", "19:00", "Rashid", {x = 160, y = 54, z = 7}}
"DIA", "HORA", "NOME DO NPC", {POS ONDE ELE VAI NASCER}
Edited Julho 27 by Vodkart
info
Group: Artesão
Joined: 03/12/11
Posts: 137
Reputation: +5
Tibia Character: Surionz

@Vodkart, fiz umas modificações nos script ai ficou assim:
function onThink(interval, lastExecution)
local days = {
{"Monday", "00:00", "Rashid", {x = 32206, y = 31155, z = 7}},
{"Tuesday", "00:00", "Rashid", {x = 32302, y = 32834, z = 7}},
{"Wednesday", "00:00", "Rashid", {x = 32579, y = 32753, z = 7}},
{"Thursday", "00:00", "Rashid", {x = 33066, y = 32876, z = 6}},
{"Friday", "00:00", "Rashid", {x = 33227, y = 32481, z = 7}},
{"Saturday", "00:00", "Rashid", {x = 33171, y = 31814, z = 6}},
{"Sunday", "00:00", "Rashid", {x = 32328, y = 31783, z = 6}}
}
local RemoveTime = 1440 -- em minutos
for i = 1, #days do
if isInArray(days[i][1], os.date("%A")) and isInArray(days[i][2], tostring(os.date("%X")):sub(1, 5)) then
doCreateNpc(days[i][3], days[i][4])
addEvent(doRemoveCreature, RemoveTime*60*1000, getCreatureByName(days[i][3]))
break
end
end
return true
end
a tag assim:
<globalevent name="rashid" interval="60" event="script" value="rashid.lua"/>
e da o seguinte erro:
[1:0:59.702] [Error - GlobalEvent Interface] [1:0:59.702] data/globalevents/scripts/rashid.lua:onThink [1:0:59.703] Description: [1:0:59.704] (luaDoCreateNpc) Cannot create npc: Rashid
Edited Julho 28 by Sofft
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

Verifica se a pos e o NPC existem no seu mapa, outra coisa, o horário é sempre o mesmo?
pq dai da pra fazer pelo onTimer()
info
Group: Campones
Joined: 11/12/09
Posts: 37
Reputation: 0
Tibia Character: Eragon De Astera

Cara como eu faço para fazer uma invasão todo dia?E no mesmo horário?
É só colocar varias raids com os dias e as mesmas horas ou tem que variar nas horas?
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

as horas não podem repetir, coloca diferença de 1 minuto
20:00 e 20:01
info
Group: Campones
Joined: 11/12/09
Posts: 37
Reputation: 0
Tibia Character: Eragon De Astera

VLW CARA!!!
Melhor script de raid que achei sem dar nenhum erro!!!E esta funcionando certinho na hora marcada,com 1 minuto de diferença mas isso é o de menos.
REP+
Abrçs e vlw pelo script.
Edited Julho 29 by Juniorrek
info
Group: Artesão
Joined: 03/12/11
Posts: 137
Reputation: +5
Tibia Character: Surionz

@Vodkart,
as pos são validas sim, todas revisadas, e os horarios são os mesmo sim todo dia a meia noite.
![]()
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

@up
tenta assim:
nome do seu script.lua
function onTimer()
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 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" time="00:00" event="script" value="nome do seu script.lua"/>



info
Group: Campones
Joined: 25/01/12
Posts: 12
Reputation: 0
Tibia Character: Freetens
Perfeito! Rep+