for some calculations having the end of the muzzle is extremely helpful:
unit muzzlePosition muzzleName
player muzzlePosition primaryWeapon player
The return value can either be ASL, AGL, or in model coordinates.
Alternatively, we could have a weaponMemoryPointToWorld command that supports custom selection names:
player weaponMemoryPointToWorld [primaryWeapon player, "usti hlavne"]
(the shorter the command name the better!)