View Single Post
  #1  
Old 03-17-2019, 02:09 PM
mx4life
Fire Beetle
 
Join Date: Mar 2019
Posts: 9
Default Skill Up rule Character:SkillUpModifier has no effect

The rule Character:SkillUpModifier for modifying skill up rate has no effect on some skills (weapon & defense for example) after skill level 150.

In zone/Client.cpp function CheckIncreaseSkill:

Code:
	int32 Chance = 10 + chancemodi + ((252 - skillval) / 20);

	Chance = (Chance * RuleI(Character, SkillUpModifier) / 100);

	Chance = mod_increase_skill_chance(Chance, against_who);

	if(Chance < 1)
		Chance = 1; // Make it always possible

	if(zone->random.Real(0, 99) < Chance)
The calculation Chance = 10 + chancemodi + ((252 - skillval) / 20) will yield negative chance from skill value 153 for skills that use -15 as chancemodi (weapon, offense and defense).

And since the rule Character:SkillUpModifier is applied before the check that chance is at least 1 the rule will then have no effect at all.

Suggested change.

Just move the check that Chance is at least 1 before the rule Character:SkillUpModifier is applied.

Code:
	int32 Chance = 10 + chancemodi + ((252 - skillval) / 20);

	if(Chance < 1)
		Chance = 1; // Make it always possible

	Chance = (Chance * RuleI(Character, SkillUpModifier) / 100);

	Chance = mod_increase_skill_chance(Chance, against_who);

	if(zone->random.Real(0, 99) < Chance)
Reply With Quote