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.
|
Is it doing it in the `class_skill` table?
|
That was my first stop. 1HB is 0 down the list except of course classes that cannot use it.
|
world/client.cpp, line 1789-1802:
https://github.com/EQEmu/Server/blob...ient.cpp#L1789 Code:
void Client::SetClassStartingSkills(PlayerProfile_Struct *pp) |
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); |
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); Code:
pp->skills[i] = database.GetSkillCap(pp->class_, (SkillUseTypes)i, 1) == 0 ? 0 : 1; |
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. |
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?
|
It is possible, still diagnosing it down.
|
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); |
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. |
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.
|
That was exactly my debug strategy for the morning. Right now these peeps are keeping me super busy, which is a good thing.
|
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.. |
Quote:
This is a fresh character. http://legacyoffroststone.com/CharBr...php?char=Rivea |
I think some clients mask out invalid values..can't remember if SoF+ does it, or Ti-.
Let me see if I can find some older postings on that. EDIT: http://www.eqemulator.org/forums/showthread.php?t=37183 I 'think' this is the last I remember of a similar issue. |
Well lets call off the hunt...
Code:
pp.skills[SkillSenseHeading] = 101; Not sure what causes it, but it must be client side. Players will just have to deal with getting a boost at level 1, it is high hanging fruit right now. I can approach it later on. |
I did some poking around. It appears that it's a display-only thing client-side, and it doesn't appear to affect the Titanium or Secrets of Faydwer clients, but it does RoF. Don't have an Underfoot client to test with, I don't think.
You can manually set the character's 1HB skill (skill_id 0) to an arbitrary value like 3 in the character_skills table and log into the new character with any of the clients. Camp out and re-log into the same character with another client. No need to delete and re-create. Titanium will show "1H Blunt - 3", SoF will show "1H Blunt - 3/10", RoF2 will show "1H Blunt - 10/10". It's still correct on the server side. It's the UF+ or RoF+ client side that's showing skill cap values at level 1 no matter what the actual values are. |
Just verified that indeed the database does have the correct skill of 1hb for the character, the client shows 10. But when you go to the trainer it shows 10 and you cannot train up, nor does the skill go up with usage.
|
Huh. The plot thickens. So the RoF+ client completely ignores skill values at level 1. Does the problem go away at level 2?
|
These are my findings now. I had almost given up to "UF issue", but that cannot be the case.
So as it stands now, create a level one character the values are still at skill max. The database shows things like 1hb at skill level 0, or 1, tried both. Going to the trainer is says they are at max. If you fight, skills never go up. But if you do a gm command and #setallskills 0 everything is perfect. When you log in and out, everything goes back to max. So that is where I am, just going to start going through the source now. |
Huh. And skilling up during fighting should be server side, suggesting it's not wholly the client's fault. Wonder if it's more of a packet issue or something with UF+.
|
I do not know just yet, but I always look for something simple and obvious first.
|
Hello,
Was there ever a resolution to this? I've been attempting to do the same kind of thing - either commenting out the code or setting it to zero, but it's not recognizing it on the client or the database. Each time the values are set to the skill maximum. I also attempted to set it in the SetRacial (since it's called after), but unfortunately to no avail. Thanks, Apocal |
Quote:
So, if you set level 1 1hb to 100 max skill, you'd start with 100 skill. If you set it for 5, you'd start at 5... If you set level 2 at 100 you could raise to 200 once you level. When I first started messing with custom skills for each class, I found this and everything I found on the forums indicated there is no way to bypass. Everything indicated it's a visual skill level for the client, but I do not know if that's true or not. Only thing suggested were scripts to set skill value or just set level 1 to what you want starting skills to be. (Essentially skills like sense heading could be set for 1 at lvl 1 and 101 at lvl 2... ) |
All times are GMT -4. The time now is 07:52 PM. |
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.