annotate verbage.lua @ 100:a57133ee3c9b

- Allow event callbacks using the standard CallbackHandler scheme. Add a debug.callback flag with usual semantics. - Fire an initial set of events. This will take experimentation. - If restoring g_loot, set metatables on previous entries also.
author Farmbuyer of US-Kilrogg <farmbuyer@gmail.com>
date Mon, 30 Jul 2012 19:25:46 +0000
parents ba5ff82dcf19
children dc8a23a47b03
rev   line source
farmbuyer@95 1 local addon = select(2,...)
farmbuyer@95 2 if addon.NOLOAD then return end
farmbuyer@95 3
farmbuyer@1 4 local todo = [[
farmbuyer@88 5 - Right-clicking the [ouroloot] chat link could do something different than
farmbuyer@88 6 the current left-clicking. Popup small menu in place?
farmbuyer@88 7
farmbuyer@100 8 - A fight duration of (0:00) happens when DBM gets confused. If it happens
farmbuyer@100 9 "near" another boss entry with nonzero duration, can we just safely assume
farmbuyer@100 10 that's the real entry and delete the zero entry altogether?
farmbuyer@100 11
farmbuyer@88 12 - Break more methods out into private routines.
farmbuyer@1 13
farmbuyer@1 14 - implement ack, then fallback to recording if not ack'd
farmbuyer@1 15
farmbuyer@1 16 - Being able to drag rows up and down the main loot grid would be awesome. Coding
farmbuyer@1 17 that would be likely to drive me batshiat insane.
farmbuyer@1 18 ]]
farmbuyer@1 19
farmbuyer@96 20 local helptree = {
farmbuyer@1 21 {
farmbuyer@1 22 value = "about",
farmbuyer@1 23 text = "About",
farmbuyer@1 24 },
farmbuyer@1 25 {
farmbuyer@1 26 value = "basic",
farmbuyer@1 27 text = "Basics",
farmbuyer@1 28 children = {
farmbuyer@1 29 {
farmbuyer@1 30 value = "loot",
farmbuyer@1 31 text = "Loot Entries",
farmbuyer@1 32 },
farmbuyer@1 33 {
farmbuyer@1 34 value = "boss",
farmbuyer@1 35 text = "Boss Entries",
farmbuyer@1 36 },
farmbuyer@1 37 },
farmbuyer@1 38 },
farmbuyer@1 39 {
farmbuyer@1 40 value = "tracking",
farmbuyer@1 41 text = "Tracking Loot",
farmbuyer@1 42 children = {
farmbuyer@1 43 {
farmbuyer@1 44 value = "enabled",
farmbuyer@1 45 text = "Full Tracking",
farmbuyer@1 46 },
farmbuyer@1 47 {
farmbuyer@1 48 value = "bcast",
farmbuyer@1 49 text = "Rebroadcasting",
farmbuyer@1 50 },
farmbuyer@1 51 },
farmbuyer@1 52 },
farmbuyer@1 53 {
farmbuyer@1 54 value = "texts",
farmbuyer@1 55 text = "Generated Texts",
farmbuyer@1 56 children = {
farmbuyer@1 57 {
farmbuyer@1 58 value = "forum",
farmbuyer@1 59 text = "Forum Markup",
farmbuyer@1 60 },
farmbuyer@1 61 {
farmbuyer@1 62 value = "other",
farmbuyer@1 63 text = "Other Texts",
farmbuyer@1 64 },
farmbuyer@1 65 {
farmbuyer@1 66 value = "saved",
farmbuyer@1 67 text = "Saved Texts",
farmbuyer@1 68 },
farmbuyer@1 69 },
farmbuyer@1 70 },
farmbuyer@1 71 {
farmbuyer@7 72 value = "history",
farmbuyer@7 73 text = "History Tab",
farmbuyer@7 74 },
farmbuyer@7 75 {
farmbuyer@1 76 value = "tips",
farmbuyer@1 77 text = "Handy Tips",
farmbuyer@1 78 children = {
farmbuyer@1 79 {
farmbuyer@1 80 value = "slashies",
farmbuyer@1 81 text = "Slash Commands",
farmbuyer@1 82 },
farmbuyer@73 83 {
farmbuyer@73 84 value = "prescan",
farmbuyer@73 85 text = "Prescanning",
farmbuyer@73 86 },
farmbuyer@1 87 },
farmbuyer@1 88 },
farmbuyer@1 89 {
farmbuyer@1 90 value = "todo",
farmbuyer@1 91 text = "TODOs, Bugs, etc",
farmbuyer@1 92 children = {
farmbuyer@1 93 {
farmbuyer@1 94 value = "gotchas",
farmbuyer@1 95 text = "Gotchas",
farmbuyer@1 96 },
farmbuyer@1 97 {
farmbuyer@1 98 value = "todolist",
farmbuyer@1 99 text = "TODO/knownbugs",
farmbuyer@1 100 },
farmbuyer@1 101 },
farmbuyer@1 102 },
farmbuyer@1 103 }
farmbuyer@1 104
farmbuyer@1 105 -- Help text. Formatting doesn't matter, but use a blank line to split
farmbuyer@1 106 -- paragraphs. This file needs to be edited with a text editor that doesn't
farmbuyer@1 107 -- do anything stupid by placing extra spaces at the end of lines.
farmbuyer@96 108 local helptext
farmbuyer@1 109 do
farmbuyer@73 110 local replacement_colors = {
farmbuyer@73 111 ["+"]="|cff30adff", -- blue: right-click options, control panel names
farmbuyer@73 112 ["<"]="|cff00ff00", -- light green, tab titles and generic highlighting
farmbuyer@73 113 [">"]="|r" }
farmbuyer@1 114 local T={}
farmbuyer@1 115 T.about = [[
farmbuyer@1 116 Ouro Loot is the fault of Farmbuyer of Ouroboros on US-Kilrogg. Bug reports,
farmbuyer@95 117 comments, and suggestions are welcome at the project page:
farmbuyer@95 118
farmbuyer@95 119 <www.curse.com/addons/wow/ouroloot>
farmbuyer@95 120
farmbuyer@95 121
farmbuyer@95 122 or send them to <farmbuyer@gmail.com>.
farmbuyer@1 123 ]]
farmbuyer@1 124
farmbuyer@1 125 T.basic = [[
farmbuyer@95 126 The </ouroloot> command opens this display. The buttons
farmbuyer@1 127 on the right side control operation and are mostly self-explanatory. Hovering over
farmbuyer@1 128 things will usually display some additional text in the gray line at the bottom.
farmbuyer@1 129
farmbuyer@47 130 Each tab on the left side can additionally create extra contols in the lower right
farmbuyer@47 131 section (with the same name as the tab).
farmbuyer@1 132
farmbuyer@1 133 The first tab on the left side, <Loot>, is where everything goes to and comes
farmbuyer@1 134 from. Looting events and Deadly Boss Mods notifications go to the <Loot> tab; the
farmbuyer@1 135 other tabs are all generated from the information in the <Loot> tab.
farmbuyer@16 136
farmbuyer@16 137 |cffff335dNote about these Help pages:|r The category "titles" on the left side
farmbuyer@16 138 have their own help text, in addition to the more specific entries in the expanded
farmbuyer@16 139 list. Read those first before expanding the categories or you'll miss stuff.
farmbuyer@1 140 ]]
farmbuyer@1 141
farmbuyer@1 142 T.basic_loot = [[
farmbuyer@1 143 A "loot row" in the first tab has three columns: the item, the recipient, and any
farmbuyer@1 144 extra notes. The recipient's class icon is displayed by their names, if class
farmbuyer@1 145 information is available at the time.
farmbuyer@1 146
farmbuyer@1 147 <Mouse Hover>
farmbuyer@1 148
farmbuyer@1 149 Hovering the mouse over the first column will display the item in a tooltip.
farmbuyer@1 150
farmbuyer@1 151 Hovering over the second column will display a tooltip with the loot that person
farmbuyer@1 152 has received. If they've won more than 10 items, the list is cut off with '...'
farmbuyer@1 153 at the end; to see the full list, use the right-click +Show only this player> option
farmbuyer@1 154 instead.
farmbuyer@1 155
farmbuyer@1 156 <Right-Click>
farmbuyer@1 157
farmbuyer@1 158 Right-clicking a loot row shows a dropdown menu.
farmbuyer@1 159
farmbuyer@1 160 Right-clicking in the first or third columns will display options for special
farmbuyer@1 161 treatment of that loot entry (marking as offspec, etcetera). Using any of those
farmbuyer@1 162 options will change the text in the third column (which will then affect the text
farmbuyer@1 163 in the generated tabs, such as forum markup).
farmbuyer@1 164
farmbuyer@1 165 Right-clicking in the second column allows you to temporarily remove all other
farmbuyer@1 166 players from the loot display. Use the reset button in the lower-right corner to
farmbuyer@1 167 restore the display to normal. The menu also allows you to +reassign> loot from
farmbuyer@1 168 one player to another; if the new recipient is not in the raid group at the time,
farmbuyer@1 169 use the +Enter name...> option at the bottom of the list of names to type the
farmbuyer@47 170 name into a text box. If your raid takes advantage of the ability to trade
farmbuyer@1 171 soulbound items, you will need to reassign the item here for the generated text
farmbuyer@1 172 to be factually correct.
farmbuyer@1 173
farmbuyer@1 174 See the help screen on "Boss Entries" for the +Insert new boss kill event> option.
farmbuyer@1 175
farmbuyer@1 176 <Double-Click>
farmbuyer@1 177
farmbuyer@1 178 Double-clicking a loot row in the third ("Notes") column allows you to edit that
farmbuyer@1 179 field directly. The color of the text will still depend on any +Mark as ___>
farmbuyer@1 180 actions done to that loot row, whether automatically or by hand.
farmbuyer@1 181 ]]
farmbuyer@1 182
farmbuyer@1 183 T.basic_boss = [[
farmbuyer@1 184 Boss wipe/kill entries are entirely dependant on Deadly Boss Mods being enabled and
farmbuyer@1 185 up-to-date. The typical sequence of events for our usual raids goes like this:
farmbuyer@1 186
farmbuyer@1 187 We make four or five attempts on Baron Steamroller. As DBM registers that combat
farmbuyer@1 188 ends, a <wipe> event is entered on the loot display along with the duration of the
farmbuyer@1 189 fight. If the loot display is opened, the wipes will be visible with a light gray
farmbuyer@1 190 background.
farmbuyer@1 191
farmbuyer@47 192 After reminding the melee dps to move out of fire, we manage to kill
farmbuyer@1 193 Steamroller. When DBM registers the win, a <kill> event is entered on the display
farmbuyer@1 194 with a dark gray background.
farmbuyer@1 195 All previous <wipe>s are removed and collapsed into the <kill> event. The final
farmbuyer@1 196 <kill> event shows the duration of the successful fight and the number of attempts
farmbuyer@47 197 needed (or "one-shot" if we're competent).
farmbuyer@1 198
farmbuyer@1 199 Sometimes this goes wrong, when DBM misses its own triggers. If DBM does not catch
farmbuyer@1 200 the start of the boss fight, it can't register the end, so nothing at all is
farmbuyer@1 201 recorded. If the fight was a win but DBM does not catch the victory conditions,
farmbuyer@1 202 then DBM will (after several seconds) decide that it was a wipe instead. And
farmbuyer@1 203 sometimes useful loot will drop from trash mobs, which DBM knows nothing about.
farmbuyer@1 204
farmbuyer@1 205 For all those reasons, right-clicking on a "boss row" will display options for
farmbuyer@1 206 +Insert new boss kill event>, and for toggling a <wipe> into a <kill>. We often
farmbuyer@1 207 insert bosses named "trash" to break up the display and correct the forum markup
farmbuyer@1 208 listing.
farmbuyer@1 209 ]]
farmbuyer@1 210
farmbuyer@1 211 T.tracking = [[
farmbuyer@1 212 The first button underneath +Main> in the right-hand column displays the current
farmbuyer@1 213 status of the addon. If it is disabled, then no recording, rebroadcasting, or
farmbuyer@1 214 listening for rebroadcasts is performed. Any loot already recorded will be restored
farmbuyer@1 215 across login sessions no matter the status.
farmbuyer@1 216
farmbuyer@1 217 You can turn on tracking/broadcasting before joining a raid. If you join a raid
farmbuyer@47 218 and the addon has not been turned on, then a popup dialog will ask for
farmbuyer@1 219 instructions. (This can be turned off in the advanced <Options>.)
farmbuyer@1 220
farmbuyer@1 221 The addon tries to be smart about logging on during a raid (due to a disconnect or
farmbuyer@1 222 relog). If you log in, are already in a raid group, and loot has already been
farmbuyer@16 223 stored from tracking, it will re-enable itself automatically.
farmbuyer@1 224
farmbuyer@1 225 The intent of the addon design is that, after the end of a raid, all the generated
farmbuyer@1 226 markup text is done, optionally saved (see "Generated Texts - Saved Texts"), and
farmbuyer@1 227 then cleared from
farmbuyer@1 228 storage altogether. As a result, if you login with restored loot information but
farmbuyer@1 229 are not in a raid, the addon will do nothing on its own -- but will assume that
farmbuyer@1 230 you've forgotten to finish those steps and will yammer about it in the chat window
farmbuyer@1 231 as a reminder.
farmbuyer@1 232
farmbuyer@1 233 The +Threshold> drop-down has no connection at all with any current loot threshold
farmbuyer@1 234 set by you or a master looter.
farmbuyer@1 235 ]]
farmbuyer@1 236
farmbuyer@1 237 T.tracking_enabled = [[
farmbuyer@1 238 Full tracking records all loot events that fulfill these criteria:
farmbuyer@1 239
farmbuyer@1 240 1) The loot quality is equal to or better than what you have selected in the
farmbuyer@1 241 +Threshold> drop-down.
farmbuyer@1 242
farmbuyer@47 243 2) The loot is not in the list of items to filter out (see the <Options> tab).
farmbuyer@47 244 These are things like shards from disenchanting and Darkmoon Faire quest items.
farmbuyer@1 245
farmbuyer@1 246 3) <You can see the loot event.> More precisely, you need to be close enough
farmbuyer@1 247 to the recipient of the loot to be able to see "So-And-So receives loot: [Stuff]"
farmbuyer@1 248 in your chat window, even if you have those actual loot messages turned off.
farmbuyer@1 249
farmbuyer@1 250 It is (3) that causes complications. A master looter can assign loot to anybody
farmbuyer@1 251 anywhere in a raid instance, but the range on detecting loot events is much
farmbuyer@1 252 smaller. If your raid does not use master looting then you merely need to be
farmbuyer@1 253 close enough to the boss corpse, presuming that the winners will need to walk
farmbuyer@1 254 over to get their phat epix.
farmbuyer@1 255
farmbuyer@1 256 If you do use master looter, then you have two options: first, you can
farmbuyer@1 257 require players
farmbuyer@1 258 who might get loot to stay near the boss. You would then also need to stay near
farmbuyer@1 259 the boss to detect the loot event. (This can be less hassle if you are also
farmbuyer@1 260 the loot master.) The downside is that other players moving on to fight to the
farmbuyer@1 261 next boss are doing so without the help of their teammates.
farmbuyer@1 262
farmbuyer@1 263 The other option is to ask other players to also install Ouro Loot, and for
farmbuyer@1 264 them to turn on the "Rebroadcasting" feature. Any loot events which they can
farmbuyer@1 265 see will be communicated to you. Then it only becomes necessary for at least
farmbuyer@1 266 one person to be close enough to the loot recipient to see the item awarded,
farmbuyer@47 267 and you will record it no matter how far away you are -- even back in Orgrimmar.
farmbuyer@1 268
farmbuyer@1 269 If you have Full Tracking enabled, then you are also automatically rebroadcasting.
farmbuyer@1 270 Having more than one player with Full Tracking turned on is probably a good
farmbuyer@1 271 idea, in case one of the trackers experiences a game crash or is suddenly kidnapped
farmbuyer@1 272 by robot ninja monkeys.
farmbuyer@1 273 ]]
farmbuyer@1 274
farmbuyer@1 275 T.tracking_bcast = [[
farmbuyer@1 276 The simplest method of operation is only rebroadcasting the loot events that you
farmbuyer@1 277 see, as you see them. Nothing is recorded in your local copy of the addon.
farmbuyer@1 278
farmbuyer@1 279 If you logout for any reason, the addon will not reactivate when you log back in.
farmbuyer@1 280
farmbuyer@95 281 You can use </ouroloot bcast> or </ouroloot broadcast> to turn on rebroadcasting
farmbuyer@95 282 without opening the GUI.
farmbuyer@1 283 ]]
farmbuyer@1 284
farmbuyer@1 285 T.texts = [[
farmbuyer@47 286 The middle tabs are simply large editable text boxes. Their text is initially
farmbuyer@47 287 generated from
farmbuyer@1 288 the information stored on the main <Loot> tab, at the time you click on the tab.
farmbuyer@1 289 Not every bit of information that
farmbuyer@1 290 we want in the generated text is always available, or depends on things that the
farmbuyer@1 291 game itself can't know. So you can edit the text in the tabs and your edits will
farmbuyer@1 292 be preserved.
farmbuyer@1 293
farmbuyer@1 294 Each time you click one of the text tabs, every new entry on the <Loot> tab
farmbuyer@1 295 since the last time this tab was shown will be turned into text.
farmbuyer@1 296
farmbuyer@1 297 Clicking the +Regenerate> button will throw away all the text on that tab, including
farmbuyer@1 298 any edits you've made, and recreate all of it from scratch. If you've accidentally
farmbuyer@1 299 deleted the text from the editbox, or you've made manual changes to the <Loot> tab,
farmbuyer@1 300 you can use this button to start over.
farmbuyer@1 301
farmbuyer@1 302 You can click in an editbox and use Control-A to select all text, then Control-C
farmbuyer@1 303 to copy it to the system clipboard for subsequent pasting into a web browser or
farmbuyer@1 304 whatever. If you're on a Mac, you probably already know the equivalent keys.
farmbuyer@1 305 ]]
farmbuyer@1 306
farmbuyer@1 307 T.texts_forum = [[
farmbuyer@1 308 The <Forum Markup> tab creates text as used by the guild forums for Ouroboros
farmbuyer@31 309 of US-Kilrogg. By default this is fairly standard BBcode. The format of the
farmbuyer@1 310 individual loot items can be adjusted via the dropdown menu on the lower right
farmbuyer@1 311 of the tab.
farmbuyer@1 312
farmbuyer@1 313 The [url] choice defaults to using Wowhead. If you have the [item] extension
farmbuyer@1 314 for your BBcode installed, you can use either of those choices too. The "by ID"
farmbuyer@16 315 variant is good for heroic raid items that share names with nonheroic items,
farmbuyer@16 316 but the raw output is harder to read in the text tab.
farmbuyer@1 317
farmbuyer@1 318 You can also specify a custom string. Formatting is done with these replacements:
farmbuyer@1 319
farmbuyer@1 320 +$N>: item name|r
farmbuyer@1 321
farmbuyer@1 322 +$I>: (capital "eye", not "ell") numeric item ID|r
farmbuyer@1 323
farmbuyer@1 324 +$T>: loot recipient and any additional notes|r
farmbuyer@1 325
farmbuyer@1 326 +$X>: if more than one of the item was looted, this is the "x2", "x3", etc
farmbuyer@1 327
farmbuyer@1 328
farmbuyer@1 329 Pro tip #1: if something has happened on the main <Loot> tab which cannot be
farmbuyer@1 330 changed directly but would generate incorrect text, you can click this tab to
farmbuyer@1 331 generate the text right away. Then edit/move the text as needed. When you
farmbuyer@1 332 close the display or click back on the <Loot> tab, your edited text will be
farmbuyer@1 333 preserved for later.
farmbuyer@1 334
farmbuyer@47 335 Pro tip #2: Barring situations like pro tip #1, this addon author typically
farmbuyer@47 336 does not generate any text until the end of the raid, simplifying things
farmbuyer@47 337 considerably.
farmbuyer@1 338 ]]
farmbuyer@1 339
farmbuyer@1 340 T.texts_other = [[
farmbuyer@1 341 So far the only other generated text is the <Attendance> tab, an alphabetized list
farmbuyer@56 342 on a per-boss basis. Players who are probably inside the raid are grouped
farmbuyer@56 343 under [:PLUS:], and the remaining players are under [-]. "Probably inside" is an
farmbuyer@56 344 assumption that groups 1 and 2 are raiding in a 10-player instance, groups 1-5
farmbuyer@56 345 are raiding in a 25-player instance, and so forth.
farmbuyer@1 346
farmbuyer@1 347 Other addons can register their own text tabs and corresponding generation
farmbuyer@1 348 functions. If you want to be able to feed text into an offline program (for
farmbuyer@1 349 example, a spreadsheet or DKP tracker), then this may be of use to you.
farmbuyer@1 350
farmbuyer@1 351 Ideas for more tabs? Tell me!
farmbuyer@1 352 ]]
farmbuyer@1 353
farmbuyer@1 354 T.texts_saved = [[
farmbuyer@16 355 The contents of the <Forum Markup>, <Attendance>, and other such tabs can be saved,
farmbuyer@16 356 so that they will not be lost when you use the +Clear> button.
farmbuyer@1 357
farmbuyer@1 358 Do any edits you want to the generated text tabs, then click the +Save Current As...>
farmbuyer@1 359 button on the right-hand side. Enter a short descriptive reminder (for example,
farmbuyer@1 360 "thursday hardmodes") in the popup dialog. The texts will remain in their tabs,
farmbuyer@1 361 but clearing loot information will not lose them now.
farmbuyer@1 362
farmbuyer@16 363 All saved texts are listed on the right-hand side. Clicking a saved text name
farmbuyer@16 364 lets you +Load> or +Delete> that saved set. The primary <Loot> tab is not saved
farmbuyer@16 365 and restored by this process, only the generated texts. This also means you cannot
farmbuyer@16 366 +Regenerate> the texts.
farmbuyer@1 367 ]]
farmbuyer@1 368
farmbuyer@7 369 T.history = [[
farmbuyer@7 370 The <History> tab maintains a list of all loot. It is intended to help answer
farmbuyer@7 371 questions such as "When was the last time PlayerX won something?" and "How much stuff
farmbuyer@7 372 has PlayerY gotten lately?" The history tab is, by design, not as configurable
farmbuyer@25 373 as the main <Loot> tab; entries cannot be manually edited and so forth.
farmbuyer@7 374
farmbuyer@25 375 This loot history is the only "live" data tab which persists across the +Clear Loot> command.
farmbuyer@7 376 For this reason, very little information is stored: only the recipient, the item,
farmbuyer@8 377 and a textual timestamp. Boss names, offspecs, and other notes are not preserved.
farmbuyer@7 378
farmbuyer@7 379 The default history window shows the most recent item received by each person. It
farmbuyer@7 380 is sorted with the most recent loot at the top, towards older loot at the bottom.
farmbuyer@7 381 You can click the column headers to rearrange the rows, but doing so repeatedly can
farmbuyer@7 382 lead to odd display issues.
farmbuyer@7 383
farmbuyer@7 384 Left-clicking a row will change the window to display all recorded loot for that
farmbuyer@25 385 player. While on that display, right-clicking any row will return to showing the
farmbuyer@25 386 most recent single item for all players.
farmbuyer@7 387
farmbuyer@7 388 Histories are maintained per-realm. This refers to the realm you are on when the
farmbuyer@7 389 loot drops, not the realm of the player receiving it (in the case of cross-realm
farmbuyer@7 390 groups). If you play multiple characters on the same realm, history will accumulate
farmbuyer@7 391 across all your raids. To change the displayed realm, use the dropdown menu in
farmbuyer@7 392 the lower right corner.
farmbuyer@7 393
farmbuyer@7 394 The +Regenerate> button permanently erases the history of the displayed realm, and
farmbuyer@7 395 creates fresh entries using whatever loot information is currently on the <Loot> tab.
farmbuyer@7 396 Be aware that the <Loot> tab does not track realms, so if you have gathered data
farmbuyer@7 397 for players on realm A, but are displaying realm B when you click the Regenerate button,
farmbuyer@7 398 then your history for realm B will be... very odd.
farmbuyer@7 399
farmbuyer@7 400 +Clear Realm History> and +Clear ALL History> are used to periodically wipe the
farmbuyer@7 401 slate clean. They do not generate any new entries from existing loot.
farmbuyer@7 402
farmbuyer@76 403 +Clear Older> deletes history information older than a certain threshold (by
farmbuyer@76 404 default, 5 loot events). It is another good periodic maintenance step, but
farmbuyer@76 405 does not discard as much data as the other actions.
farmbuyer@7 406
farmbuyer@25 407 Using +Reassign to...> will also move the item between player histories. The timestamp
farmbuyer@25 408 will not be changed; it will "always have been" received by the new recipient.
farmbuyer@25 409
farmbuyer@25 410 Using +Mark as disenchanted> or +Mark as guild vault> will remove the item from
farmbuyer@25 411 history altogether. Remarking such an item as +normal> or +offspec> will replace
farmbuyer@25 412 the item back into the player's history.
farmbuyer@25 413
farmbuyer@7 414 Note: the first time you display the histories during a game session, you will
farmbuyer@7 415 likely see several items listed as +UNKNOWN>. This is not a bug; these items are
farmbuyer@7 416 simply not in your local game cache. WoW will automatically retrieve the missing
farmbuyer@7 417 data after several seconds, but the display will not update until the next time
farmbuyer@7 418 the History tab is shown. Starting in WoW 4.0, the local game cache is not preserved
farmbuyer@7 419 across play sessions, so the +UNKNOWN> entries will pop up from time to time.
farmbuyer@7 420 ]]
farmbuyer@7 421
farmbuyer@1 422 T.tips = [[
farmbuyer@16 423 The |cffff8000[Ouro Loot]|r "legendary item" displayed at the start of all
farmbuyer@1 424 chat messages is a clickable link. Clicking opens the main display. An option
farmbuyer@97 425 on the <Options> tab will cause a message (and thus, the clickable link) to be
farmbuyer@97 426 printed after a boss kill,
farmbuyer@1 427 mostly for lazy loot trackers who don't like typing slash commands to open windows.
farmbuyer@1 428
farmbuyer@1 429 If you are broadcasting to somebody else who is tracking, you should probably be
farmbuyer@1 430 using the same threshold. If yours is lower, then some of the loot you broadcast
farmbuyer@1 431 to him will be ignored. If yours is higher, then you will not be sending information
farmbuyer@1 432 that he would have recorded. The "correct" setting depends on what your guild wants
farmbuyer@1 433 to track.
farmbuyer@1 434
farmbuyer@1 435 Ticking the "notraid" box in advanced debugging <Options>, before enabling tracking,
farmbuyer@1 436 will make the tracking work outside of a raid group. Communication functions
farmbuyer@1 437 will behave a little strangely when doing this. Be sure to check the threshold!
farmbuyer@1 438 You can also use <"/ouroloot debug notraid"> instead.
farmbuyer@1 439
farmbuyer@1 440 Using the "Saved Texts" feature plus the +Clear> button is a great way of putting
farmbuyer@1 441 off pasting loot into your guild's website until a more convenient time.
farmbuyer@83 442
farmbuyer@83 443 Shift-clicking an item in the <Loot> or <History> display will paste it into an
farmbuyer@83 444 open chat editbox.
farmbuyer@1 445 ]]
farmbuyer@1 446
farmbuyer@1 447 T.tips_slashies = [[
farmbuyer@97 448 A text field in the <Options> tab lets you use additional slash commands as a
farmbuyer@95 449 shortcut for </ouroloot>. The author prefers </ol>, as an example. The
farmbuyer@95 450 default used to be </loot> until that became a builtin command in MoP.
farmbuyer@95 451
farmbuyer@95 452 If you give an unrecognized argument to a slash command, it will
farmbuyer@16 453 search the tab titles left to right for a title beginning with the same letters as
farmbuyer@95 454 the argument, and open the display to that tab. For example, <"/ol a"> would
farmbuyer@95 455 open the <Attendance> tab, and <"/ol ad"> would open the <Advanced> tab. If
farmbuyer@95 456 you had added a theoretical <EQDKP> tab, then <"/ol eq"> would be the fastest
farmbuyer@16 457 way to see it.
farmbuyer@16 458
farmbuyer@1 459 The </ouroloot> command can take arguments to do things without going through
farmbuyer@1 460 the UI. Parts given in *(angle brackets)* are required, parts in [square brackets]
farmbuyer@1 461 are optional:
farmbuyer@1 462
farmbuyer@1 463 +broadcast>/+bcast>: turns on rebroadcasting|r
farmbuyer@1 464
farmbuyer@1 465 +on [T]>: turns on full tracking, optionally setting threshold to T|r
farmbuyer@1 466
farmbuyer@1 467 +off>: turns off everything|r
farmbuyer@1 468
farmbuyer@1 469 +thre[shold] T>: sets tracking threshold to T|r
farmbuyer@1 470
farmbuyer@1 471 +list>: prints saved text names and numbers|r
farmbuyer@1 472
farmbuyer@1 473 +save *(your set name)*>: saves texts as "your set name"|r
farmbuyer@1 474
farmbuyer@1 475 +restore *(N)*>: restores set number N|r
farmbuyer@1 476
farmbuyer@1 477 +delete *(N)*>: deletes set number N|r
farmbuyer@1 478
farmbuyer@1 479 +help>: opens the UI to the help tab|r
farmbuyer@1 480
farmbuyer@1 481 +toggle>: opens or closes the UI (used mostly in automated wrappers)|r
farmbuyer@1 482
farmbuyer@1 483
farmbuyer@1 484 If you use the slash commands to enable tracking or set loot thresholds, you can
farmbuyer@1 485 give numbers or common names for the threshold. For example, "0", "poor", "trash",
farmbuyer@1 486 "gray"/"grey" are all the same, "4", "epic", "purple" are the same, and so on.
farmbuyer@1 487 ]]
farmbuyer@1 488
farmbuyer@73 489 T.tips_prescan = [[
farmbuyer@73 490 When loot is manipulated, the history of previous loot entries must be scanned
farmbuyer@73 491 to determine whether you already have any information for that loot. In this
farmbuyer@73 492 case, "loot manipulation" includes things like receiving loot broadcasts from
farmbuyer@73 493 other players, marking older loot as being disenchanted, and so on.
farmbuyer@73 494
farmbuyer@73 495 You can speed up these actions by turning on the +Prescan for faster handling>
farmbuyer@73 496 toggle on the <Options> tab. This is a tradeoff: loot manipulation will
farmbuyer@73 497 go faster, but data from the prescan will use up more memory. (If you end up
farmbuyer@73 498 doing things to every single piece of loot, you would use up all that memory
farmbuyer@73 499 eventually. But if you don't, then that memory is essentially wasted.)
farmbuyer@73 500
farmbuyer@73 501 This prescanning is only done for the specific realm on which you're playing.
farmbuyer@73 502 Much depends on how far back you preserve history. The more history you keep
farmbuyer@73 503 for a given realm, then...
farmbuyer@73 504
farmbuyer@73 505 [option on] ...the more memory this option uses...
farmbuyer@73 506
farmbuyer@73 507 [option off] ...the longer loot work takes...
farmbuyer@73 508
farmbuyer@73 509 ...while manipulating loot for that realm. See the tradeoff?
farmbuyer@73 510
farmbuyer@73 511 The prescan is only done once, during login. It will print out how much
farmbuyer@73 512 additional memory is used, so you can better decide whether this option is
farmbuyer@73 513 worth turning on. This also means that you need to relog or /reload to have
farmbuyer@73 514 the option take effect once you enable it.
farmbuyer@73 515 ]]
farmbuyer@73 516
farmbuyer@1 517 T.todo = [[
farmbuyer@1 518 If you have ideas or complaints or bug reports, first check the Bugs subcategories
farmbuyer@1 519 to see if they're already being worked on. Bug reports are especially helpful
farmbuyer@73 520 if you can include a screenshot (in whatever image format you find convenient),
farmbuyer@73 521 and a copy of your SavedVariables file. This is found in your World of Warcraft
farmbuyer@73 522 installation folder, named "WTF/Account/you/SavedVariables/Ouro_Loot.lua"
farmbuyer@73 523 (where "you" is your account name). You may need to compress this file
farmbuyer@73 524 before the ticket system will accept it.
farmbuyer@1 525
farmbuyer@1 526 Click the "About" line on the left for contact information.
farmbuyer@1 527 ]]
farmbuyer@1 528
farmbuyer@1 529 T.todo_gotchas = [[
farmbuyer@1 530 <Things Which Might Surprise You> (and things I'm not sure I like in the
farmbuyer@1 531 current design):
farmbuyer@1 532
farmbuyer@73 533 Manipulating existing information while logged into a realm other than the
farmbuyer@73 534 realm represented by that same information can yield strange results, including
farmbuyer@73 535 outright breakage.
farmbuyer@73 536
farmbuyer@1 537 If you relog (or get disconnected) while in a raid group, behavior when you log
farmbuyer@1 538 back in can be surprising. If you have already recorded loot (and therefore
farmbuyer@1 539 the loot list is restored), then OL assumes it's from the current raid and should
farmbuyer@1 540 reactivate automatically in full tracking mode. If you were tracking but no
farmbuyer@1 541 loot had dropped yet (and therefore there was nothing *to* restore), then OL
farmbuyer@1 542 will pop up its reminder and ask again. Either way, if you were only broadcasting
farmbuyer@1 543 then OL will *not* go back to only broadcasting. This is probably a bug.
farmbuyer@1 544
farmbuyer@1 545 The saved texts feature does exactly that: only saves the generated texts, not
farmbuyer@1 546 the full loot list. Restoring will get you a blank first tab and whatever you
farmbuyer@1 547 previously had in the various generated text tabs.
farmbuyer@1 548
farmbuyer@47 549 The generated forum text tries to only list the name of the instance if it has
farmbuyer@47 550 not already been listed, or if it is different than the instance of the previous
farmbuyer@1 551 boss. If you relog, the "last printed instance name" will be forgotten, and
farmbuyer@1 552 you'll see redundant raid instance names appearing in the text.
farmbuyer@1 553
farmbuyer@1 554 After a boss wipe, multiple broadcasting players releasing spirit more than
farmbuyer@1 555 several seconds apart can cause spurious "wipe" entries (of zero duration) on
farmbuyer@1 556 the loot grid. The surefire way to avoid this is to not release spirit until
farmbuyer@1 557 DBM announces the wipe, but the problem isn't serious enough to really worry
farmbuyer@1 558 about. (Right-click the spurious entries and delete them.)
farmbuyer@69 559
farmbuyer@69 560 When a boss is killed, ALL previous wipes for that boss are removed and
farmbuyer@69 561 collapsed... even if they're on other days with other raids. If you only
farmbuyer@69 562 raid with one guild, this can result in some amusing statistics ("kill
farmbuyer@69 563 on 27th attempt" would actually mean something), but if there are multiple
farmbuyer@69 564 raid configurations without clearing loot in between, then this number
farmbuyer@69 565 is simply garbage.
farmbuyer@1 566 ]]
farmbuyer@1 567
farmbuyer@1 568 T.todo_todolist = todo
farmbuyer@1 569
farmbuyer@1 570
farmbuyer@1 571 -- Fill out the table that will actually be used. Join adjacent lines here so
farmbuyer@1 572 -- that they'll wrap properly.
farmbuyer@96 573 helptext = {}
farmbuyer@1 574 for k,text in pairs(T) do
farmbuyer@1 575 local funkykey = k:gsub('_','\001') -- this is how TreeGroup makes unique keys
farmbuyer@1 576 local wrapped = text
farmbuyer@1 577 wrapped = wrapped:gsub ("[%+<>]", replacement_colors)
farmbuyer@1 578 wrapped = wrapped:gsub ("([^\n])\n([^\n])", "%1 %2")
farmbuyer@83 579 --safeprint(wrapped)
farmbuyer@1 580 wrapped = wrapped:gsub ("|r\n\n", "|r\n")
farmbuyer@1 581 wrapped = wrapped:gsub ("Ouroboros", "|cffa335ee<Ouroboros>|r")
farmbuyer@83 582 --safeprint(wrapped)
farmbuyer@56 583 wrapped = wrapped:gsub ("%*%(", "<") :gsub("%)%*", ">") :gsub(":PLUS:", "+")
farmbuyer@96 584 helptext[funkykey] = wrapped
farmbuyer@1 585 end
farmbuyer@1 586 end -- do scope
farmbuyer@1 587 todo = nil
farmbuyer@1 588
farmbuyer@1 589
farmbuyer@95 590 -- Tab 5: Help
farmbuyer@95 591 do
farmbuyer@95 592 local AceGUI = LibStub("AceGUI-3.0")
farmbuyer@95 593 -- widget container status tables (will have things magically appear
farmbuyer@95 594 -- inside them that we wish to preserve)
farmbuyer@95 595 local status_for_scroll = {}
farmbuyer@95 596 local status_for_select = { treewidth = 145 }
farmbuyer@1 597
farmbuyer@95 598 -- Clicking an entry on the left tree column.
farmbuyer@95 599 local help_OnGroupSelected_func = function (treeg,event,category)
farmbuyer@96 600 -- Some way of just reusing the same Label widget when clicking
farmbuyer@96 601 -- different topics?
farmbuyer@95 602 treeg:ReleaseChildren()
farmbuyer@95 603 local txt = AceGUI:Create("Label")
farmbuyer@95 604 txt:SetFullWidth(true)
farmbuyer@95 605 txt:SetFontObject(GameFontNormal)--Highlight)
farmbuyer@96 606 txt:SetText(helptext[category])
farmbuyer@95 607 local sf = AceGUI:Create("ScrollFrame")
farmbuyer@95 608 sf:SetStatusTable(status_for_scroll)
farmbuyer@95 609 sf:SetLayout("Fill")
farmbuyer@95 610 -- This forces the scrolling area to be bigger than the visible area; else
farmbuyer@95 611 -- some of the text gets cut off without ever triggering the scrollbar.
farmbuyer@95 612 sf.content:SetHeight(700)
farmbuyer@95 613 sf:AddChild(txt)
farmbuyer@95 614 treeg:AddChild(sf)
farmbuyer@95 615 if treeg:GetUserData("help restore scroll") then
farmbuyer@95 616 if status_for_scroll.scrollvalue then
farmbuyer@95 617 sf:SetScroll(status_for_scroll.scrollvalue)
farmbuyer@95 618 end
farmbuyer@95 619 treeg:SetUserData("help restore scroll", false)
farmbuyer@95 620 else
farmbuyer@95 621 sf:SetScroll(0)
farmbuyer@95 622 end
farmbuyer@95 623 end
farmbuyer@95 624
farmbuyer@95 625 -- Clicking the Help tab as a whole (tabs_OnGroupSelected["help"]).
farmbuyer@95 626 local tabs_OGS = function(container,specials)
farmbuyer@95 627 container:SetLayout("Fill")
farmbuyer@95 628 local left = AceGUI:Create("TreeGroup")
farmbuyer@95 629 left:SetStatusTable(status_for_select)
farmbuyer@95 630 left:SetLayout("Fill")
farmbuyer@95 631 left:SetFullWidth(true)
farmbuyer@95 632 left:SetFullHeight(true)
farmbuyer@95 633 left:EnableButtonTooltips(false)
farmbuyer@96 634 left:SetTree(helptree)
farmbuyer@95 635 left:SetCallback("OnGroupSelected", help_OnGroupSelected_func)
farmbuyer@95 636 container:AddChild(left)
farmbuyer@95 637 if status_for_select.selected then
farmbuyer@95 638 left:SetUserData("help restore scroll", true)
farmbuyer@95 639 left:SelectByValue(status_for_select.selected)
farmbuyer@95 640 else
farmbuyer@95 641 left:SelectByValue("basic")
farmbuyer@95 642 end
farmbuyer@95 643 end
farmbuyer@95 644
farmbuyer@95 645 local noob = [[
farmbuyer@95 646 Every tab across the top also gets its own special buttons here in the lower
farmbuyer@95 647 right, under the same name as the tab. Some controls do not become visible
farmbuyer@95 648 until that tab has data to work with.]]
farmbuyer@95 649
farmbuyer@95 650 addon:register_tab_control_AT_END ("help", [[Help]],
farmbuyer@95 651 [[Instructions, reminders, and tips for non-obvious features]],
farmbuyer@95 652 tabs_OGS, --[[opt_noobtip=]]noob)
farmbuyer@95 653 end
farmbuyer@70 654
farmbuyer@1 655 -- vim:noet