在游戏中从表格中随机获取一个物品。

local limiteds = {
    test1 = {
        value = 999999999,
        itemid = -1,
        released = false
    }
}

function tablelength(T)
    local count = 0
    for _ in pairs(T) do count = count + 1 end
    return count
end

function randomitem()
    local limited
    repeat
        local limited = limiteds[math.random(tablelength(limiteds))]
    until limited.released == false
end

但是它在重复循环处使我的游戏崩溃,我不知道为什么。 有一些奇怪的原因,似乎'limited'是空的? 
点赞
用户1847592
用户1847592
  local limited
  repeat
    local key
    for i = 1, math.random(tablelength(limiteds)) do
      key, limited = next(limiteds, key)
    end
  until limited.released == false
  return limited
end

将上述代码翻译为中文并保留原本的markdown格式,

函数 randomitem()
  local limited
  重复
    local key
    对于 i=1math.random(tablelength(limiteds)) do
      key, limited = next(limiteds, key)
    结束
  直到 limited.released == false
  返回 limited
结束
2015-12-20 22:50:10