• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Read It, Please!

MrLipzZz

HTML 'haha
Joined
Nov 27, 2008
Messages
171
Reaction score
0
Location
Brazil
My server runs fine, i have an Global Event, that run every one our.
with NO PROBLEM, but, after 15 hours Server online
i Got it..

[26/06/2010 08:46:11] [Error - GlobalEvent Interface]
[26/06/2010 08:46:11] In a timer event called from:
[26/06/2010 08:46:11] data/globalevents/scripts/incendio.lua:eek:nThink
[26/06/2010 08:46:11] Description:
[26/06/2010 08:46:11] data/globalevents/scripts/incendio.lua:115: bad argument #2 to 'random' (interval is empty)
[26/06/2010 08:46:11] stack traceback:
[26/06/2010 08:46:11] [C]: in function 'random'
[26/06/2010 08:46:11] data/globalevents/scripts/incendio.lua:115: in function <data/globalevents/scripts/incendio.lua:108>

When i restart the server, runs fine again ..
omg!
 
-- Incêndio script by Pivigu - Pivigu World OTServ, em breve!

function onThink(interval, lastExecution)

-- Configuração
local fromArea = {x = 168, y = 735, z = 7} -- Área que o incêndio vai acontecer.
local toArea = {x = 200, y = 772, z = 7} -- Área que o incêndio vai acontecer.
local chanceRaid = 30 -- Chance do incêndio acontecer, em porcentagem.
local intervaloExe = 60 -- Intervalo de execução, em minutos. No exemplo 60*12, ela só poderá ocorrer 7 dias após a última execucao.

-- Monstros
local bossName = "The Incendier" -- Nome do Boss a ser sumonado.
local monsterMinions = {"Fire Elemental", "Fire Devil"} -- Monstros que também serão sumonados.
local monsterAmount = 28 -- Quantidade de monstros a serem sumonados (Múltiplos de 4, de preferência).
local florestaName = "Nargor" -- Nome da floresta ou da cidade onde a floresta se localiza.

-- M = Mensagem, T = Tempo em segundos
local BroadCast1M = ("A temperatura está muito quente na floresta de " .. florestaName .. ".")
local BroadCast1T = 1
local BroadCast2M = ("Um incêndio está começando em " .. florestaName .. "!")
local BroadCast2T = 3
local BroadCast3M = ("Parece que um monstro muito quente está botando fogo em tudo o que vê!")
local BroadCast3T = 6
local BroadCast4M = (bossName .. " foi visto em " .. florestaName .. ". Não se aproxime da floresta. Tudo está pegando fogo!")
local BroadCast4T = 9

-- Incêndio
local idArvoresG = {2700, 2708, 2701, 2702, 2707} -- ID de árvores grandes para FireWall.
local idArvoresP = {2767, 2703, 2768} -- ID de árvores pequenas para FireField. (2703 considerada pequena)
local FFID = {1487,1488,1489} -- ID dos Fire Fields.
local FWID = {5063} -- ID dos FireWalls.

local fogoNoChao = TRUE -- Adicionar fogo no chão? TRUE = Verdadeiro, FALSE = Falso
local terraID = {103} -- ID dos chãos a pegar fogo

for iid = 4526, 4541 do -- Adicionando as gramas ao terraID
terraID[table.maxn(terraID) + 1] = iid
end

local chanceFogo = 65 -- Chance de pegar fogo.
-- Fim de Configuracao

-- Verificar Erros
if math.random(1, 100) > chanceRaid then
return TRUE
end

if os.time(t) - getGlobalStorageValue(5001) < intervaloExe*60 then
-- debugPrint("doIncendio: Execução cancelada pelo intervalo de execuções.")
return TRUE
end

if toArea.x <= fromArea.x or toArea.y <= fromArea.y or toArea.z < fromArea.z then
debugPrint("doIncendio: Erro na Area.")
return FALSE
end

if BroadCast4T <= BroadCast3T or BroadCast3T <= BroadCast2T or BroadCast2T <= BroadCast1T then
debugPrint("doIncendio: Erro no tempo dos Broadcasts.")
return FALSE
end

if chanceFogo < 1 then
chanceFogo = 0
end

local summonArea = 0
local allArea = {}
local getChao = 0
local getItem = 0

for xx = fromArea.x, toArea.x do
for yy = fromArea.y, toArea.y do
for zz = fromArea.z, toArea.z do

getChao = getThingFromPos({x = xx, y = yy, z = zz, stackpos = STACKPOS_GROUND})
getItem = getThingFromPos({x = xx, y = yy, z = zz, stackpos = 1})
for ch = 1, table.maxn(terraID) do
if terraID[ch] == getChao.itemid and (getItem.itemid == 0 or getItem.itemid == 6216 or getItem.itemid == 6217 or getItem.itemid == 6218 or getItem.itemid == 6219) then
allArea[table.maxn(allArea) + 1] = {x = xx, y = yy, z = zz}
end
end

end
end
end


-- Fim de verificar erros

-- Adicionando eventos
addEvent(BroadCast, BroadCast1T*1000, BroadCast1M, monsterAmount, monsterMinions, allArea)
addEvent(BroadCast, BroadCast2T*1000, BroadCast2M, monsterAmount, monsterMinions, allArea)
addEvent(BroadCast, BroadCast3T*1000, BroadCast3M, monsterAmount, monsterMinions, allArea)
addEvent(BroadCastBoss, BroadCast4T*1000, BroadCast4M, monsterAmount, monsterMinions, bossName, allArea)

addEvent(doIncendio, BroadCast4T*1002, fromArea, toArea, idArvoresG, idArvoresP, fogoNoChao, chanceFogo, FFID, FWID, terraID)
-- Fim de Adicionando eventos
-- debugPrint("doIncendio: Incendio iniciado.")

setGlobalStorageValue(5001, lastExecution)
return TRUE
end




function BroadCast(BroadCastM, Amount, Monsters, allArea)
doBroadcastMessage(BroadCastM,22)
local summonPos = {x = 0, y = 0, z = 0}
local monsterName = 0

for i = 1, Amount / 4 do
monsterName = Monsters[math.random(1, table.maxn(Monsters))]
summonPos = allArea[math.random(1, table.maxn(allArea))]
doSummonCreature(monsterName, summonPos)
end

return TRUE
end

function BroadCastBoss(BroadCastM, Amount, Monsters, BossName, allArea)
doBroadcastMessage(BroadCastM,22)
local summonPos = {x = 0, y = 0, z = 0}
local monsterName = 0

for i = 1, Amount / 4 do
monsterName = Monsters[math.random(1, table.maxn(Monsters))]
summonPos = allArea[math.random(1, table.maxn(allArea))]
doSummonCreature(monsterName, summonPos)
end

monsterName = Monsters[math.random(1, table.maxn(Monsters))]
summonPos = allArea[math.random(1, table.maxn(allArea))]
doSummonCreature(BossName, summonPos)


return TRUE
end


-- Incendios
function doIncendio(fromArea, toArea, agID, apID, FChao, Chance, FireFieldID, FireWallsID, chaoLib)
local arvoreID = 0
local posNow = {x = 0, y = 0, z = 0}
local randomFF = math.random(1, table.maxn(FireFieldID))
local chaoID = 0

for t = fromArea.z, toArea.z do -- Área
for n = fromArea.y, toArea.y do
for i = fromArea.x, toArea.x do
posNow = {x = i, y = n, z = t}


for ar = 1, table.maxn(apID) do -- Nas árvores pequenas FF
arvoreID = getThingFromPos({x = i, y = n, z = t, stackpos = 1})
if arvoreID.itemid == apID[ar] then
if Chance >= math.random(1,100) then
randomFF = math.random(1, table.maxn(FireFieldID))
doCreateItem(FireFieldID[randomFF], 1, posNow)
end
end
end

for ar = 1, table.maxn(agID) do -- Nas árvores grandes FireWall
arvoreID = getThingFromPos({x = i, y = n, z = t, stackpos = 1})
if arvoreID.itemid == agID[ar] then
if Chance / 4 >= math.random(1,100) then
randomFF = math.random(1, table.maxn(FireFieldID))
doCreateItem(FireFieldID[randomFF], 1, posNow)
end

if Chance >= math.random(1,100) then
posNow = {x = i, y = n, z = t}
randomFF = math.random(1, table.maxn(FireWallsID))
doCreateItem(FireWallsID[randomFF], 1, posNow)
end
end
end

if FChao == TRUE then -- FF no Chão
arvoreID = getThingFromPos({x = i, y = n, z = t, stackpos = 1})
chaoID = getThingFromPos({x = i, y = n, z = t, stackpos = STACKPOS_GROUND})

if arvoreID.itemid == 0 then
if Chance >= math.random(1,100) then
for ch = 1, table.maxn(chaoLib) do
if chaoID.itemid == chaoLib[ch] then
posNow = {x = i, y = n, z = t}
randomFF = math.random(1, table.maxn(FireFieldID))
doCreateItem(FireFieldID[randomFF], 1, posNow)
end
end
end
end
end


end -- Área
end
end

return TRUE
end

Repeating, this error only occours when server are 5 hours + Online!
 
Back
Top