I previously started to build a whole system, doing all manner of probability calculations, where you'd make one roll and it would handle a number of attacks, then you make another, and so forth. After testing it a bit, I found that rolling 3d three times (rather than a variable number of times depending on various factors) worked best.
Basically, as noted above, you roll 3d against 10 three times. On a success, add your MoS+1 to your effective skill; on a failure, subtract your MoF. Once you have the final modified skill, check it on the below table. Multiply the success probability by the number of rolls you're resolving to determine how many successes you got (round normally; if you're more concerned about failures, use that column; in either case, round in favor of successes for 50%). If MoS/MoF matters, note that the results above simply state how many successes or failures you got; to determine margins, simply go down the line to the next probability (which tells you how many had MoS 1+), then the next (2+), and so forth.
Code:
Skill Success Failure
3 0.46% 99.54%
4 1.85% 98.15%
5 4.63% 95.37%
6 9.26% 90.74%
7 16.20% 83.80%
8 25.93% 74.07%
9 37.50% 62.50%
10 50.00% 50.00%
11 62.50% 37.50%
12 74.07% 25.93%
13 83.80% 16.20%
14 90.74% 9.26%
15 95.37% 4.63%
16 98.15% 1.85%
17 99.54% 0.46%
18 100.00% 0.00%
As an example of it in action, consider someone with a RoF 10, Rcl 2, Malf 17 weapon firing it at full RoF for 100 (!) seconds. After accounting for the rapid fire bonus and SM/range, he's at effective skill 12. He rolls 15 (MoF 5), 8 (MoS 2), and 10 (MoS 0). That's -5, +3, +1, for a total of -1. We check the table and see 63 hit, 37 missed. With Rcl 2, we want to check each MoS 2 to see if we got additional hits. 9 shows 38 hits, so 38 of our 63 hits are MoS 2; 7 shows 16 hits (MoS 4); 5 shows 5 hits (MoS 6); 3 shows 0 hits. This means a total of 63+38+16+5=122 bullets (of the 1000 we sent flying through the air) hit the target. Of course, with skill 12 and Malf 17, MoF 5 corresponds to a malfunction; 16 (which is MoF 5 for our effective skill of 11) shows 2 failures, so we suffered 2 malfunctions. Optionally, if either would have prevented future attacks, you may want to randomly set when they happened (which will prevent some number of your attacks); alternatively, just assume they happened at the end.
If you find the above too swingy, you could opt to average the results of the roll (in which case, I suggest getting rid of the +1 on successes; that's there so the average result is +0). This can result in fractional skill values; have another table for that.
Code:
Skill Success Failure
3 0.46% 99.54%
3.33 0.93% 99.07%
3.67 1.39% 98.61%
4 1.85% 98.15%
4.33 2.78% 97.22%
4.67 3.70% 96.30%
5 4.63% 95.37%
5.33 6.17% 93.83%
5.67 7.72% 92.28%
6 9.26% 90.74%
6.33 11.57% 88.43%
6.67 13.89% 86.11%
7 16.20% 83.80%
7.33 19.44% 80.56%
7.67 22.69% 77.31%
8 25.93% 74.07%
8.33 29.78% 70.22%
8.67 33.64% 66.36%
9 37.50% 62.50%
9.33 41.67% 58.33%
9.67 45.83% 54.17%
10 50.00% 50.00%
10.33 54.17% 45.83%
10.67 58.33% 41.67%
11 62.50% 37.50%
11.33 66.36% 33.64%
11.67 70.22% 29.78%
12 74.07% 25.93%
12.33 77.31% 22.69%
12.67 80.56% 19.44%
13 83.80% 16.20%
13.33 86.11% 13.89%
13.67 88.43% 11.57%
14 90.74% 9.26%
14.33 92.28% 7.72%
14.67 93.83% 6.17%
15 95.37% 4.63%
15.33 96.30% 3.70%
15.67 97.22% 2.78%
16 98.15% 1.85%
16.33 98.61% 1.39%
16.67 99.07% 0.93%
17 99.54% 0.46%
17.33 99.69% 0.31%
17.67 99.85% 0.15%
18 100.00% 0.00%
Note this works equally well for attacks, defenses, point defense fire, HT rolls to avoid losing FP while running, and so forth. If it calls for a lot of Success Rolls, this will have you covered. It's an alternative to what you have; it's not necessarily better or worse, but some people may favor one over the other.