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

Вопрос Поворот объекта в сторону другого объекта

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128

artemsiberian

Участник портала
22 Май 2021
59
10
50
Согласен чем больше объектов тем больше времени на перебор,
кстати вопрос к нагрузке, как лучше всего замерить ресурсоемкость операций, и каких нормы у них не изучал?
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Не изучал, но думаю если тебе нужна будет проверка среди всех объектов то лучше будет хотя бы розбить их на какие то группы что бы не проверять все на свете(кстати большая проблема среди дноразрабов рейджа, в любой ситуации проверять все существующее, на пример при взаимодействии с чем то через кнопку)
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
Что бы разбить что то на группы, нужно сначала все данные спарсить, любая иттерация по данным ведь нужно сначала составить пул данных, а в рейдже на стороне сервера можно выгрузить только Все объекты, или все машины, или все пэды, и потом только в них ковырятся, или у тебя есть другие методы?)
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
Что за система такая? Которой нужно все объекты перебрать?
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
Что за система такая? Которой нужно все объекты перебрать?
Игрок спавнит какие то объекты, они разные, допустим видов 15, заспавнить их игроки могут в разных частях карты, примерно кол-во расчетное до 1000,
заспавненные объекты сохраняются в базе, проп, координаты и дополнительная инфа, при загрузке сервера, сервер в цикле пробегается по базе и восстанавливает состояние спавна объекта, далее два момента, что по игровому таймеру в зависимости от состояния, проп должен менятся сам по себе, и тут я встреил первую проблему, что
NAPI.Object.CreateObject - Синхронизируется со всем миром нормально и не обязательно стоять в зоне синхронизации, а вот
NAPI.World.DeleteWorldProp - Нормально работает только когда находишься в зоне синхронизации, в противном случае, новый проп появляется а старый никуда не девается, мало того даже если стоять рядом, в момент обновления, то если выйти и зайти в зону, то начинают отображатся даже удаленные объекты

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

artemsiberian

Участник портала
22 Май 2021
59
10
50
Что за система такая? Которой нужно все объекты перебрать?
Еще делал через коиентскую часть , запускал рейкаст на объект и рейкаст возвращает хэндл конкретного объекта, но луч настолько тонкий в 1 пиксель, что им сложно попасть в маленькие объекты, а так метод мне понравился, может быть тоже есть какие то ршения по этому поводу
 

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Я имел ввиду не первоначальную загрузку а последующую обработку. Разбить можно на условный квадраты на карте, типо если чел находится в квадрате 1, то сервер обрабатывает обьекты квадрата 1. А DeleteEntriy как работает?
 

artemsiberian

Участник портала
22 Май 2021
59
10
50
А DeleteEntriy как работает?
Это возможно будет работать, но у меня нет Хэндла, я сохраняю в базу Проп и координаты, Хэндл после перезагрузки сервера будет изменятся,
если это будет работать хорошо, то можно и переписать код, где будут хранится все хэндлы нужных мне обеъектов. в общем нужно понять бест практикс работы с объектами в том ключе как я описал выше, так как в осномно все сервера это беготня из точки в точку, без какого либо интерактива с объектами, возможно это не просто так) но я хочу попробовать
 

X-Clusiv

Модератор
Команда форума
Moderator
BackEnd developer
4 Окт 2020
708
319
161
30
https://wiki.rage.mp/index.php?title=Object::getClosestObjectOfType возможно поможет, возвращает ближайший объект по его modelHash
 
Реакции: artemsiberian

DaVilka

Старожил
BackEnd developer
16 Сен 2020
759
276
128
Понятеное дело будут менятся хендлы, ты же писал что у тебя какие то проблемы с удалением. В бд сохраняешь пропы и координаты, после перезапуска спавниш и сохраняеш хендлы, и уже этими хендлами манипулируешь
 
Реакции: artemsiberian

artemsiberian

Участник портала
22 Май 2021
59
10
50
В общем это супер метод который решил все мои проблемы, все заработало как надо, без перебора всех объектов, без танцов с бубном теперь все четко) спасибо)
 
Реакции: DaVilka