Lua双重结果显示

时间:2014-07-10 13:19:00

标签: lua computercraft

所以我的lua脚本显示了双重结果:

enter image description here

它应该只显示每种液体中的一种。

这是脚本的一部分:

function firstToUpper(str)
    return (str:gsub("^%l", string.upper))
end
function dispTanks()
mon.setCursorPos(offsetPos, 1)
mon2.setCursorPos(offsetPos,1)

    for i=1, #machines do
    -- RC Tanks --------------------------------------------
        if string.find(machines[i], "rcirontankvalvetile") 
            or string.find(machines[i], "rcsteeltankvalvetile") then                        

            if peripheral.isPresent(machines[i]) then
                periph = peripheral.wrap(machines[i])

                fluidRaw, fluidName, fluidAmount, fluidCapacity, fluidID = marik.getTank(periph)                            

                if fluidName == nil then
                -- does not display empty tanks
                elseif fluidName ~= nil then
                    mon2.setTextColor(tc)
                    x,y = mon2.getCursorPos()
                    mon2.setCursorPos(offsetPos, (y+1))
                    mon2.clearLine()
            -- marik.cString(offsetPos,(y+1), tc, right, ",")
            nameFL = firstToUpper(marik.comma(fluidName):match("[^.]*"))
            mon2.write("Tank (" .. nameFL .. ") :  " .. marik.getBuckets(fluidAmount) .. " buckets") 
        end
        end
    end
    end
end

我虽然没有用“,”“结束”。或者“)”但似乎并非如此。我该如何解决这个问题?

Pastebin edit 这是完整的2个代码:

1 个答案:

答案 0 :(得分:1)

看了看之后我会建议看看你的桌子是什么样的,因为上面发布的代码似乎没有任何问题,但如果你的桌子有些重复机器那么它肯定会打印它出了两次,这就是我开始看的地方。

编辑 - 并且通过表格我指的是“阵列”机器

调试表“array”的代码把它放在你提出问题的代码部分之前..

for k, v in pairs(machines) do
  print(tostring(k)..": "..tostring(v))
end