Browse Source

Follow up to r16647, fixed bugreport:5534. Moved the fix from skill.c to status.c.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16654 54d463be-8e91-2dee-dedb-b68131a5f0ec
cookiecrumbs 13 years ago
parent
commit
3353c38a8a
2 changed files with 7 additions and 9 deletions
  1. 1 9
      src/map/skill.c
  2. 6 0
      src/map/status.c

+ 1 - 9
src/map/skill.c

@@ -5170,15 +5170,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in
 	case NPC_MAGICMIRROR:
 	case ST_PRESERVE:
 	case NPC_INVINCIBLE:
-		/* if invincible, end the SC for off state */
-		if(skillid == NPC_INVINCIBLE)
-			status_change_end(bl, SC_INVINCIBLEOFF, INVALID_TIMER);
-
-		/* if invincible off, end the SC for on state */
-    case NPC_INVINCIBLEOFF:
-		if(skillid == NPC_INVINCIBLEOFF)
-			status_change_end(bl, SC_INVINCIBLE, INVALID_TIMER);
-
+	case NPC_INVINCIBLEOFF:
 	case RK_DEATHBOUND:
 	case AB_RENOVATIO:
 	case AB_EXPIATIO:

+ 6 - 0
src/map/status.c

@@ -6824,6 +6824,12 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val
 		if( type != SC_GT_CHANGE )
 			status_change_end(bl, SC_GT_CHANGE, INVALID_TIMER);
 		break;
+	case SC_INVINCIBLE:
+		status_change_end(bl, SC_INVINCIBLEOFF, INVALID_TIMER);
+		break;
+	case SC_INVINCIBLEOFF:
+		status_change_end(bl, SC_INVINCIBLE, INVALID_TIMER);
+		break;
 	}
 
 	//Check for overlapping fails