@status.c
case SC_CONCENTRATE:
status_change_end(bl, SC_HIDING, INVALID_TIMER);
status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER);
status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER);
+if ( type == SC_SIGHT && tsc && tsc->data[sC__SHADOWFORM]
+&& (tsc->data[sC__SHADOWFORM]->val1 * 10) < rnd()%100 )
+ status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER);
break;
case SC_RUWACH: /* ���A�t */
if (tsc && (tsc->data[sC_HIDING] || tsc->data[sC_CLOAKING] ||
tsc->data[sC_CAMOUFLAGE] || tsc->data[sC_CLOAKINGEXCEED] ||
tsc->data[sC__INVISIBILITY])) {
status_change_end(bl, SC_HIDING, INVALID_TIMER);
status_change_end(bl, SC_CLOAKING, INVALID_TIMER);
status_change_end(bl, SC_CAMOUFLAGE, INVALID_TIMER);
status_change_end(bl, SC_CLOAKINGEXCEED, INVALID_TIMER);
status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER);
if(battle_check_target( src, bl, BCT_ENEMY ) > 0)
skill_attack(BF_MAGIC,src,src,bl,AL_RUWACH,1,tick,0);
-}
+}else if (tsc && tsc->data[sC__SHADOWFORM]
+&& (tsc->data[sC__SHADOWFORM]->val1 * 10) < rnd()%100 )
+ status_change_end(bl, SC__INVISIBILITY, INVALID_TIMER);
break;
please report any bugs so we can fix it soon..^^
hope it helps...