This code can be set by just about anything. Fuel, spark, compression or timing. You really need a scan tool that can read live data, or you're in the dark. You need to see misfire monitors to know what cylinders are misfiring and how bad. You need to see fuel trims to understand what kind of a misfire it is. If you can't see data, you can throw parts at it til you're broke. I'd suggest either buying a scan tool or just have it diagnosed. Once diagnosed, you can decide if the repair is something you want to take on, or have a shop do. But using a parts cannon is just a waste of money.