TimothyLuke / GSE-Advanced-Macro-Compiler

GSE is an alternative advanced macro editor and engine for World of Warcraft.
https://discord.gg/gseunited
MIT License
216 stars 73 forks source link

[BUG] GSE Macro Issue: 'Reaver's Glaive' Incorrectly Triggers 'Throw Glaive' Causing GCD Conflict #1619

Closed ArpaCat closed 2 months ago

ArpaCat commented 2 months ago

🔵 Describe the bug: In the World of Warcraft Demon Hunter talent tree, there's a talent called "Reaver's Glaive," which seems to be different from the "Throw Glaive" skill. I created a macro in the World of Warcraft macro editor, and it works as intended because "Reaver's Glaive" has no global cooldown (GCD), allowing it to be combined with "Fracture" in the same macro:

#showtooltip
/cast Reaver's Glaive (no GCD)
/cast Fracture

When the conditions for "Reaver's Glaive" are met, the macro triggers "Reaver's Glaive" first, followed by "Fracture." It requires two presses of the macro. If "Reaver's Glaive" conditions are not met, the macro skips "Reaver's Glaive" and directly triggers "Fracture."

However, when using the same macro in GSE (Gnome Sequencer Enhanced), if the conditions for "Reaver's Glaive" are not met, it instead triggers "Throw Glaive" rather than skipping "Reaver's Glaive" and directly triggering "Fracture" as it does in the World of Warcraft macro editor. Because "Throw Glaive" has a global cooldown, it prevents "Fracture" from being triggered in GSE, even though the animation might show, the skill does not actually trigger.

🔵 To reproduce: (Steps to reproduce the behavior)

  1. First, create the following macro in the World of Warcraft in-game macro editor:
#showtooltip
/cast 收割者战刃 (Reaver's Glaive) - This can be done when the conditions for "Reaver's Glaive" are met. Then, use shift + right mouse button click to auto-paste the spell from the spell book (hotkey "P") into the macro.
/cast 破裂 (Fracture)
  1. Test this macro by casting it on a target dummy. Notice that it functions as expected when "Reaver's Glaive" is available and correctly skips to "Fracture" when "Reaver's Glaive" is unavailable.

  2. Next, copy the same macro (without #showtooltip) and paste it into the GSE (Gnome Sequencer Enhanced) macro editor.

  3. Cast the macro on a target dummy using GSE.

  4. Observe the behavior. In GSE, if "Reaver's Glaive" conditions are not met, it incorrectly triggers "Throw Glaive" instead of skipping directly to "Fracture," leading to a GCD conflict that prevents "Fracture" from being activated.

🔵 The error: No Erro massage 🔵 Screenshots: If applicable, add screenshots to help explain your problem.

🔵 Expected behavior: Expected Behavior:

When using the macro in both the World of Warcraft in-game macro editor and GSE:

  1. If "Reaver's Glaive" conditions are met:

    • The macro should first cast "Reaver's Glaive," followed by "Fracture" when the macro is pressed twice.
  2. If "Reaver's Glaive" conditions are not met:

    • The macro should skip "Reaver's Glaive" and directly cast "Fracture" without attempting to trigger "Throw Glaive" or any other ability.
    • There should be no Global Cooldown (GCD) conflict, ensuring "Fracture" is successfully cast regardless of the availability of "Reaver's Glaive."

🔵 GSE.lua file: Please provide your GSE.lua file or the export string for the specific macro that is causing an issue.

🔵 Desktop (please complete the following information):

🔵 GSE Version:

🔵 Additional context: None

TimothyLuke commented 2 months ago

Its not GSE thats doing this its WoW. WoW Macrotext in a mod like GSE apparently has some quirks that we have to manage and simply work around. GSE Doesnt execute your sequence - it simply sends teh commands to WoW to execute. THe solution to this problem is to /use Reaper's Glaive rather than cast. It does also mean that if you share this sequence someone will need to translate individually.

TimothyLuke commented 2 months ago

As this isnt directly a GSE Bug - moving it to the discussion area.