Lua 调用同一函数中的函数以尝试捕获循环中的失败

Lua 调用同一函数中的函数以尝试捕获循环中的失败,lua,Lua,当我在手机上运行此代码时,它会执行每一步,然后当它发现故障时,它会返回到代码的开头,然后报警。我想要它做的是按照它一直在做的方式运行每个函数,但是,只是在最后一个函数运行时提醒我。在代码末尾打印日志 --Step 1 Open Quests questopen = function() log("Opening Quests") local step1 = getColor(64, 803) log("Fetched Quest Icon") if step1 == 9127481

当我在手机上运行此代码时,它会执行每一步,然后当它发现故障时,它会返回到代码的开头,然后报警。我想要它做的是按照它一直在做的方式运行每个函数,但是,只是在最后一个函数运行时提醒我。在代码末尾打印日志

--Step 1 Open Quests
questopen = function()
  log("Opening Quests")
local step1 = getColor(64, 803)
  log("Fetched Quest Icon")
  if step1 == 9127481 then
    tap(64, 803)
    log("Matched Quest Icon")
    else
    log("Failed Quest Icon")
    alert("Out of Sync - Check Logs for failure")
    collectgarbage()
    end
  end

--Step 2 Accept Quest
questaccept = function()
  log("Accepting Quest")
  local step2 = getColor(426, 1004)
  log("Fetched Accept Quest")
  if step2 == 2300441 then
    tap(426, 1004)
    log("Matched Accept Quest")
    else
    log("Failed Accept Quest")
    collectgarbage()
    questopen()
    end
  end

--Step 3 Skip Dialogue
skip = function()
  log("Skipping Dialogue")
  local step3 = getColor(564, 1083)
  log("Fetched Skip Dialogue")
  if step3 == 2300441 then
    tap(564, 1083)
    log("Matched Skip Dialogue")
    else
    log("Failed Skip Dialogue")
    collectgarbage()
    questaccept()
    end
  end

--Step 4 Quest Confirm
confirm = function()
  log("Confirming Quest")
  local step4 = getColor(124, 578)
  log("Fetched Confirm Quest")
  if step4 == 15921906 then
    tap(124, 578)
    log("Matched Confrim Quest")
    else
    log("Failed Confirm Quest")  
    collectgarbage()
    skip()
    end
  end

--Step 5 Quest Go
go = function()
  log("Quest Go")
  local step5 = getColor(424, 990)
  log("Fetched Quest Go")
  if step5 == 13750737 then
    tap(424, 990)
    log("Matched Quest Go")
    else
    log("Failed Quest Go")
    collectgarbage()
    confirm()
    end
  end 

questopen()
usleep(3000000)
questaccept()
usleep(3000000)
skip()
usleep(3000000)
confirm()
usleep(3000000)
go()
usleep(3000000)
我专门设计了它来测试检测方法,所以我希望它在
步骤2接受任务时失败。但是目前我想要一种更好的错误检测方法,我想要警报。但它会提醒每一次失败

我希望代码在第一次失败时向后运行,但我不希望它同时继续向前运行,错误报告将显示这一点


我的印象是,您的问题可能是由于您使函数相互调用的方式,而不是因为特定于磷化氢的问题。你认为你可以用简单的Lua来解决你的问题,这样我们就可以更容易地运行它了吗?顺便说一句,Lua在葡萄牙语中的意思是“Moon”,所以只有第一个字母应该大写:)我觉得你的问题可能是因为你让函数调用彼此的方式,而不是因为phose特定的问题。你认为你可以用简单的Lua来制作你的问题的独立版本,这样我们可以更容易地运行它吗?顺便说一句,Lua在葡萄牙语中的意思是“月亮”,所以只有第一个字母应该大写:)