Maximum returned who results ~= 600?

Questions and discussions on development tools for WarcraftRealms
Post Reply
Rhonority
Posts: 3
Joined: Thu Nov 16, 2006 9:19 pm

Maximum returned who results ~= 600?

Post by Rhonority »

It seems to me that CensusStart pushes twelve SendWho() arguments into the queue and that limits the maximum number of characters per scan to 600. If I have misunderstood the CensusStart syntax, please let me know. As far as I know it's performing each of the following requests sequentially:

/who 1-5
/who 6-10
/who 11-15
... (6 omitted)
/who 50-55
/who 56-59
/who 60-60

I have found more than 50 level 60s online at one moment. My goal here is to collect an accurate and complete snapshot of characters on my server at any given moment. Am I misunderstanding the functionality or alternatively is there any chance of expanding the CensusStart function?

User avatar
DM.
Census Taker
Posts: 1130
Joined: Mon Oct 03, 2005 12:27 pm
Location: Toronto, Canada

Post by DM. »

The /who command has several properties of which Census takes advantage of:

/who [string[ string2...]] [num[-num2]] [r-"race"] [c-"class"] [z-"zone"] [g-"guild"]


If you enable the Verbose option you will see the exact commands that Census is sending to do the /who command.

So a command like:
/who 60-60 r-"Human" c"Mage"

Would be something that will show you all lvl 60 Human Mages online. If this fails then Census will proceed to do text string searches using predefined chars to find players that way. Census will do a /who 60-60. If more than 50 returns then it will proceed to do a more deeper scan of using the /who 60-60 r-"Human" command. If more than 50 return then it will then search by class name, and if more return then it will go through using text searches. But normally by now the results should be less than 50 and no need to go into text searches :)

There is no limit to how much characters Census finds in each scan. And it should show you when its finished how many chars it finds.
Image
Click my sig

Hybuir
Gear Dependent Squirrel
Gear Dependent Squirrel
Posts: 1471
Joined: Tue Sep 06, 2005 6:22 am
Location: Austin, TX
Contact:

Post by Hybuir »

The method is redundant and it might find a characacter more than once, but ensures that all characters online are accounted for :)

Rhonority
Posts: 3
Joined: Thu Nov 16, 2006 9:19 pm

Post by Rhonority »

Could you point me to the part of the code where it pushes things into the job queue and the part where it evaluates the results and determines wether or not to pursue a more in depth search? It only seems to be doing the detailed search for level 60, and other level ranges with more than 50 people go unprocessed.

Thanks.

User avatar
DM.
Census Taker
Posts: 1130
Joined: Mon Oct 03, 2005 12:27 pm
Location: Toronto, Canada

Post by DM. »

While I'm no expert on Rollie's code lets just say that Census does in fact do those more deeper scans based on if any /who result returns more than 50 chars. I've seen it happen before.

Just try it yourself :)

do some /who commands and see what comes up, then compare that to what Verbose is showing and what is returned. Should be the same results.
Image
Click my sig

Rhonority
Posts: 3
Joined: Thu Nov 16, 2006 9:19 pm

Post by Rhonority »

Yeah, I was wrong when I said it isn't performing more detailed searches when 50 results are returned on the within a level bracket. I am still curious where the code that performs those more detailed searches lives in the lua scripts.

I see now that it searched 5 levels, then breaks those down into 1-3 and 4-5, then breaks those down further into 1, 2, 3, 4, 5 and failing that searches each of those by race, then by race and class. However the code I see in the CensusStart function seems to just perform the initial 12 /who scans. Any further direction is appreciated. And thanks DM for the advice on the verbose mode, that clearly shows that the scans I think are being run are actually far more detailed.

-Rho

Post Reply