Preserve Skill

Open src/map/skill.c and find:

case ST_PRESERVE:
Remove itNow find:

Code:
clif->skill_nodamage(src,bl,skill_id,skill_lv,		sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));break;
Add below:
Code:
		case ST_PRESERVE:			if( sd )			{				if( sd->sc.count && sd->sc.data[SC_PRESERVE] )				{					status_change_end(bl, SC_PRESERVE, INVALID_TIMER);					clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);				}				else				{					clif->skill_nodamage(src,bl,skill_id,skill_lv,						sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));				}			}			break;
Regards.
 
I went back and tried to reapply this on a fresh reinstall, and I got an error saying that sc_start needed 6 parameters, but only 5 were given. I fixed it by changing...

  case ST_PRESERVE:
if( sd )
{
if( sd->sc.count && sd->sc.data[SC_PRESERVE] )
{
status_change_end(bl, SC_PRESERVE, INVALID_TIMER);
clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);
}
else
{
clif->skill_nodamage(src,bl,skill_id,skill_lv,
sc_start(bl,type,100,skill_lv,skill->get_time(skill_id,skill_lv)));
}
}
break;
into....

case ST_PRESERVE:
     if( sd )
     {
       if( sd->sc.count && sd->sc.data[sC_PRESERVE] )
       {
         status_change_end(bl, SC_PRESERVE, INVALID_TIMER);
         clif->skill_nodamage(src, bl, skill_id, skill_lv, 1);
       }
       else
       {
         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;
 
Back
Top