freddzor11
Member
- Joined
- May 25, 2009
- Messages
- 695
- Reaction score
- 5
Hello Why do I get this error when someone use destroy field rune?

check your destroyfield.lua if exist, if you find, send it here
UNREMOVABLE_FIELDS = {1497, 1498, 1499, 1505, 1506, 1507, 1508, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 11094, 11095}
local function doRemoveField(cid, pos)
local field = getTileItemByType(pos, ITEM_TYPE_MAGICFIELD)
if(not isInArray(UNREMOVABLE_FIELDS, field.itemid)) then
doRemoveItem(field.uid)
doSendMagicEffect(pos, CONST_ME_POFF)
return true
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
function onCastSpell(cid, var)
local pos = variantToPosition(var)
if(pos.x == CONTAINER_POSITION) then
pos = getThingPos(cid)
end
if(pos.x ~= 0 and pos.y ~= 0) then
return doRemoveField(cid, pos)
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
0.3.6what version of otserver
thanks think it workstry ths:
local function doRemoveField(cid, pos)
pos.stackpos = 254
local field = getThingfromPos(pos)
local playerPos = getPlayerPosition(cid)
if(field.uid > 0 and isInArray(FIELDS, field.itemid) == TRUE) then
doRemoveItem(field.uid)
doSendMagicEffect(pos, CONST_ME_POFF)
return LUA_NO_ERROR
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(playerPos, CONST_ME_POFF)
return LUA_ERROR
end
function onCastSpell(cid, var)
local pos = variantToPosition(var)
if(pos.x ~= 0 and pos.y ~= 0 and pos.z ~= 0) then
return doRemoveField(cid, pos)
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return LUA_ERROR
end
function onCastSpell(cid, var)
local pos = variantToPosition(var)
if(pos.x ~= 0 and pos.y ~= 0 and pos.z ~= 0) then
return doRemoveField(cid, pos)
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return LUA_ERROR
end
local function doRemoveField(cid, pos)
pos.stackpos = 254
local field = getThingfromPos(pos)
local playerPos = getPlayerPosition(cid)
if(field.uid > 0 and isInArray(FIELDS, field.itemid) == TRUE) then
doRemoveItem(field.uid)
doSendMagicEffect(pos, CONST_ME_POFF)
return LUA_NO_ERROR
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(playerPos, CONST_ME_POFF)
return LUA_ERROR
end
noTry
Code:function onCastSpell(cid, var) local pos = variantToPosition(var) if(pos.x ~= 0 and pos.y ~= 0 and pos.z ~= 0) then return doRemoveField(cid, pos) end doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return LUA_ERROR end local function doRemoveField(cid, pos) pos.stackpos = 254 local field = getThingfromPos(pos) local playerPos = getPlayerPosition(cid) if(field.uid > 0 and isInArray(FIELDS, field.itemid) == TRUE) then doRemoveItem(field.uid) doSendMagicEffect(pos, CONST_ME_POFF) return LUA_NO_ERROR end doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(playerPos, CONST_ME_POFF) return LUA_ERROR end
should I just change The functions or the whole script?...
UNREMOVABLE_FIELDS = {1497, 1498, 1499, 1505, 1506, 1507, 1508, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 11094, 11095}
local function doRemoveField(cid, pos)
local field = getTileItemByType(pos, ITEM_TYPE_MAGICFIELD)
if(field.uid == 0) then
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
if(not isInArray(UNREMOVABLE_FIELDS, field.itemid)) then
doRemoveItem(field.uid)
doSendMagicEffect(pos, CONST_ME_POFF)
return true
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
function onCastSpell(cid, var)
local pos = variantToPosition(var)
if(pos.x == CONTAINER_POSITION) then
pos = getThingPos(cid)
end
if(pos.x ~= 0 and pos.y ~= 0) then
return doRemoveField(cid, pos)
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF)
return false
end
thank you but found another so... SOLVED I guessCode:UNREMOVABLE_FIELDS = {1497, 1498, 1499, 1505, 1506, 1507, 1508, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 11094, 11095} local function doRemoveField(cid, pos) local field = getTileItemByType(pos, ITEM_TYPE_MAGICFIELD) if(field.uid == 0) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return false end if(not isInArray(UNREMOVABLE_FIELDS, field.itemid)) then doRemoveItem(field.uid) doSendMagicEffect(pos, CONST_ME_POFF) return true end doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return false end function onCastSpell(cid, var) local pos = variantToPosition(var) if(pos.x == CONTAINER_POSITION) then pos = getThingPos(cid) end if(pos.x ~= 0 and pos.y ~= 0) then return doRemoveField(cid, pos) end doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) return false end
FIELDS = {1487,1488,1489,1490,1491,1492,1493,1494,1495,1496,1500,1501,1502,1503,1504}
local function doRemoveField(cid, pos)
-- stackpos = 255. Get the top thing(item moveable or creature)
-- stackpos = 254. Get MagicFieldtItem
-- stackpos = 253. Get Creature
pos.stackpos = 254
local field = getTileItemByType(pos, ITEM_TYPE_MAGICFIELD)
if (isInArray(FIELDS, field.itemid) == TRUE) then
doRemoveItem(field.uid)
doSendMagicEffect(pos, CONST_ME_POFF)
return LUA_NO_ERROR
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
return LUA_ERROR
end
function onCastSpell(cid, var)
local pos = variantToPosition(var)
if(pos.x == CONTAINER_POSITION) then
pos = getThingPos(cid)
end
if(pos.x ~= 0 and pos.y ~= 0) then
return doRemoveField(cid, pos)
end
doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE)
doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF)
return LUA_ERROR
end