Всем привет. Может кто нибудь знает, как можно сделать, чтоб чтоб плагин взял всех игроков определённой команды и сделал из них ровный круг? То есть например я КТ со всеми админ правами написал в чате /krug, то все заключённые ТТ относится моей позиции, то есть вокруг меня выстраились в круг и нельзя было сходить с места. Не важно где они находятся по карте, чтоб прописал и сразу их всех живых ТТ образовался ровный круг с расстоянием друг от друга. Расстояние между ТТ должно быть небольшое.
Надеюсь кто нибудь поможет. Заранее спасибо.
Gidroponiks, это задача по геометрии. Пусть точка K - центральная точка, относительно которой нужно выстроить геометрическую фигуру. Значение координат K равно позиции игрока, вызвавшего команду постройки круга. Задача: узнать точки T
1, T
2, T
3 и так далее, на которые должны телепортироваться игроки-террористы. При этом, расстояние между соседними точками T должно быть равным (например, если игроков террористов будет 4, то и точек должно быть 4, а следующие расстояния должны быть равны: T
1T
2=T
2T
3=T
3T
4=T
4T
1. Это - равносторонний четырехугольник, то есть квадрат)),
Вводим переменную X, которая будет отвечать за расстояние между точкой K и любой из точек T - это радиус круга. Но на самом деле,
чтобы решить эту задачу, нам не нужно создавать круг, а
нужно создать геометрическую фигуру, точки которой будут равноудаленные от точки K и равноудаленные от соседних точек T между собой. Пусть количество точек T, которое равно количеству живых игроков террористов, будет равно N.
Мы имеем функцию с двумя переменными.
- Переменная X - расстояние между центром фигуры и крайними точками, где центром фигуры будут координаты админинистратора, использовавшего команду /krug, а крайние точки (T) - координаты, куда следует телепортировать террористов. Значение X ты можешь задать самостоятельно (если это расстояние будет всегда однаково, можно сделать X константой как один из вариантов).
- Переменная N - количество точек T, то есть количество живых игроков террористов, которых нужно телепортивать.
Какую фигуру нам придется построить, прямо зависит от значения N.
У этой фигуры все стороны должны быть равны. А дальше все элементарно. Если N равно 3, нам нужен треугольник. 4 - четырехугольник. 5 - пятиугольник, 6 - шестиугольник и так далее (вплоть до 31, чтобы наверняка).
Исключения: Если точек T будет 1 или 2, мы не получим геометрическую фигуру. Есть точка будет одна, мы просто телепортируем террориста на указанное расстояние под указанным углом относительно K. Если точек будет две, мы телепортируем двух террористов, где точки K, T1, T2 будут лежать на одной прямой, а T1K=T2K, но K лежит между T1 и T2.
Теоретически, я рассказал как решить эту задачу. Переходя к программированию, для создания плагина понадобятся функции получения и установки координат (origin), и углов (angle). Также хорошей идеей будет добавить следующее: задать угол поворота игрокам-террористам после телепортации, чтобы их взгляд был направлен в центр, то есть на начальника-админа. А чтобы нельзя было сходить с места, можно установить максимальную скорость в 0 единиц всем в момент "создания круга".
Подробнее о возможных методах реализаций вы сможете найти в документации по функциям AMXX:
https://dev-cs.ru/amxx/