diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/battle.c | 4 | ||||
-rw-r--r-- | src/map/mob.c | 13 |
2 files changed, 8 insertions, 9 deletions
diff --git a/src/map/battle.c b/src/map/battle.c index 759b88f83..f9dbb636e 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1763,8 +1763,8 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo if (sc && sc->data[SC_MIRACLE]) i = 2; //Star anger else - ARR_FIND(0, 3, i, t_class == sd->hate_mob[i] && (skill=pc_checkskill(sd,sg_info[i].anger_id))); - if (i < 3) + ARR_FIND(0, 3, i, t_class == sd->hate_mob[i]); + if (i < 3 && (skill=pc_checkskill(sd,sg_info[i].anger_id))) { skillratio = sd->status.base_level + sstatus->dex + sstatus->luk; if (i == 2) skillratio += sstatus->str; //Star Anger diff --git a/src/map/mob.c b/src/map/mob.c index b5089cab5..8b01df25b 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -1864,13 +1864,12 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) bonus += md->sc.data[SC_RICHMANKIM]->val2; if(sd) { temp = status_get_class(&md->bl); - ARR_FIND(0, 3, i, temp == sd->hate_mob[i]); - if (i < 3 && ( - battle_config.allow_skill_without_day || - sg_info[i].day_func() || - (i==2 && sd->sc.data[SC_MIRACLE]) //Miracle only applies to Star target - )) - bonus += (i==2?20:10)*pc_checkskill(sd,sg_info[i].bless_id); + if(sd->sc.data[SC_MIRACLE]) i = 2; //All mobs are Star Targets + else + ARR_FIND(0, 3, i, temp == sd->hate_mob[i] && + (battle_config.allow_skill_without_day || sg_info[i].day_func())); + if(i<3 && (temp=pc_checkskill(sd,sg_info[i].bless_id))) + bonus += (i==2?20:10)*temp; } if(battle_config.mobs_level_up && md->level > md->db->lv) // [Valaris] bonus += (md->level-md->db->lv)*battle_config.mobs_level_up_exp_rate; |