Normally I would use just one detect area on the character but since you're using these to trigger which way the NPC should face then I guess it's fine. What you could do however is group all of the zones into one bit of logic so you don't need to repeat. i.e. put instance variable on the zone, if 1 then play frame 1 (face up), if 2 then player frame 2 (face left) or something like this, it would avoid the need to repeat the logic for each NPC as long as the frames of the animations are correct. You'll need to group NPCs into a family and use this to avoid further repeating of set animation events.