So... I'm thinking about adding a new NPCai for valiant monster/criminal-slaying NPCs that aren't guards, which is basically a carbon copy of the guard-ai, only without the being summoned on crimes-part, without teleporting after their target, and without yelling "Halt!" every time they attack someone.
I'm testing it right now, added a new ai to enums.h which I called aiFIGHTER, with an NPCAI value of 5, and added it to void CheckAi() in ai.cpp. One problem I've run into is with the NPCs not changing to new targets, just standing around in combat mode, especially if there have been lots of NPCs fighting the same monster. Though I'm not sure if this is related to the new ai or to some global bug in combat for NPCs.
Thoughts?