Corrected a potential crash with Joint Beat (#4251)
* Follow up to cb2c553.
Thanks to @teededung and @cahya1992!
This commit is contained in:
@@ -3635,7 +3635,7 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
|
||||
break;
|
||||
case LK_JOINTBEAT:
|
||||
skillratio += -100 + 10 * skill_lv - 50;
|
||||
if (wd->miscflag & BREAK_NECK || (tsc && tsc->data[status_skill2sc(skill_id)]->val2 & BREAK_NECK)) // The 2x damage is only for the BREAK_NECK ailment.
|
||||
if (wd->miscflag & BREAK_NECK || (tsc && tsc->data[SC_JOINTBEAT] && tsc->data[SC_JOINTBEAT]->val2 & BREAK_NECK)) // The 2x damage is only for the BREAK_NECK ailment.
|
||||
skillratio <<= 1;
|
||||
break;
|
||||
#ifdef RENEWAL
|
||||
|
||||
@@ -4773,10 +4773,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
||||
|
||||
case LK_JOINTBEAT:
|
||||
flag = 1 << rnd() % 6;
|
||||
if (flag != BREAK_NECK && tsc && tsc->data[status_skill2sc(skill_id)]->val2 & BREAK_NECK)
|
||||
if (flag != BREAK_NECK && tsc && tsc->data[SC_JOINTBEAT]->val2 & BREAK_NECK)
|
||||
flag = BREAK_NECK; // Target should always receive double damage if neck is already broken
|
||||
if (skill_attack(BF_WEAPON, src, src, bl, skill_id, skill_lv, tick, flag))
|
||||
sc_start4(src, bl, status_skill2sc(skill_id), 50 + (skill_lv + 1), skill_lv, flag&BREAK_FLAGS, src->id, 0, skill_get_time2(skill_id, skill_lv));
|
||||
sc_start4(src, bl, SC_JOINTBEAT, 50 + (skill_lv + 1), skill_lv, flag&BREAK_FLAGS, src->id, 0, skill_get_time2(skill_id, skill_lv));
|
||||
break;
|
||||
|
||||
case MO_COMBOFINISH:
|
||||
|
||||
Reference in New Issue
Block a user