Posted by kwslavens on Tue, 11 Jan 2011 03:08:57
Is there a way to do a filtered who and bring the data into a table? I'm trying to build a recruiting tool to find people to recruit...
Posted by jnwhiteh on Tue, 11 Jan 2011 09:58:59
You can use the SendWho function.
Posted by kwslavens on Tue, 11 Jan 2011 16:21:51
Ah I see... The Sendwho makes the query. I would need to set SetWhoToUI() to 1 to force the results to come back in the WHOLISTUPDATE. So I'd have an on Event function to catch the WHOLISTUPDATE data.
Sound about right?
Posted by jnwhiteh on Tue, 11 Jan 2011 16:34:35
Yep, although there's no guarantee that it will ever come back, or when it does that it will be your response =)
Posted by kwslavens on Tue, 11 Jan 2011 16:58:40
Really? How often would you expect to get the right data back?
Posted by kwslavens on Tue, 11 Jan 2011 17:25:54
Ok, I'm getting this slowly figured out. So since its a server query you can't be 100% sure that you will always get a response. I'm guessing most of the time it comes back correctly. Is there any way to verify that the response is correct or that it is your response? This is just a small utility project I am working to learn more about wow programming. Its been a long time since I've done much coding, many many years. So lots of new concepts to work through...
Posted by jnwhiteh on Tue, 11 Jan 2011 17:35:53
Unfortunately the 'who' system is one of the most fragile systems in WoW.
My suggestion is to download WowLua or some other in-game code editor and run some small scripts and tests and see what responses you get. You can use the /eventtrace command in-game to get a listing of all events and arguments as they fire and you can run code interactively.
Posted by kwslavens on Thu, 13 Jan 2011 00:15:25
I'm seeing what you mean on this... I have the code working... for the most part... what I've run into is that I do a who and grab the results but what I get is 1 who behind the last one...
So the first one I do is level 1-5... I get 0 hit it again... and it comes back right... then do a 6-10 and I get the 1-5 data... wait a few seconds and hit it again... and I get the right 6-10 data.... or at least what was right one time back.
So looks like I need a way to clear the last data out and wait until x seconds or new data comes up....
Posted by jnwhiteh on Thu, 13 Jan 2011 11:04:32
Are you waiting until you get the who event before trying to fetch the results? There's also a library you might want to use that works easier with the who system.
Posted by kwslavens on Thu, 13 Jan 2011 19:25:10
I wasn't at the start...
I ended up hooking the friends frame. Then checking to see if I was a: waiting for a reply, and b:that there was a WHOLISTUPDATE event. If so I grabbed the who data if not I passed it on to the original friends frame. It seems to work very well.
Now If I can only create a black list to avoid getting the same person twice... lol :-)
Thanks for all your help... its really been appreciated!