local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)
local limit = getConfigInfo('tileLimit')
function onCastSpell(cid, var)
local pos = variantToPosition(var)
if getTileInfo(getThingPos(cid)).protection or getTileInfo(pos).protection then
return not doPlayerSendDefaultCancel(cid, RETURNVALUE_ACTIONNOTPERMITTEDINPROTECTIONZONE)
end
local v = getTileItemByType(pos, ITEM_TYPE_MAGICFIELD).uid
if v ~= 0 then
doRemoveItem(v)
end
local count = getTileInfo(pos).items
if count >= limit then
local removed
for i = 1, count do
pos.stackpos = i
local v = getThingfromPos(pos)
if v.uid > 65535 and v.actionid == 0 and isMoveable(v.uid) and not isCreature(v.uid) then
doRemoveItem(v.uid)
removed = true
break
end
end
if not removed then
return not doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
end
end
v = doCreateItemEx(1497)
if doTileAddItemEx(pos, v) == 1 and getTileItemByType(pos, ITEM_TYPE_MAGICFIELD).uid ~= 0 then
doDecayItem(v)
return doCombat(cid, combat, var)
else
return not doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
end
end