local traps = { [26028] = {transformTo = 26026, damage = {-500, -1000}}, [1510] = {transformTo = 1511, damage = {-50, -100}}, [1513] = {damage = {-50, -100}}, [2579] = {transformTo = 2578, damage = {-15, -30}}, [4208] = {transformTo = 4209, damage = {-15, -30}, type = COMBAT_EARTHDAMAGE} } function onStepIn(creature, item, position, fromPosition) local trap = traps[item.itemid] if not trap then return true end if item.itemid == 26028 then addEvent(onActiveTrap, 1000, creature.uid, item:getPosition(), item:getId()) return true end if creature:isMonster() then doTargetCombat(0, creature, trap.type or COMBAT_PHYSICALDAMAGE, trap.damage[1], trap.damage[2], CONST_ME_NONE) end if trap.transformTo then item:transform(trap.transformTo) end return true end function onActiveTrap(cid, pos, target) local player = Player(cid) local item = Tile(pos):getItemById(target) if item then item:transform(26026) end if player then local playerTile = Tile(pos):getTopCreature() if playerTile ~= nil then if playerTile:isPlayer() then doTargetCombat(0, player, COMBAT_PHYSICALDAMAGE, traps[26028].damage[1], traps[26028].damage[2], CONST_ME_NONE) end else if item then addEvent(transforTo, 1000, item:getPosition(), item:getId()) end end end end function transforTo(toPosition, itemId) local item = Tile(toPosition):getItemById(itemId) if item then item:transform(26028) end end function onStepOut(creature, item, position, fromPosition) if item.itemid == 26026 then item:transform(26028) return true end item:transform(item.itemid - 1) return true end function onRemoveItem(item, tile, position) local itemPosition = item:getPosition() if itemPosition:getDistance(position) > 0 then item:transform(item.itemid - 1) itemPosition:sendMagicEffect(CONST_ME_POFF) end return true end