PDA

View Full Version : Video Guide to Using kAuction Wishlist



Kulldam
09-08-2009, 10:10 PM
As mentioned, I made a video guide to walk people through how to use the new kAuction Wishlist feature. Since Youtube has time limits, it is split into two parts. Any questions let me know in-game or reply here please.

Part 1:
<object width="853" height="505"><param name="movie" value="http://www.youtube.com/v/1gkpvSedZQ8&hl=en&fs=1&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1gkpvSedZQ8&hl=en&fs=1&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed></object>

Part 2:
<object width="853" height="505"><param name="movie" value="http://www.youtube.com/v/8nIkYUy6H24&hl=en&fs=1&hd=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/8nIkYUy6H24&hl=en&fs=1&hd=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="853" height="505"></embed></object>

Huggeybear
09-09-2009, 01:02 AM
I don't know when you put this whole thing together, but I can almost guarantee that while you were doing it I was doing something far less valuable. Probably pron.


So....with this wishlist set up, will it be eating up memory like Recount does? My guess is yes because of just how complicated this whole thing is, but wtf do I know.

Kulldam
09-09-2009, 02:14 AM
I don't know when you put this whole thing together, but I can almost guarantee that while you were doing it I was doing something far less valuable. Probably pron.

Who's to say I didn't have my Wow running windowed with one hand off the mic? Amirite?!



So....with this wishlist set up, will it be eating up memory like Recount does? My guess is yes because of just how complicated this whole thing is, but wtf do I know.

Actually no, it shouldn't at all. To explain a bit, the way memory usage works for addons in WoW is any data that is stored by an addon usually gets added to a table that looks something like this:

myTable = {id = 1, name = 'Huggeybear', dps = 'MONSTROUS'}

The memory usage of an addon is basically equal to whatever amount of memory the tables it is using take up, as if you'd copied them into a text file and saved it on your hard drive.

Most addons take advantage of garbage collection, which just means reusing previously created tables for a new task so new tables aren't required, which obviously saved memory.

Recount, however, takes a ton of memory because obviously as time goes on, it adds more and more information to it's tables and unless you reset the data, it grows and grows. At the end of some long raids, Recount is taking 80-90 megs (which even then is really not much with 2 or 4 gigs of ram these days, but still).

As for your question about kAuction, it does use garbage collection whenever possible. The biggest memory hog will be when you are indexing your search item list, since kAuction takes however many thousands of items and adds them to a table. However, even setting the /ka ui > Wishlist > Minimum Item Level to 0 and Minimum Rarity to Poor, which will return every item in your local cache to the table, which is some 20,000ish items for me, my memory usage for kAuction temporarily shoots up to 8.9 megs. If I change the wishlist settings back to default of 200 item level and Epic quality, indexing brings the memory increase up to about 4.5 megs.

That said, the important thing to keep in mind is these numbers are temporary. Again, because kAuction uses garbage collection, while you are searching a lot and adding wishlist items, you may see 4-10 megs of memory usage, but once you stop searching for a while and collection kicks in, memory drops back down to normal usage, which for me standing in Dalaran kAuction uses about 1.2 megs.

Compare that to Pitbull4 at 2.18 megs, Aloft at 3.87 megs, and Grid 1.33 megs, all stationary values just standing in Dalaran.

When you are not searching, such as in raids, and using kAuction normally, it hovers around 2-3 megs. Again, it's all really just the amount of information being used at any given time, so if a list of 20,000 items takes 7.5 megs of memory, accessing your wishlists of maybe 50 - 100 items will obviously be very small indeed.

For the TLDR; answer: No, kAuction will not use any noticeable amount of memory at any time.

Kilwenn
09-09-2009, 06:48 AM
Excellent job Kull. I am really looking forward to playing around with it. Can you recommend any good sites for beginners interested in creating an addon? Thanks.

Kulldam
09-09-2009, 10:50 AM
Excellent job Kull. I am really looking forward to playing around with it. Can you recommend any good sites for beginners interested in creating an addon? Thanks.

Thanks Kil!

The best place to start is probably the Wowwiki HOWTO section: http://www.wowwiki.com/HOWTOs . http://www.wowwiki.com/Getting_started_with_writing_addons will show you the basic setup to get the proper files in place and test your addon in-game.

You'll also want an Lua editor. Wow Addon Studio (http://addonstudio.codeplex.com/) is a free editor similar to Visual Studio (I wouldn't use the Frame/XML editor as it's very outdated, but it's a nice program to keep a single project maintained and easily access all your files). You can also get something like Textpad (http://www.textpad.com/) and google for an 'lua syntax' file for it.

Also check out the wowwiki API pages (http://www.wowwiki.com/World_of_Warcraft_API), which shows all the existing functions in-game Blizzard has implemented. Basically, if you wonder if you can get XYZ info about the game, this is the place to check. Also look on the top-right of that page for the Widget API (like the above, but shows functions that affect UI elements), and the LUA Functions (wow-converted functions that Lua uses for utility, like string, math, and table editing.

Also check out some of the libraries offered, as there are many that will do most of the menial tasks for you. Ace3 is the best one I've found and has been very reliable (http://www.wowace.com/addons/ace3/pages/).

The biggest hurdle when I first started messing with addons was by far the in-game interface, which requires tons of different XML elements set up very precisely (you can see some XML Gui files by looking in the kAuction folder or most any addon you have). However, nowadays there are some very strong libraries that can handle most GUI creation and management. In fact, the Wishlist part of kAuction is built without any XML files at all, using AceGUI-3.0 (http://www.wowace.com/addons/ace3/pages/ace-gui-3-0-tutorial/). If you try out AceGUI, one tip it took me quite a while to figure out, is the objects you create are tables, not actual frames. To access the frame itself from any object you created, it is the .frame subtable, e.g.:


local myAceFrame = AceGUI:Create("Frame");
myAceFrame("Example Frame");
myAceFrame.frame:SetBackdrop({bgFile = "Interface/Tooltips/UI-Tooltip-Background"});

SetBackdrop is a Widget API call (http://www.wowwiki.com/Widget_API). Many of the things you'd want to do with GUI elements, AceGUI has functions for, but as mentioned, use the .frame subtable to access the frame itself, for use with any Widget API functions.

That should do it, hope that gets you started. ><