Русское сообщество по скриптингу

Ворота для футбола

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Ворота для футбола

Сообщение lexu5 » 30 янв 2018, 18:32

Доброго времени суток. На одном сервере заметил одну интересную штуку. Это ворота для футбола, то бишь при соприкосновении мяча(энтити), ворота показывают кто забил гол. Так же заметил как эти ворота устанавливаются, игрок выделяет одну точку на карте, затем устанавливает вторую точку, после чего, как я понял, нажимает кнопку "установить ворота" и ворота устанавливаются как на скриншоте ниже(красный квадрат). Я сделал схему, что бы было понятнее. Подскажите пожалуйста, как это все выглядит в кодовой форме, какие функции для этого используются и как эти самые ворота можно установить?


Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Ворота для футбола

Сообщение Subb98 » 30 янв 2018, 18:41

Если коротко:
  1. По взгляду игрок определяет две точки
  2. По выбранным координатам (точкам) создаётся новая entity
  3. Этой entity устанавливаются такие свойства, как плотность, размеры и модель (ворота)
  4. Регистрируется форвард touch двух entities: мячика и ворот
  5. При соприкосновении мяча с воротами (вызове форварда touch) вызывается событие "забит гол"
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Ворота для футбола

Сообщение lexu5 » 30 янв 2018, 18:44

Я так и подумал, но ведь он создаёт ворота только по двум точкам. Я бы понял, если бы он создал по четырём точкам, а не по двум. Заранее прошу простить, если что-то недопонимаю.
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Ворота для футбола

Сообщение Subb98 » 30 янв 2018, 18:54

lexu5, можно вообще использовать одну точку. Посмотрите плагин расстановки рекламных щитов, например. Или новогодних ёлок.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Ворота для футбола

Сообщение Mistrick » 30 янв 2018, 20:12

Код: Выделить всё
(coord1 coord2) / coord3 // координаты центра, сюда будем спавнить.
abs(coord1.coord2.x) = size.x
abs
(coord1.coord2.y) = size.y
abs
(coord1.coord2.z) = size.z
mins 
= (-size.x/2, -size.y/2, -size.z/2)
maxs = (size.x/2size.y/2size.z/2
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Ворота для футбола

Сообщение lexu5 » 30 янв 2018, 22:15

Тоесть, мы узнали координаты точки 1, точки 2, вычислили координаты точки 3, то бишь, место куда будет установлен энтити, а дальше, простите, туго понимаю.
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn

Re: Ворота для футбола

Сообщение Mistrick » 30 янв 2018, 22:22

lexu5, а дальше расчеты размеров, вы когда создаете энтити задаете размеры в mins и maxs.
Аватара пользователя
Mistrick
Скриптер
 
Сообщения: 2940
Зарегистрирован: 04 ноя 2012, 18:15
Благодарил (а): 43 раз.
Поблагодарили: 1247 раз.
Языки программирования: PAWN
С/С++(few above zero)

Re: Ворота для футбола

Сообщение lexu5 » 30 янв 2018, 23:40

То есть дальше я создаю энтити ворот и задаю координаты?
Аватара пользователя
lexu5
 
Сообщения: 22
Зарегистрирован: 28 июл 2017, 14:44
Откуда: Санкт-Петербург
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn


Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9