尝试索引全局变量 'LM'(一个空值)。

我正在使用 Lua 编写一些代码,尽管已定义了变量,但还是一直出现此错误。

它说 'LM' 是 nil 值,但明显不是,因为 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
点赞
用户1009479
用户1009479

注意,您使用了 &&,它 同于 and

以下是所有 Lua 非字词符号的完整列表(没有 &):

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

详见 参考手册 以获取更多细节。

2013-06-12 01:18:47
用户1514524
用户1514524

尝试这个

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

LM 表示 Lua 管理器,包括六个分类:Classes、Factions、Items、Core、Ent、GUI。除了分类外,还定义了许多变量。其中,LM.Core.ValidLMEntities 表示 Lua 管理器的有效实体,LM.Core.IsLMEntity 函数用于判断实体是否有效。

2013-06-13 11:15:00