Download
(102Kb)
Download
Updated: 02-20-07 07:12 PM
Pictures
File Info
Updated:02-20-07 07:12 PM
Created:unknown
Downloads:93,323
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 06-14-07, 06:04 AM  
Radoznali
A Deviate Faerie Dragon
 
Radoznali's Avatar

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

Originally posted by Hevanus
1. ItemSync has not been touched for almost two months.


check wowace beta files and you might get differnt opinion about if it si updated or not recently
Report comment to moderator  
Reply With Quote
Unread 06-13-07, 08:04 AM  
Hevanus
A Deviate Faerie Dragon
 
Hevanus's Avatar

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

Originally posted by Fathis Ules
If you guys loved Lootlink, you should try now ItemSync based on Ace2 is so far better, updated daily, and less cpu usage and bugs, very good one you can find on files.wowace.com but it's easier to use the wowaceupdater to install/update all Ace2 addons in one click.
1. ItemSync has not been touched for almost two months.

2. ItemSync does not, to my knowledge, have a feature that lets people whisper me to search for item links.
Report comment to moderator  
Reply With Quote
Unread 06-09-07, 02:22 AM  
Buio
A Kobold Labourer

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

Originally posted by Fathis Ules
If you guys loved Lootlink, you should try now ItemSync based on Ace2 is so far better, updated daily, and less cpu usage and bugs, very good one you can find on files.wowace.com but it's easier to use the wowaceupdater to install/update all Ace2 addons in one click.
Is so far better? I beg to differ. Whats missing from Saeris LL is some compability issues that where fixed with a fan update thats uploaded separately. And have you really done a fair cpu usage comparison or one at all? Remember that you gotta add the ace2 overhead to the compared mod even though the ace2 overhead its spread on many mods if you use alot of them.

And Ace2 is not always equivalent with a good mod. I do use alot of Ace2 mods though, because they indeed are good, I just dont like the "its ace2 so its gotta be imba" mentality.
Report comment to moderator  
Reply With Quote
Unread 06-08-07, 07:48 AM  
Fathis Ules
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
You should try ItemSync

If you guys loved Lootlink, you should try now ItemSync based on Ace2 is so far better, updated daily, and less cpu usage and bugs, very good one you can find on files.wowace.com but it's easier to use the wowaceupdater to install/update all Ace2 addons in one click.
Report comment to moderator  
Reply With Quote
Unread 06-06-07, 09:06 PM  
thandrenn
A Murloc Raider
AddOn Author - Click to view AddOns

Forum posts: 6
File comments: 42
Uploads: 3
Thanks Siz!
Last edited by thandrenn : 06-06-07 at 09:07 PM.
Report comment to moderator  
Reply With Quote
Unread 06-06-07, 06:00 PM  
xavier2k3
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
Siz, thanks a lot for your help with this mod. It's greatly appreciated.
Report comment to moderator  
Reply With Quote
Unread 06-06-07, 04:57 PM  
Zidomo
A Cliff Giant
 
Zidomo's Avatar

Forum posts: 76
File comments: 1046
Uploads: 0
Originally posted by Siz
I used TipHooker for a small addon that I made for myself before patch 2.1, and I've had some problems with it after 2.1. Do the errors go away if TipHooker is disabled?
Unfortunately no, they still occur. The latest SVN version of TipHookerLib is fully 2.1 compatible. Saeris's LootLink, on the other hand (even with the suggested LUA changes), isn't so much .

Addons that appear in a BugGrabber/BugSack (the error mods I use) error report after the main addon mentioned at the beginning of the report nearly always have nothing to do with a particular mod's error.

Thanks for your efforts, though; will be trying out your branch patch soon.
Last edited by Zidomo : 06-06-07 at 05:02 PM.
Report comment to moderator  
Reply With Quote
Unread 06-06-07, 03:16 PM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
I've posted a fixed version with some other changes that I had made over time as a patch up above.
Report comment to moderator  
Reply With Quote
Unread 06-06-07, 10:16 AM  
specific
A Kobold Labourer

Forum posts: 0
File comments: 15
Uploads: 0
Originally posted by Jandari
Specific you look to have forked off of version 8.26 instead of 8.29 ?
Sigh, I don't quite understand how I managed to do this, but yes, you are correct.

The current and hopefully final version of LootLink-interim can be found here.
Report comment to moderator  
Reply With Quote
Unread 06-06-07, 12:51 AM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
*Edit* Nevermind, redownload the pre-modified version.

You likely ignored the message requesting you to reload your UI.

I have heard of some people having problems with their Local Item Cache where they would see the reload request every time they log in. If this happens to you, make sure that you have a cache folder here C:\Program Files\World of Warcraft\Cache\WDB\enUS (change enUS to your locale). Log out of the game completely and delete any files that are in that folder. Log in to the game and reload your UI when prompted to by LootLink.

Originally posted by DanoPDX
Error: attempt to concatenate field '?' (a nil value)
AddOn: LootLink
File: LootLink_ItemTables.lua
Line: 708
Count: 3

I have added the fixes listed in previous posts, and things seems ok. Only after the small patch on 6/5 did I start to get the above error. What do you think it is?

The following code is from lines 697 to 718 and line 708 is the one ( .."|r" )
Last edited by Siz : 06-06-07 at 10:27 AM.
Report comment to moderator  
Reply With Quote
Unread 06-05-07, 11:29 PM  
DanoPDX
A Deviate Faerie Dragon

Forum posts: 10
File comments: 8
Uploads: 1
Error: attempt to concatenate field '?' (a nil value)
AddOn: LootLink
File: LootLink_ItemTables.lua
Line: 708
Count: 3

I have added the fixes listed in previous posts, and things seems ok. Only after the small patch on 6/5 did I start to get the above error. What do you think it is?

The following code is from lines 697 to 718 and line 708 is the one ( .."|r" )

Code:
if (isNew) then
		self:ItemTables_Populate(itemTable, suffixID, instanceID);
		
		self.TABLE_LIBRARY.insert(
		  self.RecentlyAddedItems,
		  1,
		  (
		    ITEM_QUALITY_COLORS[(itemTable[2] < 7 and itemTable[2]) or 1].hex
			..itemTable[1]
			.." "
			..self.SUFFIX_NAME_KEYS_TO_NAMES[self.SUFFIX_IDS_TO_NAME_KEYS[suffixID]]
			.."|r"
		  )
		);
		
		if (#self.RecentlyAddedItems == (self.MAX_RECENTLY_ADDED_ITEMS + 1)) then
			self.TABLE_LIBRARY.remove(self.RecentlyAddedItems);
		end
		
		self.DatabaseSize = (self.DatabaseSize + 1);
		self:Results_UpdateTitle(true);
	end
Report comment to moderator  
Reply With Quote
Unread 06-05-07, 04:31 PM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
The Quicksearch box is the box at the bottom of the main LootLink window. This box can be enabled or disabled in the Options. Type some text into this box then press enter to find items according to their name. This is considered quicker than using the advanced search window.

You also have the option of doing a command line search using the "/ll s <Item Name>" command.
Report comment to moderator  
Reply With Quote
Unread 06-05-07, 03:49 PM  
Loncaros
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
How exactly do you perform a quicksearch?
Report comment to moderator  
Reply With Quote
Unread 06-05-07, 11:34 AM  
Siz
A Wyrmkin Dreamwalker
AddOn Author - Click to view AddOns

Forum posts: 52
File comments: 228
Uploads: 5
Third party fixes have been posted in previous replies.
Report comment to moderator  
Reply With Quote
Unread 06-05-07, 11:18 AM  
xavier2k3
A Kobold Labourer

Forum posts: 0
File comments: 4
Uploads: 0
Umm, so is this being updated to get rid of the gem error?
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: