Well, it's not really Game_Troop's fault. It sounds like something is setting $game_temp.common_event_id to something greater than the maximum. Try looking for anything in the script that denotes a common event ID. If you can't find it, then go to line 169 of Game_Troop:
common_event = $data_common_events[$game_temp.common_event_id]
insert below that:
p $game_temp.common_event_id
Run the game. See what number it prints out right before the game crashes. Then make sure there are at least that many common events in your database. Then go back to the script and delete that line. Run it again and tell me if it still doesn't work.