changeset 12:305c7411fa4a tip

description's source markdown
author rowaasr13
date Fri, 27 Jan 2017 03:51:02 +0300
parents 088390bd4ab3
children
files OOCDo.md
diffstat 1 files changed, 69 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OOCDo.md	Fri Jan 27 03:51:02 2017 +0300
@@ -0,0 +1,69 @@
+There are many tasks that can be accomplished with a simple macro without going through all the hoops of creating addons. The only missing thing is ability to create dynamic macros that can, for example, find best food in your inventory and use it. The ability to do so is there: Blizzard gives us **SecureActionButton**s that can be freely reprogrammed out-of-combat, but they require a rather large setup that won't fit in every macro.
+This addon offers a preset button with all the required boilerplate code that can be quickly set to any macro with a short command and clicked afterwards.
+
+## Usage
+
+All functions accept both dot and colon (. and :) addressing so you don't have to remember which one to use. All command are automatically ignored in combat and button is cleared to empty state right after you click it so your next click won't accidentally reuse whatever you programmed last if you click macro in combat. All commands overwrite whatever was previously bound to button, so for example, even if you call ```OOCDo.Use``` with ID of item that you don't have, previous command will be replaced with "do nothing".
+
+* Setting a command to be invoked on next click:
+
+```
+/run OOCDo.MacroText("/use 1 1")
+```
+
+OOCDo.Macro, OOCDo.M, and OOCDo.T are provided as shorter aliases.
+
+* Actually perform whatever is currently bound to button:
+
+```
+/click OOCDo
+```
+
+* Try to find and use one of items from list (uses item IDs, can be used in conditionals - returns true if any item was found and nil otherwise):
+
+```
+/run OOCDo.Use(80610, 113509)
+```
+
+* Try to find and use one of spells from list (uses spell IDs, can be used in conditionals - returns true if any item was found and nil otherwise):
+
+```
+/run OOCDo.Cast(190336)
+```
+
+## Some examples
+
+* Find and use any Artifact Power item in bags (also requires [LibTTScan-1.0](https://mods.curse.com/addons/wow/libttscan-1) to scan tooltips to find those AP items):
+
+```
+/run for b=0,NUM_BAG_FRAMES do for s=1,GetContainerNumSlots(b) do local i=GetContainerItemID(b,s) if i and LibStub("LibTTScan-1.0").GetItemArtifactPower(i,1) then OOCDo.Use(i) end end end
+/click OOCDo
+```
+
+* Eat mage solo or group food and conjure a new stack if there are none in inventory:
+
+```
+/run if not OOCDo.Use(80610, 113509) then OOCDo.Cast(190336) end
+/click OOCDo
+```
+
+* Use Ancestral Recall if it not on cooldown or Hearthstone:
+
+```
+/run OOCDo.M(GetSpellCooldown(556) == 0 and "/cast " .. GetSpellInfo(556) or "/use item:6948")
+/click OOCDo
+```
+
+## Changelog
+
+### 2017-01-10 v4
+* New functions to set up using items and casting spells: .Use / .Cast.
+
+### 2016-11-03 v3
+* 7.1 TOC update
+
+### 2016-10-08 v2
+* ./: adressing fix.
+
+### 2016-10-08 v1
+* Initial release.
\ No newline at end of file