Download
(102Kb)
Download
Updated: 02-20-07 07:12 PM
Pictures
File Info
Updated:02-20-07 07:12 PM
Created:unknown
Downloads:93,325
Favorites:236
MD5:

Saeris's LootLink  Popular! (More than 5000 hits)

Version: 8.2.9
by: Saeris [More]

Unsupported
This addon is no longer supported by me, Saeris. It grew too large and bloated to continue maintaining, so instead, I created separate, smaller addons to handle each portion of the functionality this addon provided. Doing this allows each of those parts to be written more efficiently and be given the individual attention they need. They are all independent of one another, so you only need to install the components you want. They are:

LinksList
This is the successor to the graphical portion of LootLink. It provides the scrollable, searchable lists of links. It is a plugin-based system, with plugins to handle all four current link types: items, tradeskills, quests, and abilities. Download the "LinksList + All Plugins" compilation, linked in the Overview of LinksList's page, to get all of this functionality.

LinkBot
This is the successor to the AutoLinkBot portion of LootLink. It provides the ability to automatically respond to specially formatted chat-based requests for links. This, too, is a plugin-based system, with plugins to handle all four current link types. Download the "LinkBot + All Plugins" compilation, linked in the Overview of LinkBot's page, to get all of this functionality.

QuickChatlink
This is the successor to the QuickChatlink portion of LootLink. It provides the ability to automatically replace bracketed text that you type with the real link to whatever is indicated between the brackets. As with the others, this is a plugin-based system, with plugins to handle all four current link types. Download the "QuickChatlink + All Plugins" compilation, linked in the Overview of QuickChatlink's page, to get all of this functionality.

VendorValues
This is the successor to LootLink's ability to add vendor prices to tooltips. It provides that functionality with the options for much more customization than LootLink's version.

ItemTooltipIcons
This is the successor to LootLink's ability to display item icons next to tooltips. It provides that functionality with the options for much more customization than LootLink's version.


Other Notes
If you load LootLink and either LinksList_ItemDB_Links, LinkBot_ItemDB_Links, or QuickChatlink_ItemDB_Links (any one of the three), the new libraries will attempt to import your LootLink database. Note, however, that only base items (not suffixes) will be imported. LootLink counts suffixes as individual items, so your total item database size may appear to go down, but really the only thing not being imported are the suffixes.

Additionally, some pieces of LootLink's functionality do not yet have successors, either because they have not been written yet or because I do not plan to write them. They are:

- The ability to store and view item suffixes ("of the Eagle" et al). These are very easy to fake, very hard to verify programmatically, a pain to program around, and provide almost no useful functionality. LinksList has the ability to display them, but currently (and for the foreseeable future) there is no library to track and maintain them.

- The ability to see information about a given tooltip's IDs (base ID, enchant ID, etcetera for items, ID for tradeskills and abilities, ID and level for quests). This is not a priority to create an addon for, but may be implemented eventually.



Overview

This addon is a versatile item database which stores a grand amount of information about any item you've ever seen from any source. Included in this information is the item's name, full tooltip data, vendor price, and the date when it was last truly seen on the current server. Once added to your database, the item can be linked or tried on in the dressing room as if it was present in your bags. The database can be browsed by inputting to the search window any combination of name, full text, rarity, bind type, equip slot, type (armor, weapon, recipe, etcetera), subtype (cloth, one-handed sword, Alchemy, etcetera), minimum and maximum equip level and internal level, and whether it is unique. The database can then be sorted (in ascending or descending order) by any of those attributes by clicking the dropdown menu at the top of the results window.


Prominent features include:

- The conversion of typed item names into real item links (typing "[iron ore]" will replace the text with the real link for Iron Ore, and typing "[scout's blade {28}]" will replace the text with the level 28 version of the Warsong Gulch reward) with optional auto-completion suggestions (simply press Tab to fill in the rest of the suggested completion text, or press Shift-Tab to see other possible auto-completions).

- The ability to perform a full reparse of one's own database, refreshing all search and full-text data to the newest available from the server, and fixing any incorrect or invalid item names.

- The optional display of a great amount of extra item tooltip information (including vendor price, basic IDs, socket IDs, time last parsed, and the item's internal level as the game views it).

- The automatic combing of your itemcache.wdb file for any items which may have eluded parsing through normal means.

- The ability to automatically scan all pages of the auction house for new item data ("/lootlink auctionscan").

- A multitude of extra tooltip item data lines, including the vendor value for the item, the internal level of the item as the game sees it, the item's basic IDs (base, enchant, suffix, and instance), the item's socket IDs (gem 1, gem 2, gem 3, and the gem socket bonus), the time the item was last truly seen on the current server, and the maximum number of the item which can be in a single stack. There are also options to change the text color from the default teal to a plain white, and to include a separator line between the normal tooltip and this data.

- A QuickSearch edit box to quickly perform a search by name instead of opening the Search window (press Enter), or to sort through current search results to find an item matching the text you've input (press Tab), with the ability to quickly clear its contents by pressing Alt + Enter.

- The ability to manually add items to one's database from information available on sites like Wowhead, Allakhazam, or Thottbot, via a simple slash command method ("/lootlink addbybasicdetails" to provide the details yourself, or "/lootlink addbyrequestlink" to attempt to request the data from the server).

- The ability for others to use your database with specially prefixed chat messages. They can type "!item [text]" to have the first 9 results of searching your database by name for [text], or they can type ">item [text]" to have a single result sent to whatever form of chat they used to place the request.

- A small, mobile minimap-style button which can be clicked to toggle the results window, and dragged by holding Shift, Ctrl, or Alt. Also, its text will turn yellow whenever a new item enters your database, and displays a list of the last twenty items to have been added, just as the results window's title text does.

- The ability to perform a quick command line database search by name with either "/lootlink search [item name]" or "/ll s [item name]", the first ten results from which will be printed to the chat frame.


Many more features are available, but those are the most prominent ones. Most of these features are configurable, either by slash command ("/lootlink help") or by clicking the "Options" button in the browse window. You may also choose to bind a key to toggle LootLink's results window in the game's Key Bindings menu.

Additionally, there is one important thing to remember about this addon: To prevent data mining of items which are not supposed to be seen by the public yet, Blizzard has programmed their item server to disconnect clients which request a link to an item which the server has not yet seen. This list of "seen" items resets every time the server goes down for maintenance, which means you may be disconnected if you attempt to link a particularly rare item right after maintenance, even if you had seen the item just the day before. To help avoid this problem, LootLink can display the time an item was last seen in its tooltip (if enabled), including the exact day and time relevant to the current server. If this date is earlier than the last maintenance, the item might not be safe to link, but trying anyway can not do anything more than cause you a very minor inconvenience of logging back in.

Lastly, it is recommended that you perform a full database reparse (via the "Reparse" button on the options screen, or with "/lootlink fullreparse") once a week, preferably a day or two before maintenance, to keep your database up to date.


Note: A premade database of around 34,000 items is available to merge with your own database. The database comes in the form of an addon called LootLink PremadeDatabase, designed specifically for use with this version of LootLink. Once installed and enabled, just type "/lootlink mergedb" to perform the merger.


Coming eventually:

- A set of static data which is loaded, and stored, by LootLink instead of by the game's saved variables loader. This has the potential to greatly decrease the memory requirement of the saved database, as well as the initial login time.

- A right-click dropdown menu for every item in the results list, allowing you to manually alter stored data.



Feedback and Inquiries

I welcome feedback for any of my addons, including this one. However, if the feedback is a bug report or feature request, please use the methods on this page (the "Bugs" and "Features" buttons below the "Download" button in the top right) to alert me, instead of posting in the "Comments" section of this page, as it will take me longer to reply to you if you post there. For feedback or inquiries not related to bugs or features, such as information about translating this addon to another language or a request for a detailed explanation of a certain bit of code, please contact me directly via one of the methods listed in the "Preamble" section of my author portal's introduction text. Following these guidelines will ensure that I read and reply to your message.



History of Changes

See the readme file in this addon's folder, or my author portal, for an explanation of the versioning system.


8.2.9 (2/20/07):
- The base ID of each item is no longer added as part of the hash during reparsing, since it is logically impossible for it to be changed during that process.

- The tooltip hooks now include the GameTooltip methods :SetInboxItem() and :SetSendMailItem().

- All of the tooltip hooks have been changed to call self:GetItem() to get the link for which the additional data must be added, instead of using a unique, context-specific function for each method. This increases efficiency by preventing global lookups for those functions. Also, because of this, the algorithm now checks for the existence of that item link before attempting to call LootLink:Tooltips_AddAllApplicableInfo(), increasing efficiency for scenarios in which the tooltip method is called on an empty item slot, like when hovering the cursor over an empty bag slot.


8.2.8 (2/16/07):
- The login algorithm which finds and stores all possible suffixes now simply iterates over all possible item base IDs until it finds one which is cached, instead of looking for an item in your bags, since at initial login only items in the (potentially empty) backpack are checkable.


8.2.7 (2/16/07):
- The login algorithm which finds and stores all possible suffixes now searches your bags for a valid item to use for this parsing, instead of assuming you have a Hearthstone.


8.2.6 (2/12/07):
- Added a warning popup that will appear at login when the Hearthstone is not cached (which prevents suffixes from being parsed). This is in addition to the chat frame warning which has always been displayed in these cases, and is simply meant to draw attention to that message. The popup also includes a "Reload UI" button which can be clicked to reload the UI, which, as the chat frame warning states, fixes the problem.

- Added additional checks to the algorithm which creates the results list, to prevent it from erroring when a negative suffix ID does not have a list of instance IDs attached to it for some reason.

- Fixed an issue with reparsing where suffix items could be removed if they were expansion suffixes with no stored instance IDs.

- Changed French localization's First Aid display from "Secourisme" to "Premiers soins".

- Changed German localization's Gem Bag parse string from "Edelsteinbeutel" to "Edelsteintasche" and the Mining Bag parse string from "Bergbausack" to "Bergbautasche".


8.2.5 (2/4/07):
- Fixed a bug where items whose tooltips had no fulltext data to store in the database were still having an empty table created for that data anyway. Perform a full reparse ("/lootlink fullreparse") of your database to fix this issue for existing items. On a 43036 item database, this appears to have reduced the total memory requirement by about 11%.

- Possibly fixed an issue with the German localization not recognizing Gem Bags or Mining Bags.


8.2.4 (2/2/07):
- Added some additional checks to the database loading algorithm to ensure that there are no invalid entries in the database which could cause errors elsewhere.


8.2.3 (2/2/07):
- Fixed a bug where data from the hidden chat channel might not be blocked if the AutoLinkBot plugin was loaded before the DataSharing plugin.


8.2.2 (2/1/07):
- Now forcibly hooks ChatFrame_MessageEventHandler to ensure that no data from the hidden channel is displayed. This is inefficient, but as of 2.0.6 it is the only way to block the channel with certainty.


8.2.1 (1/31/07):
- Fixed an issue in the French localization which caused Gem Bags to not be recognized.

- Fixed an error that occasionally occurred when searching via fulltext, relating to a suffix's data being a boolean instead of a table.

- The results window item tooltip is now anchored to the top right corner of the window, rather than relative to the current item slot.


8.2.0 (1/29/07):
- The PremadeDatabase is no longer a plugin, due to it requiring 4MB of memory just to define the function which is called to load the premade database itself, and then another 7MB once loaded. It has been moved to a separate addon, as it once was, called LootLink_PremadeDatabase. The usage is still the same: just type "/lootlink mergedb" once it is loaded. But this way, the addon does not take up that memory prior to actually being used.


8.1.2 (1/29/07):
- Possibly fixed an issue with the PremadeDatabase's merging code that caused errors when used with Light Mode enabled.

- Fixed an error that occurred when enabling Light Mode from the checkbox on the Options screen.

- Updated French localization (thanks to Soligne).


8.1.1 (1/26/07):
- Fixed an error in the compatibility code for AtlasLoot / AtlasLootEnhanced.

- Moved the item icon on the results tooltip to be anchored to the top right corner of the tooltip and extend upward, instead of to the right, to prevent interference with comparison tooltips from other addons. To prevent the icons from extending off of the screen, the tooltip is also now shifted down by 45 pixels from its previous location relative to each item slot.

- Fixed a bug where the hidden data sharing chat channel, if enabled, was not remaining hidden after relogging or reloading the UI.


8.1.0 (1/24/07):
- Added a new tooltip option: the maximum number of the item which can be in a single stack.

- Fixed a bug in the PremadeDatabase plugin that caused it to always assume you had already performed a merger.


8.0.1 (1/23/07):
- Fixed a bug wherein expansion suffixes added to the database at runtime were not properly increasing the database count by plus one.

- Added a warning message to indicate that the UI must be reloaded if a Hearthstone is not in your cache when you first log in.

- Fixed compatibility code referencing an old function, Matching_GetItemTableAndSuffixByName.


See the readme file in this addon's folder for earlier changes.



Developer Notes

The format for one entry in LootLink's database table, LootLink_Database, is organized thusly:

[integer; item's base ID] = {
[1] = string; base portion of the name, the whole thing if there are no subitems
[2] = integer from 0 to 7; item's color in ITEM_QUALITY_COLORS
[3] = { table; item's suffixes, if it has any
[suffixID, positive integer indicating classic suffix] = table OR boolean; fulltext data if applicable or a placeholder
[suffixID, negative integer indicating expansion suffix] = {
[instanceID, integer] = table OR boolean; fulltext data if applicable, or a placeholder
};
};
[4] = integer from 1 to 4; item's bind type in LootLink.BIND_TYPES, or a nil value indicating no binding
[5] = integer-key table; base item's portion of the full text, or the whole thing if there are no suffixes
[6] = integer; item's vendor price in copper
[7] = integer from 1 to 24; item's equip location number from LootLink.EQUIP_LOCATIONS
[8] = integer from 1 to 11; item's type number from LootLink.TYPES_AND_SUBTYPES
[9] = integer from 1 to n; item's subtype number from LootLink.TYPES_AND_SUBTYPES[itemType]
[10] = integer from 1 to 70; item's minimum equip level
[11] = nil or true; item's unique status
[12] = integer from 1 to 999; item's internal level
[13] = string; the item's texture path, if storing these is enabled
};

Each entry in this table has a metatable allowing access to its numeric indices through a more recognizable tag, for use by other addon authors who do not have the above format memorized. None of these are case specific. It should be noted that these access methods are slower and, as such, should not be used in large loops.

itemTable[1] -> itemTable.name or itemTable.na
itemTable[2] -> itemTable.color or itemTable.co
itemTable[3] -> itemTable.suffixes or itemTable.su
itemTable[4] -> itemTable.bind or itemTable.bi
itemTable[5] -> itemTable.text or itemTable.te
itemTable[6] -> itemTable.price or itemTable.pr
itemTable[7] -> itemTable.location itemTable.lo
itemTable[8] -> itemTable.type or itemTable.ty
itemTable[9] -> itemTable.subtype or itemTable.su
itemTable[10] -> itemTable.equiplevel or itemTable.eq
itemTable[11] -> itemTable.unique or itemTable.un
itemTable[12] -> itemTable.itemlevel or itemTable.lv
itemTable[13] -> itemTable.texture or itemTable.tx


The format for one entry in LootLink's results table, LootLink.ResultsList, is different:

[integer; non-skipping real number incrementing] = itemTable

...where itemTable is a direct pointer to an entry in the database. Data about the entry is
stored in temporary negative integer keys in the itemTable, to be removed at PLAYER_LOGOUT. With that in mind, the negative keys are as follows:

[-1] = integer; recursive copy of the item's base ID, for the item button OnFoo functions
[-2] = nil or 0 or 1; the suffix flag, where nil means none, 0 means collapsed, and 1 means expanded
[-3] = integer; the number of suffix items in the itemTable which match the search criteria

Additionally, if there are suffix items, any of those which match the search criteria will have their table's [0] integer key set to true to indicate that they should be added/removed from the list dynamically, as their base item is expanded and collapsed. If they do not have a table, then their boolean will be changed from false to true.

Optional Files (0)


Post A Reply Comment Options
Unread 11-05-06, 10:48 PM  
frogofdoom
An Aku'mai Servant
AddOn Author - Click to view AddOns

Forum posts: 31
File comments: 8
Uploads: 1
Woot...

I'm currently using Lootlink Enhanced , which is a huge memory whore >_<. I'm going to switch to your version, but I'll miss the "Quick Search" feature, which adds a little box to the bottom of the main frame to search the database without having to use the "Search" button. Could you add that to your version? Thanks a lot.

-Frog
Report comment to moderator  
Reply With Quote
Unread 11-05-06, 11:58 PM  
Saeris
A Murloc Raider
 
Saeris's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 126
Uploads: 75
I'll add that to the 6.0.0 release (the versions in the 6.x.x series right now are just betas, but they are as stable as can be) which I will probably have done by Wednesday.

Edit: Do you mean a "find in current results" functionality, or a simple name-only search that creates new results? The former has to, intrinsically, only match one item (since it scrolls the results to find that item). The latter can match multiple items, since it would have the same functionality as opening the search window and leaving every field except "Name" blank. It seems like the latter would be more useful, but... which were you requesting?
__________________
Last edited by Saeris : 11-06-06 at 02:33 AM.
Report comment to moderator  
Reply With Quote
Unread 11-07-06, 02:30 PM  
frogofdoom
An Aku'mai Servant
AddOn Author - Click to view AddOns

Forum posts: 31
File comments: 8
Uploads: 1
I'd say go for the full search function (the latter) rather than the results-only search. Like you said, it seems more useful.

Thanks once again
Report comment to moderator  
Reply With Quote
Unread 11-07-06, 10:07 PM  
Farook
A Molten Giant
 
Farook's Avatar

Forum posts: 595
File comments: 113
Uploads: 0
@ Saeris

This sounds (and looks) great.

I was using Telo's Lootlink in the beginning of my WoW-time, and then switched to ItemSync, which isn't updated anymore unfortunately. I have a database there with about 20k items, which I don't wanna lose. Is there any way to merge my "ItemSync"-database into your addon?

If so, I'll defenitely gonna give it a try....
__________________
Report comment to moderator  
Reply With Quote
Unread 11-07-06, 11:53 PM  
Saeris
A Murloc Raider
 
Saeris's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 126
Uploads: 75
Farook:

Chances are LootLinkDatabase has all of the items in your database, and many more. However, if you'd really like to simply import your database, please email me ([email protected]) an example of ItemSync's database format so I can write some conversion code. The easiest way to do this is to just zip or rar ItemSync.lua from directory <WoW>\WTF\Account\<account name>\SavedVariables and send me the resultant archive.
__________________
Last edited by Saeris : 11-07-06 at 11:55 PM.
Report comment to moderator  
Reply With Quote
Unread 11-08-06, 10:30 PM  
Farook
A Molten Giant
 
Farook's Avatar

Forum posts: 595
File comments: 113
Uploads: 0
@ Saeris

Thanks for your reply, and I'll gonna send you a ziped file of my ItemSync.lua as soon as possible. I don't know yet if I will have time for WoW today, but you'll get the file, I promise.

And thanks in advance for your efforts to support ItemSync-Users as well.
__________________
Report comment to moderator  
Reply With Quote
Unread 11-09-06, 11:04 PM  
Farook
A Molten Giant
 
Farook's Avatar

Forum posts: 595
File comments: 113
Uploads: 0
I just sent the email, plz check your inbox.
__________________
Report comment to moderator  
Reply With Quote
Unread 11-10-06, 03:04 PM  
fosedan
A Defias Bandit
 
fosedan's Avatar

Forum posts: 2
File comments: 2
Uploads: 0
Would like to add, that this is a awesome add on. Seeing the old lootlink wasn't being updated more, it was time to look for a new one, and this is the one

Great work, and hope to see a version working for BC as well
__________________
Report comment to moderator  
Reply With Quote
Unread 11-12-06, 01:44 PM  
Saeris
A Murloc Raider
 
Saeris's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 126
Uploads: 75
Originally posted by Farook
I just sent the email, plz check your inbox.
The conversion code is written but untested. I'll test it when the rest of the 6.0.0 release version is ready. That should be either tomorrow or the day after.



Originally posted by fosedan
Would like to add, that this is a awesome add on. Seeing the old lootlink wasn't being updated more, it was time to look for a new one, and this is the one

Great work, and hope to see a version working for BC as well
As soon as the pre-BC patch is released, I will begin work on updating LootLink for the new API. There shouldn't be many changes required, but I'm certain it will be at least partially broken.
__________________
Report comment to moderator  
Reply With Quote
Unread 11-16-06, 01:20 PM  
fosedan
A Defias Bandit
 
fosedan's Avatar

Forum posts: 2
File comments: 2
Uploads: 0
......\........\.......\LootLink_Main.lua:177:attempt to compare nil with number.
and
......\........\.......\LootLink_Main.lua:177:attempt to compare number with nil.

Thats the error I get when I scroll trough the items OR sort by [any type]. Also I get it when I open Lootlink.
__________________
Last edited by fosedan : 11-16-06 at 01:22 PM.
Report comment to moderator  
Reply With Quote
Unread 11-17-06, 07:57 AM  
Saeris
A Murloc Raider
 
Saeris's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 126
Uploads: 75
Type this to fix that:

/script for baseID, itemTable in pairs(ItemLinks) do if (not itemTable[1]) then ItemLinks[baseID] = nil; elseif (not itemTable[2]) then itemTable[2] = 7; end end ReloadUI();
__________________
Report comment to moderator  
Reply With Quote
Unread 11-24-06, 10:13 PM  
Farook
A Molten Giant
 
Farook's Avatar

Forum posts: 595
File comments: 113
Uploads: 0
Originally posted by Saeris
The conversion code is written but untested. I'll test it when the rest of the 6.0.0 release version is ready. That should be either tomorrow or the day after.
Any news?
__________________
Report comment to moderator  
Reply With Quote
Unread 11-24-06, 11:31 PM  
Saeris
A Murloc Raider
 
Saeris's Avatar
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 126
Uploads: 75
Originally posted by Farook
Any news?
I apologize for the delay; I've been very busy refactoring all of my addons, particularly the new LootLink, for the expansion API. Anyway, the database conversion code is in version 6.1.0, and it seems to work just fine. It did not error at all during testing, and actually added eleven items to my own database. All you have to do is copy/paste the script from the patch notes while both addons are loaded and it should work fine. Let me know either way.
__________________
Report comment to moderator  
Reply With Quote
Unread 11-25-06, 03:13 PM  
convict70
A Murloc Raider

Forum posts: 4
File comments: 6
Uploads: 0
Just installed today cleanly (everything inc WoW) and I'm getting a 'gmatch' error. This is with the latest version.

Actual error is :

Interface\AddOns\LootLink\Lootlink_OnEvent.lua:68: attempt to call field ' gmatch'(a nil value)





**EDIT** Using 6.1.0 resolved the issue.
Last edited by convict70 : 11-25-06 at 04:51 PM.
Report comment to moderator  
Reply With Quote
Unread 11-25-06, 10:39 PM  
Farook
A Molten Giant
 
Farook's Avatar

Forum posts: 595
File comments: 113
Uploads: 0
Originally posted by Saeris
I apologize for the delay;
No problem at all.

Thanks for adding my feature request, I'll test it as soon as possible. After I ran the script once (and the data was synched), I can delete all of my ItemSync-folders then?

And I just saw the the german localization is not done yet. Would you implement it if I find some time to add it?

Thanks again.
__________________
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: