|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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. |
07-01-2015, 04:46 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
Character create skill
I think at some point they changed it to where your skills capped when first creating a character, like your 1hb would be maxed when first created. I tried changing the source to not go through that routine, seems to still be doing it on player creation. Is there another place it could happen? I am not seeing a global quest causing it.
|
07-01-2015, 04:58 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
Is it doing it in the `class_skill` table?
|
07-01-2015, 05:06 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
That was my first stop. 1HB is 0 down the list except of course classes that cannot use it.
|
07-01-2015, 05:15 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
world/client.cpp, line 1789-1802:
https://github.com/EQEmu/Server/blob...ient.cpp#L1789
Code:
void Client::SetClassStartingSkills(PlayerProfile_Struct *pp)
{
for (uint32 i = 0; i <= HIGHEST_SKILL; ++i) {
if (pp->skills[i] == 0) {
// Skip specialized, tradeskills (fishing excluded), Alcohol Tolerance, and Bind Wound
if (EQEmu::IsSpecializedSkill((SkillUseTypes)i) ||
(EQEmu::IsTradeskill((SkillUseTypes)i) && i != SkillFishing) ||
i == SkillAlcoholTolerance || i == SkillBindWound)
continue;
pp->skills[i] = database.GetSkillCap(pp->class_, (SkillUseTypes)i, 1);
}
}
}
|
07-01-2015, 05:25 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
That is what is strange, in my source, which is a bit older, I remarked out the line that calls that procedure and it still happened.
Code:
// SetClassStartingSkills(&pp);
I compiled my source, brought the test server down and back up. Created a new character and things like 1hb were still maxed.
|
07-01-2015, 05:29 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
Hmm. Maybe instead of commenting out the function call altogether, you could try changing the line that reads:
Code:
pp->skills[i] = database.GetSkillCap(pp->class_, (SkillUseTypes)i, 1);
to:
Code:
pp->skills[i] = database.GetSkillCap(pp->class_, (SkillUseTypes)i, 1) == 0 ? 0 : 1;
|
07-01-2015, 05:36 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
Yep, still did it.
I have no idea where they are getting set at this point.
Just to be positive things are compiling right I went ahead and did a make clean, checked my links (ln -s). Everything is right.
|
07-01-2015, 05:51 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
Hmm... is it possible that Character Create actually registers a starting 1HB skill of 0, meaning it doesn't get saved into `character_skills` at all, and when the zone loads the character for the first time and doesn't find a skill value for it in the DB, it sets it to the max as a default?
|
07-01-2015, 06:09 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
It is possible, still diagnosing it down.
|
07-01-2015, 06:37 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
Looks like this is a place in the code where it might do that, but it's when a skill is trained at the Guildmaster.
zone/client_process.cpp, line 1736:
https://github.com/EQEmu/Server/blob...cess.cpp#L1736
Code:
uint16 skilllevel = GetRawSkill(skill);
if(skilllevel == 0) {
//this is a new skill..
uint16 t_level = SkillTrainLevel(skill, GetClass());
if (t_level == 0)
{
return;
}
SetSkill(skill, t_level);
} else {
|
07-01-2015, 06:40 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
I am probably out of time to look at it today, but will get back to it in the morning. It is kind of strange that did not fix it. I will do some testing Thursday.
Everything is working, this is rather minor.
|
07-01-2015, 06:42 PM
|
Dragon
|
|
Join Date: Apr 2009
Location: California
Posts: 814
|
|
Cool. Could do a test by explicitly setting 1HB skill to, say, 3 in the character creation code after all the skill functions are called. See if it gets overridden somewhere farther down the line.
|
07-01-2015, 06:50 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
That was exactly my debug strategy for the morning. Right now these peeps are keeping me super busy, which is a good thing.
|
07-01-2015, 06:51 PM
|
|
Developer
|
|
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
|
|
Are you sure that the client isn't overriding the server value for that level?
EDIT: Was trying to read back and see where you caught the issue first..
__________________
Uleat of Bertoxxulous
Compilin' Dirty
|
07-01-2015, 06:53 PM
|
|
Demi-God
|
|
Join Date: Nov 2007
Posts: 2,175
|
|
Quote:
Originally Posted by Uleat
Are you sure that the client isn't overriding the server value for that level?
|
It very well could be Uleat. Are you saying visually override it or really override it? The database really thinks the character is at that level.
This is a fresh character.
http://legacyoffroststone.com/CharBr...php?char=Rivea
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 11:47 AM.
|
|
|
|
|
|
|
|
|
|
|
|
|