0

我正在尝试启用/禁用使用能力!commands(此游戏中的命令(命令与征服:叛徒)总是以 a 为前缀!),具体取决于文本文件是否指示用户被允许使用它。我正在寻找 Lua 中的代码,以实现兼容性和集成。例如:

Harry1 允许使用!spectate
Harry2 不允许使用!spectate

但是,这可能适用于无限数量的用户,因为每个用户最多可以选择 3 个“选项”,并且这些“选项”的其余部分不允许未将其选为其中之一的用户访问3. 例如:

Harry1 选择!spectate, !cookie, !pizza
Harry2 选择!cookie, !icecream,!chocolate

因此,Harry1 将无法使用!icecreamor!chocolate并且 Harry2 无法使用!spectateor !pizza

获取玩家 ID 由Get_Player_ID(pID).

4

1 回答 1

0

最好先设计好数据的布局。由于 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
        --- do the command
    end
end

do
    function user(u)
        if users[u.name] == nil then
             users[u.name] = {}
        end
        users[u.name].choices = u.choices
    end
    --- perharps use a safer function than dofile here
    dofile("choices.lua")
end

另见10.1 - PIL 第 1 版的数据描述

于 2012-08-03T11:44:28.977 回答