Download
(153Kb)
Download
Updated: 03-16-21 05:13 PM
Pictures
File Info
Compatibility:
Shadowlands patch (9.0.5)
Shadowlands patch (9.0.2)
Shadowlands pre-patch (9.0.1)
Updated:03-16-21 05:13 PM
Created:08-04-10 07:07 PM
Downloads:28,591
Favorites:50
MD5:
Categories:Discontinued and Outdated Mods, Combat Mods, Unit Mods

ImpliedTarget  Popular! (More than 5000 hits)

Version: 1.3.16
by: Vrul [More]

This addon only works with action buttons provided by the default UI. Support for other action bar addons may be found in the Other Files tab.

Macros allow you to change the ability that you use based on whether your target is friend or foe. This addon allows you to do the opposite, change the target of an ability based on whether that ability is harmful or helpful. Support for custom paging of the main action bar is also provided (may be disabled by another addon).


Anyone with several macros similar to:

/cast [harm, nodead] [@targettarget, harm, nodead] [@mouseover, harm, nodead] [@pettarget, nodead] HarmfulSpell

or

/cast [@mouseover, help, nodead] [help, nodead] [@targettarget, help, nodead] [@player] HelpfulSpell

can instead set up a targeting priority and apply it to all of your action buttons without wasting a single macro.


To further enhance your mouseover targeting, two additional options are provided. @unitframe can be used in place of @mouseover to target a unit only if it is a unit frame. Similarly, @unitmodel can be used to target only units that are in the 3D world.


Note: Target behavior is only changed for spells and items placed directly into an action button.

Translators: To submit a translation please just edit an existing file (ImpliedTarget\Locales.lua or ImpliedTarget_Config\Locales\deDE.lua) and send it to me.

Developers: If you would like to make ImpliedTarget work with your addon then see the API below and look at how it was done for other addons in the Other Files tab.


API (these functions may be called in combat, but their effects won't happen until combat has ended)

ImpliedTarget.DisableKeyBinding()

Forces ImpliedTarget to disable it's key binding code and allow it to be garbage collected. Only call this if your addon will be providing this functionality.


ImpliedTarget.DisablePaging()

Forces ImpliedTarget to disable it's paging code for the primary action bar and allow it to be garbage collected. Only call this if your addon will be providing this functionality.


ImpliedTarget.AddButton(button [, bind])

Allow ImpliedTarget to alter the behavior of an action button.

Arguments:

button - (table or string) An action button or name of an action button.

bind - (string) The name of the key bind for the action button.
Returns:
button - (table or nil) If successful the action button is returned, otherwise nil.

ImpliedTarget.RemoveButton(button)

Prevent ImpliedTarget from altering the behavior of an action button.

Arguments:
button - (table or string) An action button or name of an action button.
Returns:
button - (table or nil) The action button if it was removed, nil if the action button had not been previously added.

Version 1.3.15 (12/13/2020)
- Corrected hunter ability Binding Shot not being flagged as GTAoE
- Added option to improve @mouseover responsiveness

Version 1.3.15 (12/13/2020)
- Fixed paladin Night Fae covenant ability Blessing of Seasons
- Added legendary effects
- Disabling an individual ability should now work as expected

Version 1.3.14 (12/08/2020)
- Updated various actions
- Initial implementation of option to modify individual abilities [WIP]

Version 1.3.13 (09/27/2020)
- Updated various actions

Version 1.3.12 (10/03/2018)
- Changed Discipline Priest's Mindbender from 'help' to 'harm'
- Defaulting to UseAction for non-GTAoE abilities and CastSpellByID for GTAoE abilities

Version 1.3.11 (10/02/2018)
- Added Void Bolt to the Shadow Priest list of spells

Version 1.3.10 (09/30/2018)
- Fix to make actions more closely follow default behavior with regards to starting auto-attack

Version 1.3.9 (09/29/2018)
- Change for weird inconsistent behavior between CastSpellByID and CastSpellByName

Version 1.3.8 (09/29/2018)
- Included missing library file and toc info for LibDataBroker-1.1
- Added Locales.lua to help with anyone wanting to translate

Version 1.3.7 (09/28/2018)
- The modules for Bartender4 and Dominos are now their own addons and available separately
- Removed the Monk ability Chi Wave from the list of targeted actions
- Fixed the option for manual targeting preventing the use of auto-targeting and non-targeted actions
- Merged the Help options Auto and Manual into the drop-down Default
- Corrected an issue with item/spell names not being available until after a UI reload
- Added a LDB plugin
- Library update

Version 1.3.6 (08/27/2018)
- Fixed an error with converting GTAoE settings

Version 1.3.5 (08/26/2018)
- Changed the scope of some variables in ImpliedTarget_Config that were being leaked globally
- Corrected an issue with applying queued commands after combat
- Fixed an issue with detecting specialization changes for applying Harm Priority
- Added a "Manual" option to Harm, Help, Rez, and GTAoE to allow explicit cursor targeting
- Reworded some stuff in the options

Version 1.3.4 (07/24/2018)
- Updated for 8.0
- Reworked how some things are processed behind the scenes
- Added support for ground targeted area of effect (gtaoe) abilities (manually added only)

Version 1.3.3 (02/08/2018)
- Fixed error when assigning custom parameters

Version 1.3.2 (01/21/2018)
- Corrected the classification of the Warlock ability "Phantom Singularity" from 'help' to 'harm'
- Fixed errors with harm priority and roles

Version 1.3.1 (09/02/2017)
- Updated for 7.3

Version 1.3 (07/18/2016)
- Updated for 7.0
- Significant reworking of how things are done behind-the-scenes
- Added a feature to prioritize harm/help for dual-role abilities based on role

Version 1.2.2 (10/19/2014)
- Fix for key binds not working after a reload

Version 1.2.1 (10/14/2014)
- Updated for 6.0

Version 1.2 (10/31/2013)
- Resurrection abilities are now completely separate from helpful abilities in the options
- Improved the way secure unwrapping was done to avoid conflicts with other addons
- Changing the active key bind set now updates key binds so they will still work
- Fix to allow key binds to work with the pet battle UI
- Fix for key binds containing "[" or "]"
- The Grid integration option was replaced with a more universal solution: @unitframe, @unitmodel
- Moved Bartender4 and Dominos support into separate addons as examples for any addon author looking to incorporate ImpliedTarget support
- Added some auto-correction for minor errors in parameters that are manually entered

Version 1.1.7 (09/18/2013)
- Fixed key bind issues with ExtraActionButton and PetBattleUI
- Corrected an issue with changing Paging settings

Version 1.1.6 (06/23/2013)
- Added an option to disable resurrection abilities from working with implied targeting
- Corrected the spellID for the warlock spell Soul Stone
- Improved behavior with Grid integration
- Option based code optimization

Version 1.1.5 (06/14/2013)
- Fixed an error and a bug with Grid integration

Version 1.1.4 (06/13/2013)
- Resurrection abilities will now also work with implied targeting
- Added an option for Grid users

Version 1.1.3 (09/02/2012)
- Added options for excluding entire action bars from implied targeting

Version 1.1.2 (07/28/2012)
- Updated for MoP

Version 1.1.1 (12/10/2011)
- Added compatibility for Dominos

Version 1.1 (11/26/2011)
- Added compatibility for Bartender4
- Changed options to be easier for novice users (borrowed Bartender4's style)

Version 1.0.5 (01/11/2011)
- Correct an issue with some empty vehicle buttons

Version 1.0.4 (01/04/2011)
- Fix for key binds that contain characters that have special meaning for Lua's format function

Version 1.0.3 (12/24/2010)
- Ignore spells that can't be identified as harmful or helpful (fixes errors with vehicle abilities)

Version 1.0.2 (10/13/2010)
- Updated for 4.0

Version 1.0.1 (08/06/2010)
- Fixed a bug when changing key binds for the main action bar

Version 1.0 (08/04/2010)
- Initial release
Optional Files (3)
File Name
Version
Size
Author
Date
Type
1.0.1
918B
12-08-20 11:43 PM
Addon
1.0
1kB
09-27-18 04:42 PM
Addon
2.0
2kB
08-06-18 12:36 PM
Addon


Post A Reply Comment Options
Unread 11-21-22, 08:24 AM  
iambanana2
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Re: Clicked

Originally Posted by FerretOnline
OK I found: https://www.wowinterface.com/downloa...3-Clicked.html

Does everything and more, but a little longer to setup.
That's what I also ended up finding and having to use to replace ImpliedTarget. It does save macro slots but doesn't save time especially since you have to manually keybind every ability in the addon.
Report comment to moderator  
Reply With Quote
Unread 11-18-22, 02:06 PM  
FerretOnline
A Kobold Labourer

Forum posts: 0
File comments: 6
Uploads: 0
Clicked

OK I found: https://www.wowinterface.com/downloa...3-Clicked.html

Does everything and more, but a little longer to setup.
Last edited by FerretOnline : 11-18-22 at 02:08 PM.
Report comment to moderator  
Reply With Quote
Unread 11-17-22, 03:50 AM  
FerretOnline
A Kobold Labourer

Forum posts: 0
File comments: 6
Uploads: 0
Broken

So the changes to the Options menu in-game have broken LibOptionsAssist-1.1.lua, I think a sensible hack would be to just remove it and always load the config. The trouble is this is probably beyond my abilities
Report comment to moderator  
Reply With Quote
Unread 10-30-22, 05:10 AM  
iambanana2
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Update?

I'm really hoping there's an update for this for Dragonflight. I rely on this addon because Blizzard refuses to give us more macro slots and unfortunately the prepatch broke it entirely.

Edit: Okay it's started functioning again for no reason but I can't access the options for it.
Edit 2: False alarm. It was working for everything that had a target (be it ground, ally, or enemy) but was preventing me from casting any ability that requires no target (like Expel Harm, Exhilaration, etc).

Edit 3: Well I finally found a solution to the problem. The game was casting on keyup instead of keydown which was preventing ImpliedTarget from functioning properly.

Using
Code:
/console ActionButtonUseKeyDown 1
and then reloading the game allowed my ImpliedTarget to function as intended again.
Edit 4: As of the phase 2 prepatch "edit 3" no longer works for me and is broken again like mentioned in "edit 2". I can force the game to use KeyUp instead as a bandaid fix for now. Really hoping this addon gets updated for Dragonflight.
Last edited by iambanana2 : 11-15-22 at 08:36 PM.
Report comment to moderator  
Reply With Quote
Unread 11-09-21, 10:57 PM  
Erurainon
A Chromatic Dragonspawn
 
Erurainon's Avatar

Forum posts: 158
File comments: 5
Uploads: 0
Is there a version for...

...TBC Classic?
Report comment to moderator  
Reply With Quote
Unread 11-03-21, 12:59 AM  
Razko
A Defias Bandit
 
Razko's Avatar

Forum posts: 2
File comments: 24
Uploads: 0
9.1.5 made something case-senstive, so the definition of binds at the start of Buttons.lua has to be changed to
Code:
local binds = {
	ActionButton = 'ACTIONBUTTON',
	ExtraActionButton = 'EXTRAACTIONBUTTON',
	MultiBarBottomLeftButton = 'MULTIACTIONBAR1BUTTON',
	MultiBarBottomRightButton = 'MULTIACTIONBAR2BUTTON',
	MultiBarRightButton = 'MULTIACTIONBAR3BUTTON',
	MultiBarLeftButton = 'MULTIACTIONBAR4BUTTON',
--	OverrideActionBarButton = false												-- Shares key bind with ActionButton
}
To make the addon work for the main action bar and for the extra action button.

I'm not sure what actually changed, presumably it's that GetBindingKey() is now case-sensitive whereas it used to not be (testing it on BCC PTR, it's not case-sensitive there, but is case-sensitive on current retail patch).
Last edited by Razko : 11-03-21 at 01:21 AM.
Report comment to moderator  
Reply With Quote
Unread 10-17-21, 12:27 PM  
Razko
A Defias Bandit
 
Razko's Avatar

Forum posts: 2
File comments: 24
Uploads: 0
Hey again. So I've been fiddling about trying to switch to using default action bars or Dominos and found out that with ImpliedTarget my buttons would only fire on "key up" and never on "key down", even with the CVar for "trigger actions on key down" set to 1. I've also noticed that this works correctly with ElvUI and Bartender4 - if their actionbars are set to "trigger actions on key down" in their internal settings, they do work and ImpliedTarget correctly redirects the targets for those casts.

After looking around in the code, I noticed that addons that do the keybind overriding themselves (ElvUI and Bartender4) do a "button:RegisterForClicks("AnyDown")" for their "trigger actions on key down" settings, whereas ImpliedTarget KeyBinds.lua does not have this. So I simply added this to ImpliedTargets Buttons.lua and it works.

So I'm here to suggest to make ImpliedTarget support triggering actions on "key down". Could either be a separate toggle or just follow the CVar. Or at least warn the user that due to how this whole keybind remapping thing works, the on-key-down CVar becomes irrelevant. It just felt kinda bad to discover this suddenly after hours of playing with a "something feels wrong" feeling and then discovering that the CVar doesn't do anything in this setup.

However, with Dominos specifically, there is another problem. The action buttons that are part of Blizzards UI (i.e. the first 60 action id's) work fine, but the rest (the latter 60 id's that Dominos creates its own button frames for) do not fire on key down. They will still work on-key-up if you also register "AnyUp" for clicks, but if you register only "AnyDown" they don't work at all. This is because Dominos changes the button name for hotkey bindings to "HOTKEY" (the commands are set to "CLICK %s:HOTKEY") in order to differentiate executions with binds versus executions with left clicking the frame, which is then filtered to only allow on-key-down executions for hotkey binds by checking the button name (the intent here is to make it so that buttons don't trigger on-key-down if the user clicks them with mouse, so that spells don't fire if you're just drag and dropping them around the bar). ImpliedTarget does change button name as well with the return value of the preClick script in 'Buttons.lua', which then gets filtered out and breaks all on-key-down code for those buttons.

I wasn't able to fix this other than simply disabling that bit in Dominos though, but I don't really understand how this whole mechanism works so maybe there's a better solution to support it too. (Can we maybe get away without returning ADDON_NAME in the preClick script? I tried changing it but it breaks ImpliedTarget.)

Edit: btw, ElvUI also tries to prevent on-key-down execution with left clicks for dragging things around, however it does it differently - it has a config entry for "hold this modifier to move spells around" and checks if its pressed before executing commands if they were done with left click. Bartender4 doesn't care and just fires spells while moving spells around though.

Default UI does have a "lock actionbars" setting and a "pick up action key" modifier that you must hold to pick up a button. Reading what this modifier is and then not allowing left click to trigger buttons if this modifier is being pressed would be the best design imho.

P.S.
Am I understanding correctly that we need the code in KeyBinds.lua to remap bindings to be "CLICK %s" commands rather than just direct binds in order for OnClick events to trigger? and some addons just already do this and that's why we can skip it for Bartender/ElvUI? Not related to anything above, just trying to understand how this works.
Last edited by Razko : 10-24-21 at 12:13 PM.
Report comment to moderator  
Reply With Quote
Unread 03-16-21, 05:16 PM  
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view AddOns

Forum posts: 404
File comments: 322
Uploads: 33
Originally Posted by Razko
Btw, noticed a little bug/misconfiguration - Binding Shot is marked as "harm" by default rather than "gtaoe". It's a ground targeted spell that you throw. Might confuse some people who just install this addon and their Binding Shot stops working.
I just uploaded a new version that changes Binding Shot to GTAoE and adds an option under the General tab (Improve Response) that just registers/unregisters UPDATE_MOUSEOVER_UNIT for SecureStateDriverManager.
Report comment to moderator  
Reply With Quote
Unread 03-15-21, 10:08 PM  
Razko
A Defias Bandit
 
Razko's Avatar

Forum posts: 2
File comments: 24
Uploads: 0
Btw, noticed a little bug/misconfiguration - Binding Shot is marked as "harm" by default rather than "gtaoe". It's a ground targeted spell that you throw. Might confuse some people who just install this addon and their Binding Shot stops working.
Report comment to moderator  
Reply With Quote
Unread 03-12-21, 10:12 AM  
Razko
A Defias Bandit
 
Razko's Avatar

Forum posts: 2
File comments: 24
Uploads: 0
Originally Posted by Vrul
Originally Posted by Razko
Am I going insane or is there some kind of technical limitation/polling rate here, and if there is, can it be tweaked?
It is a limitation of the SecureStateDriverManager. It is throttled to the rate of STATE_DRIVER_UPDATE_THROTTLE (which is 0.2 seconds). Certain events automatically bypass the throttle for the next OnUpdate but there is a comment in that section "Deliberately ignoring mouseover and others' target changes because they change so much." You could manually add the UPDATE_MOUSEOVER_UNIT event but it wouldn't quite have the impact you are looking for based on the details section. You can run this line of code in game, or add it to an addon, to see if it makes a difference:
Code:
SecureStateDriverManager:RegisterEvent("UPDATE_MOUSEOVER_UNIT")
It does seem to do exactly what I want it to do - casts seem more responsive with @unitframe now. What makes you say it wouldn't quite have the impact, though?

Also, the wiki article seems to be flat out wrong - it says that this event doesn't fire when hovering unitframes, but I made a WA that simply does a print() when this event fires, and it does seem to fire when I hover a unitframe. So logically I think this should accomplish exactly what I want, i.e. @unitframe should now work just as "fast" as @mouseover, unless @mouseover has something else that potentially makes it "faster"?
Last edited by Razko : 03-13-21 at 02:29 AM.
Report comment to moderator  
Reply With Quote
Unread 03-11-21, 09:15 AM  
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view AddOns

Forum posts: 404
File comments: 322
Uploads: 33
Originally Posted by Razko
Am I going insane or is there some kind of technical limitation/polling rate here, and if there is, can it be tweaked?
It is a limitation of the SecureStateDriverManager. It is throttled to the rate of STATE_DRIVER_UPDATE_THROTTLE (which is 0.2 seconds). Certain events automatically bypass the throttle for the next OnUpdate but there is a comment in that section "Deliberately ignoring mouseover and others' target changes because they change so much." You could manually add the UPDATE_MOUSEOVER_UNIT event but it wouldn't quite have the impact you are looking for based on the details section. You can run this line of code in game, or add it to an addon, to see if it makes a difference:
Code:
SecureStateDriverManager:RegisterEvent("UPDATE_MOUSEOVER_UNIT")
Report comment to moderator  
Reply With Quote
Unread 03-11-21, 12:54 AM  
Razko
A Defias Bandit
 
Razko's Avatar

Forum posts: 2
File comments: 24
Uploads: 0
Hey, so I've noticed something odd while trying to use @unitframe - it seems like there's a bit of a delay on it "detecting" that there's a unitframe under the cursor.

I've been using @mouseover macros for a very very long time now for dispelling or offhealing people with instants as a DPS player, and when I switched to this option in ImpliedTarget, I kept casting things on myself when I'm fully expecting them to go on my mouseover. It wasn't a one-time thing too, where I could say that this is just me screwing up or something, it was happening consistently.

So I've tried testing these things by quickly hovering and casting someting on a untiframe over and over, first with impliedtarget set to @unitframe, then with it set to @mouseover, and then with a normal @mouseover macro, and it does seem like @unitframe takes longer to realize there's a unitframe under the cursor (@mouseover via impliedtarget vs @mouseover via macro felt identical however, so it seems like this is just @unitframe related).

Am I going insane or is there some kind of technical limitation/polling rate here, and if there is, can it be tweaked?
Last edited by Razko : 03-11-21 at 01:05 AM.
Report comment to moderator  
Reply With Quote
Unread 03-09-21, 07:16 AM  
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view AddOns

Forum posts: 404
File comments: 322
Uploads: 33
Re: Nameplate Bug?

Originally Posted by allethargic
If you set mouseover to only work on nameplates it wouldn't work at all. Its quite critical for healers to avoid random wrong ally healing (because he stuck one pixel of his leg under your tank frame).
There isn't an option for only working on nameplates. The option "Unit Frames Only" is for any unit frame (PlayerFrame, TargetFrame, party/raid frames, nameplates...) and the option "Unit Models Only" is for the actual 3D graphics of a unit.

Originally Posted by allethargic
It's possible that this problem originates in ElvUI or ElvUI addon for ImpliedTarget, but I need confirmation. Looks like ElvUI addon wasn't updated from BfA, maybe that's the problem?
As long as ImpliedTarget_ElvUI is compatible with your version of ElvUI you should be fine. ImpliedTarget_ElvUI is not my addon and is not maintained by me so I have no idea on it's status. Either way that wouldn't affect your ability to cast on nameplates, only custom unit frames.
Report comment to moderator  
Reply With Quote
Unread 03-09-21, 04:01 AM  
allethargic
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Nameplate Bug?

I'm using this addon for a while now. After I started playing healers I noticed a problem though: If you set mouseover to only work on nameplates it wouldn't work at all. Its quite critical for healers to avoid random wrong ally healing (because he stuck one pixel of his leg under your tank frame).

It's possible that this problem originates in ElvUI or ElvUI addon for ImpliedTarget, but I need confirmation. Looks like ElvUI addon wasn't updated from BfA, maybe that's the problem?
Report comment to moderator  
Reply With Quote
Unread 12-26-20, 08:29 AM  
damigeinc987
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Played around with the addon and really like it. I have one question though... is it possible to get a macro that has the follow to work with your addon...

/cast [harm] spell
/cast [help] spell

or if you addon can do it is if my target is "helpful" cast a spell while doing the mouseover but if its a "harmful" cast a different spell.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: