Bullets are a difficult thing to emulate in a virtual environment, whether PNP or otherwise. They're weird because bullets travel so fast they're impossible to dodge, yet there are factors that increase the difficulty in hitting a target.
Melee combat by comparison is pretty easy since it's an opposed skill test. One guy is trying to hit the other, and the other guy is attempting to block or dodge or cut off the other dude's sword arm or whatever. You don't have to emulate every element of a melee swing such as arc of swing or style of block, and adding that sort of mechanic in makes the system clunky. You want combat flowing pretty fast, and the best systems actually simplify blocking into a defense value, making only the attack roll matter. Active defenses such as martial arts counterthrows can be created as special rules.
Firearms are a little different. Aiming is a factor of the shooter's state and the target's, as well as the inherent accuracy of the weapon and ammunition used. Unlike melee combat where defense values are just something to simplify combat, defense against firearms really don't have any reaction possible. If you're moving or making yourself hard to get hit, you're not actually dodging, you're just making it harder for them to hit you.
Making a shot with a firearm that shoots bullets is about degrees. Character skill, firing position, and current status (wounded, whatever) add variance to the angle of the shot. Likewise, each weapon also has a set amount of variance. Accuracy deviations can be represented as fractions of MOA; 1 MOA represents 1 inch wide groups at 100 yards; a typical hunter might shoot 3-4 MOA groupings, most of which is his own personal skill and positioning while the rifle itself might be a 1 MOA or less gun. A benchrest shooter might shoot 1 MOA or less groups, most of which is the rifle deviation, due to the better supported position, clear target, and longer time taking the shot. Note that a 1 MOA group is 1/2 inch and not 1 inch from the point of aim.
MOA ratings can be compared to the size of the target to determine accuracy; a 4 MOA shooter (gun + character) will hit a stationary target in the head at 100 yards 100% of the time, but at 200 yards, since a human head is 5-6 inches across or so, he might have a 75% chance to hit for a 6-inch human head. He'll still hit 100% of the time if he aims center mass on the torso. We can probably simplify this by making the human body effectively a 16-18-inch target most of the time and have called shots be 4-6 inches. Technically this only counts the shortest distance, so this gives the shooter the worst chance of hitting, but that's honestly fine for simulation purposes.
When a character takes a shot, he just rolls on his accuracy based on the target size. If he rolls under the target size, he hits. So a shooter who is firing 8 MOA groups (he's standing and recently readied his rifle, such as a combat situation) could shoot anywhere from center mass (direct hit) to 4 inches in any given direction, but we just check that as a 4 inch group at 50 yards (easy hits) or a 16 inch group at 200 yards (much harder).
At anything but point-blank range, a moving target either effectively makes itself smaller (ideal for PNP rules) or adds to the shooter's MOA (more accurate to reality). Any moving target dramatically alters accuracy since the shooter cannot maintain a stable firing position unless he leads the target.
Weather factors are a difficult thing to incorporate, as is elevation. Technically bullet drop matters, but there's really no reason to factor it in since it's assumed that a shooter would make elevation adjustments to his sights before taking the shot. If a weapon is zeroed at a particular distance (200 yards for instance) and a character is thrust into combat at 100 yards, elevation doesn't matter too much. For long-distance combat at 300 yards or more, it might incur an MOA penalty if a character doesn't take some kind of aiming action to adjust his sights and snap in on the target.
Automatic weapons fire is difficult in anything that can be approximated in a PNP system. The best way to handle automatic fire is to check MOA for each shot, factoring in recoil from the previous shot and the shooter's recoil compensation skill, as well as adding a MOA penalty for having to compensate for recoil at all (muscling the weapon). Obviously, rolling to hit for a 5-round burst quickly becomes problematic for PNP. A possible simplified solution would be to come up with rules that allow you to roll once and use the roll of the first shot to determine how many, if any, bullets hit the target. Again, the best simulation is to roll for each bullet fired, but there might be some simple math thing a PNP system could incorporate for rapid firing.
MOA for characters would start at like, 20 or more and get better with character marksmanship skill and individual weapon handling skill. Most rifles shoot 2 MOA or better. Most handguns are difficult to measure (driving a nail at 10 yards suggest handguns are capable of around 1-1.5 MOA groups) but handgun skill generally should start out as bad as rifles but be harder to raise.
Additionally, weapons should have a maximum effective range, which is determined partly by the round fired and partly by the barrel length of the weapon. Beyond this range, the bullet tumbles wildly. We can probably set a range increment for shot difficulty (increases MOA if shot further than this) and a second increment that makes the bullet tumble, making accurate fire impossible. Obviously we can make critical hits capable of shooting past this range, since lucky shots can happen.
As for how crits are determined, I dunno. I would suggest a second lucky roll instead of folding it into the actual hit chance, at least if I were making a simulation RPG.