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:
@@ -8599,7 +8599,8 @@
break;
case SC_SLEEP:
case SC_DEEPSLEEP:
- opt_flag = 0;
+ if(type == SC_DEEPSLEEP)
+ opt_flag = 0; //Nosiege can't be used when under some status on some clients, this is a quick fix for Deep Sleep only
sc->opt1 = OPT1_SLEEP;
break;
case SC_BURNING:
@@ -8769,7 +8770,8 @@
}
//On Aegis, when turning on a status change, first goes the option packet, then the sc packet.
- if (opt_flag)
+
+ if (opt_flag)
clif_changeoption(bl);
if (calc_flag&SCB_DYE) {
@@ -10567,9 +10569,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 +10637,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 +10664,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.