Вся цель векторного оружия - определить, принадлежит ли точка конкретному отрезка, зная координаты точки и границ отрезка.
Существует несколько способов это определить, однако, самый легкий из них - геометрический.
Код написать не могу, так как на сервер зайти возможности нет. Но могу описать принцип работы.
Посмотреть вложение 3897
Точки a, a₁ - место выстрела. Точки b, b₁ - место попадания пули. Точки c, c₁ - Место другого игрока.
На 1 рисунке пуля не попадет в игрока. Чтобы это выяснить, нужно сложить длины ac + cb и сравнить сумму с длиной ab.
Если длина ac + cb равна длине ab, значит точка с принадлежит отрезку ab, но в нашем случае ac + cb больше ab, а значит пуля не попадет в игрока.
На 2 рисунке пуля попадет в игрока. Действуем также. a₁c₁ + c₁b₁ = a₁b₁, следовательно пуля попадет в игрока.
Извиняюсь за кривость картинки, было неохото все вырисовывать