In skill.cpp :
change :
case UNT_POEMBRAGI:
case UNT_APPLEIDUN:
case UNT_HUMMING:
case UNT_DONTFORGETME:
case UNT_FORTUNEKISS:
case UNT_SERVICEFORYOU:
if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER))
return 0;
if (!sc)
return 0;
if (!sce)
sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
else if (sce->val4 == 1) { //Readjust timers since the effect will not last long.
sce->val4 = 0; //remove the mark that we stepped out
delete_timer(sce->timer, status_change_timer);
sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min
}
break;
case UNT_FOGWALL:
to :
case UNT_POEMBRAGI:
case UNT_APPLEIDUN:
case UNT_HUMMING:
case UNT_DONTFORGETME:
case UNT_FORTUNEKISS:
case UNT_SERVICEFORYOU:
if (sg->src_id==bl->id && !(sc && sc->data[SC_SPIRIT] && sc->data[SC_SPIRIT]->val2 == SL_BARDDANCER))
return 0;
if (!sc) return 0;
if (!sce)
{
struct map_session_data *sd = (struct map_session_data *)bl;
if(sg->unit_id == UNT_POEMBRAGI && bl->type == BL_PC && (sd->class_&MAPID_BASEMASK) == MAPID_ARCHER)
{
sc_start4(ss, bl, type, 100, sg->skill_lv, (sg->val1 / 2), (sg->val2 / 2), 0, sg->limit);
break;
}
else
sc_start4(ss, bl, type, 100, sg->skill_lv, sg->val1, sg->val2, 0, sg->limit);
}
else if (sce->val4 == 1) { //Readjust timers since the effect will not last long.
sce->val4 = 0; //remove the mark that we stepped out
delete_timer(sce->timer, status_change_timer);
sce->timer = add_timer(tick+sg->limit, status_change_timer, bl->id, type); //put duration back to 3min
}
break;
case UNT_FOGWALL: