Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Ограничение игровой зоны - многоугольник - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Ограничение игровой зоны - многоугольник

#1
Пользователь офлайн   Sonic X 

  • Х_X
  • Вставить ник
  • Раскрыть информацию
Есть функция SetPlayerWorldBounds, которая ограничивает игровую зону квадратом. Вопрос, возможно ли сделать пять или более точек границы? И как это сделать?

Или необходимо будет создавать много небольших динамических зон, и уже в них делать проверки? А если "запрещённая", то сокращать доступную зону? Не будет ли из-за этого каких-то жёстких проблема с выталкиванием постоянно в запретные зоны? :huh:
0

#2
Пользователь офлайн   crazyvalik 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияSonic X (13 Февраль 2020 - 21:15) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

stock IsPlayerInCube(playerid, Float:xmin, Float:ymin, Float:zmin, Float:xmax, Float:ymax, Float:zmax)
{
  new Float:x, Float:y, Float:z;
  GetPlayerPos(playerid, x, y, z);
  if(x > xmin && y > ymin && z > zmin && x < xmax && y < ymax && z < zmax)return 1;
  return 0;
}


0

#3
Пользователь офлайн   Sonic X 

  • Х_X
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияcrazyvalik (13 Февраль 2020 - 21:24) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]

Не понимая вопроса, зачем отвечать? :blush:

Мне нужно ограничить игровой мир игроку не с помощью 4х точек (квадратом/прямоугольником), а многоугольником! И тут стоит вопрос, возможно ли и как, или нужны костыли...
0

#4
Пользователь офлайн   DeimoS 

  • Evil Scripter
  • Вставить ник
  • Раскрыть информацию
Пятиугольником нельзя. Да и это ограничение можно читами обойти легко (например, читер сможет от полиции там прятаться или закемперить кого-нибудь со снайперки из запретной зоны, если это какой-нибудь ДМ-мод).
Можно самому написать аналог подобной функции, использовав динамическую зону (CreateDynamicPolygon) и либо просто телепортировать обратно при выходе из зоны, либо сделать подобие отброса при SetPlayerWorldBounds через SetPlayerVelocity.

Хотя гораздо проще было бы сделать аналог системы из Battlefield, когда у тебя просто начинается отсчёт при входе в запретную зону и дальше тебя убивает. Ибо чем более замысловатей будет фигура самой динамической зоны, тем более сложно будет определять в какую сторону игрока отбрасывать/на какую координату возвращать.

Сообщение отредактировал DeimoS: 14 Февраль 2020 - 00:29

1

Поделиться темой:


Страница 1 из 1
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика