尝试索引全局 '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'(零值)的主要内容,如果未能解决你的问题,请参考以下文章