Lua 命令启用/禁用。

我想尝试启用/禁用使用 !commands 的功能(此游戏中的命令(命令和征服:叛变)始终以 ! 为前缀),具体取决于文本文件是否允许用户使用它。我希望代码使用 Lua 编写,以便与其他代码兼容和集成。例如:

Harry1 可以使用 !spectate

Harry2 不能使用 !spectate

然而,可能会有无数名用户,因为每个用户最多可以选择 3 个 "选项",且未选择为其 3 个选项之一的其他这些选项不允许访问。例如:

Harry1 选择了 !spectate!cookie!pizza

Harry2 选择了 !cookie!icecream!chocolate

因此,Harry1 将无法使用 !icecream!chocolate,而 Harry2 也无法使用 !spectate!pizza

获取玩家 ID 使用 Get_Player_ID(pID)

点赞
用户1283954
用户1283954

最好先设计数据的布局。由于 Lua 也被设计为一种数据描述语言,因此自然地使用原生语法,因此选项文件将如下所示:

user {
    name: "Harry1",
    choices: {["spectate"]=true, ["cookie"]=true, ["pizza"]=true},
}

user {
    name: "Harry2",
    choices: {["cookie"]=true, ["icecream"]=true, ["chocolate"]=true},
}

然后,在代码中,可以执行以下操作:

users = {}

function user_docommand(user, command)
    if users[user].choices[command] == true do
        --- 执行命令
    end
end

do
    function user(u)
        if users[u.name] == nil then
             users[u.name] = {}
        end
        users[u.name].choices = u.choices
    end
    ---或许在这里使用比dofile更安全的函数
    dofile("choices.lua")
end

另请参见 10.1-来自 PIL 第一版的数据描述

2012-08-03 11:44:28