Объясняю, как это работает. Есть состояние игры на сервере, когда на обоих клиентах есть копии этого состояния. Сервер старается постоянно синхронизировать данные: клиенты способны его менять, отправляя на сервер изменения, а тот, в свою очередь, отправляет эти изменения всем остальным игрокам. Теперь конкретная ситуация с дистанцией. Есть три состояния, (2 клиента и одно на сервере). Предположим, один игрок 1 двигается в направлении другого (2). Тогда игрок 1 сразу заметит свое собственное движение, потом его клиент игры отправит это изменение состояния серверу (в виде пакетов), тот обработает его, и отправит его игроку №2. Но это уже потребовало времени, за которое игрок 1 успел пройти ЕЩЕ. Поэтому, когда ты догоняешь игрока, он для тебя чуть (может быть даже значительно) ближе, чем ты для него. Именно поэтому кажется, что у двигающегося в твоем направлении дистанция удара Больше. И да, как видишь, это зависит от задержки пакетов у обоих игроков. И не нужно выставлять себя недалеким человеком.