魔兽世界插件帮助-鼠标悬停单位的反应

我最后一次创建插件是在大地的裂变版本之前。已经过了很长时间。我现在才开始重新涉足。我只是试图编写一个非常基本的插件,用于取消使用右键攻击。

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)

我有的代码应该是有效的(据我所知)-但它没用。代码始终返回Unknown & 10。如果我将 mouseover 更换为 player,它可以正常工作(但实际上并没有给我所需的数据)。

此外,如果我更换并接入OnMouseDown,它也可以工作,但是我就不能真正中断攻击了。

如果您有任何关于为什么它不起作用或如何修复它的见解,将不胜感激...另外,如果有更好的方法,我很乐意倾听。

点赞
用户1297035
用户1297035

UnitName("mouseover") 当有任何鼠标按钮被按下时确实返回 nil

这是一个相当聪明的想法,可防止通过点击鼠标攻击敌对单位。但它可能不起作用,因为 Blizzard 真的确保保护了与 WorldFrame 有关的任何可能被滥用的东西。

https://wow.gamepedia.com/API_GetCursorInfo 遗憾的是,它也没有返回鼠标指针当前是否为剑形图标,只有当它持有某些东西时才会返回。

2020-12-14 01:35:26