In this particular case you can take advantage of the fact that the cheating player will probably be shooting up to a few metres next to the target player and will still be hitting them.
So the callback
OnPlayerWeaponShot can be used to calculate the distance between the target player's position and the actual aiming vector of the allegedly cheating player.
The functions needed to do this would be
GetPlayerPos,
GetPlayerCameraPos and
GetPlayerCameraFrontVector. Instead of
GetPlayerPos you could probably also use the fX, fY and fZ values that are passed to
OnPlayerWeaponShot as parameters since the result might be more precise.
But keep in mind that most weapons have a certain maximum value of scatter. So the "allowed" distance between the bullet impact and the target player differs from weapon to weapon.
If you test a few weapons you will be able to estimate those distances by approximating them.
Please keep in mind that you should not automatically ban a player when the hit distance is above your calculated limit but rather send a message to the administrators so they can confirm the report.
I hope this helps you to get started.