viewing paste rk_refresh_status_end_fix | Diff

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
Index: skill.c
===================================================================
--- skill.c (revision 16969)
+++ skill.c (working copy)
@@ -7523,7 +7523,7 @@
                 clif_skill_nodamage(src,bl,skillid,skilllv,
                                     sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv)));
                 status_heal(bl,heal,0,1);
-                status_change_clear_buffs(bl,2);
+                status_change_clear_buffs(bl,6);
             }
             break;
 
Index: status.c
===================================================================
--- status.c    (revision 16969)
+++ status.c    (working copy)
@@ -6397,7 +6397,7 @@
             case SC_DEATHHURT:
             case SC_PYREXIA:
             case SC_OBLIVIONCURSE:
-                //case SC_LEECHESEND://Need confirm. If it protects against nearly every Guillotine poison, it should work on this too right? [Rytech]
+            case SC_LEECHESEND: //08/31/2011 - Class Balance Changes
             case SC_CRYSTALIZE:
             case SC_DEEPSLEEP:
             case SC_MANDRAGORA:
@@ -10567,9 +10567,15 @@
 
     if (type&2) //Debuffs
         for (i = SC_COMMON_MIN; i <= SC_COMMON_MAX; i++) {
-            status_change_end(bl, (sc_type)i, INVALID_TIMER);
+           if (sc->data[i])
+               status_change_end(bl, (sc_type)i, INVALID_TIMER);
         }
-
+   
+   if(type&6) //Toxins
+       for (i = SC_TOXIN; i <= SC_LEECHESEND; ++i) {
+           if (sc->data[i])
+               status_change_end(bl, (sc_type)i, INVALID_TIMER);
+        }
     for (i = SC_COMMON_MAX+1; i < SC_MAX; i++) {
         if (!sc->data[i])
             continue;
@@ -10629,13 +10635,23 @@
             case SC_CURSEDCIRCLE_TARGET:
                 continue;
 
-                //Debuffs that can be removed.
-            case SC_HALLUCINATION:
+            //Debuffs that can be removed.
+            case SC_CRYSTALIZE:
+            case SC_DEEPSLEEP:
+            case SC_MANDRAGORA:
+            case SC_MARSHOFABYSS:
+               if(!(type&6))
+                   continue;
+               break;
             case SC_QUAGMIRE:
-            case SC_SIGNUMCRUCIS:
             case SC_DECREASEAGI:
+            case SC_BURNING:
+                if (!(type&2))
+                    continue;
+                break;
             case SC_SLOWDOWN:
-            case SC_MINDBREAKER:
+           case SC_SIGNUMCRUCIS:
+           case SC_MINDBREAKER:
             case SC_WINKCHARM:
             case SC_STOP:
             case SC_ORCISH:
@@ -10646,11 +10662,11 @@
             case SC_BITE:
             case SC_ADORAMUS:
             case SC_VACUUM_EXTREME:
-            case SC_BURNING:
             case SC_FEAR:
             case SC_MAGNETICFIELD:
             case SC_NETHERWORLD:
-                if (!(type&2))
+            case SC_HALLUCINATION:
+               if (!(type&2) || type == 6) //RK_Refresh is not supposed to remove these
                     continue;
                 break;
                 //The rest are buffs that can be removed.
Viewed 829 times, submitted by Guest.