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,803
Favorites:48
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 08-27-18, 06:22 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 nKweo
Getting these errors after the latest update
I just uploaded a new version (1.3.6) that should fix that error.
Report comment to moderator  
Reply With Quote
Unread 08-27-18, 02:56 AM  
nKweo
A Deviate Faerie Dragon
 
nKweo's Avatar

Forum posts: 16
File comments: 16
Uploads: 0
Getting these errors after the latest update when trying to acces the options:
Code:
Message: Interface\AddOns\ImpliedTarget\Convert.lua:117: attempt to index local 'settings' (a nil value)
Time: Mon Aug 27 10:50:19 2018
Count: 1
Stack: Interface\AddOns\ImpliedTarget\Convert.lua:117: attempt to index local 'settings' (a nil value)
Interface\AddOns\ImpliedTarget\Convert.lua:117: in function `func'
Interface\AddOns\ImpliedTarget\Convert.lua:5: in function <Interface\AddOns\ImpliedTarget\Convert.lua:3>
Interface\AddOns\ImpliedTarget\Convert.lua:115: in function `Convert'
Interface\AddOns\ImpliedTarget\Settings.lua:126: in function `?'
Interface\AddOns\ImpliedTarget\Core.lua:43: in function <Interface\AddOns\ImpliedTarget\Core.lua:42>

Locals: profile = <table> {
 rez = <table> {
 }
 help = <table> {
 }
 autoCorrect = 1
 paging = <table> {
 }
 harm = <table> {
 }
}
name = "Default"
settings = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'settings' (a nil value)"
Code:
Message: ...dProfiles\Libs\AceDBOptions-3.0\AceDBOptions-3.0.lua:346: table index is nil
Time: Mon Aug 27 10:51:59 2018
Count: 1
Stack: ...dProfiles\Libs\AceDBOptions-3.0\AceDBOptions-3.0.lua:346: table index is nil
[C]: ?
...dProfiles\Libs\AceDBOptions-3.0\AceDBOptions-3.0.lua:346: in function <...dProfiles\Libs\AceDBOptions-3.0\AceDBOptions-3.0.lua:335>
...dProfiles\Libs\AceDBOptions-3.0\AceDBOptions-3.0.lua:449: in function `GetOptionsTable'
Interface\AddOns\ImpliedTarget_Config\Core.lua:572: in main chunk
[C]: in function `LoadAddOn'
...e\AddOns\ImpliedTarget\Libs\LibOptionsAssist-1.1.lua:624: in function <...e\AddOns\ImpliedTarget\Libs\LibOptionsAssist-1.1.lua:620>
...e\AddOns\ImpliedTarget\Libs\LibOptionsAssist-1.1.lua:302: in function `func'
...e\AddOns\ImpliedTarget\Libs\LibOptionsAssist-1.1.lua:536: in function `Show'
Interface\FrameXML\InterfaceOptionsFrame.lua:28: in function `InterfaceOptionsList_DisplayPanel'
Interface\FrameXML\InterfaceOptionsFrame.lua:46: in function `InterfaceOptionsListButton_OnClick'
[string "*:OnClick"]:2: in function <[string "*:OnClick"]:1>

Locals:
Report comment to moderator  
Reply With Quote
Unread 08-26-18, 06:49 PM  
Gazzoose
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Re: Re: Re: Re: Config issues

Originally Posted by Vrul
Originally Posted by Gazzoose
I can see ImpliedTarget is loaded 'cause it has memory usage (About 176KB, according to my client) I can't imagine it would be relevant, but Swatter catches an error about the ElvUI compatability plugin regarding paging.lua, line 70, but even if I disable all addons but ImpliedTarget the behaviour still persists (albeit without the paging.lua error)

The only addon I couldn't disable was Addon Control Panel, as it doesn't have the option to actually disable itself, is there any other information I could provide?
I found what was causing the Paging.lua error on line 70 and that is also why you can't see options. That error occurs if the options panel and slash command were not created due to either not finding LibStub, LibOptionsAssist-1.1, or the addon ImpliedTarget_Config.

I know that LibStub and LibOptionsAssist-1.1 are running based on the test you already ran. Is your ImpliedTarget_Config folder missing? Try running this command in game:
Code:
/run print(GetAddOnInfo("ImpliedTarget_Config"))
If the addon is missing it will look like this:
Code:
ImpliedTarget_Config nil nil false MISSING INSECURE false
That does indeed appear to be the case, I must have extracted the addon wrong originally somehow, thanks for helping me diagnose the issue
Report comment to moderator  
Reply With Quote
Unread 08-26-18, 05:12 PM  
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view AddOns

Forum posts: 404
File comments: 322
Uploads: 33
Re: Re: Re: Config issues

Originally Posted by Gazzoose
I can see ImpliedTarget is loaded 'cause it has memory usage (About 176KB, according to my client) I can't imagine it would be relevant, but Swatter catches an error about the ElvUI compatability plugin regarding paging.lua, line 70, but even if I disable all addons but ImpliedTarget the behaviour still persists (albeit without the paging.lua error)

The only addon I couldn't disable was Addon Control Panel, as it doesn't have the option to actually disable itself, is there any other information I could provide?
I found what was causing the Paging.lua error on line 70 and that is also why you can't see options. That error occurs if the options panel and slash command were not created due to either not finding LibStub, LibOptionsAssist-1.1, or the addon ImpliedTarget_Config.

I know that LibStub and LibOptionsAssist-1.1 are running based on the test you already ran. Is your ImpliedTarget_Config folder missing? Try running this command in game:
Code:
/run print(GetAddOnInfo("ImpliedTarget_Config"))
If the addon is missing it will look like this:
Code:
ImpliedTarget_Config nil nil false MISSING INSECURE false
Report comment to moderator  
Reply With Quote
Unread 08-26-18, 12:52 PM  
Gazzoose
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Re: Re: Config issues

Originally Posted by Vrul
Originally Posted by Gazzoose
I've just started trying to use this addon (initially with ElvUI) and have run into several issues, the most important one to me right now is that I can't figure out how to access the config page as shown in the screenshots here. I can't see any button for it, and /impliedtarget returns the usual "Type /help for a listing of a few commands." message.

Am I missing something obvious?
First make sure ImpliedTarget is enabled (Main Menu -> AddOns -> ImpliedTarget). Next, go in game with ImpliedTarget enabled and run these commands in game (separately):
Code:
/run print(LibStub)
/run print(LibStub("LibOptionsAssist-1.1", true))
/run print(ImpliedTarget)
You should see something similar to the following if all is good:
Code:
table: 000001C6FCD0C7A0
table: 000001C6FCE1BE90 3
table: 000001C6FD9E1440
If the third one shows as "nil" then ImpliedTarget didn't even try to load and is likely disabled. If you don't see those "table" returns for all three then you may need to delete the ImpliedTarget folder and reinstall it as something is missing.

If everything looked good above then get an addon for errors (AmberAlert, BugSack, or Bugger (last two require !BugGrabber) and report any errors here.
All three commands ran fine and returned values similar to what you stated,

[19:47] table: 000001D4A70A4620
[19:47] table: 000001D4BEFE7A60 3
[19:47] table: 000001D4BF4D01D0
I can see ImpliedTarget is loaded 'cause it has memory usage (About 176KB, according to my client) I can't imagine it would be relevant, but Swatter catches an error about the ElvUI compatability plugin regarding paging.lua, line 70, but even if I disable all addons but ImpliedTarget the behaviour still persists (albeit without the paging.lua error)

The only addon I couldn't disable was Addon Control Panel, as it doesn't have the option to actually disable itself, is there any other information I could provide?
Report comment to moderator  
Reply With Quote
Unread 08-25-18, 01:16 PM  
Vrul
A Scalebane Royal Guard
 
Vrul's Avatar
AddOn Author - Click to view AddOns

Forum posts: 404
File comments: 322
Uploads: 33
Re: Config issues

Originally Posted by Gazzoose
I've just started trying to use this addon (initially with ElvUI) and have run into several issues, the most important one to me right now is that I can't figure out how to access the config page as shown in the screenshots here. I can't see any button for it, and /impliedtarget returns the usual "Type /help for a listing of a few commands." message.

Am I missing something obvious?
First make sure ImpliedTarget is enabled (Main Menu -> AddOns -> ImpliedTarget). Next, go in game with ImpliedTarget enabled and run these commands in game (separately):
Code:
/run print(LibStub)
/run print(LibStub("LibOptionsAssist-1.1", true))
/run print(ImpliedTarget)
You should see something similar to the following if all is good:
Code:
table: 000001C6FCD0C7A0
table: 000001C6FCE1BE90 3
table: 000001C6FD9E1440
If the third one shows as "nil" then ImpliedTarget didn't even try to load and is likely disabled. If you don't see those "table" returns for all three then you may need to delete the ImpliedTarget folder and reinstall it as something is missing.

If everything looked good above then get an addon for errors (AmberAlert, BugSack, or Bugger (last two require !BugGrabber) and report any errors here.
Report comment to moderator  
Reply With Quote
Unread 08-25-18, 09:42 AM  
Gazzoose
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Unhappy Config issues

I've just started trying to use this addon (initially with ElvUI) and have run into several issues, the most important one to me right now is that I can't figure out how to access the config page as shown in the screenshots here. I can't see any button for it, and /impliedtarget returns the usual "Type /help for a listing of a few commands." message.

Am I missing something obvious?
Report comment to moderator  
Reply With Quote
Unread 08-22-18, 10:56 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 nKweo
Sounds great! While you're at it, you may want to consider adding some spells to the 'rez' category. For instance, Misdirection (hunter) and Leap of Faith (priest) are 'help' spells that cannot be cast on self and thus are functionally equivalent to resurrection spells.
The category 'rez' is for spells that cast on [dead] targets so not going to change them that way. Spells like that are one of the reasons I'm adding the ability to customize individual abilities.

Originally Posted by nKweo
Also a minor point: I like to end 'help' macro's with [@target] as this prevents the spell from 'readying' when you have no target available (the cursor lights up and clicking on a unit casts the spell) and warns me that I have no target selected. This doesn't work with ImpliedTarget, however; spells again ready when I have no target. Is this intended? Could it be changed easily?
Currently if no targets match then it passes on to Blizzard's code (for future compatibility). I may change it so that it doesn't pass on to Blizzard's code and then add an option for allowing the glowing cursor if no target matches.
Report comment to moderator  
Reply With Quote
Unread 08-22-18, 09:13 AM  
nKweo
A Deviate Faerie Dragon
 
nKweo's Avatar

Forum posts: 16
File comments: 16
Uploads: 0
I'm also working on a way to modify spells individually but its still not quite ready.
Sounds great! While you're at it, you may want to consider adding some spells to the 'rez' category. For instance, Misdirection (hunter) and Leap of Faith (priest) are 'help' spells that cannot be cast on self and thus are functionally equivalent to resurrection spells. (Strictly speaking, the category should no longer be called 'rez' in this case, but that's not really an issue imo).

Also a minor point: I like to end 'help' macro's with [@target] as this prevents the spell from 'readying' when you have no target available (the cursor lights up and clicking on a unit casts the spell) and warns me that I have no target selected. This doesn't work with ImpliedTarget, however; spells again ready when I have no target. Is this intended? Could it be changed easily?
Report comment to moderator  
Reply With Quote
Unread 08-22-18, 06:13 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 taiya
it would be nice if you could adapt this addon to work for ground target spells, or make a new addon. all my ground target spells are @cursor and its annoying to make macros for everything. id love them all to just assume @cursor
I did an extensive change for BfA just for GTAoE abilities and there should be a GTAoE tab to change their behavior.

I'm also working on a way to modify spells individually but its still not quite ready.
Report comment to moderator  
Reply With Quote
Unread 08-21-18, 11:55 PM  
taiya
A Kobold Labourer

Forum posts: 0
File comments: 27
Uploads: 0
it would be nice if you could adapt this addon to work for ground target spells, or make a new addon. all my ground target spells are @cursor and its annoying to make macros for everything. id love them all to just assume @cursor
Report comment to moderator  
Reply With Quote
Unread 08-13-18, 08:32 AM  
sumoren
A Kobold Labourer

Forum posts: 0
File comments: 3
Uploads: 0
Question Why not available in curse/twitch

Hi, really like your addon. It's exactly what I was looking for. I was searching on alternative to writing a lot of copy/pasta macro and found a 2015 forum post about this addon. Without this really old post I would not found your addon since by default I'm using curse (now twitch client) to get/update my addons.

Is there a reason why your addon is not available in the twitch client? I'm pretty sure a lot of people are missing this addon because they don't look elsewhere for addon.
Report comment to moderator  
Reply With Quote
Unread 07-25-18, 04:09 AM  
nKweo
A Deviate Faerie Dragon
 
nKweo's Avatar

Forum posts: 16
File comments: 16
Uploads: 0
Thanks for updating! (Not that it didn't work before, but it feels good to know everything is fresh and clean again ).
Report comment to moderator  
Reply With Quote
Unread 04-11-18, 04:39 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 nKweo
One more thing, I took a peak at the code of this addon and noticed that it depends on spell lists that were created for each class. I know Bartender can do some things similar to what you can do with macros (e.g. 'auto assist' = try to cast on targettarget when target is not help/harm depending on spell), but I don't believe there's a manual list behind this functionality. Just out of curiosity: where does this difference stem from? It seems to me that maintaining the addon would be less work if it didn't require updating spell lists with expansions/patches.
In a secure snippet I was getting the spell ids from the second return of GetActionInfo and then running it through IsHarmfulSpell or IsHelpfulSpell. Since both return nil for spells that are both harmful and helpful (like Penance) I decided to manually add those spells as "harm/help." While going through every ability for every class I decided to add everything that has a unit target.

Some time later (not sure when), Blizzard removed the ability to pass spell ids to IsHarmfulSpell and IsHelpfulSpell and now they only take spell names. There is no way to get a spell name from a spell id in the secure environment on the fly, so I decided to keep my hard coded lists.
Report comment to moderator  
Reply With Quote
Unread 04-11-18, 09:24 AM  
nKweo
A Deviate Faerie Dragon
 
nKweo's Avatar

Forum posts: 16
File comments: 16
Uploads: 0
One more thing, I took a peak at the code of this addon and noticed that it depends on spell lists that were created for each class. I know Bartender can do some things similar to what you can do with macros (e.g. 'auto assist' = try to cast on targettarget when target is not help/harm depending on spell), but I don't believe there's a manual list behind this functionality. Just out of curiosity: where does this difference stem from? It seems to me that maintaining the addon would be less work if it didn't require updating spell lists with expansions/patches.
Last edited by nKweo : 04-11-18 at 09:32 AM.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: