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
答案 0 :(得分:0)
看起来你的意思是file.Find
而不是find.File
。
http://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
表中。
完成后,将从表格中选择随机地图。