• 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!

TFS 1.X+ Problem with getItemById

Roni123

Hardstyle Never Die < 3 !!!
Joined
Aug 31, 2010
Messages
152
Solutions
1
Reaction score
18
Good Morning,

Dears,

I have trouble with getItemById problem, when I use lever on Demon Helmet Quest then i got this message in console:

Lua:
Lua Script Error: [Action Interface]
data/actions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:onUse
...tions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:9: attempt to call method 'getItemById' (a nil value)
stack traceback:
        [C]: in function 'getItemById'
        ...tions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:9: in function <...tions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:7>

My DHQ action:

Lua:
local positions = {
    Position(33314, 31592, 15), -- stone position
    Position(33316, 31591, 15), -- teleport creation position
    Position(33322, 31592, 14) -- where the teleport takes you
}
 
function onUse(player, item, fromPosition, target, toPosition, isHotkey)
    if item.itemid == 1945 then
        local item = positions[1]:getItemById(1355)
        if item then
            item:remove()
        end

        local teleport = Game.createItem(1387, 1, positions[2])
        if teleport then
            teleport:setDestination(t[3])
            positions[2]:sendMagicEffect(CONST_ME_TELEPORT)
        end
    elseif item.itemid == 1946 then
        local item = positions[2]:getItemById(1387)
        if item then
            item:remove()
        end

        positions[2]:sendMagicEffect(CONST_ME_POFF)
        Game.createItem(1355, 1, positions[1])
    end

    item:transform(item.itemid == 1945 and 1946 or 1945)
    return true
end

I have trying to find something on otland but without effect :/
 
Except:
getItemById
Try:
getUniqueId
Bro the similar problem after this
Lua:
Lua Script Error: [Action Interface]
data/actions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:onUse
...tions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:9: attempt to call method 'getUniqueId' (a nil value)
stack traceback:
        [C]: in function 'getUniqueId'
        ...tions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:9: in function <...tions/scripts/demonHelmetQuest/demonHelmetQuestLever.lua:7>
Post automatically merged:

look at this one:
Ye, its a tile bro but I need lever :/
Post automatically merged:

Problem has been solved by using this script,

Lua:
local pinkstonepos1 = {x=634, y=664, z=13}        -- Remember to
local TeleportToPos = { x = 645, y = 660, z = 12} -- adjust the
local TeleportInPos = { x = 636, y = 662, z = 13} -- coordinates here
local LeverPos      = { x = 647, y = 663, z = 13} -- to your map :)
local timeToRemove  = 20 -- in seconds

function onUse(cid, item, frompos, item2, topos)

local pinkstone1 = getTileItemById(pinkstonepos1, 1355) -- If you do not want a pink stone, change this itemID to whatever itemID you want to use
local teleport = getTileItemById(TeleportInPos, 1387)

        if item.itemid == 1945 then

            doRemoveItem(pinkstone1.uid, 1)
            doCreateTeleport(1387, TeleportToPos, TeleportInPos)
            doSendMagicEffect(TeleportInPos, CONST_ME_TELEPORT)
            doPlayerSendTextMessage(cid,22,"Click!")
            addEvent(doRemoveTeleport, timeToRemove * 1000)

    else if item.itemid == 1946 then

        doPlayerSendCancel(cid,"Sorry, not possible.")

    return 1

    end
end 

end

function doRemoveTeleport()

local teleport = getTileItemById(TeleportInPos, 1387)
local Lever = getTileItemById(LeverPos, 1946)

    if teleport.uid > 0 then

        doCreateItem(1355, 1, pinkstonepos1)
        doRemoveItem(teleport.uid)
        doSendMagicEffect(TeleportInPos, CONST_ME_POFF)
        doTransformItem(Lever.uid, 1945)

    end

end
 
Last edited:
Back
Top