Anthony Nichols
Anthony Nichols

Reputation: 1668

WoW Addon Help - Unit Reaction of MouseOver

I last created Mods back before Cataclysm. It's been a long time. Just now getting back into it. I'm just trying to write a very basic mod that cancels attacking with the right mouse button.

WorldFrame:HookScript("OnMouseUp", function(self, button)
    if button == "RightButton" then
        local mouseoverName = UnitName("mouseover") or "Unknown";
        local reaction = UnitReaction("mouseover", "player") or 10;
        if reaction < 5 then            
            DEFAULT_CHAT_FRAME:AddMessage("Stopped Attack on: "..mouseoverName);
            MouselookStop();
        else
            DEFAULT_CHAT_FRAME:AddMessage(mouseoverName.." is friendly! "..reaction);
        end
    end
end) 

The code I have should be working (from what I can tell) - but it's not. The code always returns Unknown & 10. If I swap out mouseover for player it works fine (but doesn't actually give me the data I need).

Also, if I swap out and hook-into OnMouseDown it also works, but then I can't actually interrupt the attack.

Any insight on why it's not working or how to fix it would be appreciated... Also if there is just a better way to do things I'm all ears.

Upvotes: 0

Views: 952

Answers (1)

Ketho
Ketho

Reputation: 528

UnitName("mouseover") indeed returns nil while any mouse button is pressed.

This is quite a smart idea to prevent attacking hostile units with mouse click. It probably doesn't work because Blizard really made sure to protect any possible thing to do with the WorldFrame that could be abused.

https://wow.gamepedia.com/API_GetCursorInfo sadly also doesn't return if the cursor is currently the sword icon, only if it's holding something.

Upvotes: 0

Related Questions