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)使用。

最好先设计数据的布局。由于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版的数据描述

最新更新