所以我的lua脚本显示了双重结果:
它应该只显示每种液体中的一种。
这是脚本的一部分:
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个代码:
答案 0 :(得分:1)
看了看之后我会建议看看你的桌子是什么样的,因为上面发布的代码似乎没有任何问题,但如果你的桌子有些重复机器那么它肯定会打印它出了两次,这就是我开始看的地方。
编辑 - 并且通过表格我指的是“阵列”机器
调试表“array”的代码把它放在你提出问题的代码部分之前..
for k, v in pairs(machines) do
print(tostring(k)..": "..tostring(v))
end