Magnum Break damage fixed
- The 20% fire damage bonus now only applies if the base damage is at least 1 (#108) (Note: The fix does not work for player damage in renewal.) - Targets two cells away will now only take 100%+10%*level damage (#108)
This commit is contained in:
@@ -2621,7 +2621,7 @@ static struct Damage battle_calc_element_damage(struct Damage wd, struct block_l
|
||||
}
|
||||
if (is_attack_left_handed(src, skill_id) && wd.damage2 > 0)
|
||||
wd.damage2 = battle_attr_fix(src, target, wd.damage2, left_element ,tstatus->def_ele, tstatus->ele_lv);
|
||||
if (sc && sc->data[SC_WATK_ELEMENT]) {
|
||||
if (sc && sc->data[SC_WATK_ELEMENT] && (wd.damage || wd.damage2)) {
|
||||
// Descriptions indicate this means adding a percent of a normal attack in another element. [Skotlex]
|
||||
int64 damage = battle_calc_base_damage(sstatus, &sstatus->rhw, sc, tstatus->size, sd, (is_skill_using_arrow(src, skill_id)?2:0)) * sc->data[SC_WATK_ELEMENT]->val2 / 100;
|
||||
|
||||
@@ -3194,7 +3194,10 @@ static int battle_calc_attack_skill_ratio(struct Damage wd, struct block_list *s
|
||||
break;
|
||||
case SM_MAGNUM:
|
||||
case MS_MAGNUM:
|
||||
skillratio += 20*skill_lv;
|
||||
if(wd.miscflag == 1)
|
||||
skillratio += 20*skill_lv; //Inner 3x3 circle takes 100%+20%*level damage [Playtester]
|
||||
else
|
||||
skillratio += 10*skill_lv; //Outer 5x5 circle takes 100%+10%*level damage [Playtester]
|
||||
break;
|
||||
case MC_MAMMONITE:
|
||||
skillratio += 50*skill_lv;
|
||||
|
||||
@@ -4356,8 +4356,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
||||
case NPC_SPLASHATTACK:
|
||||
flag |= SD_PREAMBLE; // a fake packet will be sent for the first target to be hit
|
||||
case AS_SPLASHER:
|
||||
case SM_MAGNUM:
|
||||
case MS_MAGNUM:
|
||||
case HT_BLITZBEAT:
|
||||
case AC_SHOWER:
|
||||
case MA_SHOWER:
|
||||
@@ -4471,6 +4469,14 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
|
||||
if(!map_getcell(bl->m, bl->x, bl->y, CELL_CHKLANDPROTECTOR)) // Nothing should happen if the target is on Land Protector
|
||||
skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
|
||||
break;
|
||||
|
||||
case SM_MAGNUM:
|
||||
case MS_MAGNUM:
|
||||
if( flag&1 ) {
|
||||
//Damage depends on distance, so add it to flag if it is > 1
|
||||
skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag|distance_bl(src, bl));
|
||||
}
|
||||
break;
|
||||
|
||||
case KN_BRANDISHSPEAR:
|
||||
case ML_BRANDISH:
|
||||
|
||||
Reference in New Issue
Block a user