Ir para conteúdo

Comportamento Estranho Do Parametro Time


renator

Posts Recomendados

Ola galera!!!

 

Estou usando um script aqui mesmo do xtibia que tem a finalidade de fazer com que um teleport seja iniciado de tempo em tempos e dure X minutos aberto. O que acontece, é que eu tenho a linha "local time" que deveria ser para dizer quantos segundos o TP ficará aberto. Mas quando eu configuro algo tipo "local time = 420" o teleport fica aberto apenas uns 50 segundos e não 7 minutos. Sou eu que estou fazendo errado ou tem algum problema no script ? Ja tentei colocar "local time = 5" mas dae o script fica aberto apenas 5 segundos. Haa, outro "erro" que acontece quando o script é executado é q retorna o erro :

 

[08/08/2011 08:57:41] > Broadcasted message: "O portal para o evento foi aberto e se fexará em 5 minutos.".

[08/08/2011 08:57:41] [Error - GlobalEvents::think] Couldn't execute event: teleport

 

Mas mesmo assim o portal abre e fecha numa boa.

 

 

Abaixo estou colocando o script completo e a linha do globalevents.xml. Se alguém puder me ajudar eu agradeceria.

 

data\globalevents\globalevents.xml

<globalevent name="teleport" interval="3600" event="script" value="teleport.lua"/

 

 

data\globalevents\scripts\teleport.lua

 

local position = {x=101, y=54, z=7}

function onThink(interval, lastExecution, thinkInterval)

--cada 200 segundos eh igual a 10 segundos do teleport aberto

local time = 400

doCreateTeleport(1387, {x=103, y=59, z=7}, position)

doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")

addEvent(deleteTp, time*60)

addEvent(doBroadcastMessage, time*100*60, "O portal do evento foi fexado. Próximo evento em 2 horas.")

end

function deleteTp()

local delete = getTileItemById(position, 1387)

doRemoveItem(delete.uid, 1)

doSendMagicEffect(position, CONST_ME_TELEPORT)

en

 

[]'s

Renato

Link para o comentário
Compartilhar em outros sites

tenta assim:

 

local position = {x=101, y=54, z=7}
function onThink(interval, lastExecution, thinkInterval)
local time = 5
doCreateTeleport(1387, {x=103, y=59, z=7}, position)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(deleteTp, time*60000)
addEvent(doBroadcastMessage, time*60000, "O portal do evento foi fexado. Próximo evento em 2 horas.")
end
function deleteTp()
local delete = getTileItemById(position, 1387)
doRemoveItem(delete.uid, 1)
doSendMagicEffect(position, CONST_ME_TELEPORT)
end

 

Próxima vez bota identação e posta na área de dúvidas, senão não ajudo.

Link para o comentário
Compartilhar em outros sites

Na verdade, o correto seria:

 

local position = {x=101, y=54, z=7}
function onThink(interval, lastExecution, thinkInterval)
local time = 300
doCreateTeleport(1387, {x=103, y=59, z=7}, position)
doBroadcastMessage("O portal para o evento foi aberto e se fexará em 5 minutos.")
addEvent(deleteTp, time*1000)
addEvent(doBroadcastMessage, time*1000, "O portal do evento foi fexado. Próximo evento em 2 horas.")
return TRUE
end
function deleteTp()
local delete = getTileItemById(position, 1387)
doRemoveItem(delete.uid, 1)
doSendMagicEffect(position, CONST_ME_TELEPORT)
end

 

Ai você configura o tempo em segundos, não em minutos como no script acima. Use o return TRUE para não acontecer o erro no distro.

 

Movido.

Link para o comentário
Compartilhar em outros sites

sim sim... me esqueci do erro no console... só acrescentar o return true antes do end da function onthink() lá no que eu postei xD

 

Sou mais quando eu faço os scripts do zero do que quando arrumo D:

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...