Postado Março 14, 2018 7 anos Solução Opa, vou dá uma olhada, daqui a pouco edito aqui. Edit1: @Yamborghini Testado e funcionando: Em data/globalevents/scripts/criaPorta.lua function onTime() local day = {"Tuesday", "Thursday","Saturday", "Wednesday"} -- em ingles / ADICIONEI Wednesday para teste, porque hoje é quarta-feira, caso n queira, só remover local itemid = 3456 -- item que sera criado local pos = {x=94, y=126, z=7, stackpos= 1} -- pos onde será criado local min = 1 -- minutos de duração do evento local newitem = 2768 -- Id do novo item if isInArray(day, os.date("%A")) then if (getTileItemById(pos, newitem).uid > 0) then doRemoveItem(getTileThingByPos(pos).uid, newitem) end addEvent(doCreateItem, 100, itemid, 1, pos) doBroadcastMessage("O evento abriu", 25) addEvent(function() doRemoveItem(getTileThingByPos(pos).uid, itemid) doBroadcastMessage("O evento encerrou", 25) doCreateItem(newitem,1,pos) end, min * 60 * 1000) end return true end Em data/globalevents/globalevents.xml <globalevent name="CriaPorta" time="13:29" event="script" value="criaPorta.lua"/> Repare que tem time="13:29", isso é o horário que irá funcionar o evento. OBS.: Se quiser que ele rode em DETERMINADOS INTERVALOS, como por exemplo, de 30 em 30 min, precisa ser feito algumas outras modificações. Vai no globalevents.xml, deixe: <globalevent name="criaPorta" interval="1800000" event="script" value="criaPorta.lua"/> E em criaPorta.lua, deixe: function onThink(interval, lastExecution) local day = {"Tuesday", "Thursday","Saturday", "Wednesday"} -- em ingles local itemid = 3456 -- item que sera criado local pos = {x=94, y=126, z=7, stackpos= 1} -- pos onde será criado local min = 1 -- minutos de duração do evento local newitem = 2768 -- Id do novo item if isInArray(day, os.date("%A")) then if (getTileItemById(pos, newitem).uid > 0) then doRemoveItem(getTileThingByPos(pos).uid, newitem) end addEvent(doCreateItem, 1000, itemid, 1, pos) doBroadcastMessage("O evento abriu", 25) addEvent(function() doRemoveItem(getTileThingByPos(pos).uid, itemid) doBroadcastMessage("O evento encerrou", 25) doCreateItem(newitem,1,pos) end, min * 60 * 1000) end return true end Aí funcionará de 30 em 30 min. Valeu! Editado Março 14, 2018 7 anos por lordzetros (veja o histórico de edições) Feliz daquele que ensina o que sabe, e aprende o que ensina.
Postado Março 15, 2018 7 anos Autor 8 horas atrás, lordzetros disse: Opa, vou dá uma olhada, daqui a pouco edito aqui. Edit1: @Yamborghini Testado e funcionando: Em data/globalevents/scripts/criaPorta.lua function onTime() local day = {"Tuesday", "Thursday","Saturday", "Wednesday"} -- em ingles / ADICIONEI Wednesday para teste, porque hoje é quarta-feira, caso n queira, só remover local itemid = 3456 -- item que sera criado local pos = {x=94, y=126, z=7, stackpos= 1} -- pos onde será criado local min = 1 -- minutos de duração do evento local newitem = 2768 -- Id do novo item if isInArray(day, os.date("%A")) then if (getTileItemById(pos, newitem).uid > 0) then doRemoveItem(getTileThingByPos(pos).uid, newitem) end addEvent(doCreateItem, 100, itemid, 1, pos) doBroadcastMessage("O evento abriu", 25) addEvent(function() doRemoveItem(getTileThingByPos(pos).uid, itemid) doBroadcastMessage("O evento encerrou", 25) doCreateItem(newitem,1,pos) end, min * 60 * 1000) end return true end Em data/globalevents/globalevents.xml <globalevent name="CriaPorta" time="13:29" event="script" value="criaPorta.lua"/> Repare que tem time="13:29", isso é o horário que irá funcionar o evento. OBS.: Se quiser que ele rode em DETERMINADOS INTERVALOS, como por exemplo, de 30 em 30 min, precisa ser feito algumas outras modificações. Vai no globalevents.xml, deixe: <globalevent name="criaPorta" interval="1800000" event="script" value="criaPorta.lua"/> E em criaPorta.lua, deixe: function onThink(interval, lastExecution) local day = {"Tuesday", "Thursday","Saturday", "Wednesday"} -- em ingles local itemid = 3456 -- item que sera criado local pos = {x=94, y=126, z=7, stackpos= 1} -- pos onde será criado local min = 1 -- minutos de duração do evento local newitem = 2768 -- Id do novo item if isInArray(day, os.date("%A")) then if (getTileItemById(pos, newitem).uid > 0) then doRemoveItem(getTileThingByPos(pos).uid, newitem) end addEvent(doCreateItem, 1000, itemid, 1, pos) doBroadcastMessage("O evento abriu", 25) addEvent(function() doRemoveItem(getTileThingByPos(pos).uid, itemid) doBroadcastMessage("O evento encerrou", 25) doCreateItem(newitem,1,pos) end, min * 60 * 1000) end return true end Aí funcionará de 30 em 30 min. Valeu! mais uma vez, perfeito! nenhum erro... Obrigado!!
Postado Março 15, 2018 7 anos @Yamborghini Show de bola, valeu! Feliz daquele que ensina o que sabe, e aprende o que ensina.
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.