Its a bit of a pain to myself. . .
But look at this skill
TK_READYSTORM - This skill only has like 5-6 entries (SC_STORMREADY in status.c/h)
status.c
/* Permanent effects */
case SC_AETERNA:
case SC_MODECHANGE:
case SC_WEIGHT50:
case SC_WEIGHT90:
case SC_BROKENWEAPON:
case SC_BROKENARMOR:
case SC_READYSTORM:
case SC_READYDOWN:
case SC_READYCOUNTER:
case SC_READYTURN:
case SC_DODGE:
case SC_PUSH_CART:
case SC_SPRITEMABLE:
case SC_CLAN_INFO:
case SC_DAILYSENDMAILCNT:
tick = INFINITE_TICK;
break;
then in skill.c
case BS_MAXIMIZE:
case NV_TRICKDEAD:
case CR_DEFENDER:
case ML_DEFENDER:
case CR_AUTOGUARD:
case ML_AUTOGUARD:
case TK_READYSTORM:
case TK_READYDOWN:
case TK_READYTURN:
case TK_READYCOUNTER:
case TK_DODGE:
case CR_SHRINK:
case SG_FUSION:
case GS_GATLINGFEVER:
if( tsce )
{
clif_skill_nodamage(src,bl,skill_id,skill_lv,status_change_end(bl, type, INVALID_TIMER));
map_freeblock_unlock();
return 0;
}
clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
break;
The bottom on says that if your already affected by the skill youll just turn it off and if not itll start its status ( I think )
So i bet that these are the only 2 places you need to make changes to make a skill/status toggleable
If not just copy TK_READYSTORM completely its a really simple skill, i really doubt rathena made extra changes somewhere else in the src for this cause in hercules these are the only 2 spots (just organized differently) I needed to edit to get a toggleable skill
Also the duration on TK_READYSTORM may be differnt in your skill.db ( it doesnt even have a duration in mine so im assuming its infinite duration from status.c)
Good luck , also recompile after working in src