• Внимание!

    Все публичные материалы на нашем портале можно скачать совершенно бесплатно.
    После регистрации вы получите доступ ко всем ресурсам, сможете участвовать в обсуждениях и использовать расширенные возможности форума.
This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

JS Clientside Polygons API / Динамические колшейпы для RAGE:MP сервера 1.0.0

Нет прав для скачивания
Совместимость с RAGE:MP
  1. 0.3.7 (oldprerelease)
  2. 1.1 (prerelease)


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

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

Вы можете задавать границы для домов (чтобы перемещать мебель), для компаний (чтобы выполнять работу), для гор (в скриптах охоты на животных) и для всего, на что хватит вашей фантазии — просто используйте это!

Демонстрация


Преимущества

Основные преимущества использования этого ресурса по сравнению с решением от abmn:
  • Эти полигоны динамические — вы можете изменять, перемещать, вращать, в целом делать всё, что угодно с массивом вершин полигона в реальном времени, и это будет работать мгновенно, обновляя коллизии с игроками.
  • Этот скрипт гораздо более оптимизирован и лёгкий по сравнению с предыдущей версией.
  • Вы можете выбрать цвет линий полигона и управлять их видимостью, просто изменяя свойство visible у полигона.
  • Скрипт поддерживает различные типы высот для определения коллизий (например, склоны), отличается высокой точностью (хотя поведение может зависеть от угла наклона и высоты полигона) и даже подходит для колшейпов горных областей.
  • Вы можете добавлять новые вершины в уже существующие полигоны в любое время, просто добавив новую позицию vector3 в массив polygon.vertices.

API Functions

JavaScript:
/* Creates a new polygon and return it's instance */
mp.polygons.add(vertices: Vector3Mp[], height: number, options = { visible: false, lineColorRGBA: [255,255,255,255], dimension: 0 }): Polygon

/* Removes a polygon */
mp.polygons.remove(polygon: Polygon): void

/* Check if a polygon exists */
mp.polygons.exists(polygon: Polygon): boolean

/* Check if a position is contained within a given polygon */
mp.polygons.isPositionWithinPolygon(position: Vector3Mp, polygon: Polygon): boolean

/* Examples */

// Creating a new polygon
const polygon = mp.polygons.add([new mp.Vector3(10, 10, 5), new mp.Vector3(15, 15, 5), new mp.vector3(5, 5, 5)], 10, { visible: false, lineColorRGBA: [255,255,255,255], dimension: 0 });

// Set the polygon lines visible
polygon.visible = true;

// Modifying a polygon height
polygon.height = 100;

// Modifying a polygon color (RGBA)
polygon.lineColorRGBA = [255, 155, 0, 255];

// Modifying a polygon dimension
polygon.dimension = 30;

/* Events*/

// Event called when player enter a polygon (clientside)

mp.events.add('playerEnterPolygon', (polygon) => mp.gui.chat.push(`You entered the polygon ${polygon.id}!`));

// Event called when the local player leaves a polygon (clientside)

mp.events.add('playerLeavePolygon', (polygon) => mp.gui.chat.push(`You left the polygon ${polygon.id}.`));


Как установить
  1. Скачайте ZIP-архив.
  2. Распакуйте его в папку клиента.
  3. Подключите файл index из папки polygons.
  4. Наслаждайтесь использованием!

Автор: n0minal
Автор
Harland David Sanders
Скачивания
2
Просмотры
36
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Harland David Sanders

Поделиться ресурсом