Stick an event on all your NPC's that fires under the ON=@Death trigger
Code:
[events e_killcount]
ON=@Death
IF (<act.tag0.questkill<src.id>>)
IF (<eval <act.tag0.<src.id>kills>> < <eval <act.tag0.requiredzombiekill>>)
act.tag0.<src.id>kills = (<EVAL <act.tag0.<src.id>kills>>+1)
ELIF (<eval <act.tag0.<src.id>kills>> == <eval <act.tag0.requiredzombiekill>>)
act.sysmessage quest complete
// blah blah give reward wipe the tags or freeze the counter and tell player to go to npc for rewards
ENDIF
ENDIF
Now all you have to do is put the tags on the player to set the kills to count and say how many kills are needed....
I have no doubt there are probably even simpler way, this is what I had off the top of my head.
Using the questkill tag like I have there, this event would be valid for any NPC in the world, all you have to do is set the tag on the player when the quest is given, though use the target NPC's actual ID tag.questkillc_zombie for example.
[EDIT]Actually thought about this and realized I had forgotted about the @kill trigger...
Script is pretty much the same:
Code:
[events e_killcount]
ON=@KILL
IF (<src.tag0.questkill<act.id>>)
IF (<eval <src.tag0.<act.id>kills>> < <eval <src.tag0.requiredzombiekill>>)
src.tag0.<src.id>kills = (<EVAL <src.tag0.<act.id>kills>>+1)
ELIF (<eval <src.tag0.<src.id>kills>> == <eval <src.tag0.requiredzombiekill>>)
src.sysmessage quest complete
// blah blah give reward wipe the tags or freeze the counter and tell player to go to npc for rewards
ENDIF
ENDIF
Except as you can see src & act are switched... This way would actually work better I think