Those types of events would be simple. If you have a predefined list of events, then just make sure that you record the user id of the user that does each event. Then when you record another event of the same type, you just do a quick count and if they've completed said badge requirement, add it to the badges table.
For example, I may have an badge_events table which just lists the event title and an ID for that event. Then a badge_events_occurrences table which records the event id, user id, and some other pertinent information to the event.
It's an idea, and very rough around the edges; however, it's the first path I would head down.