Originally Posted by
Mpzor
I dont see any difference with yours and mine except for the extra ")" in the end, so is that all? But except for that it looks good?

Think I understand if it is
EDIT: Why wont this or the previous code work? I added the extra ")" in the end so its not that.
Code:
local _, BlackArrowCD = GetSpellCooldown(3674)
if IsSpellInRange(GetSpellInfo(3044), "target") ~= 1 then return false end
F_SwitchToHawk()
if BlackArrowCD > 4 and UnitPower("player") > 22 then return true end
Code:
local _, ExplosiveShotCD = GetSpellCooldown(53301)
if IsSpellInRange(GetSpellInfo(3044), "target") ~= 1 then return false end
F_SwitchToHawk()
if ExplosiveShotCD > 4 and UnitPower("player") > 22 then return true end
it uses AS way to often, almost like its ignoring the and in the code so it casts AS if the power is at 22 or higher...
try nesting them
Code:
if BlackArrowCD > 4 and UnitPower("player") > 22 then return true end to this
if UnitPower("player") > 22 then
if BlackArrowCD > 4 then return true end
else
return false
end
however i see another issue thats minor you need to check the cd time with the current time so try this:
Code:
if BlackArrowCD - GetTime() > 4 and UnitPower("player") > 22 then return true end
just a note if you need to track anthing with a timer or duration it prob needs a GetTime() call to compare it to the if then check.