annotate verbage.lua @ 115:289c7667adab

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