PDA

View Full Version : tradeskill.cpp and stat modifiers


eq4me
09-07-2006, 10:47 AM
Sorry for being brief but its rather late and I am a bit tired %-)

I just started to have a close look at the tradeskill system and doing some enhancements and changes based on the info from eqtraders.com.

I noticed that calculating the chance modifiers for skillup and success are way off.

m_pp.INT and m_pp.WIS gives you the base score not the modified stat score with equipment and spells!

GetWIS() and GetINT() would be more correct.

Otherwise I noticed that the stat values shown in the Inventory window and reported by eg. GetWIS() are not allways the same. I hadn't time to test it throughoutly but it only seems to happen when the stat value goes over 300. I'll get back to this tomorrow.

CrabClaw
09-07-2006, 12:34 PM
Good job, I worked all my characters on my private server skills to 250-300+ (yes the hard way, tons of combines, an all the tradeskills except pottery). I do notice skill ups get very scarce and my buffed stats seem to have little effect on success. So there may be something here and it's not just me.

fathernitwit
09-07-2006, 02:40 PM
Good catch, the change has been made.

Yea, there are issues with the emu when abilities get too high, very few of the formulas have been updated since 60 was the level cap with the gear at the time... so really high stats/skills/modifiers tend to be a bit off.

John Adams
09-09-2006, 12:16 PM
Indeed. I've found a handful of skills that cap out well below 252 that literally vomit all over the log files when they still attempt to be raised - sense heading, for one - maxes at 200, but using #setskillall 252, it starts barking that some of my skills are too high. If I understood the code better, I could come up with a way that if a skill increase encounters a skill > than it's possible max, it'll correct and save out the skill data and stop trying.

However, I am scared of Emu source. If I go in there and learn something, my life is over.

eq4me
09-10-2006, 01:45 AM
Yes, I saw this too.

A sanity check build into #setskill and #setskillall would do the trick.

Something like:

if (new_skill_value > GetMaxPossibleRank(skillid) {
Message(13, "ERROR: Value %d to high for %d ! Setting it to %d", new_skill_value , GetSkillName(tradeskill) , GetMaxPossibleRank(skillid);
new_skill_value = GetMaxPossibleRank(skillid);
}


The variables are only for example, I didnt look in the code.