Index: clif.c =================================================================== --- clif.c (revision 16966) +++ clif.c (working copy) @@ -10791,7 +10791,7 @@ // Whether skill fails or not is irrelevant, the char ain't idle. [Skotlex] sd->idletime = last_tick; - if( pc_cant_act(sd) && !(skillnum == SR_GENTLETOUCH_CURE && (sd->sc.opt1 == OPT1_STONE || sd->sc.opt1 == OPT1_FREEZE || sd->sc.opt1 == OPT1_STUN)) ) + if( pc_cant_act(sd) && skillnum != RK_REFRESH && !(skillnum == SR_GENTLETOUCH_CURE && (sd->sc.opt1 == OPT1_STONE || sd->sc.opt1 == OPT1_FREEZE || sd->sc.opt1 == OPT1_STUN)) ) return; if( pc_issit(sd) ) return; Index: pc.c =================================================================== --- pc.c (revision 16966) +++ pc.c (working copy) @@ -4187,24 +4187,8 @@ if (nameid != ITEMID_NAUTHIZ && sd->sc.opt1 > 0 && sd->sc.opt1 != OPT1_STONEWAIT && sd->sc.opt1 != OPT1_BURNING) return 0; - if( sd->sc.count){ - if((nameid == ITEMID_NAUTHIZ) && ( //bugreport 6751 - sd->sc.data[SC_FREEZE] || - sd->sc.data[SC_STUN] || - sd->sc.data[SC_DEEPSLEEP] || - sd->sc.data[SC_STONE] || - sd->sc.data[SC_CRYSTALIZE] - ) - ){ - sd->sc.opt1 = 0; //remove option and status to allow skill - status_change_end(&sd->bl,SC_FREEZE,INVALID_TIMER); - status_change_end(&sd->bl,SC_STUN,INVALID_TIMER); - status_change_end(&sd->bl,SC_DEEPSLEEP,INVALID_TIMER); - status_change_end(&sd->bl,SC_STONE,INVALID_TIMER); - status_change_end(&sd->bl,SC_CRYSTALIZE,INVALID_TIMER); - } //let us continue - else if( - sd->sc.data[SC_BERSERK] || sd->sc.data[SC__BLOODYLUST] || + if( sd->sc.count && + (sd->sc.data[SC_BERSERK] || sd->sc.data[SC__BLOODYLUST] || (sd->sc.data[SC_GRAVITATION] && sd->sc.data[SC_GRAVITATION]->val3 == BCT_SELF) || sd->sc.data[SC_TRICKDEAD] || sd->sc.data[SC_HIDING] || @@ -4212,10 +4196,10 @@ sd->sc.data[SC__MANHOLE] || sd->sc.data[SC_KAGEHUMI] || (sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM) - ) + )) return 0; - } + //Prevent mass item usage. [Skotlex] if( DIFF_TICK(sd->canuseitem_tick, tick) > 0 || (itemdb_iscashfood(nameid) && DIFF_TICK(sd->canusecashfood_tick, tick) > 0) Index: status.c =================================================================== --- status.c (revision 16966) +++ status.c (working copy) @@ -1584,7 +1584,7 @@ if( sc && sc->count ) { - if( sc->opt1 >0 && (sc->opt1 != OPT1_CRYSTALIZE && src->type != BL_MOB) && sc->opt1 != OPT1_BURNING && skill_num != SR_GENTLETOUCH_CURE ) { //Stuned/Frozen/etc + if(skill_num != RK_REFRESH && sc->opt1 >0 && (sc->opt1 != OPT1_CRYSTALIZE && src->type != BL_MOB) && sc->opt1 != OPT1_BURNING && skill_num != SR_GENTLETOUCH_CURE ) { //Stuned/Frozen/etc if (flag != 1) //Can't cast, casted stuff can't damage. return 0; if (!(skill_get_inf(skill_num)&INF_GROUND_SKILL))