Browse Source

- Reverted the previous SG freeze counter method. Now the counter is reset on status_change_clear.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9351 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 18 years ago
parent
commit
e3615a4cb5
2 changed files with 10 additions and 9 deletions
  1. 1 7
      src/map/skill.c
  2. 9 2
      src/map/status.c

+ 1 - 7
src/map/skill.c

@@ -1117,13 +1117,7 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
 		break;
 
 	case WZ_STORMGUST:
-		if (tsc->data[SC_FREEZE].val2 == src->id)
-			tsc->data[SC_FREEZE].val3++; //Repeated hits from same SG
-		else { //New SG, reset count
-			tsc->data[SC_FREEZE].val2 = src->id;
-			tsc->data[SC_FREEZE].val3 = 1; 
-		}
-
+		tsc->data[SC_FREEZE].val3++;
 		if(tsc->data[SC_FREEZE].val3 >= 3) //Tharis pointed out that this is normal freeze chance with a base of 300%
 			sc_start(bl,SC_FREEZE,300,skilllv,skill_get_time2(skillid,skilllv));
 		break;

+ 9 - 2
src/map/status.c

@@ -5894,11 +5894,18 @@ int status_change_clear(struct block_list *bl,int type)
 
 	sc = status_get_sc(bl);
 
-	if (!sc || sc->count == 0)
+	if (!sc)
+		return 0;
+
+	if (sc->data[SC_FREEZE].val3)
+		sc->data[SC_FREEZE].val3 = 0; //Reset freeze counter.
+	
+  	if (!sc->count)
 		return 0;
 
 	if(sc->data[SC_DANCING].timer != -1)
 		skill_stop_dancing(bl);
+
 	for(i = 0; i < SC_MAX; i++)
 	{
 		if(sc->data[i].timer == -1)
@@ -6138,7 +6145,7 @@ int status_change_end( struct block_list* bl , int type,int tid )
 			break;
 
 		case SC_FREEZE:
-			sc->data[type].val2 = 0; //Clear ID of SG caster
+			sc->data[type].val3 = 0; //Clear Storm Gust hit count
 			break;
 
 		case SC_MARIONETTE: