...Thats pretty inaccurate. They are numbered sequentially, so while one could argue that the date/time plays a role there, saying "date/time based" implies that the actual date and time take part in calculating the GUID, which is wrong. It doesn't matter if you create a character now, or in one hour. As long as no other player creates one in that time, the GUID will be the same...
true. your explanation is mainly exactly what i try to say. eg. there are/were UnitGUID ranges [which was/were reserved ranges (eg. serverOne got 0x03100000AA192FE0 till 0x03100000AAE92FE0 serverTwo in the same battlegroup got 0x03100000AAE92FE1 till 0x03100000BEE92FE1 and than serverOne started again with 0x03100000BEE92FE2) in a very very small time frame (especially with patch 3.0 and 3.1 - and i bet there will be some when gobs/worgens (4.0) are released, but this is just a guess, because the 3.0/3.1 guid changes was much more dramatic)] ... what i tried to say was: every UnitGUID on a specific server is incremented (by 1 [_depends_]) because this depends on factors that nobody expect Blizz coders knows... (and: you never ever know if _you_ can catch such a UnitGUID!) ... but: a lower UnitGUID is _always_ an older character (date/time based [yeah not only!]) on a server!).
...I mean if the Player ID starts from 1, and it normally increments by 1, then my logic assumes that if I see a player with an ID of 3.200.000~ that there would be also 3.2 million Player IDs/GUIDS...
no. there is no correlation between a 'high' and a 'low' UnitGUID (btw: check my previous post here: the UnitGUID is a hexadecimal string, not a decimal one [hex=0-9a-f and starts with 0x0??...ok, lets say its a string thats starts 0x0?? ;) ... ok ok 3200000 is possible (for char ident) ... ]).
its obvious that this can not be true, because first of all you need to know the lowest (or nearly lowest) UnitGUID of your server(!!!). this is the base. you can only get a lowest UnitGUID by catching many many UnitGUIDs in a very very large period of time. than you need to know the preserved guid ranges (which definitly exists on live servers that are older than 3.0/3.1!). if you know this facts you can make some guesses about server population, but you can never know if ever character creation is incremented by 1...(like i said before this _can_ be the case, but it must not be the case...nobody knows, expect Blizz coders)
- the UnitGUID in WoW is a 64-bit hexadecimal string. do not use tonumber(). you will get trouble if you do this.
- a WoW UnitGUID looks like: 0x040000000A182FE0
- 0x040 = battlegroup identification (globally unique)
- 000000A182FE0 = character identification (globally unique because of battlegroup identification)
- do not use excessive code execution in COMBAT_LOG*EVENT(s). minimalism rules.
- disable guid scanning/digging/catching in combat!
- simply save the whole UnitGUID and you can sort it easily.
- digging for UnitGUIDs on a test/beta realm is really useless. nearly all characters are created in a very small period of time. if you try to test code for testing purpose, okay, but ptr/beta servers are slow, really very very slow compared to live servers.
- the UnitGUID is definitly date/time based!!! (date/time of character creation! but there is no way to get this info. there is only an estimated date/time based on very large data and (server-based/WoW) experience).
- it's not possible to get a creation date unless you link the UnitGUID with the information someone can see in the account management side (this is the only place where you can see _when_ an account! (not a char!) was created (date only, no time). nobody with brain would allow some external code dig data from the WoW account management side --- or you have a SendAddonMessage() addonbot that sends played time data to you (but played time is not creation date)...).
- UnitGUIDs are incremented exactly by 1. i have catched hundreds of such UnitGUIDs on live servers.
- UnitGUID != BN/RealID. there is currently no way to link these two IDentifiers with the Lua API (which is good and VERY VERY IMPORTANT!!!, and for the sake of privacy concerns hopefully Blizzard will never change this!!!)
- check out GT100GCX aka 'Gnomish Top100 GUID Catcher Xtrem'. the current release version available here at wowace.com can catch up to 1000 UnitGUIDs per server (main purpose of this addon is to get old characters, and well i am currently doing a rewrite). in local tests i tried 5000, 10000 and even 250000(!!!): after digging nearly 1 year with 250000(!!!-one server only) i have not seen that much different UnitGUIDs on my server (and my server is one of the best visited and one of the oldest in europe). conclusion: your number of 3 million UnitGUIDs is not real, even on a ptr/beta server where people from the whole world join. you simply can not dig that much UnitGUIDs in such a short period of (ptr/beta) time. impossible!
- a high or low UnitGUID says nothing without a very large amount of comparable data and server-based experience.