Опит за индексиране на глобален 'LM' (нулева стойност)

Работя върху някакъв код в Lua и продължавам да получавам тази грешка, въпреки че е дефинирана.

Казва се, че „LM“ е нулева стойност, когато очевидно не е, тъй като LM = {} е първото нещо, което имам в моя код. Използвам тази таблица за функции.

LM = {}
LM.Classes = {}
LM.Factions = {}
LM.Items = {}
LM.Core = {}
LM.Ent = {}
LM.GUI = {}
LM.Core.ValidLMEntities = {
                "fm_item",
                "fm_keys",
                "fm_fists",
                "fm_money",
                }

function LM.Core.IsLMEntity(ent)    
    return IsValid(ent) && table.HasValue(LM.Core.ValidLMEntities, ent:GetClass())
end

Съобщение за грешка:

[ERROR]
gamemodes/lemonmuffin/gamemode/sv_core.lua:1: attempt to index global 'LM' (a nil value) 
  1. unknown - gamemodes/lemonmuffin/gamemode/sv_core.lua:1
  2. include - [C]:-1 
  3. unknown - gamemodes/lemonmuffin/gamemode/init.lua:1

person Ripmax    schedule 11.06.2013    source източник
comment
не можем да ви помогнем, ако не ни покажете кода. Трябва ли да гадаем?   -  person greatwolf    schedule 12.06.2013
comment
какъв е стекът за извиквания за грешка?   -  person greatwolf    schedule 12.06.2013
comment
&& не е валиден lua синтаксис, имахте предвид and?   -  person greatwolf    schedule 12.06.2013
comment
[ГРЕШКА] gamemodes/lemonmuffin/gamemode/sv_core.lua:1: опит за индексиране на глобален 'LM' (нулева стойност) 1. неизвестен - gamemodes/lemonmuffin/gamemode/sv_core.lua:1 2. включване - [C]: -1 3. неизвестен - gamemodes/lemonmuffin/gamemode/init.lua:1   -  person Ripmax    schedule 12.06.2013
comment
&& е точно същото като "и"   -  person Ripmax    schedule 12.06.2013
comment
Как мога да поправя това? Някой?   -  person Ripmax    schedule 12.06.2013
comment
Показаният кодов фрагмент част от sv_core.lua ли е? Необходим е повече контекст.   -  person greatwolf    schedule 12.06.2013
comment
Да, това е част от sv_core.lua   -  person Ripmax    schedule 12.06.2013
comment
Грешката е в ред 1 на sv_core.lua и грешката казва, че Lua се опитва да я индексира. Въпреки това няма операция за индексиране в ред 1 на фрагмента, който ни предоставихте. Очевидно не ни казвате всичко, което трябва да знаем, за да ви предложим решение   -  person dualed    schedule 13.06.2013


Отговори (2)


Внимавайте, използвали сте &&, което не е същото като and.
Ето пълния списък на всички токени без думи на Lua (няма &):

 +     -     *     /     %     ^     #
 ==    ~=    <=    >=    <     >     =
 (     )     {     }     [     ]     ::
 ;     :     ,     .     ..    ...

вижте Справочно ръководство за повече подробности.

person Yu Hao    schedule 12.06.2013

Опитайте тази

LM = {Classes,Factions,Items,Core,Ent,GUI}
LM.Classes = {}
LM.Factions = {}
LM.Items = {}
LM.Core = {}
LM.Ent = {}
LM.GUI = {}

LM.Core.ValidLMEntities = {
            "fm_item",
            "fm_keys",
            "fm_fists",
            "fm_money",
            }

function LM.Core.IsLMEntity(ent)    
     return IsValid(ent) and table.HasValue(LM.Core.ValidLMEntities, ent:GetClass())
end
person vanshika    schedule 13.06.2013