Browse Source

- Corected the SC_MIRACLE + Anger code using the wrong skill level to calculate damage bonus.
- Corrected SC_MIRACLE to trigger Bless of the Stars on all defeated mobs.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11950 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 17 years ago
parent
commit
c5415465da
3 changed files with 11 additions and 9 deletions
  1. 3 0
      Changelog-Trunk.txt
  2. 2 2
      src/map/battle.c
  3. 6 7
      src/map/mob.c

+ 3 - 0
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]

+ 2 - 2
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

+ 6 - 7
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;