无法让 PlayerSay 在 Gmod lua 插件中工作

问题描述 投票:0回答:2

我尝试制作一个 Garry's Mod lua 文件来查找开头包含“/discord”的消息,并将该消息保存为同一目录中的文本文件,我不熟悉 lua 文件,所以我不确定但是当我查看控制台时,什么也没有发生,当我查看服务器命令行时,什么也没有发生,也没有创建新文件,我什至搜索了我的整个电脑。

我在 Garry's mod wiki 上使用了以下页面:https://wiki.garrysmod.com/page/GM/PlayerSay,那里给出的代码可以工作,但一旦我添加任何内容,它就完全停止工作。这是我的代码:

hook.Add( "PlayerSay", "GmodToDiscord", function( player, text, team )
    if ( string.sub( string.lower( text ), 0, 7 ) == "/discord" ) then -- Makes message lowercase to be read by the program.
        local file = io.open("message.txt", "w") -- Opens a text file in write mode.
        file:write(message) -- Pastes in the message.
        file:close() -- Closes the text file.
    end
end)

任何帮助将不胜感激。

lua garrys-mod
2个回答
1
投票

你不能在 Gary 的 mod 中使用 Lua 的 io 库。请改用 Gary's Mod 的文件模块。

https://wiki.garrysmod.com/page/file/Open

示例:

local f = file.Open( "cfg/mapcycle.txt", "r", "MOD" )
print( f:ReadLine() )
print( f:ReadLine() )
print( f:Tell() )
f:Close()

0
投票

关于 Lua 需要注意的一点是,它的数组从索引 1 开始,这也是它成为一种相当古怪的语言的原因。您需要检查 1 到 8 之间才能获取标签;这应该可以帮助您开始@Piglet 的文件 IO 实现。

© www.soinside.com 2019 - 2024. All rights reserved.