From 36f79938cf83a7aa17ae66064fbdbde2ef0b9e98 Mon Sep 17 00:00:00 2001 From: Jrc13245 Date: Thu, 22 Jan 2026 13:45:21 -0500 Subject: [PATCH] fix nofirstaction --- Core.lua | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/Core.lua b/Core.lua index d83bd62..0c86fb6 100644 --- a/Core.lua +++ b/Core.lua @@ -1309,11 +1309,21 @@ function CleveRoids.ExecuteMacroBody(body,inline) -- stopMacroFlag: stop this AND parent macros -- skipMacroFlag: stop only this macro (parent continues) if not cmdHandled and (CleveRoids.stopMacroFlag or CleveRoids.skipMacroFlag) then - if CleveRoids.macroRefDebug then - local reason = CleveRoids.stopMacroFlag and "/stopmacro" or "/skipmacro" - CleveRoids.Print("|cffff8800[MacroRef]|r Stopped at line " .. k .. " due to " .. reason) + -- If stopOnCastFlag is true, the stop was caused by the firstaction mechanism + -- Don't break the loop - just skip this line (allows /nofirstaction to be reached) + if CleveRoids.stopOnCastFlag and CleveRoids.stopMacroFlag and not CleveRoids.skipMacroFlag then + if CleveRoids.macroRefDebug then + CleveRoids.Print("|cffff8800[MacroRef]|r Skipping line " .. k .. " (firstaction mode)") + end + cmdHandled = true -- Skip this line but continue loop to allow /nofirstaction + else + -- This is a /stopmacro or /skipmacro stop - actually break + if CleveRoids.macroRefDebug then + local reason = CleveRoids.stopMacroFlag and "/stopmacro" or "/skipmacro" + CleveRoids.Print("|cffff8800[MacroRef]|r Stopped at line " .. k .. " due to " .. reason) + end + break end - break end if not cmdHandled then