There seem to be multiple oddities with calculating accuracies for different weapons:

-Shotgun and Crylink apparently have acc calculated for every single pellet fired, so you can have less than 100% acc after a single shot fired (that hit), and you can even lower your accuracy with hits. No other game, that I know of, did it like that, so now numbers are pretty misleading.

-Sometimes I got less than 100% (anywhere from 60 to 90%) after a single hit from a weapon NOT firing pellets (like mortar, nex, electro or rockets), which can't even be explained as above. Also, detonation of rocket mid-air lowered my acc a few times (checked that), even if enemy WAS hit.

-Hagar's secondary can quickly rise to 100% even with some missed shots previously, and even more oddly, it doesn't fall down for a while with a few consecutive missed shots (and certainly not because there were so many of them fired)

-Hitting turrets/vehicles and assault objects is not accounted in a number. Hitting assault object doesn't even produce a hit indicator sound.

-[HARD] taking into account electro combos somehow. Given many possibilities to use combo, this is very complicated.

The accuracy code in Nexuiz used a simple calculation to measure your percentage.

Code:

accuracy = damage actually done / max damage * 100;

If a rocket can do 130 units of damage. You fire a rocket at your victim but miss, your rocket does hit the ground near them and they receive some splash damage. You may have done only 50 units of damage.

Not when I was playing. I checked stats frequently and always had consistently higher accuracy with shotgun and RL than with rail, which was simply impossible, if acc was calculated like this. They apparently changed method for sg later (quite a bit after I stopped, apparently), but for general accuracy %, it was still hit or miss thing.

And if so, it isn't so much accuracy, as it is weapon's efficiency. And I think that there should be at least an option to enable actual accuracy as in shots_that_hit_regardless_of_pellets/shots_fired. It's much more useful in terms of feedback:

1)Let's assume you get 50% accuracy with mortar. With actual accuracy it means, that you fired eg. 20 rounds, out of which 10 hit in whatever way, direct hit, or splash. You figure your aim could use some polish - you have it stated point blank as a number.

2)With current method, if you get 50% accuracy with eg. mortar, you don't have anywhere near that kind of clarity as above. Did you fire 20 rounds, 10 missed completely, 10 were direct hits, because you were training your direct hits? Or maybe all hit, but none directly, and splash did 50% of max damage on average, but you didn't intend to score any direct hits, so that's good enough? Or was it something in between? Do you even need to keep track of that?

Well using acc % to determine weapon skills wont work outside hitscan weapons anyway. In your example at 1), if someone has 100% mortar acc, does that mean that he's a good aimer? With your method he could have hit all his shots but only dealt minimal damage with each. Same goes for all the other spammy-splash damage weapons. A better indicator is damage dealt, which you can check @ stats.xonotic.org. If you make 3k+ dmg with a weapon in a duel game, you know you used it well.

For hitscan weapons, calculating acc per pellet makes much more sense. If player A hits 70% of his bullets while player B hits only 50%, that gives more information than showing acc as 100% for both (in case they hit at least one bullet with each shot). Also hitscan weapons in xonotic are rarely used to spam doorways or teleporters. So I don't see what's bad about the current method regarding hitscan weapons.