LUA Функция и массив, объявленный id, null ariable?

У меня проблема с функцией и массивом со вчерашнего дня. Кажется, идентификатор рычага не объявлен или что-то в этом роде...

Вот мой код:

function tpp(leverID, from, to)

if item.uid == leverID and item.itemid == 1945 then

    local count_players = #to
    local store = {}

    for i = 1, count_players do
        local pid = getTopCreature(from[i]).uid
        if (pid == 0 or not isPlayer(pid)) then
                return doPlayerSendCancel(cid, 'You need ' .. count_players .. ' players to use this lever.')
        end
        store[i] = pid
    end

    for i = 1, count_players do
        doSendMagicEffect(from[i], CONST_ME_POFF)
        doTeleportThing(store[i], to[i], false)
        doSendMagicEffect(to[i], CONST_ME_TELEPORT)
    end

    doTransformItem(item.uid, item.itemid + 1)

elseif item.uid == leverID and item.itemid == 1946 then
    doTransformItem(item.uid, item.itemid -1)
end

end




function onUse(cid, item, fromPosition, itemEx, toPosition)


local pos = {
    ['pos_start'] = {
            {['x'] = 1059, ['y'] = 1034, ['z'] = 7},
            {['x'] = 1060, ['y'] = 1034, ['z'] = 7}
    },
    ['pos_end'] = {
            {['x'] = 1059, ['y'] = 1032, ['z'] = 7},
            {['x'] = 1060, ['y'] = 1032, ['z'] = 7}
    }
}

tpp(10150, pos['pos_start'], pos['pos_end'])

return true


end

Я получаю эту ошибку:

попытка индексировать глобальный «элемент» (нулевое значение)

Я новичок в луа. Кто-нибудь может мне помочь? Спасибо!


person Semi Rukiya    schedule 28.05.2016    source источник


Ответы (1)


Вероятно, вы забыли передать переменную item в функцию tpp(), когда вызывали ее из функции onUse().

Поскольку в области действия функции tpp() или в ее аргументах не было переменной 'item, переменная считалась глобальной, и глобальной переменной с таким именем не было.

person Vlad    schedule 28.05.2016