JS Создание маркеров

  • Автор темы Автор темы roufon
  • Дата начала Дата начала

roufon

Trainee
У меня возникла ситуация. Я создал мод с парковкой. Данные о парковке загружаются и обновляются через БД. Ситуация такая. Когда запускается сервер, из 168 парко мест - не загружается +-44 парковки. При чем один раз одни загружает, через рестарт другие. В любом случае, какие то штук 40 парковок не загружает. В основном проблема на верхних этажах парковки. На нижних проблем нет. Координаты маркера разные и у каждого индивидуальные. В чем может быть проблема?

JavaScript:
// Запрос к базе данных для получения информации о парковках
DB.Pool.query('SELECT * FROM parking', (err, rows) => {
    if (err) {
      console.error(`Ошибка при выполнении запроса: ${err.message}`);
      return;
    }
 
    parkingData = rows; // Загрузка данных о парковках из базы данных
 
    // Создание маркеров и колшейпов для каждой парковки
    parkingData.forEach(parking => {
      parking.marker = mp.markers.new(36, JSON.parse(parking.coordinates), 1, { color: [255, 255, 0, 180], visible: false });
      parking.colshape = mp.colshapes.newSphere(JSON.parse(parking.coordinates).x, JSON.parse(parking.coordinates).y, JSON.parse(parking.coordinates).z, 1);
    });
 
    // Функция для обновления видимости маркеров на основе owner_id
    function updateParkingMarkers() {
      mp.players.forEach(player => {
        parkingData.forEach(parking => {
          if (parking.owner_id === null) {
            parking.marker.visible = true;
          } else {
            parking.marker.visible = false;
          }
        });
      });
    }
 
    // Установка таймера для отложенного запуска функции обновления маркеров
    setTimeout(updateParkingMarkers, 60000); // Через минуту скрытые маркеры станут видимыми
  });
 
Писали что есть лимит на кол-во маркеров которые отрисовываются в зоне стрима. Если не ошибаюсь 128 штук, как раз по твоим цифрам совпадает.
 
Окей, я так и думал. Потому что пересчитывал отображаемые места и всегда ровное количество пропадало. Могу ли я как то выкрутиться с данной ситуации?

Пока вижу такие варианты:
1) просто не использовать маркеры
2) использовать маркеры до 100 штук на парковке
 
Можешь с маркером создавать колшейп размером с половину парковки. При входе в колшейп показывать маркер, при выходе скрывать
Окей, я так и думал. Потому что пересчитывал отображаемые места и всегда ровное количество пропадало. Могу ли я как то выкрутиться с данной ситуации?

Пока вижу такие варианты:
1) просто не использовать маркеры
2) использовать маркеры до 100 штук на парковке
 
Писали что есть лимит на кол-во маркеров которые отрисовываются в зоне стрима. Если не ошибаюсь 128 штук, как раз по твоим цифрам совпадает.
А могу ли я просто изменить отображение расстояние? Как на многих серверах маркеры фермы к примеру. Там то маркером точно больше 200 на ферме. Ты когда подходишь к меткам, они появляются, отходишь, скрывает
 
Со стандартными ты не сможешь так сделать. Нужно писать свой кастомный стример маркеров на клиенте. Идея там простая - проверяешь расстояние от игрока до координат маркеров и если какие-то маркеры не дальше Х метров, то создаешь их физически. Если игрок отходит от них дальше заданного значения, то удаляешь. Так ты можешь обойти этот лимит и получить больше контроля над их прорисовкой.
 
Назад
Верх