Red Skill Caps
Searched the forums pretty thoroughly, this is the best post I could find that describes what I am experiencing..but no one replied to him. http://www.eqemulator.net/forums/sho...ght=skill+caps
So currently my server has a level cap of 60. Reading the skill_caps table, sk 1hs should skill to 260, however the client displays a red skill cap max of 225. The chat log keeps skilling up correctly past 225, but the players attack value does not increase accordingly, suggesting that anything past 225 is not taking effect. So it seems that it is more than a display issue. Several skills are doing this. Weapon skills, casting schools, dodge, taunt, meditate, and probably more. Server level cap is 60, and players may only achieve level 60, so nothing funny going on there. Any idea why this is happening? |
I have a post on another skills issue here:
http://www.eqemulator.net/forums/showthread.php?t=24808 Basically, my issue isn't the same as yours, but I figured they are sort of related lol. My problem is player skills not being displayed properly for characters over level 70. I think I found somewhere in the source that sets caps for almost all skills. Though, I think they are supposed to be set in the skillcaps table now. Maybe that is what causes the skill caps in red problems. I will try to see if I can find that part of the source again maybe tomorrow and post it here if someone hasn't resolved your issue by then. I am no coder, but most of the stuff seems simple enough to find if you read through the source. I just have no idea how to fix things yet lol. |
Yeah I read yours, just related to this other guy's more. It just seems weird, I'm not doing anything out of the ordinary, so I'm not sure why the skills aren't functioning properly, seems everyone using the PEQ DB would be seeing the same thing, is this not true?
|
I'm seeing the same thing on my server. My Ranger's archery is continually skilling up and is in the 270's now, but if I pull up the skills window it has 236 in the skills window.
|
maybe not related but, .. i can skill up off green mobs also /ponder
|
There is something to remember : although the EQEmu server can implement whatever it wants, the EQ client is kinda frozen. It is the Titanium client, and we do not own the source code for it. The good thing is that not many things are hard-wired in the client, but still some are.
HP/Mana/ATK/AC calculations are re-done on the client. It means the server and the client's view may differ unless the server code computes those values as the client does. In the end, what the player sees in the EQ client for those values does not matter (let's say it's psychological). The server uses the values it computes for combat etc. Of course over time the server formulas have been tuned to match what the client thinks (based on the stuff equipped, the level, the class etc). For example (chosen at random !), you could code your server to consider that all halflings suck and have AC 0 for mitigation purposes even in full armor, and the client would still show you your great 2500 AC. You would still eat damage like a level 1 wizard, the server decides there. From my experience the skill caps work in the same way : the client has its own view of what the skill caps are. The server can have another view, and it is this one that matters most of the time... Except in those few situations when the client has control, like when trying to pick locks, hide, equip two weapons : if your class/race/level cannot dual wield in Live EQ you will not be able to dual wield whatever the skill caps you have put in your server DB. The EQ client does not ask the server whether the character can equip two weapons, it considers it "knows" it all from the start. Hence your "red skills". The EQ client will only abide by the skill caps that Live EQ had back then, at the time of Titanium. You can hit as if your 2-H Slash is 300 no problem but the client will show you 200 if it thinks it is your normal cap. If someone could deny this I would be very happy, more freedom to us, but that is my experience with the Emu. A few things are hard-coded by the client, you have to live with them. |
Excellent explanation Bulle, thank you. If that is indeed true, skill caps are working, just not displaying properly, so I can deal with that.
|
Ya, skill caps all seem to work properly server side. They just don't display right. You can use the #showstats command to see your AC going up when you defense skills over cap.
One thing I figured I would mention is that in the source, it looks like there are settings for max skills. I don't know if that is just old code that isn't used anymore since the skills table is where it is supposed to be set now. But, if you look at the zone/maxskill.h file in the source, you can see code that seems to be setting the max skills: Code:
int16 Mob::MaxSkill_weapon(int16 skillid, int16 class_, int16 level) const{ |
A quick grep showed this header file is not included in any other file anymore. Which means it is not used during compilation, ie everything in it is ignored in the current Emu. I guess it has been left there for reference purpose, or just because it has been forgotten. Or may be a dev is dearly attached to it and cannot get to the point of deleting it :)
|
Funny thing is : client.h also declares MaxSkill_weapon but it is used nowhere either. Probably some left-over code too.
The current method used for getting the max skill is (tada !) : MaxSkill Code:
int16 Client::MaxSkill(SkillType skillid, int16 class_, int16 level) const { |
Sorry for the thread necro, but I'm getting strange results and am having trouble following this.
I found Client::MaxSkill, and it eventually inherits from the GetSkillCap function in common/database.cpp. Code:
int8 Database::GetSkillCap(int8 skillid, int8 in_race, int8 in_class, int16 in_level) On the assumption that this is the actual function being used, this code shouldn't work. At least in the peq database I'm running (rev974), there is no skillcaps table. I see a skill_caps table, but it has a different field structure. I have a bot in PoK doing testing on this, and the script code fragment looks like this: Code:
if($text=~/skills/i) { |
All times are GMT -4. The time now is 06:26 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.