Elitist Jerks
Register
Blogs
Chat
Forums
New Posts


Go Back   Elitist Jerks > Public Discussion > User Interface and AddOns

Welcome to Elitist Jerks
If this is your first visit, please be sure to check out the FAQ and the forum rules. Users must register to post and new registrations are subject to a one day "mute" period to get acquainted with the community. To start viewing messages, select the forum that you want to visit from the selection below.

Reply
 
LinkBack Thread Tools
Old 08/06/08, 7:55 PM   #1 (permalink)
Piston Honda
 
Human Priest
 
Alonsus (EU)
Frame sensitive mouse over casting

I've been looking for a specific addon that allows me to define the frames for which mouseover casting should work.

I'm using macros like this one currently:
#showtooltip
/cast [target=mouseover,exists] Greater Heal(Rank 7); Greater Heal(Rank 7)
The above works fine for most situations, but there are circumstances in which I need to simply cast on my current target (when moving, when seeing all buffs/debuffs on a tank is important) and then the mouseover part of the macro can become a problem, as sometimes players tend to move onto my mouse cursor catching the heal that was intended for someone else.

Unfortunately Blizzard's simply mouseover casting system doesn't allow me to specify that I don't want it to work on the WorldFrame, but just on my Grid. (before anyone suggests Clique, it's built for click-casting)

Any suggestions?
 
User is offline.
Reply With Quote
Old 08/06/08, 8:53 PM   #2 (permalink)
Glass Joe
 
Draenei Shaman
 
Kil'Jaeden
#showtooltip Chain Heal(Rank 4)
/cast [help] Chain Heal(Rank 4); [target=mouseover,exists,help ]Chain Heal(Rank 4); [target=player] Chain Heal(Rank 4);

You can use that macro and it should work fine for what you are trying to do. If you have a friendly target selected it will heal that person, if not then your mouse over target and lastly yourself if neither of the first two apply. Obviously just replace Chain heal 4 with the spell you want.
 
User is offline.
Reply With Quote
Old 08/06/08, 9:25 PM   #3 (permalink)
Piston Honda
 
Human Priest
 
Alonsus (EU)
Originally Posted by Kattwillz View Post
#showtooltip Chain Heal(Rank 4)
/cast [help] Chain Heal(Rank 4); [target=mouseover,exists,help ]Chain Heal(Rank 4); [target=player] Chain Heal(Rank 4);

You can use that macro and it should work fine for what you are trying to do. If you have a friendly target selected it will heal that person, if not then your mouse over target and lastly yourself if neither of the first two apply. Obviously just replace Chain heal 4 with the spell you want.
The macro works fine as long as no target is selected. I want to avoid deselecting people before I can do mouseover casting though.
 
User is offline.
Reply With Quote
Old 08/07/08, 1:03 AM   #4 (permalink)
King Hippo
 
Human Paladin
 
Blackrock
Use a modifier like alt, ctrl, shift for the edge case where you want to heal your target but have something else moused over.

Also you can use empty [] which just means default behaviour to save characters instead of having "Greater Heal(Rank 7) " again

/cast [target=target,exists,modifier:ctrl] [target=mouseover,exists] [] Greater Heal(Rank 7)

The universe is run by the complex interweaving of three elements. Energy, matter, and enlightened self-interest.

www.retpaladin.com
 
User is offline.
Reply With Quote
Old 08/09/08, 5:54 AM   #5 (permalink)
Don Flamenco
 
Miaxi's Avatar
 
Troll Shaman
 
Al'Akir (EU)
RDX allows different mouse binds for each of it's windows.

(Other than that, Clique can be toggled to work only for certain windows.)
 
User is offline.
Reply With Quote
Old 08/09/08, 6:12 AM   #6 (permalink)
In the middle of my backswing?!
 
nj00s's Avatar
 
Tauren Druid
 
Al'Akir (EU)
Originally Posted by Miaxi View Post
RDX allows different mouse binds for each of it's windows.

(Other than that, Clique can be toggled to work only for certain windows.)
Both of those would be a click to cast thing though, he doesn't want that.
 
User is offline.
Reply With Quote
Old 08/12/08, 7:49 AM   #7 (permalink)
Your death only adds to my failure
 
Cadfael's Avatar
 
Blood Elf Priest
 
Al'Akir (EU)
I don't think this is currently possible. Mouseover does not distinguish worldframe and unitframes. If you truly want this functionality, I fear you have to convince Blizzard to implement a mouseoverui target selector.
 
User is offline.
Reply With Quote
Old 08/12/08, 10:46 AM   #8 (permalink)
Piston Honda
 
Human Priest
 
Alonsus (EU)
Originally Posted by Cadfael View Post
I don't think this is currently possible. Mouseover does not distinguish worldframe and unitframes. If you truly want this functionality, I fear you have to convince Blizzard to implement a mouseoverui target selector.
Some action bar addons, like Trinitybars, allow me to set a macro for a certain button. Shouldn't it be possible to make a modification of Trinitybars that only uses that macro if the mouseover=GridPlayerFrame and otherwise just casts a spell normaly?
 
User is offline.
Reply With Quote
Old 08/13/08, 5:31 AM   #9 (permalink)
Von Kaiser
 
Night Elf Druid
 
Dalaran (EU)
It's not possible. There is no distinction between a mouseover in the 3D world and a mouseover that is in fact a unit frame, and it's not possible to add one, as we simply can't modify the content of a macro in combat.
 
User is offline.
Reply With Quote
Old 08/13/08, 7:50 AM   #10 (permalink)
Your death only adds to my failure
 
Cadfael's Avatar
 
Blood Elf Priest
 
Al'Akir (EU)
Originally Posted by Shan View Post
Some action bar addons, like Trinitybars, allow me to set a macro for a certain button. Shouldn't it be possible to make a modification of Trinitybars that only uses that macro if the mouseover=GridPlayerFrame and otherwise just casts a spell normaly?
No that all works differently. There are two parts at play here, one is the macro system with its mouseover selector. The other is the UI/Addon system where we can influence stuff but only within certain limits. Since 2.0 there are severe limitations in place to prevent what Blizzard calls automation. It prevents player addons to change targets/spells, etc. while in combat.

Now addons are free to preset certain actions while not in combat. That is what all your addons do that have clickable spells or targets. A unit frame addon for example sets up and draws a unit frame and then tells that frame "your target is player Shan". This works since unit frames must inherit a specific base class which is from Blizzard and provides such an interface. Now as soon as we're in combat, the unit frame becomes "locked", meaning any call to that unit frame to set dynamically another player will fail, because that's not allowed now. Any action happening "on that frame" will happen with that target preset, in this case the player Shan. The unit frame does this by something called attributes; they can be set and manipulated while out of combat and there are several of these. They simply set what they are watching for or what their function should be or their reaction if they are clicked, etc.

Now this all is what we can manipulate as long as we're out of combat. As soon as we enter combat, we can't change them, so they should then be set up well. In your case, you want specific actions happen to specific players (you want to heal the respective party member).

But now comes the macro system with your mouseover macro. How does that tie in ? Macros have other capabilities and limitations than the addon system. They are actually very limited but with a few nice tricks allow yet many things to be made possible. One are the selectors. Since we can't formulate if then else conditions in macros with things like spellcasts or targets, we need another mechanism and the target selectors come into play here. They allow a limited form of a decision to be made what should happen. Now you want to use the mouseover selector to signify that the unit you are hoovering above with the mouse should be the target. Now if your mouse is over a unit frame when you press a button which executes a macro with mouseover, the WoW client is evaluating what it should do. At one point it arrives at mouseover and needs to find a target. So it goes to see where the mouse is. It's over a unit frame, so it goes and reads out the attribute "target" that was set prior to entering combat at one time by the addon. It tells the client "my target is Shah" and now the macro system knows that it should target the spell to the player "Shah" and does so. That's what you want and it does work.

But if you happen to have your mouse lingering over no UI/Frame element but over the 3D world, then you might still be targeting a player there. If that is the case, the WoW client will know who it is and will take him as target, because you told the macro system to give the target you are mousing over. Due to various exploit possibilities, it is completely impossible to manipulate anything in the 3D world display. We can't do anything there. This means that if your mouse cursor is not over a UI Frame, then it is over the 3D world frame and if it happens to be over a targetable thing there, that will be the target and the macro system will use this target even if you want it not to.

There are 2 solutions to this problem, one is, as I wrote above, that you get Blizzard to implement another mouseover targeting selector that will never ever return a target from the 3D world. The other approach is to write an addon that overlays the 3D world with a transparent frame you can see through that catches the mouse. Set this "layer" so that the other UI elements are above it and thus still work with their own mouse targets. The problem with this now is though that you can't switch this on and off in combat as you please. That means it would be always active and prevent you from ever targeting anything in the 3D world when you are in combat. This means it would perhaps prevent you from ever clicking cubes at the Magtheridon encounter and such things as it sucks up mouse events. You can't take a portal from Kalecgos, the mouse clicking doesn't get through, etc.

Furthermore, it would have to be set to return "no one" as target to work and this may cause the macro system to not try to evaluate the next target selector in your macro but to try to cast the spell with an explicitly set target=no one as if the spell would require no target and then the casting fails for targeted spells like heals. There might be a difference between a frame giving back nothing as target to the mouseover selector and the mouse being not over any frame and not over any object in the 3D world. I don't know if that is differentiated by the macro system but it could be.

Anyway, what you would like is just not possible with the limitations in play right now, unless I misunderstood your request or some subtle details in the Addon and Macro systems.

What Clique does by the way is simply set the correct attributes for the selected spells on the unit frames, either on all of them or only those you chose
 
User is offline.
Reply With Quote
Old 08/13/08, 9:41 AM   #11 (permalink)
Von Kaiser
 
Night Elf Druid
 
Dalaran (EU)
After thinking about it a little bit more, and looking at the SecureStateHeader code, I think that the functionnality that you are describing is possible, although no addon that I know of implements it.

With the SecureStateHeader, it is possible to modify the key bindings "on the fly", so that you could have a fixed set of keys that are set to specific clics on a SecureActionButton. This is pretty arcane stuff, though. I seriously doubt that anyone would try to implement this. Moreover, the SecureStateHeader is deprecated for a new secure interface in wotlk, that is still WIP.

So, to be honest, in theory, it might be possible to have something that works as if it were a mouseover macro only for a specific unit frame, but it's quite hard to do, nobody's done it AFAIK, and it's going to change anyway.
 
User is offline.
Reply With Quote
Old 08/13/08, 12:20 PM   #12 (permalink)
Your death only adds to my failure
 
Cadfael's Avatar
 
Blood Elf Priest
 
Al'Akir (EU)
With the secure state header you can switch out actions on your action bar based on things like modifier key presses (shift, alt, ctrl) as well as stance changes of your char. But the modifier keys can more easily be included in the macro and that was suggested already but still is not the same thing. It requires pressing a modifier key or some other rather cumbersome action.

If I understand the request from Shan correctly, this is not what he wants. He simply wants a mouseover that ignores the 3D gameworld and reacts solely on the unit frames (his GUI). And not a solution that involves pressing another key. SecureHeaders won't help here, they change attributes on the UI elements. But the UI elements already work exactly like he wants it to. He wants the non-UI element behaviour changed.
 
User is offline.
Reply With Quote
Old 08/13/08, 12:38 PM   #13 (permalink)
Von Kaiser
 
Night Elf Druid
 
Dalaran (EU)
Secure Header allow to change key binding using the SetOverrideBindingClick() API. What it should be able to do is, upon entering a UnitFrame, override the key binding '1' for instance to correspond to a Left-click on the frame, '2' to correspond to a Right-click, and so forth, and remove theses bindings when leaving the frame. Using Clique or directly the frame attributes, you can change the spell being cast on the unit frame depending on the click, and so, as I said, have the combination of secure header and unit frame act as if you were using several mouseover macros. (for '1', '2', ...)
 
User is offline.
Reply With Quote
Old 08/13/08, 12:55 PM   #14 (permalink)
Piston Honda
 
Human Priest
 
Alonsus (EU)
He simply wants a mouseover that ignores the 3D gameworld and reacts solely on the unit frames (his GUI). And not a solution that involves pressing another key.
Correct.
 
User is offline.
Reply With Quote
Old 08/14/08, 9:18 AM   #15 (permalink)
Piston Honda
 
Ajuga's Avatar
 
Draenei Hunter
 
Stormscale (EU)
If you go into Clique and bind Flash Heal to Shift+Left-Click and then bind Q to Shift+Left-Click through your keyboard software. Will Q then work as you want it to?

I'm not a frequent Clique user, so the above is untested and can be utterly useless.
 
User is offline.
Reply With Quote
Old 08/14/08, 9:29 AM   #16 (permalink)
Piston Honda
 
Human Priest
 
Alonsus (EU)
Originally Posted by Ajuga View Post
If you go into Clique and bind Flash Heal to Shift+Left-Click and then bind Q to Shift+Left-Click through your keyboard software. Will Q then work as you want it to?

I'm not a frequent Clique user, so the above is untested and can be utterly useless.
It would probably easier to modify Clique to accept any keybinding, if that's possible at all. does anyone know if this would be feasible?
 
User is offline.
Reply With Quote
Old 09/09/08, 8:41 PM   #17 (permalink)
Glass Joe
 
Undead Warlock
 
<Og>
Burning Legion
Edit: Completely missed somebody saying exactly what I just said, sorry for the wasted post.
 
User is offline.
Reply With Quote
Reply

Go Back   Elitist Jerks > Public Discussion > User Interface and AddOns

Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Looking for Unit Frame Addon Ruqas User Interface and AddOns 5 05/01/08 10:09 AM
My raid frame is tainted again Arawethion User Interface and AddOns 2 07/19/07 12:37 AM
What's this unusual frame? PapaShlapa User Interface and AddOns 6 05/31/07 6:19 PM
Strange issue with mouse responsiveness (in-game) Tunch Public Discussion 2 07/24/06 8:03 AM