So this may be a bit complex, but you can use stat.damageTaken, and stat.damageDealt through scoreboard objectives, to detect if they hit another player within a certain time frame (say 5 ticks or so). You would have to specify each player, and have sets of command blocks for each person though, so it wont work well if there is more than say, 2 or 3 people.
I dont know how you can test for it, but I do know that when a slot is empty, its not filled with air. Minecraft doesnt keep record of nothing, it just doesnt exist.
So, not that this command isn't cool and all, for some reason it doesn't arc the snowballs regularly as it should. Whichever direction you fire in, it goes in that direction forever.
execute @e[type=Snowball] ~ ~ ~ /summon Fireball ~ ~ ~ {ExplosionPower:0.5,direction:[]}
(This is run on a 20 tick clock by the way)
0
0
0
0
0
1
0
/summon ArmorStand ~ ~ ~ {CustomName:"Marker",Invisible:1}
Then you can /execute @e[type=ArmorStand,name=Marker]
You can pretty much have unlimited names, or at least close to a couple thousand.
0
summon FallingSand ~0 ~8 ~-4 {TileID:35:14,Time:1,Data:14}
whoops I meant summon FallingSand ~0 ~8 ~-4 {TileID:35,Time:1,Data:14}
0
0
0
0
0
(Run on a 20 tick clock) - /summon Arrow ~ ~2 ~ {Motion:[0.0,0.12,0.0],pickup:0,damage:1,Fire:10s}
0
execute @e[type=Snowball] ~ ~ ~ /summon Fireball ~ ~ ~ {ExplosionPower:0.5,direction:[]}
(This is run on a 20 tick clock by the way)
0