• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Script error

xscas

New Member
Joined
Jan 1, 2010
Messages
46
Reaction score
0
The script works perfectly, but it has many errors similar to this: that bother me

CONSOLE:
[Error - Action Interface]
In a timer event called from:
data/actions/scripts/snakesys.lua: onUse
Description:
(luaDoRemoveItem) Item not found


ACTION SCRIPT:
function onUse(cid, item, frompos, item2, topos)
if not isPlayer(getGlobalStorageValue(SNAKE.freeglobalstorage)) then
doTeleportThing(cid,SNAKE.controlpos)
SNAKE.timer(cid,1,nil,item.actionid == 0 and 500 or item.actionid)
doPlayerSendTextMessage(cid,25,'Segure a tecla control e use as setas para mover a cobra.')
SNAKE.generateFood()
else
doPlayerSendTextMessage(cid,25,'Espere alguem sair.')
end
end

Script LIB --- (if you need)
Code:
 --[[
Script by Mock the bear
]]
SNAKE = {
        _VERSION="1.0 by mock",
        ---Snake config
        itemid=1739,
        freeglobalstorage=28103,
        itemFood=6394,
        controlpos={x=642,y=321 ,z=7},
        exitpos = {x=639,y=315,z=7},
        centerpos={x=642,y=321,z=7}, 
        timer = function(cid,n,pos_,time)
                local pos_ = pos_ or {{SNAKE.centerpos}}
                setGlobalStorageValue(SNAKE.freeglobalstorage,cid)
                if not isPlayer(cid) then
                        SNAKE.clean()
                        return
                end
                        for i,pos in pairs(pos_) do
                                SNAKE.find_and_delete(pos[1])
                                if i == 1 then
                                        pos[2] = SNAKE.copypos(pos[1])
                                        pos[1] = getPosByDir({x=pos[1].x,y=pos[1].y,z=pos[1].z,stackpos=255},getCreatureLookDir(cid))
                                else
                                        pos[2] = SNAKE.copypos(pos[1])
                                        pos[1] = pos_[i-1][2]
                                end
                                local ret,p,walk = SNAKE.check(pos[1])
                                if ret == 1 or ret == 3 then
                                        addEvent(doTeleportThing,1000,cid,SNAKE.exitpos)
                                        addEvent(doCreatureSay,1100,cid,'Points '..(#pos_-1)..'.')
                                        SNAKE.clean()
                                        setGlobalStorageValue(SNAKE.freeglobalstorage,0)
                                        return
                                end
                                if ret == 2 then
                                        doRemoveItem(p.uid,-1)
                                        if p.itemid == SNAKE.itemFood then
                                                pos_[#pos_+1] = {pos[2],pos[2]}
                                                for i=1,5 do
                                                        addEvent(doSendMagicEffect,100*i,pos[1],29)
                                                end
                                                SNAKE.generateFood()
                                        end
                                end
                                doCreateItem(SNAKE.itemid,1,pos[1])

                        end
                        local plpos = getCreaturePosition(cid)
                        local generated = {}
                        for i=0,3 do
                                generated[i] = getPosByDir({x=SNAKE.controlpos.x,y=SNAKE.controlpos.y,z=SNAKE.controlpos.z},i)
                        end
                        for i,pos in pairs(generated) do
                                if SNAKE.samepos(plpos,pos) then

                                        doTeleportThing(cid,SNAKE.controlpos,false)
                                end
                                addEvent(doSendMagicEffect,100,pos,56,cid)
                        end
                addEvent(SNAKE.timer,time,cid,n,pos_,time)
        end,
        copypos = function(p)
                return {x=p.x,y=p.y,z=p.z,stackpos=p.stackpos}
        end,
        samepos = function(p1,p2)
                if p1.x == p2.x and p2.y == p2.y then
                        return true
                end
                return false
        end,
        generateFood = function()
                local pp = {x=SNAKE.centerpos.x+math.random(-6,6),y=SNAKE.centerpos.y+math.random(-4,4),z=SNAKE.centerpos.z}
                for i=1,5 do
                        addEvent(doSendMagicEffect,100*i,pp,30)
                end
                doCreateItem(SNAKE.itemFood,1,pp)
        end,
        clean = function()
                for y=-4,4 do
                        for x=-6,6 do
                                local pp = {x=SNAKE.centerpos.x+x,y=SNAKE.centerpos.y+y,z=SNAKE.centerpos.z}
                                for i=250,255 do
                                        pp.stackpos = i
                                        local p = getThingFromPos(pp)
                                        if p.itemid ~= 0 then
                                                doRemoveItem(p.uid,-1)
                                                doSendMagicEffect(pp,15)
                                        end
                                end
                        end
                end
        end,
        check = function(pos)
                for i=1,10 do
                        pos.stackpos = i
                        local p = getThingFromPos(pos)
                        if p.itemid == SNAKE.itemid then
                                return 1,p,true
                        elseif not SNAKE.isWalkable(pos) then
                                return 3,p,false
                        elseif p.itemid ~= 0 then
                                return 2,p
                        end
                end
                return false
        end,
        find_and_delete = function(pos)
                for i=0,255 do
                        pos.stackpos = 255-i
                        local p = getThingFromPos(pos)
                        if p.itemid == SNAKE.itemid then
                                return doRemoveItem(p.uid,1)
                        end
                end
        end,
        isWalkable = function(pos, creature, proj, pz)-- by Nord
                if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
                if getTopCreature(pos).uid > 0 and creature then return false end
                if getTileInfo(pos).protection and pz then return false, true end
                local n = not proj and 3 or 2
                for i = 0, 255 do
                        pos.stackpos = i
                        local tile = getTileThingByPos(pos)
                        if tile.itemid ~= 0 and not isCreature(tile.uid) then
                                if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
                                        return false
                                end
                        end
                end
                return true
        end,
}

Please someone help me!!!!!



*part of the "Snake System - by Mock" :
*i use translator
 
Last edited:
not believe it! I am badly in scripts ... not only would I get this error? usually because the script works ... Otherwise someone would help me? otland members are very good! I wait answers... :D
 
It's actually not that easy to find the problem. I'd suggest you to add debug prints to detect the line that prints the error (Sth around doRemoveItem()) then add some additional checks before calling doRemoveItem() once you trace which one prints errors.
 
Back
Top