summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog-Trunk.txt3
-rw-r--r--src/map/battle.c4
-rw-r--r--src/map/mob.c13
3 files changed, 11 insertions, 9 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index cd6c93f73..8a595585c 100644
--- a/Changelog-Trunk.txt
+++ b/Changelog-Trunk.txt
@@ -3,6 +3,9 @@ Date Added
AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
+2007/12/19
+ * Corrected SC_MIRACLE to trigger Bless of the Stars on all defeated mobs.
+ [Skotlex]
2007/12/18
* Fixed a possible buffer overflow in @partyoption [ultramage]
* Updated respawn time interpretation according to latest kRO update [Playtester]
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;