我有一个ComputerCraft程序设置为打开警笛,当任何非白名单球员接近:
sensor = peripheral.wrap("top")
function arraysubset(a, b)
local s = set(b)
for _, el in pairs(a)
if not s[el] then
return false
end
end
return true
end
function sirenOn() rs.setBundledOutput("back",colors.blue) end
function sirenOff() rs.setBundledOutput("back",0) end
while 1 do
playersNear = sensor.getPlayerNames()
allowedPlayers = {"VirtualDXS","jettrom","Shad0wlurker16","Demonicmobster","FireFang0113","riggs135","DaisySnow123","MasterAlex930"}
if playersNear[1] ~= nil then
if arraysubset(playersNear,allowedPlayers) then sirenOff() else sirenOn() end
else sirenOff() end
end但是,在第3行,我尝试调用“零”。这使我认为set()函数在computercraft上不存在。我想知道:
a是否是数组b和发布于 2015-07-29 17:02:26
在重新读取子集()代码的源代码时,我看到我使用的代码需要更多的答案前面的代码:
function set(list)
local t = {}
for _, item in pairs(list) do
t[item] = true
end
return t
endhttps://stackoverflow.com/questions/31706559
复制相似问题