Postado Fevereiro 7, 2015 10 anos Autor Em 07/02/2015 em 13:25, joadson disse: Me passa o ID dos itens que ele remove, irei fazer uma adaptação. ID é este 9485 quero que quando ele remova, depois de 30 minutos ou 1 hora, (configuravel) ele crie o item de novo, assim fechando o castle Editado Fevereiro 7, 2015 10 anos por subhe (veja o histórico de edições)
Postado Fevereiro 7, 2015 10 anos Tente assim local timeToCreate = 1 -- minutes local walls = { {9485,{x=417, y=65, z=7, stackpos = 1}}, {9485,{x=417, y=67, z=7, stackpos = 1}} } function removeWalls(item, position) doBroadcastMessage("Somente para jogadores experientes.") addEvent(createWalls, timeToCreate * 100000000) for i = 1, #walls do if getTileItemById(B[i][2], walls[i][1]).uid == 0 then doCreateItem(walls[i][1], 1, walls[i][2]) else doRemoveItem(getThingfromPos(walls[i][2]).uid,1) doSendMagicEffect(walls[i], CONST_ME_MAGIC_RED) end end return TRUE end function createWalls(item, position) for i = 1,table.maxn(walls) do doCreateItem(9485, 1, walls[i]) doSendMagicEffect(walls[i], CONST_ME_MAGIC_GREEN) end return TRUE end function onThink(interval, lastExecution) doBroadcastMessage("Blood castle aberto!.") addEvent(removeWalls, 1000) return TRUE end Te ajudei? Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta" Skype: JoadsonAion
Postado Fevereiro 7, 2015 10 anos Autor Em 07/02/2015 em 15:20, joadson disse: Tente assim local timeToCreate = 1 -- minutes local walls = { {9485,{x=417, y=65, z=7, stackpos = 1}}, {9485,{x=417, y=67, z=7, stackpos = 1}} } function removeWalls(item, position) doBroadcastMessage("Somente para jogadores experientes.") addEvent(createWalls, timeToCreate * 100000000) for i = 1, #walls do if getTileItemById(B[i][2], walls[i][1]).uid == 0 then doCreateItem(walls[i][1], 1, walls[i][2]) else doRemoveItem(getThingfromPos(walls[i][2]).uid,1) doSendMagicEffect(walls[i], CONST_ME_MAGIC_RED) end end return TRUE end function createWalls(item, position) for i = 1,table.maxn(walls) do doCreateItem(9485, 1, walls[i]) doSendMagicEffect(walls[i], CONST_ME_MAGIC_GREEN) end return TRUE end function onThink(interval, lastExecution) doBroadcastMessage("Blood castle aberto!.") addEvent(removeWalls, 1000) return TRUE end irei testar jaja edito uma coisa, esse local timeToCreate = 1 -- minutes eh o tempo que leva pra criar o item novamente neh ? Ediit: está dando erro antes o erro dava, na segunda vez que abria o evento agora está dando na primeira vez que abre Citar [07/02/2015 13:45:57] [Error - GlobalEvent Interface] [07/02/2015 13:45:57] In a timer event called from: [07/02/2015 13:45:57] data/globalevents/scripts/event.lua:onThink [07/02/2015 13:45:57] Description: [07/02/2015 13:45:57] data/globalevents/scripts/event.lua:11: attempt to index global 'B' (a nil value) [07/02/2015 13:45:57] stack traceback: [07/02/2015 13:45:57] data/globalevents/scripts/event.lua:11: in function <data/globalevents/scripts/event.lua:7> Editado Fevereiro 7, 2015 10 anos por subhe (veja o histórico de edições)
Postado Fevereiro 7, 2015 10 anos Errei numa parte. tente assim agora. local timeToCreate = 1 -- minutes local walls = { {9485,{x=417, y=65, z=7, stackpos = 1}}, {9485,{x=417, y=67, z=7, stackpos = 1}} } function removeWalls(item, position) doBroadcastMessage("Somente para jogadores experientes.") addEvent(createWalls, timeToCreate * 100000000) for i = 1, #walls do if getTileItemById(walls[i][2], walls[i][1]).uid == 0 then doCreateItem(walls[i][1], 1, walls[i][2]) else doRemoveItem(getThingfromPos(walls[i][2]).uid,1) doSendMagicEffect(walls[i], CONST_ME_MAGIC_RED) end end return TRUE end function createWalls(item, position) for i = 1,table.maxn(walls) do doCreateItem(9485, 1, walls[i]) doSendMagicEffect(walls[i], CONST_ME_MAGIC_GREEN) end return TRUE end function onThink(interval, lastExecution) doBroadcastMessage("Blood castle aberto!.") addEvent(removeWalls, 1000) return TRUE end Te ajudei? Se você achar que eu mereço, me dê uma "rep+" e selecione meu post como "melhor resposta" Skype: JoadsonAion
Postado Fevereiro 7, 2015 10 anos Autor Em 07/02/2015 em 15:56, joadson disse: Errei numa parte. tente assim agora. local timeToCreate = 1 -- minutes local walls = { {9485,{x=417, y=65, z=7, stackpos = 1}}, {9485,{x=417, y=67, z=7, stackpos = 1}} } function removeWalls(item, position) doBroadcastMessage("Somente para jogadores experientes.") addEvent(createWalls, timeToCreate * 100000000) for i = 1, #walls do if getTileItemById(walls[i][2], walls[i][1]).uid == 0 then doCreateItem(walls[i][1], 1, walls[i][2]) else doRemoveItem(getThingfromPos(walls[i][2]).uid,1) doSendMagicEffect(walls[i], CONST_ME_MAGIC_RED) end end return TRUE end function createWalls(item, position) for i = 1,table.maxn(walls) do doCreateItem(9485, 1, walls[i]) doSendMagicEffect(walls[i], CONST_ME_MAGIC_GREEN) end return TRUE end function onThink(interval, lastExecution) doBroadcastMessage("Blood castle aberto!.") addEvent(removeWalls, 1000) return TRUE end O erro parou, só tem um problema agora botei pro evento começar de 5 em 5 minutos pra testar entao, o que acontece é que o evento abre quando passa 5 minutos mais ele nao fecha... ai quando passa mais 5 minutos, aparece que o evento abriu de novo, (por causa da minha configuração) ai ele fecha no caso... toda vez que o evento anucia, ele faz uma coisa primeira vez, ele abre, já na segunda vez, ele fecha ele deveria funcionar na seguinte forma ele abrir, dps de alguns minutos, ele fechar ai quando o evento começar de novo, ele abrir de novo e dps fechar, e assim vai....
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.