This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Вопрос Вопрос по игровой карте GTA5.

exsta3

Активный участник
27 Окт 2021
3
0
41
Добрый день, форумчане RAGEMP.PRO.
Возник вопрос, возможно ли как-то удержать игрока только в одном городе, не давая выезжать в другие города/пригороды/деревни.
Хочу сделать концепт сервера, похожий на "
SAMP: Village RP [Кликабельна][Не пиар, не реклама]".
 

Vadim

Специалист
16 Сен 2020
147
35
89
ну вообще можно.
 

dooj

Гуру
24 Мар 2022
446
160
120
Да - можно и можно это сделать разными способами. Расскажи конкретнее как ты хочешь это видеть, думаю, не каждый знаком с SAMP: Village RP и удобнее бы было узнать все на одном ресурсе (тут, в теме).
 

exsta3

Активный участник
27 Окт 2021
3
0
41
Смотри, действия происходят к примеру в деревне, где живёт Тревор и за пределы этой деревни игроку нельзя выходить( ни пешком, ни на машине/вертолёте/самолетё или ином транспорте). Есть ли функция в RAGEMP, которая будет отслеживать действия игрока и не будет давать выходить за определённые координаты.
 

dooj

Гуру
24 Мар 2022
446
160
120
Такой функции нету, нужно писать ее самому.
Я бы сделал колшейп и при выходе из него телепортировал игрока на определенное место или запоминал координаты до выхода из колшейпа и телепортировал на последнее место.

Вариантов много, можно сделать через DLC, можно через код
 
Реакции: Inoi

DaVilka

Гуру
16 Сен 2020
709
259
128
и не будет давать выходить за определённые координаты
Что значит "не будет выходить", как именно не будет? Его телепортирует, или он врезается в невидимую стену, или просто останавливается
 
Реакции: dooj

Inoi

/dev/null
VIP
15 Окт 2020
3,371
2,120
208
35

С кулшейпом как с зелёной зоной - очевидный вариант вроде, который первым приходит в голову
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Есть только одна бЯда.
ColShape это такая же сущность, как и всё другое в RAGE. Она так же прорисовывается в зависимости от того, как далеко от него игрок, как в случае с машиной/npc/объектом и т.д.
Вот только разница в том, что когда мы говорим о шейпе, то дистанция до того, как его нужно прорисовать, берётся не от его краёв, а от центра. Таким образом, если сделать радиус шэйпа больше, чем зона прорисовки - выйдет так, что когда у игрока пропадёт шейп из зоны прорисовки, то и сам шейп уже никак не отреагирует на выход игрока из него.
 

kcomba

Начинающий специалист
9 Янв 2022
101
39
50

Нет, такое невозможно. Невозможно получать координаты игрока и телепортировать его, например, обратно. Невозможно в рендер кинуть проверки координаты, невозможно написать функцию для определения находится ли игрок в определённой зоне по нескольким координатам. Такое невозможно.

И самое главное, готовых решений нет! https://rage.mp/files/file/343-js-clientside-polygons-api-dynamic-colshapes/
 

Inoi

/dev/null
VIP
15 Окт 2020
3,371
2,120
208
35
очень обидно конечно
 

exsta3

Активный участник
27 Окт 2021
3
0
41
Посмотрел ответы в теме, самым оптимальным решением насколько я понял, является колшейп. Ещё проскочил вариант, ограничить территорию невидимой текстурой(насколько я помню/знаю, она присутствует в GTA5).

Спасибо, всем пользователям за помощь.
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,399
1,614
211
27
Если ты хочешь колшейпом ограничить бОльшую площадь, чем зона прорисовки - этот метод не сработает, почему - я описал выше.
 

mippoosedev

Гуру
2 Мар 2021
292
138
100
Хранить на клиенте объект, который будет содержать информацию о центре зоны и её радиусе(работает, только если круг). Каждую секунду-две-пять-десять, проверять дистанцию между координатами локального игрока и центром точки. Если больше чем радиус => телепортировать на ближайшую точку внутри зоны. Ну чисто как вариант.

П.с для знатаков - можно сделать в целом любую фигуру зоны, храня её вершины. Но тогда процесс расчета "в зоне ли игрок" - станет немного сложнее

П.с.с для знатаков - https://habr.com/ru/post/301102/
 
Реакции: XDeveluxe