在lua执行一次函数的一部分

时间:2013-10-31 20:13:23

标签: lua

我目前在我的世界上玩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

1 个答案:

答案 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