All it does is change the position of a line. It was like this:
With the fix it is like this:
"if(makeint(damage) <= 0) damage = 1;" should be below "damage = damage*kDmg;", not "if(rand(100) <= 5) critical = damage*2.0;". The fix makes sure that the code that makes a punch always deal at least 1 point of damage is run before the critical hit check is run. If it isn't, a critical hit by a punch might deal 0 points of damage when it should at least deal 2 points of damage.
Code:
// Baste -->
float damage = rand(rank)*0.5;
float kDmg = 1.0;
if(IsCharacterPerkOn(enemy, "BasicDefense")) kDmg = 0.9;
if(IsCharacterPerkOn(enemy, "AdvancedDefense")) kDmg = 0.8;
if(IsCharacterPerkOn(enemy, "SwordplayProfessional")) kDmg = 0.7;
damage = damage*kDmg;
float critical = 0.0;
if(rand(100) <= 5) critical = damage*2.0;
if(makeint(damage) <= 0) damage = 1;
bool noExp = false;
Code:
// Baste -->
float damage = rand(rank)*0.5;
float kDmg = 1.0;
if(IsCharacterPerkOn(enemy, "BasicDefense")) kDmg = 0.9;
if(IsCharacterPerkOn(enemy, "AdvancedDefense")) kDmg = 0.8;
if(IsCharacterPerkOn(enemy, "SwordplayProfessional")) kDmg = 0.7;
damage = damage*kDmg;
if(makeint(damage) <= 0) damage = 1;
float critical = 0.0;
if(rand(100) <= 5) critical = damage*2.0;
bool noExp = false;