如何确定列表中是否存在项目?

时间:2014-03-27 21:12:45

标签: arrays list lua lua-table

我做了一个小游戏,我想检查玩家名称是否已存在于“禁令列表”中。如果有多个名字怎么办呢? 例如,我有一个像这样的球员名单:

 PlayerList = {'Player 1', 'Player 2', 'Player 3'}

我希望能够禁止一些玩家并将其添加到禁令列表中以禁止他们在游戏中做一些事情。我怎样才能做到这一点?我可以用这样的1个玩家名来做到这一点:

if (Player_Name ~= 'Player 2') then
print('Hello!!')
else
print('You are banned!')
end

但这只适用于“玩家2”。如何添加多个名称? 我不想使用“或”,像这样:

if (Player_Name ~= 'Player 2' or Player_Name ~= 'Player 3') then
print('Hello!!')
else
print('You are banned!')
end

由于我的列表可能包含超过200个,我不想添加超过200个“或”。我怎样才能简单地检查玩家是否在我创建的禁令列表中?例如:

BanList = {'Player 2', 'Player 3'}

也许这样的事情(这不起作用)

if (Player_Name ~= BanList) then
print('Hello!!')
else
print('You are banned!')
end

1 个答案:

答案 0 :(得分:1)

您希望使用循环遍历BanList中的所有项目,并查看其中是否包含播放器。

BanList = { 'Player 2', 'Player 3' }

function isBanned(playerName)
    for _,name in pairs(BanList) do
        if name == playerName then
            return true
        end
    end
    return false
end

if isBanned(Player_Name) then
    print('You are banned!')
else
    print('Hello!!')
end