Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::General Support

Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself.

Reply
 
Thread Tools Display Modes
  #1  
Old 05-06-2008, 02:10 PM
Bulle
Hill Giant
 
Join Date: Jan 2008
Posts: 102
Default

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.
Reply With Quote
  #2  
Old 05-06-2008, 07:15 PM
Asphixiate
Sarnak
 
Join Date: Jan 2008
Posts: 62
Default

Excellent explanation Bulle, thank you. If that is indeed true, skill caps are working, just not displaying properly, so I can deal with that.
Reply With Quote
  #3  
Old 05-06-2008, 09:55 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

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{
	if (skillid > HIGHEST_SKILL)
		return 0;
  int16 r_value = 0;
  switch(skillid) {
    case _1H_BLUNT:
    case _2H_BLUNT:
    case PIERCING:
    case HAND_TO_HAND:
    case _1H_SLASHING:
    case _2H_SLASHING:{
    switch (class_) {
        // Pure melee classes
        case WARRIOR: case WARRIORGM:{
              r_value = 5 + (level*5);
              if ( level < 51 && r_value > 200)
                  r_value = 200;
              if ( level > 50 && r_value > 250 )
                  r_value = 250;
                switch (skillid) {
                  case PIERCING:{
                    if ( r_value > 240 )
                      r_value = 240;
                    break;
                  }
                  case HAND_TO_HAND:{
                    if ( r_value > 100 )
                      r_value = 100;
                    break;
                  }
                  default: break;
                }
              break;
        }
If this code is still used, I wonder if it might conflict with the skills table information. That is my best guess if the issue isn't client side.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #4  
Old 05-07-2008, 02:47 AM
Bulle
Hill Giant
 
Join Date: Jan 2008
Posts: 102
Default

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
Reply With Quote
  #5  
Old 05-07-2008, 02:53 AM
Bulle
Hill Giant
 
Join Date: Jan 2008
Posts: 102
Default

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 {
	return(database.GetSkillCap(class_, skillid, level));
}
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 02:53 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3