renator 2 Postado Agosto 8, 2011 Share Postado Agosto 8, 2011 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 More sharing options...
Antharaz 93 Postado Agosto 8, 2011 Share Postado Agosto 8, 2011 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 More sharing options...
Demonbholder 420 Postado Agosto 8, 2011 Share Postado Agosto 8, 2011 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 More sharing options...
Antharaz 93 Postado Agosto 8, 2011 Share Postado Agosto 8, 2011 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 Link para o comentário Compartilhar em outros sites More sharing options...
renator 2 Postado Agosto 11, 2011 Autor Share Postado Agosto 11, 2011 Obrigado pela respostas pessoal :>) []'s Renato Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados