Para usar essa função para sumonar NPC, eu uso que função no lugar de "doSummonCreature"?
- Fórum
- OTServ
- Recursos
- Scripting
- Mods, funções e outros
- [Mod] Automatic Raids [Dia E Hora Marcada]
[Mod] Automatic Raids [Dia E Hora Marcada]
Por Vodkart, 29 de mai. de 2012 em Mods, funções e outros
info
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: Surionz

info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

acho que 'doCreateNpc'
info
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: Surionz

Os parâmetros são os mesmos?
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: 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
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: 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
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: 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}
Editado Julho 27 por Vodkart
info
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: 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
Editado Julho 28 por Sofft
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: 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
Grupo: Campones
Registrado: 11/12/09
Posts: 37
Reputação: 0
Char no Tibia: 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
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

as horas não podem repetir, coloca diferença de 1 minuto
20:00 e 20:01
info
Grupo: Campones
Registrado: 11/12/09
Posts: 37
Reputação: 0
Char no Tibia: 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.
Editado Julho 29 por Juniorrek
info
Grupo: Artesão
Registrado: 03/12/11
Posts: 137
Reputação: +5
Char no Tibia: Surionz

@Vodkart,
as pos são validas sim, todas revisadas, e os horarios são os mesmo sim todo dia a meia noite.
![]()
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: 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
Grupo: Campones
Registrado: 25/01/12
Posts: 12
Reputação: 0
Char no Tibia: Freetens
Perfeito! Rep+