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.