尝试索引全局 'io'(零值)

Posted

技术标签:

【中文标题】尝试索引全局 \'io\'(零值)【英文标题】:Attempt to index global 'io' (a nil value)尝试索引全局 'io'(零值) 【发布时间】:2015-10-12 17:43:22 【问题描述】:

在我解释我的问题之前,我已经查看了堆栈溢出,并查看了有关此错误消息的无数问题。

我的任务是在我的网站上构建一个更新的统计信息页面,该页面使用来自 Garry's Mod 游戏服务器的实时统计信息进行自我更新。我编写了一个 lua 脚本(我将在下面包含),理论上应该将当前地图名称和连接到单独文本文件的玩家数量拉出。

这是我当前状态下的程序(我还没有添加用于更新的循环,尝试先以最简单的形式开始工作):

// Custom script to pull current server statistics and return to website
local current_map = game.GetMap()
local current_players = #player.GetAll()
map = io.open("../../../../map.txt", "w")
map.write(current_map)
map.close()
players = io.open("../../../../players.txt", "w")
players.write(current_players)
players.close()

当我启动服务器时,我在控制台中收到Line 4: attempt to index global 'io' (a nil value) 错误

在尝试了无数的事情并多次编辑代码之后,我仍然无法让这个理论上应该如此简单的工作,而且我不知道出了什么问题。

【问题讨论】:

看起来 gmod 不包含 io 模块。你知道吗? gmod 有自己的io-type 模块吗?它甚至允许做io-type 的事情(直接从磁盘读取和写入)吗? @EtanReisner 哇,我从未想过 Garry 的模组可能不包含该模块。这是服务器模块文件夹的图片 - 我看不到任何可能与 IO 相关的内容,除非你能告诉我其他情况? i.imgur.com/6Hr8EWO.png io 模块是 lua 内置模块,但托管环境不需要加载它,如果他们不想加载它。您不会看到任何与之相关的文件。您必须查看 gmod 文档。 @pythagon 对于这样的事情,请参考相关文档。 gmod 包含io 模块是完全合理的。例如,您不希望“随机”脚本能够在整个硬盘驱动器上进行读写。 【参考方案1】:

以后有这个问题的人;

在浏览了脚本 wiki 之后,我发现 Garry's Mod 有它自己的文件 IO 库。

可以在下面获得 wiki 上此页面的链接:

http://wiki.garrysmod.com/page/file/Write

【讨论】:

以上是关于尝试索引全局 'io'(零值)的主要内容,如果未能解决你的问题,请参考以下文章

尝试索引全局“cv”(零值)

尝试索引全局'ENT'(零值)在一定时间后删除实体

为啥 TIC-80 让我尝试索引零值错误?

Lua 尝试索引? (零值)

错误:尝试索引本地“自我”(零值)

Lua“尝试索引?(一个零值)