Something quick that popped into my mind,
Adding this to src/map/pc.c @ pc_checksill should do the trick.
Then simply add the skill into a map zone as disabled skill. It basically makes pc_checkskill return level zero if the skill is disabled on a zone.
if (skill_id == MC_DISCOUNT || skill_id == RG_COMPULSION) for(ds = 0; ds < map[sd->bl.m].zone->disabled_skills_count; ds++) { if( skill_id == map[sd->bl.m].zone->disabled_skills[ds]->nameid) { return 0; } }
This would basically turn the skills level 0 on the map it is disabled, disabling the NPC discount.
P.S.: I havnt tested it, but should work.