Actually, looking now at the file, the compare node is probably indeed the better solution.
Instead of enabling / disabling the emitter, have you tried using the birthrate (Editor) and birthrate (Render) instead? I get good results with those, and when I press play when the gun's recoil is set to 0%, no shot is fired from the emitter.
The next question is if you want this to be a one-shot emission or a continuous emission. The above solution works for a continuous emission. If you want a one-shot emission only, we could try a solution that checks if the current birthrate of the emitter is set to 1 (which only happens when recoil is at 100%), and if this is true, set the birthrate back to 0. This solution would also need to check that the playhead is at least at frame 1, so that a shot can still be fired when the current time is frame 0.
Note the file was saved with R23, so you might not want to overwrite your original project file.
472255043_DeathStarLaserCannon_v2_birthrate.c4d