enemy shoot AI precision

OK, this time I am trying to do an ai precision for the enemy to shoot the player. This is kind of difficult to make maybe because in this would depend of how good is the enemy shooting (using a var to calculate it) then also checking the reaction of the enemy to shoot and for last have possibility of shoot you in different parts of the body(depending reaction) and the possibility of miss the shot(depending on how good enemy is shooting).
Note: I am not asking for a code, I am asking for what kind of methods would be better to use for this things and some ideas to make it.

If you want to add some uncertainty to the enemy shot, I think you could add a random offset to the player position when calculating the shot direction - something like this:

var errorMargin: float = 1.0;
  // when calculating the shot direction:
  var shotDir = player.position + Random.insideUnitsphere * errorMargin - spawnPoint.position;

This would add a random offset proportional to errorMargin, so the shot could hit different parts or even no part at all.