Download
(102Kb)
Download
Updated: 02-20-07 07:12 PM
Pictures
File Info
Updated:02-20-07 07:12 PM
Created:unknown
Downloads:93,327
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 07-08-07, 12:10 AM  
Ssateneth
A Defias Bandit

Forum posts: 2
File comments: 33
Uploads: 0
Question User-uploaded databases?

Is there some sort of tool floating around or that can be easily made that can copy and alter our current lootlink.lua database so we can upload our own databases to be used the same way as the premade database, since the last premade update has been about 3 months ago, and I'm sure I'll have some item someone else doesn't have data on and vice versa.

Also, I just noticed. That was a long run-on sentence. :P
Report comment to moderator  
Reply With Quote
Unread 07-02-07, 12:26 PM  
Knaledge
A Murloc Raider

Forum posts: 5
File comments: 106
Uploads: 0
Any word on updates, etc?

This mod seems dead.
Report comment to moderator  
Reply With Quote
Unread 06-25-07, 08:07 PM  
Quinten_OOBL
A Defias Bandit

Forum posts: 2
File comments: 8
Uploads: 0
So, exactly why has there been no update to this mod in so long? While, yes, it does work for the most part without any issues, the new Blizz gem format is still not supported and really a pain in the butt to have it spam your chat channel when you try to scan over the multitude of gems available.

An update on the status' next version update would be greatly appreciated.
Report comment to moderator  
Reply With Quote
Unread 06-24-07, 09:59 AM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
Re: An error

Originally posted by yoshimo
I downloaded the updated ll-version here, because saeris throws errors about gems.
But i still get this one:

[...]
Probably something wrong with the Data Sharing feature. Turn it off in Options.

Data sharing becomes meaningless as soon as one person who has the premade database shares with you. If you want to have more items in your database, download the Premade Database Adder Plugin.
Last edited by Siz : 06-24-07 at 09:59 AM.
Report comment to moderator  
Reply With Quote
Unread 06-24-07, 12:55 AM  
yoshimo
An Aku'mai Servant

Forum posts: 30
File comments: 83
Uploads: 0
An error

I downloaded the updated ll-version here, because saeris throws errors about gems.
But i still get this one:

Date: 2007-06-23 22:46:27
ID: 2
Error occured in: Global
Count: 1
Message: ..\AddOns\LootLink\LootLink_ItemTables.lua line 461:
itemName is not a string
Debug:
[C]: ?
[C]: assert()
LootLink\LootLink_ItemTables.lua:461: ItemTables_AddBaseItem()
...ootLink\Plugins\DataSharing\LootLink_DataSharing.lua:110: DataSharing_ParseMessage_Trusted()
...ootLink\Plugins\DataSharing\LootLink_DataSharing.lua:59: DataSharing_ParseMessage()
LootLink\LootLink_Main.lua:68: Main_OnEvent()
LootLink\LootLink_Main.lua:185:
LootLink\LootLink_Main.lua:185

What causes this??
Report comment to moderator  
Reply With Quote
Unread 06-23-07, 07:22 PM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
Originally posted by Milkman
Siz - In this new version, does it include the code you wrote for me a few pages ago (I think it was you) that throttles requests so you don't get disconnected?
Yes. Still set at 2 seconds between queries.
Last edited by Siz : 06-23-07 at 07:23 PM.
Report comment to moderator  
Reply With Quote
Unread 06-23-07, 03:12 PM  
Milkman
A Kobold Labourer

Forum posts: 0
File comments: 8
Uploads: 0
Siz - In this new version, does it include the code you wrote for me a few pages ago (I think it was you) that throttles requests so you don't get disconnected?
Report comment to moderator  
Reply With Quote
Unread 06-21-07, 10:28 AM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
Re: Memory

Originally posted by AniaWoW
I've currently got this disabled on most of my characters, just enabling it when I need it (which is a pita) because it loads into my system at a whopping 18.74MB of addon memory. Is anyone else seeing this issue? To my knowledge, this has not always been the case, it happened with patch 2.1.
Did you ever load the Premade database? If so, it is huge and I would expect it to be using that much memory or more.

Try reparsing?
Report comment to moderator  
Reply With Quote
Unread 06-21-07, 06:39 AM  
AniaWoW
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Memory

I've currently got this disabled on most of my characters, just enabling it when I need it (which is a pita) because it loads into my system at a whopping 18.74MB of addon memory. Is anyone else seeing this issue? To my knowledge, this has not always been the case, it happened with patch 2.1.
Report comment to moderator  
Reply With Quote
Unread 06-18-07, 10:18 AM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
Originally posted by Buio
Would be very nice for a possible future version, I mean to store recipes etc. Never have to ask what mats are again.
Get ProfessionLinks.

If you tried to store Profession Links in the LootLink format, there would be lots of wasted space in the database and added bloat to the program. Also, the relatively small list of crafted items is easily mined from data on wowhead or another site, eliminating the need to grow the database from scratch as links are seen.
Last edited by Siz : 06-18-07 at 02:32 PM.
Report comment to moderator  
Reply With Quote
Unread 06-18-07, 07:05 AM  
Buio
A Kobold Labourer

Forum posts: 0
File comments: 150
Uploads: 0
Originally posted by Siz
The problems with Saeris' last release were caused by Blizzard adding a completely new item Type for Gems, along with subtypes for colors. ItemSync has not been updated to support these new categories.
Would be very nice for a possible future version, I mean to store recipes etc. Never have to ask what mats are again.
Report comment to moderator  
Reply With Quote
Unread 06-16-07, 01:45 PM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
People can choose whichever addon they want. Yes, ItemSync is a viable alternative. I'd like to correct you on a few things though.

Originally posted by Fathis Ules
lootlink doesnt have the collect liinks just on mouse over players
False, it does collect data on mouseover. It also mines your local item cache on login.
Originally posted by Fathis Ules
lootlink doesnt have favorites
True.
Originally posted by Fathis Ules
lootlink cant sniff an itemID
Yes, it can. Type "/ll addbyrequestlink <ITEMID>"
Originally posted by Fathis Ules
lootlink regulary spawns bugs, enough to change it.
The problems with Saeris' last release were caused by Blizzard adding a completely new item Type for Gems, along with subtypes for colors. ItemSync has not been updated to support these new categories.

Personally, I prefer to use Saeris' LootLink because it has every feature that I want and I'm used to the interface. I don't like how ItemSync handles randomly enchanted items (cannot collapse the list), and I don't like how I have to click multiple times to query an item.
Last edited by Siz : 06-16-07 at 01:51 PM.
Report comment to moderator  
Reply With Quote
Unread 06-16-07, 08:10 AM  
Fathis Ules
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
It has not been touched because it's simply not bugging since 2 months that's it
Well ItemSync doesnt have the whisper ability, but lootlink doesnt have the collect liinks just on mouse over players, lootlink doesnt have favorites, lootlink cant sniff an itemID, lootlink regulary spawns bugs, enough to change it.
Report comment to moderator  
Reply With Quote
Unread 06-15-07, 07:51 AM  
Hevanus
A Deviate Faerie Dragon
 
Hevanus's Avatar

Forum posts: 15
File comments: 199
Uploads: 0
Re: Re: Re: Re: You should try ItemSync

Originally posted by specific
The beta files are updated automatically every time one of the included libraries have changed, regardless if any other code changes have been committed. Thus, they're not a good indication of activity. It's better to look at the changelog, which is less inspiring.
Exactly.
Report comment to moderator  
Reply With Quote
Unread 06-14-07, 09:05 AM  
specific
A Kobold Labourer

Forum posts: 0
File comments: 15
Uploads: 0
Re: Re: Re: You should try ItemSync

Originally posted by Radoznali
check wowace beta files and you might get differnt opinion about if it si updated or not recently
The beta files are updated automatically every time one of the included libraries have changed, regardless if any other code changes have been committed. Thus, they're not a good indication of activity. It's better to look at the changelog, which is less inspiring.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: