Maybe i got something wrong, but since heal is no SC it shouldnt work that way. Its not even in the first list.
I think you have to change:
skill.cpp at line 6262 (least recent commit)
case AL_HEAL:
case AB_HIGHNESSHEAL:
{
int heal = skill_calc_heal(src, bl, skill_id, skill_lv, true);
int heal_get_jobexp;
if (status_isimmune(bl) || (dstmd && (status_get_class(bl) == MOBID_EMPERIUM || status_get_class_(bl) == CLASS_BATTLEFIELD)))
heal = 0;
To:
case AL_HEAL:
case AB_HIGHNESSHEAL:
{
int heal = skill_calc_heal(src, bl, skill_id, skill_lv, true);
int heal_get_jobexp;
if ((dstmd && (status_get_class(bl) == MOBID_EMPERIUM || status_get_class_(bl) == CLASS_BATTLEFIELD)))
heal = 0;
I did not test it but maybe it helps if the solution by Mahiro did not work.