Olhando o tópico agora eu entendi, e era o que eu imaginei, precisa somente do onStepIn, e não do onStepOut como você colocou no seu. E você também não copiou o código completo, faltou pegar o começo do arquivo onde contém a função principal onStepIn(cid, item, position, fromPosition).
A questão é, o tile que você vai usar para isso, é exclusivamente só para isso ou você vai usar um tile que já usa em outra parte do mapa? Porque se for usar um tile que já está em uso no mapa, aí vai ter que trabalhar com uniqueid, porque se trabalhar com itemid, toda vez que alguém pisar nesse tile, independente da coordenada no mapa, vai cair na trap. Mas por via das dúvidas, vamos trabalhar com uniqueid.
Primeiramente vai no Remere's Map Editor, e procura esse local onde vão ficar as traps no tile, e adicione o seguinte uniqueid para todos os tiles: 19737 (certifique-se de que esse uniqueid já não está sendo usado, se tiver, coloca outro valor).
Agora, vai em Data/Movements/Scripts e crie o arquivo tile_trap.lua (ou outro nome de sua preferência) e adicione o seguinte código dentro:
local storage = 14678 -- n mexa
local time_summon = 1 -- tempo em minutos
local seconds_remove = 30 -- TEMPO EM SEGUNDOS PARA REMOVER O MONSTRO
local monsters = {
{"cyclops", Position(157, 35, 7)},
{"Demon", Position(161, 38, 7)},
{"Hydra", Position(155, 38, 7)},
{"Dragon", Position(160, 39, 7)},
}
function onStepIn(cid, item, position, fromPosition)
if not cid or Game.getStorageValue(storage) >= os.time() then
return true
end
local monster_random = math.random(1, #monsters) -- PARA VER QUAL MONSTRO VAI PEGAR DA TABELA ALEATORIAMENTE
local monster = Game.createMonster(monsters[monster_random][1], monsters[monster_random][2]) -- CRIA O MONSTRO ALEATÓRIO
if not monster then
return true
end
cid:say("Oh my God, it's a trap!")
-- REMOVE O MONSTRO --
addEvent(function()
if monster then
monster:remove()
end
end, seconds_remove * 1000)
Game.setStorageValue(storage, os.time() + time_summon * 60) -- SÓ VAI CONTABILIZAR APÓS O MONSTRO SER DERROTADO OU REMOVIDO
return true
end
Agora abre o movements.xml e adicione a tag:
<movevent event="StepIn" uniqueid="19737" script="tile_trap.lua" />
Está pronto! Só testar.