Задача: "умный" респаун, т.е. реcпаун, максимально удаленный от всех игроков на карте (для 3 и более респаун-точек) Имеем конечное количество респаун-точек. Вводим координаты OXYZ, и для каждого игрока на карте (в момент респауна) определяем координаты (x,y,z). Далее вводим функцию потенциала зависящую как f(r)=(k/r), где k - некоторая вличина (не обязательно константа), r - расстояние от игрока до респаун-точки (r=sqrt((X-x)^2+(Y-y)^2+(Z-z)^2), где координаты точки (X,Y,Z), а игрока (x,y,z)). Затем высчитываем общий потенциал в каждой точке как сумму потенциалов каждого игрока. За окончательный выбор точки респауна отвечает функция, случайно выбирающая из двух-трех точек наименьшим потенциалом. Почему не берем точку строго с наименьшим потенциалом? Представим ситуацию, когда один из игроков знает, где точка с минимальным потенциалом, и просто сторожит ее из другой части карты, тогда при респауне другого игрока возникает опасность, что в него попадут (а то и убьют), когда он еще не может ничего сделать, таким образом получается замкнутый круг: игрока убивают, он возраждается в той же точке, его снова убивают... Что бы это предотвратить, требуется взять несколько точек (максимум 3) с наименьшим потенциалом, тогда получится, что вероятность возрождения на "контролируемой" врагом точке будет не выше 50%, что дает нововозрожденному игроку шанс отыграться. P.S. Какова может быть польза от величины k? Чтобы максимально уберечь игрока от "плохого" респауна, можно вввести функцию силы игрока k=k(p), зависящую от количества вооружения, патронов, здоровья и брони. Тогда у точки рядом с сильным игроком потенциал будет выше, чем у точки, где рядом бегает игрок с начальным вооружением. P.P.S. Так же неплохо добавить настраиваемый "Respawn Protection Time" ~2 секунд, для большей защиты вновь возрожденных игроков.