检查表值是否以

时间:2015-05-12 03:18:30

标签: lua garrys-mod

local maps = find.File("maps/*.bsp", "GAME")
map = (maps[math.random( #maps )])
    print("Map randomized to " .. map )

以上代码适用于" ULX"在Garry的Mod上,它使用find.File来读取garrysmod / maps的目录并返回(在TABLE中)以.bsp(所有地图)结尾的所有文件,但是我不想&# 39;包括以某些部分开头的地图,例如"竞技场_"和" gm _",有没有办法我可以去除它们和/或让它继续检查,直到它得到一个没有开始的地图。

我能做到这一点吗?请更好的纯Lua。 哦,我用来测试它的网站是MOAIFiddle

1 个答案:

答案 0 :(得分:0)

看起来你的意思是file.Find而不是find.Filehttp://wiki.garrysmod.com/page/file/Find

以下内容适用于Garry的Mod。

local maps = {}
local ignoredPrefixes = {"gm_","arena_"}

for _,map in ipairs(find.File("maps/*.bsp", "GAME"))do
  local hasPrefix=false
  for _,prefix in ipairs(ignoredPrefixes)do
    if string.Left(map,string.len(prefix)) == prefix then
      hasPrefix=true
      break
    end
  end
  if not hasPrefix then
    table.insert(maps,map)
  end
end

local randomMap = table.Random(maps);

print("Map randomized to "..randomMap)

它的作用是读取maps/中的所有地图,然后将ignoredPrefixes中定义的没有特定前缀的所有地图添加到maps表中。 完成后,将从表格中选择随机地图。