尝试在 lua 中索引一个 nil 值

Posted

技术标签:

【中文标题】尝试在 lua 中索引一个 nil 值【英文标题】:attempt to index a nil value in lua 【发布时间】:2019-09-20 08:55:58 【问题描述】:

我有这个代码,

hook.Add( "PlayerSwitchWeapon", function( ply, oldWeapon, newWeapon )
    if (tostring(newWeapon) == tostring(hololink_swep) ) then
        print( "This weapon is speciall" .. newWeapon:GetClass() .. "." );
    end
end );

当我执行它时,我得到,

错误、警告:lua5.3: source_file.lua:1: 尝试索引 a 零值(全局“挂钩”)堆栈回溯:source_file.lua:1:在 main 块 [C]: 在 ?

【问题讨论】:

hook 为零,它在错误消息中说得很对。我最好的猜测是 Hook 应该是大写的。 @DarkWiiPlayer - docs 使用 gmod 对象的脚本只能在游戏引擎的上下文中运行。您的脚本将无法在纯 Lua 下运行。 【参考方案1】:

您需要将脚本放在特定文件夹中,以使它们在游戏引擎中运行。我建议你把它们放到garrysmod/addons/YOURADDONNAME/lua/autorun/server or client,领域取决于你想做什么。 您需要在此 link 下的 wiki 中放置很好解释的内容。

【讨论】:

以上是关于尝试在 lua 中索引一个 nil 值的主要内容,如果未能解决你的问题,请参考以下文章

嵌入在 C++ socket.http 中的 LUA [错误:尝试调用 nil 值]

lua错误:尝试调用nil值(字段'getn')

Lua 尝试索引? (零值)

lua学习之table类型

Lua键从列表中返回项目为零

尝试使用 'Connect' With Changed 事件对 nil 进行索引