Browse Source

-Follow up to r17244 : Fixes warning 'check operator precedence' - bugreport:7508
Ignition Break now adds damage when weapon is fire element - bugreport:7433
Comet no longer affects targets on Land Protector - bugreport:7401
Spiral Pierce hitlocking now functions correctly (Thanks Playtester) - bugreport:4127

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

akinari1087 12 years ago
parent
commit
7d46012f3d
2 changed files with 11 additions and 6 deletions
  1. 4 4
      src/map/battle.c
  2. 7 2
      src/map/skill.c

+ 4 - 4
src/map/battle.c

@@ -793,7 +793,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,struct Damag
 		}
 
 		if(sc->data[SC_ZEPHYR] &&
-			flag&(BF_LONG|BF_SHORT) == (BF_SHORT|BF_LONG)){
+			(flag&(BF_LONG|BF_SHORT)) == (BF_SHORT|BF_LONG)){
 				d->dmg_lv = ATK_BLOCK;
 				return 0;
 		}
@@ -2592,9 +2592,9 @@ static struct Damage battle_calc_weapon_attack(struct block_list *src,struct blo
 						else if( i > 3 )
 							dmg -= 50; // Greater than 3 cells, less than 7. (250 damage)
 						dmg = (dmg * skill_lv) * (100 + (status_get_lv(src) - 100) / 12) / 100;
-						// Elemental check, +100% damage if your element is fire.
-						if( sstatus->rhw.ele  == ELE_FIRE )
-							dmg += skill_lv * 100 / 100;
+						// Elemental check, 1.5x damage if your element is fire.
+						if( sstatus->rhw.ele == ELE_FIRE )
+							dmg += dmg/2;
 						skillratio = dmg;
 					}
 					break;

+ 7 - 2
src/map/skill.c

@@ -1102,7 +1102,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, uint
 
 	case LK_SPIRALPIERCE:
 	case ML_SPIRALPIERCE:
-		sc_start(src,bl,SC_STOP,(15+skill_lv*5),0,skill_get_time2(skill_id,skill_lv));
+		if( dstsd || ( dstmd && !is_boss(bl) ) ) //Does not work on bosses
+			sc_start(src,bl,SC_STOP,100,0,skill_get_time2(skill_id,skill_lv));
 		break;
 
 	case ST_REJECTSWORD:
@@ -3856,7 +3857,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 	case AB_JUDEX:
 	case WL_SOULEXPANSION:
 	case WL_CRIMSONROCK:
-	case WL_COMET:
 	case WL_JACKFROST:
 	case RA_ARROWSTORM:
 	case RA_WUGDASH:
@@ -3932,6 +3932,11 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
 		}
 		break;
 
+	case WL_COMET:
+		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 KN_BRANDISHSPEAR:
 	case ML_BRANDISH:
 		//Coded apart for it needs the flag passed to the damage calculation.