我目前在我的世界上玩ftb并且已经进入称为计算机工艺的mod,它使用lua作为其编程语言。到目前为止,我已经写了一个基本脚本,用于清理3个方向和任何大小的房间。方向是右左和中心。如果这个人希望门是房间的中心,那么中心就是这样。 但是我在执行一个功能时遇到了麻烦,我在另一个函数中执行过一次代码。
这是我想在另一个函数中执行一次的函数
function hwd()
for m = 1,w*0.5 do
turtle.dig()
echest()
turtle.forward()
end
end
这是主要功能
function cntr()
if d == "c" then
for p = 1,w do
length()
turtle.turnRight()
turtle.dig()
echest()
turtle.forward()
turtle.turnLeft()
end
end
end
我需要在第一个循环中执行的部分看起来像这样
turtle.turnLeft()
hwd()
turtle.turnRight()
在"对于p = 1,w do"在" length()"
之前我的脚本在没有中心部分的情况下工作,但需要对此部分进行广告宣传。 任何帮助将不胜感激。
工作脚本前往:http://pastebin.com/Uf5Li1Cy
对于添加了中心部分的脚本,请转到:http://pastebin.com/AqZHQrFb
答案 0 :(得分:1)
循环是否总是至少执行一次?然后简单地将该代码放在循环之前。
-- do the special thing
for p = 1,w do
如果没有,你可以把它放在一个布尔值保护的循环中:
local didTheSpecialThing = false
for p = 1,w do
if not didTheSpecialThing then
-- do the special thing
didTheSpecialThing = true
end
...
或者你可以把它放在循环之前,检查是否需要执行它:
if w > 0 then
-- do the special thing
end
for p = 1,w do