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

在lua中执行一次函数的一部分,lua,Lua,我目前在minecraft上玩ftb,并进入了名为computer craft的mod,它使用lua作为编程语言。到目前为止,我已经写了一个基本的脚本,用于清理3个方向和任意大小的房间。方向是左右和中间。如果一个人想让门成为房间的中心,那么“中心”就是这个意思。 但我在执行一个函数时遇到了麻烦,我曾经在另一个函数中编写了一段代码 这是我想在另一个函数中执行一次的函数 function hwd() for m = 1,w*0.5 do turtle.dig()

我目前在minecraft上玩ftb,并进入了名为computer craft的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()”之前

我有没有中心部分的脚本工作,但需要广告这一部分。 任何帮助都将不胜感激

对于工作脚本头,请执行以下操作:


对于添加了中心部分头的脚本:

循环是否始终至少执行一次?然后简单地将代码放在循环之前

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

您当前遇到的错误是什么?这里的问题是如何仅在循环的第一次迭代期间调用hwd()?我没有收到任何错误,因为代码尚未完成,我无法执行它,但是是和否Etan我希望它调用hole函数,但希望在第一次迭代时调用hwd()。非常感谢。最后一个1工作得很好,现在我需要做的就是添加一个暴徒/砾石检测位,也许还可以对手电筒进行block lite检测。现在我可以对我的乌龟剧本做最后的润色了。我对你感激不尽。