diff --git a/Src/World Server/battle.cpp b/Src/World Server/battle.cpp index 79d7db4..ea72453 100644 --- a/Src/World Server/battle.cpp +++ b/Src/World Server/battle.cpp @@ -737,7 +737,12 @@ void CCharacter::UseAtkSkill( CCharacter* Enemy, CSkills* skill, bool deBuff) { //unsigned int totalpower = skill->atkpower + Enemy->Stats->Magic_Defense; unsigned int totalpower = Attack + Enemy->Stats->Magic_Defense; - double hitmod = Attack * 100 / totalpower; //percentage of hitpower to use * 100 + // + Stats->Level to match NormalAttack's hitmod (see battle.cpp + // NormalAttack) -- without it, skills never actually scaled with + // level despite the comment above claiming they do, and ended up + // hitting no harder than (often weaker than, since skills get no + // crit) a plain auto-attack. + double hitmod = Attack * 100 / totalpower + Stats->Level; //percentage of hitpower to use * 100 hitpower = (unsigned int)floor((double)(hitmod * Attack / 100)); //Log(MSG_DEBUG,"Skill magic: AP %i DEF %i",Stats->Attack_Power,Enemy->Stats->Defense); //Log(MSG_DEBUG,"Skill magic: Skill power %i. Attack %i",skill->atkpower,Attack); @@ -747,7 +752,7 @@ void CCharacter::UseAtkSkill( CCharacter* Enemy, CSkills* skill, bool deBuff) { //unsigned int totalpower = skill->atkpower + Enemy->Stats->Defense; unsigned int totalpower = Attack + Enemy->Stats->Defense; - double hitmod = Attack * 100 / totalpower; //percentage of hitpower to use * 100 + double hitmod = Attack * 100 / totalpower + Stats->Level; //percentage of hitpower to use * 100 hitpower = (unsigned int)floor((double)(hitmod * Attack / 100)); //Log(MSG_DEBUG,"Skill physical: AP %i DEF %i",Stats->Attack_Power,Enemy->Stats->Defense); //Log(MSG_DEBUG,"Skill physical: Skill power %i. Attack %i",skill->atkpower,Attack);