Suggestion fixes
Thanks to @Lemongrass3110!
This commit is contained in:
parent
56c69b5da7
commit
b2441ca177
@ -3109,7 +3109,7 @@ static bool is_attack_hitting(struct Damage* wd, struct block_list *src, struct
|
|||||||
uint16 cart_remodel_lv = pc_checkskill(sd, GN_REMODELING_CART);
|
uint16 cart_remodel_lv = pc_checkskill(sd, GN_REMODELING_CART);
|
||||||
|
|
||||||
if (sd && cart_remodel_lv > 0)
|
if (sd && cart_remodel_lv > 0)
|
||||||
hitrate = hitrate * skill_get_hitrate(GN_REMODELING_CART, cart_remodel_lv) / 100;
|
hitrate = hitrate * static_cast<int16>(skill_get_hitrate(GN_REMODELING_CART, cart_remodel_lv)) / 100;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case RL_SLUGSHOT:
|
case RL_SLUGSHOT:
|
||||||
@ -3118,27 +3118,30 @@ static bool is_attack_hitting(struct Damage* wd, struct block_list *src, struct
|
|||||||
|
|
||||||
if (dist > 3) {
|
if (dist > 3) {
|
||||||
// Reduce n hitrate for each cell after initial 3 cells.
|
// Reduce n hitrate for each cell after initial 3 cells.
|
||||||
hitrate -= (skill_get_hitrate(RL_SLUGSHOT, skill_lv) * (dist - 3));
|
hitrate -= (static_cast<int16>(skill_get_hitrate(RL_SLUGSHOT, skill_lv)) * (dist - 3));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
struct s_skill_hitrate skill_hitrate = skill_db.find(skill_id)->hitrate;
|
s_skill_hitrate &skill_hitrate = skill_db.find(skill_id)->hitrate;
|
||||||
|
|
||||||
if (skill_hitrate.rate[skill_lv] != 100) { // Hit skill modifiers
|
if (skill_hitrate.rate[skill_lv] != 100) { // Hit skill modifiers
|
||||||
bool req_fail = false;
|
bool req_fail = false;
|
||||||
|
|
||||||
// List of skills required to be learned before adjusting hitrate (players only).
|
// List of skills required to be learned before adjusting hitrate (players only).
|
||||||
for (const auto &skill_req : skill_hitrate.skills) {
|
if (sd) {
|
||||||
if (sd && pc_checkskill(sd, skill_req.first) < skill_req.second) {
|
for (const auto &skill_req : skill_hitrate.skills) {
|
||||||
req_fail = true;
|
if (pc_checkskill(sd, skill_req.first) < skill_req.second) {
|
||||||
break;
|
req_fail = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If there were no requirements or the requirements were fulfilled successfully, apply the changed hitrate
|
||||||
if (!req_fail)
|
if (!req_fail)
|
||||||
hitrate = hitrate * skill_hitrate.rate[skill_lv] / 100;
|
hitrate = hitrate * static_cast<int16>(skill_hitrate.rate[skill_lv]) / 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user