PDA

View Full Version : P99 class distribution


JaVeDK
04-15-2010, 05:46 PM
In several threads now, people are commenting on the current class distribution on the P99 server. There are, as far as I can tell, no reliable data, other than a general "sense" of certain classes being over or under represented.

I am aware that only a fraction of the actual population frequent these boards, but with enough votes this may help paint a more accurate picture than the current estimations, which might in turn prove helpful to new people, in deciding which class to play or not play.

Dangergirl
04-15-2010, 05:53 PM
Be great to get some actual hard stats on this, but until that happens "More druids than you can shake a stick at" would be accurate.

harojaro91
04-15-2010, 05:55 PM
Census 1999, come on people!

Kanor
04-15-2010, 05:56 PM
I am a shaman in game. My alt is a ranger.

nilbog
04-15-2010, 05:57 PM
At what level would you consider someone to be "playing" a particular class?

JaVeDK
04-15-2010, 05:58 PM
I am a shaman in game. My alt is a ranger.

Remember to vote on the poll too (don't see any shamans or rangers registered yet)

harojaro91
04-15-2010, 05:58 PM
I think hes trying to get people to poll for the class that they play the most

JaVeDK
04-15-2010, 05:58 PM
At what level would you consider someone to be "playing" a particular class?

That's a good question. Do you mean level as in character level or hours/week level?

Nedala
04-15-2010, 06:00 PM
Just your mainchar i think )

nilbog
04-15-2010, 06:00 PM
Level.

JaVeDK
04-15-2010, 06:05 PM
Level.

Ok. I guess if you feel you have, for the time being, made a commitment to play that character to level 50, and that this character is currently your top priority and most played. Does that make sense?

nilbog
04-15-2010, 06:07 PM
What I mean is.. if you want to know how many particular people are playing a class above say.. level 10? They have put some time into it and they might play it again.

So, warriors might look like

SELECT
character_.class,
character_.level
FROM
character_
WHERE
character_.class = '1' AND
character_.level >= '10'
And the result would be ____ this many.

Trying to save you guys a lot of effort. :D

JaVeDK
04-15-2010, 06:11 PM
I'm afraid you lost me somewhat with that code stuff. Are you hinting that you will actually be able to pull the exact numbers from the database given certain search parameters?

That would be awesome and a quick way to know for sure, though the true current class distrubution might be somewhat polluted by twinks and retired characters

nilbog
04-15-2010, 06:12 PM
Yes. That is why I wanted an easy argument to use with it. Like level. :P

JaVeDK
04-15-2010, 06:13 PM
Well in that case your guess/opinion is as good as mine.

Level 10 might work I suppose. Anyone else got some thoughts on this?

nilbog
04-15-2010, 06:16 PM
433, btw. On the warriors > 10

I can't/won't be able to do queries everyday, but if it will help new players choose what to be, then find the conditionals that you need.

Tallenn
04-15-2010, 06:20 PM
I would say 4 different queries would be all we need to get an idea of what the high end game looks like:
50 (just 50)
46-49
40-45
30-39

That should tell us how many are at top levels, as well as how many will be there shortly. Any levels lower would have too many of chars that people just don't play enough to make a difference.

So, something like:

At level 50, there are:
22 bards
23 clerics
56 druids
etc

At levels 46-49 there are:
28 bards
50 clerics
97 druids
etc

(numbers there are completely made up out of thin air)

JaVeDK
04-15-2010, 06:25 PM
Tallenn: That sounds reasonable to me.

Nilbog: If you'd be up for running those 56 queries once or twice a month, and perhaps put them in a sticky, I'm sure many would find that very informative and helpful.

MogManX44
04-15-2010, 06:31 PM
that still wouldnt really be an accurate depiction of class distribution, you arent taking into account the people who joined later and are still leveling their main up.

Xumosa
04-15-2010, 06:31 PM
look at all those bards/druids! wtb clerics :x

it dosnt have to be completely accurate just a general idea is what it would give/help alot!

nilbog
04-15-2010, 06:35 PM
Nilbog: If you'd be up for running those 56 queries once or twice a month, and perhaps put them in a sticky, I'm sure many would find that very informative and helpful.Yeah, well I'm not gonna be doing that. Large queries on a running database are not good to do.. I was offering this as more of a 1 time deal since the server was down and I was gonna give you some quick answers.

Your census will be better for your goals.

JaVeDK
04-15-2010, 06:38 PM
that still wouldnt really be an accurate depiction of class distribution, you arent taking into account the people who joined later and are still leveling their main up.

There really isn't any way to get any accurate numbers with this sort of database query. For instance the database doesn't hold information on which characters are main, twinks or retired.

This is why this poll might give a clearer picture of the current status. I doubt people can be asked to do this poll every month to keep the numbers accurate though, and that's why Nilbog's solution might be better in the long run even considering it's limitations.

Tallenn
04-15-2010, 06:40 PM
that still wouldnt really be an accurate depiction of class distribution, you arent taking into account the people who joined later and are still leveling their main up.

Not completely accurate, but I think more accurate than including everything (such as all of each class level 10 and up), and I was trying to be as reasonable as possible, rather than asking Nilbog to run 10 different queries for each class.

If it were to be just one query only for each class, I'd say probably 40 and above would give us the best idea, but 4 different queries (the ones I mention above) I think would give us an at least somewhat accurate picture. Of course a separate query for every level would be even more accurate, but that's asking a lot.

JaVeDK
04-15-2010, 06:41 PM
Yeah, well I'm not gonna be doing that. Large queries on a running database are not good to do.. I was offering this as more of a 1 time deal since the server was down and I was gonna give you some quick answers.

Your census will be better for your goals.

I see. Well if you could provide the numbers suggested this one time, then that might still prove a valuable reference in analysing the final result.
And thank you very much BTW ;P

nilbog
04-15-2010, 06:45 PM
Np, you guys decide on some queries and let me know.

http://i44.tinypic.com/1zy811v.jpg

http://www.eqemulator.net/wiki/wikka.php?wakka=EQEmuDBSchemacharacter

SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '1'etc. I don't have time to do this now, so if someone wants to prepare some good queries, that'd be great. comprehensive and as few total queries as possible please.

JaVeDK
04-15-2010, 06:54 PM
Seeing as I know almost nothing about programming or SQL databases or whatever that is I won't be even trying, but I do hope someone's willing to help Nilbog out with this.

Interestingly enough I found the command timelaston in the link. If I read it correctly, this might be used to filter characters that have not been active for a while, which could be very helpful towards getting a more meaningful result.

Xumosa
04-15-2010, 06:59 PM
Seeing as I know almost nothing about programming or SQL databases or whatever that is I won't be even trying, but I do hope someone's willing to help Nilbog out with this.

Interestingly enough I found the command timelaston in the link. If I read it correctly, this might be used to filter characters that have not been active for a while, which could be very helpful towards getting a more meaningful result.

i think the timelaston is just if you want to do a search on 1 single player it tells you last time they are on

not everyone that has logged in after this time

jilena
04-15-2010, 07:09 PM
I am sql retarded but something like

SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '35' AND '50' AND
character_.class = '??' AND
(no clue how this field works exactly but last part should be currenttime minus lasttimeon < 30 days);

Something like that so you basically have characters of that class between 35 and 50 who have logged on in the last 30 days. (I would honestly do 7 days but with the downtime obv that might get a lil weird)

Cuz I'm sure there are tons of 35-50 chars that no one plays. Just showing a list of those that exist really wouldn't give as good a picture as those that actually get logged on.

It would be even better if you had some means of calculating how much /played has occurred in X time period. Since obv a lot of people log on their 50s to farm something or res someone or give someone money or something similar when they actually don't play them much.

lol

Xumosa
04-15-2010, 07:30 PM
hmm well hope im doing this right but here it goes...

SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '35' AND '50' AND
character_.class = '8'

maybe? not sure how to incorporate the timelaston if it does work that way then like jilena stated id implement last 30days :x

Tallenn
04-15-2010, 08:00 PM
No idea about the timelaston, so I just made those 56 queries (4 per class). I'm not sure about the print statement either. I've never used it, just found it on Internet. If messed up, let me know, I'll fix it.

PRINT "Warriors Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '1'

PRINT "Warriors Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '1'

PRINT "Warriors Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '1'

PRINT "Warriors Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '1'

PRINT "Clerics Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '2'

PRINT "Clerics Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '2'

PRINT "Clerics Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '2'

PRINT "Clerics Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '2'

PRINT "Paladins Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '3'

PRINT "Paladins Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '3'

PRINT "Paladins Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '3'

PRINT "Paladins Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '3'

PRINT "Rangers Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '4'

PRINT "Rangers Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '4'

PRINT "Rangers Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '4'

PRINT "Rangers Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '4'

PRINT "Shadow Knights Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '5'

PRINT "Shadow Knights Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '5'

PRINT "Shadow Knights Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '5'

PRINT "Shadow Knights Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '5'

PRINT "Druids Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '6'

PRINT "Druids Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '6'

PRINT "Druids Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '6'

PRINT "Druids Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '6'

PRINT "Monks Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '7'

PRINT "Monks Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '7'

PRINT "Monks Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '7'

PRINT "Monks Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '7'

PRINT "Bards Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '8'

PRINT "Bards Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '8'

PRINT "Bards Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '8'

PRINT "Bards Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '8'

PRINT "Rogues Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '9'

PRINT "Rogues Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '9'

PRINT "Rogues Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '9'

PRINT "Rogues Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '9'

PRINT "Shaman Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '10'

PRINT "Shaman Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '10'

PRINT "Shaman Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '10'

PRINT "Shaman Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '10'

PRINT "Necromancers Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '11'

PRINT "Necromancers Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '11'

PRINT "Necromancers Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '11'

PRINT "Necromancers Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '11'

PRINT "Wizards Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '12'

PRINT "Wizards Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '12'

PRINT "Wizards Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '12'

PRINT "Wizards Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '12'

PRINT "Magicians Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '13'

PRINT "Magicians Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '13'

PRINT "Magicians Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '13'

PRINT "Magicians Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '13'

PRINT "Enchanters Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '14'

PRINT "Enchanters Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '14'

PRINT "Enchanters Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '14'

PRINT "Enchanters Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '14'

jilena
04-15-2010, 08:17 PM
I think the queries are p worthless though without checking to see who has been on recently lol.

Minch/FureeZeb
04-15-2010, 08:32 PM
not worthless, just not completely accurate

Malrubius
04-15-2010, 08:57 PM
Would be great to see some race stats too (preferably in the same query as the class stuff). But whatever is easy. Easy is way underrated for some things.

JaVeDK
04-15-2010, 09:10 PM
While certainly interesting I don't think knowing the race distribution makes much of a difference, and if doing these queries are a bother, I'd rather we keep it as simple as possible. New players might factor in class distribution when deciding what class to play choosing one less played to the advantage of both the player and server. I don't see the same benefits being gained from race distribution data, as I assume few truly cares if there's a shortage of trolls as long as there's plenty of shamans, SK's and warriors around.

loganhxh
04-15-2010, 09:26 PM
well i mostly agree with you there, as i haven't made my char yet. still flip flopping back and forth between mage or necro, or maybe ench =/ or wiz...
i just know i want to save my melee char for when i am able to twink him some for easier grinding.

but i do know i took a little enjoyment out of being one of the very few female troll warriors back in the day so if i knew there was next to zero of a certain race i would be swayed that way myself.

Taluvill
04-15-2010, 09:55 PM
Thats awesome. I would love to see you use those 56 queries he put up.

Although more druids than you can shake a stick at is pretty accurate, although tbqh most of them are farmers.
Their real mains are in the pre-30's. I would imagine if you sliced the druid number in half, thats the number that are mains and the other half are farmer chars for iksars or for another alt they have.

Edit: in reality, there aren't that many druid mains i don't think, although we do start to become uber come kunark lol

jilena
04-15-2010, 10:08 PM
I think a nice breakdown of each class in the 35-50 range that have logged in in the past 30 days would be more than sufficient to give you an idea of what you'd be competing with on the server.

Rufus
04-15-2010, 10:13 PM
Looks pretty even so far (except of course a million druids).

Even Rangers getting some representation!!!

jilena
04-16-2010, 01:51 AM
So far we have learned from this thread that only 3 of the over 9000 shadowknights post on this forum.

Bones
04-16-2010, 09:01 AM
As I expected with most Emu servers, more druids than anything.
Still need moar wizards!

teews08
04-16-2010, 11:49 AM
As I expected with most Emu servers, more druids than anything.
Still need moar wizards!

Out of curiosity, I'm interested in trying a wizard, but really am scared about going oom after 2 spell casts. Seems like I'd pretty much be medding 24/7 with the exception of casting a spell every 5 mins...(maybe not that long, but be honest with me.) My question is, is it really like this? from 1-50?

p.s. I know there are multiple DD spells that wizards can cast, but lets say the best dmg per mana spell.

Bones
04-16-2010, 11:52 AM
Out of curiosity, I'm interested in trying a wizard, but really am scared about going oom after 2 spell casts. Seems like I'd pretty much be medding 24/7 with the exception of casting a spell every 5 mins...(maybe not that long, but be honest with me.) My question is, is it really like this? from 1-50?

p.s. I know there are multiple DD spells that wizards can cast, but lets say the best dmg per mana spell.

Honestly not sure, I haven't played one.
But any class will have that issue in the lower levels.
Fortunately you could probably cast only once or twice a fight and still equal or exceed any melee dps (in the lower levels anyways)
Once you get higher like at lvl 50 I think your mana pool will be large enough to cast quite a few nukes.

Ihealyou
04-16-2010, 01:37 PM
No idea about the timelaston, so I just made those 56 queries (4 per class). I'm not sure about the print statement either. I've never used it, just found it on Internet. If messed up, let me know, I'll fix it.

PRINT "Warriors Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '1'

PRINT "Warriors Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '1'

PRINT "Warriors Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '1'

PRINT "Warriors Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '1'

PRINT "Clerics Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '2'

PRINT "Clerics Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '2'

PRINT "Clerics Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '2'

PRINT "Clerics Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '2'

PRINT "Paladins Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '3'

PRINT "Paladins Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '3'

PRINT "Paladins Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '3'

PRINT "Paladins Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '3'

PRINT "Rangers Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '4'

PRINT "Rangers Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '4'

PRINT "Rangers Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '4'

PRINT "Rangers Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '4'

PRINT "Shadow Knights Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '5'

PRINT "Shadow Knights Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '5'

PRINT "Shadow Knights Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '5'

PRINT "Shadow Knights Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '5'

PRINT "Druids Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '6'

PRINT "Druids Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '6'

PRINT "Druids Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '6'

PRINT "Druids Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '6'

PRINT "Monks Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '7'

PRINT "Monks Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '7'

PRINT "Monks Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '7'

PRINT "Monks Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '7'

PRINT "Bards Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '8'

PRINT "Bards Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '8'

PRINT "Bards Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '8'

PRINT "Bards Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '8'

PRINT "Rogues Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '9'

PRINT "Rogues Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '9'

PRINT "Rogues Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '9'

PRINT "Rogues Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '9'

PRINT "Shaman Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '10'

PRINT "Shaman Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '10'

PRINT "Shaman Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '10'

PRINT "Shaman Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '10'

PRINT "Necromancers Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '11'

PRINT "Necromancers Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '11'

PRINT "Necromancers Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '11'

PRINT "Necromancers Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '11'

PRINT "Wizards Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '12'

PRINT "Wizards Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '12'

PRINT "Wizards Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '12'

PRINT "Wizards Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '12'

PRINT "Magicians Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '13'

PRINT "Magicians Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '13'

PRINT "Magicians Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '13'

PRINT "Magicians Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '13'

PRINT "Enchanters Level 50: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level ='50' AND
character_.class = '14'

PRINT "Enchanters Level 46 to 49: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '46' AND '49' AND
character_.class = '14'

PRINT "Enchanters Level 40 to 45: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '40' AND '45' AND
character_.class = '14'

PRINT "Enchanters Level 30 to 39: "
SELECT COUNT(*) FROM
character_
WHERE
character_.level BETWEEN '30' AND '39' AND
character_.class = '14'

There's an easier way to do this that doesn't require a million queries



select Character_.class, count(Character_.id) as 'Amount',
(count(Character_.id) / (select count(Character_.id) from Character_ where Character_.level between @LowerLevel and @UpperLevel)) as '% of Total'
from Character_
where Character_.level between @LowerLevel and @UpperLevel
group by Character_.class
order by Character_.class



just replace @LowerLevel and @UpperLevel and you're good to go. Also, if anyone knows how to parse timelaston you can use it to get current players. I looked around some, but didn't find anything about it.

guineapig
04-16-2010, 01:49 PM
select Character_.class, count(Character_.id) as 'Amount',
(count(Character_.id) / (select count(Character_.id) from Character_ where Character_.level between @LowerLevel and @UpperLevel)) as '% of Total'
from Character_
where Character_.level between @LowerLevel and @UpperLevel
group by Character_.class
order by Character_.class

Oooh, I like!

nilbog
04-16-2010, 02:02 PM
Thanks, ihealyou. That saves me some effort!

http://i43.tinypic.com/34fk4s7.jpg

Wenai
04-16-2010, 02:07 PM
http://www.eqemulator.net/wiki/wikka.php?wakka=ClassList

This will cover the next question. :p

guineapig
04-16-2010, 02:11 PM
http://www.eqemulator.net/wiki/wikka.php?wakka=ClassList

This will cover the next question. :p

Nice preemptive strike, and thanks Nilbog!

guineapig
04-16-2010, 02:16 PM
25 rangers between 30 and 50!!!.... so tempting to level one up. Yet I can't bring myself to pick that over bard or cleric for the guild.

dojo420
04-16-2010, 02:22 PM
you could check for active characters for the last month by adding this to the "where"-clause:

AND (DATEDIFF(now(), character_.timelaston) < 30)

not sure about the exact timestamp type used for that field, but datediff should work with about any timestamp / time / date type.

...i think =/

Ihealyou
04-16-2010, 02:51 PM
you could check for active characters for the last month by adding this to the "where"-clause:

AND (DATEDIFF(now(), character_.timelaston) < 30)

not sure about the exact timestamp type used for that field, but datediff should work with about any timestamp / time / date type.

...i think =/

Unfortunately there's a problem with that since its an int instead of a date

From the wiki:

timelaston
A timestamp representing the date/time the character was last logged on. While this may be obvious to some, to be perfectly clear, this field actually tracks the timestamp at which the player last logged off. This only came up because trying to use this field as a way of listing online players through a web-tool does not work properly.
This numeric timestamp is easily understood by the internal system routines, but it is not intended to be human-readable, so unless you've got a program to translate the number for you, don't expect to be able to look at this number with the naked eye and immediately tell the date/time it represents.


I couldn't find any more documentation on it, and unless its something like MMDDYYYYHHmm its probably pretty hard to figure out.

Dumesh Uhl'Belk
04-16-2010, 02:57 PM
so... quick math in my head

Total characters level 40+ : 843

Total tanks 40+ : 110
Total healers 40+ : 279
Total CC 40+ : 108
Total DPS 40+ : 346

Over all, it looks like the server might be a tiny bit light on tanks and CC, but not as drastic as I was expecting.

I wonder what the numbers would look like if it was limited to > 10 hours played in the last 30 days, and if multiple characters on one account, only the one with the highest number of hours. I know this is more than Nilbog can provide atm, but I am just suggesting ways to improve the usefullness of the data we have.

MogManX44
04-16-2010, 02:58 PM
112 30-39 druids...thats a bummer maybe i should reroll...

Bones
04-16-2010, 03:08 PM
wow.. more lvl 50 clerics than any other class? that's surprising for some reason.

Xumosa
04-16-2010, 03:11 PM
so many druids lol...you would think it would be easy to find a port..

Mordachai
04-16-2010, 03:16 PM
Unfortunately there's a problem with that since its an int instead of a date

From the wiki:


I couldn't find any more documentation on it, and unless its something like MMDDYYYYHHmm its probably pretty hard to figure out.

it sounds like it is a timestamp in the vein of "# of seconds since January 1, 1970" or something similar, in which case you could convert getdate() into seconds and then subtract that value and then calculate how long?

Minch/FureeZeb
04-16-2010, 03:17 PM
tried to save some people some time

codcereal
04-16-2010, 03:27 PM
tried to save some people some time

You succeeded, thank you!

Ihealyou
04-16-2010, 03:47 PM
it sounds like it is a timestamp in the vein of "# of seconds since January 1, 1970" or something similar, in which case you could convert getdate() into seconds and then subtract that value and then calculate how long?

I'm bored at work, so I looked it up, and you're right.

Add this to the where clause to get accounts active in the last 30 days


DateDiff(day, DateAdd(second, timelaston, '1/1/1970'), GetDate()) <= 30

Tallenn
04-16-2010, 04:23 PM
Definitely short of Pal and SK. Lots of Wars, but I think XP groups generally prefer Knight for tank, and really, how many Wars are going to be needed for raids?

Actually, if you look at it, very few rangers and not many bards, either. Am I the only one that thinks the 40% penalty may be having a significant effect on how many people are willing to play hybrids?

Mordachai
04-16-2010, 04:34 PM
Definitely short of Pal and SK. Lots of Wars, but I think XP groups generally prefer Knight for tank, and really, how many Wars are going to be needed for raids?

Actually, if you look at it, very few rangers and not many bards, either. Am I the only one that thinks the 40% penalty may be having a significant effect on how many people are willing to play hybrids?

I hope so, it weeds out a lot of people just playing x class to twink it for fun, and leaves most of the rangers/bards people who actually like the class! :)

Taluvill
04-16-2010, 06:31 PM
Definitely short of Pal and SK. Lots of Wars, but I think XP groups generally prefer Knight for tank, and really, how many Wars are going to be needed for raids?

Actually, if you look at it, very few rangers and not many bards, either. Am I the only one that thinks the 40% penalty may be having a significant effect on how many people are willing to play hybrids?

Warriors are needed for raids, and any raid force would enjoy 3ish warriors per raid. 1 works, but 3 would be nice for off tanking and such.

I think it affects them, but more or less there are a lot more sk's and paladins than you think. Rangers don't do the DPS of other classes (rogue, for example) in classic, and they wont till way later. Never played a classic ranger, but i'd assume it goes way up in kunark, at least from the items and weapons i've seen.

Bards are still somewhat bugged, and may not be able to get fixed. until they are 50 and skill levels+raid items basically make the bugs 100% obsolete, they are going to be a tough class to play.

Spud
04-16-2010, 06:54 PM
Thanks, ihealyou. That saves me some effort!

http://i43.tinypic.com/34fk4s7.jpg

wow so im just 1 of 57 huh?

112 druids between 30 and 39! wow

I really thought there would be more pal/sks alts 30 and up.

Tallenn
04-16-2010, 07:35 PM
Note that I didn't say it was a bad thing- or that it was a good thing, for that matter. I'm not really interested in playing one of those classes anyway, so it doesn't really affect me. I just thought it was interesting that the XP penalty does in fact seem to have a significant effect on the numbers.

Of course, part of that is the simple fact that it takes longer to level them up, so there's bound to be fewer when looking at only the 30+.

Xumosa
04-16-2010, 09:45 PM
thank you for the queue tallies nilbog! much appreciated :D

Mordachai
04-16-2010, 11:10 PM
Note that I didn't say it was a bad thing- or that it was a good thing, for that matter. I'm not really interested in playing one of those classes anyway, so it doesn't really affect me. I just thought it was interesting that the XP penalty does in fact seem to have a significant effect on the numbers.

Of course, part of that is the simple fact that it takes longer to level them up, so there's bound to be fewer when looking at only the 30+.

i certainly didn't take it as a slight, it's just a side effect that i enjoy, probably some kind of weird masochism or something?

twizztid
04-16-2010, 11:18 PM
At what level would you consider someone to be "playing" a particular class?

Probably around like level 15. At that level start getting skills / spells that that make them unique and useful ( ei druids getting sow, chanters getting breeze, stuff like that ), ( also I know those aren't the exact levels you get those skills, that is why I said like AROUND level 15 ).

JaVeDK
04-17-2010, 12:15 PM
Thank you Nilbog for running the queries. Very informative. There are actually more druids than I expected / feared :-(

Uaellaen
04-17-2010, 12:42 PM
Unfortunately there's a problem with that since its an int instead of a date

From the wiki:


I couldn't find any more documentation on it, and unless its something like MMDDYYYYHHmm its probably pretty hard to figure out.


sorry i cant resist ... yes a timestamp is a INT based value .. its actualy the amount of seconds that passed since Januar 1. 1970 00:00 UTC ... its actualy quite easy to calculate the current date and time out of a timestamp .. every coding language has a whole function dedicated to that :p

stormlord
04-18-2010, 05:04 AM
Ya. I played ranger in 1999. I didn't know about exp gain back then.

Back then, you played the ranger because you liked it. I'm afraid people will play the ranger, not like it, and focus their dissatisfaction on the slow exp rather than just moving on. I don't think anybody would have noticed that it's slower experience unless they were told so. I never noticed. I just played.

Accept everything that comes with the ranger. Rangers have always been called gimp. In live eq everyone says they got insta gate (die and go to bind). But people who play rangers don't care about being called gimp. I never have. I thought having track and heals and snare and everything else made up for it. People in groups get caught up in thinking Tank + Healer + DPS + CC and so on. I hate that kind of thinking. I like the flexibility of a hybrid class. They're dependable in various circumstances. I guess it matters more that I like to play them. Why? Bottom line, I like to go where I want to go. I don't want to be burdened by lack of versatility.

I got my ranger from 1999 and my 85 ranger on live. Always liked them.

stormlord
04-18-2010, 05:16 AM
i certainly didn't take it as a slight, it's just a side effect that i enjoy, probably some kind of weird masochism or something?

I've played rangers since 1999. It's not the slow exp. It's the perceived "gimpness" in the community. People don't think rangers can hold their own because they see rangers as a jack-of-all-trades, kind of like a bard. You can't neatly fit them into a dps or tank or cc role like you can a warrior or a rogue or an enchanter. People think in simple terms. They like simple, straightforward things. Rangers and other hybrids betray them.

The way I see it, rangers are at their best in new territory. In a new place. In the outdoors. Once everything is mastered and everybody knows what to do, rangers lose their value because everything is maximized to its fullest extent. But when things get crazy and confused, rangers have that extra flexibility to escape or invis or spot tank or something else. They won't save the group much, but they got more tricks than base classes.

Sadly, imho, eq is forgetting this. It's forgetting to put people in weird circumstances to give hybrids the extra edge they need to justify their role. There needs to be more zones that throw curve balls, that give you something new that you haven't seen before. It seems more and more classes in live eq are becoming generic molds of eachother. Losing their distinction. The aa's help to make up for the lost distinction, but not all. I mean, in almost every case I can think of, my 85 ranger is filling a dps role. I rarely ever have done cc or ranger things. They can't tank unless raid geared. That wasn't true several years ago - i was invising, tracking, rooting, snaring, bowing, even healing and tanking, the whole works! What happened is that other classes adopted those abilities, mobs started to hit like trucks, and everything blurred. This is just how I feel about it.

Think about it. Here on this server a ranger can afford to get hit a few times. But on live if you get hit a few times then you're DEAD. That's how hard they hit. No time to breathe. Warriors got their discs, and that's about the main thing that makes them tanks. Pallies and Sk's got one but it pales in comparison last I checked. Healers chain heal (twin cast) in group content. The game feels and plays different than it does here. It's not as relaxed. UF is kind of tough too. That's on top of everything else that's not the same. I mean, last I played, I had probably 4-5 dozen hotkeys for my ranger. That's nuts. It's not as simple as playing here.

Not to say live sucks. I play periodically. Will probably play again. Just sayin.

Olorin
04-18-2010, 05:33 AM
Ya. I played ranger in 1999. I didn't know about exp gain back then.

Back then, you played the ranger because you liked it. I'm afraid people will play the ranger, not like it, and focus their dissatisfaction on the slow exp rather than just moving on. I don't think anybody would have noticed that it's slower experience unless they were told so. I never noticed. I just played.

Accept everything that comes with the ranger. Rangers have always been called gimp. In live eq everyone says they got insta gate (die and go to bind). But people who play rangers don't care about being called gimp. I never have. I thought having track and heals and snare and everything else made up for it. People in groups get caught up in thinking Tank + Healer + DPS + CC and so on. I hate that kind of thinking. I like the flexibility of a hybrid class. They're dependable in various circumstances. I guess it matters more that I like to play them. Why? Bottom line, I like to go where I want to go. I don't want to be burdened by lack of versatility.

I got my ranger from 1999 and my 85 ranger on live. Always liked them.

Of course, while there were hybrid penalties in 99, the group ended up sharing the load as hybrids got more exp in group than the non-hybrids.

Striiker
04-19-2010, 09:29 AM
Out of curiosity, I'm interested in trying a wizard, but really am scared about going oom after 2 spell casts. Seems like I'd pretty much be medding 24/7 with the exception of casting a spell every 5 mins...(maybe not that long, but be honest with me.) My question is, is it really like this? from 1-50?

p.s. I know there are multiple DD spells that wizards can cast, but lets say the best dmg per mana spell.

I played a Wizard to 50 on Live during the classic era (Synge on Fennin Ro) before Kunark. You are not OOM after a couple of blasts from your top damage spell. Wizards get a very large mana pool and I believe their spells are much more efficient mana-wise. You will spend a lot of time meditating (let's be clear on that). The day I no longer had to stare at my spell book to meditate was one of the best.. If you are solo, you will experience a lot of downtime meditating. I was able to solo quite well outdoors (provided I had some form of run speed enhancement such as SOW or Jboots). One thing you will discover as a Wizard... Clarity is worse than crack. I became so addicted to clarity that I would bind in a dungeon with my group, do a "/who enchanter 32 50 all", find one near a Wizard port destination, send a tell asking for Clarity and then port out to meet them, sometimes running a zone or two to get to him/her, then gate back to the group. My addiction was so bad that my next character which I made was an enchanter. :) (I quickly fell in love with the enchanter for other reasons and it continues to be my preferred class to play.)
In groups, as a wizard, you will be meditating a lot and pop up once the fight has progressed to drop a nuke on the mob and then again towards the end. You also can save the day by chain-nuking when stuff gets bad, quickly dropping those mobs which would otherwise result in a wipe.
Lastly, let's not forget about Evac. I saved the day many times with this great spell.. I hope this helped you out.

JayFiveAlive
04-23-2010, 04:52 PM
My main is a 17 bard, but I made a alt wizzie to play when my friend doesn't play... your info helped me! I was wondering the same thing.

Can't wait to level the little guy up.

stormlord
04-24-2010, 05:57 AM
I played a Wizard to 50 on Live during the classic era (Synge on Fennin Ro) before Kunark. You are not OOM after a couple of blasts from your top damage spell. Wizards get a very large mana pool and I believe their spells are much more efficient mana-wise. You will spend a lot of time meditating (let's be clear on that). The day I no longer had to stare at my spell book to meditate was one of the best.. If you are solo, you will experience a lot of downtime meditating. I was able to solo quite well outdoors (provided I had some form of run speed enhancement such as SOW or Jboots). One thing you will discover as a Wizard... Clarity is worse than crack. I became so addicted to clarity that I would bind in a dungeon with my group, do a "/who enchanter 32 50 all", find one near a Wizard port destination, send a tell asking for Clarity and then port out to meet them, sometimes running a zone or two to get to him/her, then gate back to the group. My addiction was so bad that my next character which I made was an enchanter. :) (I quickly fell in love with the enchanter for other reasons and it continues to be my preferred class to play.)
In groups, as a wizard, you will be meditating a lot and pop up once the fight has progressed to drop a nuke on the mob and then again towards the end. You also can save the day by chain-nuking when stuff gets bad, quickly dropping those mobs which would otherwise result in a wipe.
Lastly, let's not forget about Evac. I saved the day many times with this great spell.. I hope this helped you out.

True. True. But to save the group by chain nuking you have to play conservatively which usually means sitting down and medding a lot. Right? (at least it's your choice) Melee's don't have this ability until much later when they give us disciplines, but even then it was never comparable to a wizard. I remember playing in crystallos and even with all my discs up i was at best 2x my normal damage - probably 2k dps back then. We had a wizard in our group and with a disc the wizard killed both of the mobs on us (these were heavy hitters) within seconds. It was mighty impressive and I was in awe. But there's an important drawback about chain-nuking. Wizards that're not trigger happy do indeed have this ability, but they might grab aggro. Do you agree?

Barkingturtle
04-29-2010, 12:33 PM
Anyone else curious what the population looks like after the experience bonus week? I am.

Ceridain
05-04-2010, 12:40 PM
Anyone else curious what the population looks like after the experience bonus week? I am.

mhmmm. :rolleyes:

Adso
05-04-2010, 02:13 PM
Ditto ^

L2Phantom
05-04-2010, 02:15 PM
Anyone else curious what the population looks like after the experience bonus week? I am.

Just add 30 bards, druids, and clerics to the list and you should be right on the money. CB is infested with those classes lately.

km2783
05-04-2010, 05:16 PM
I have a 12 ranger which is my highest so far. Still experimenting with classes right now, so I haven't really picked a "main".

Ripcord
05-04-2010, 05:22 PM
proud to be in the 3% ranger population

girth
06-26-2010, 02:11 AM
Any chance on an updated chart nilbog? If its just running a script, that is.

Braelyn
06-26-2010, 02:30 AM
I don't see many hybrids in-game, probably due to the heavy experience penalty.