Данный инклуд позволяет создавать карту GTA San Andreas прямо из игры (состоящая из 4 объектов) и указывать на неё различные точки, менять им цвет, размер, а также менять позицию, или гладко двигать данные точки в соответствие с реальными координатами x и y. С помощью данного инклуда, можно лёгким и быстрым алгоритмом создавать системы вроде "Карты Автобусов Advance RP", причём создавать её можно на любой ротации R-Z. Тем кому всё ещё не ясен функционал, предлагаю посмотреть видео:
I. Функции
DynamicMap:CreateDynamicMap(Float:_center_x, Float:_center_y, Float:_center_z, Float:_rotation_z, _vw = -1, _i = -1)
Создаёт динамичную карту имеющия центр на указанные координаты и указанную R-Z ротацию.
Параметры:
Float:_center_x, Float:_center_y, Float:_center_z - координаты центра
http://i.imgur.com/7Vp9I1j.jpg?1
Float:_rotation_z - R-Z ротация всей карты
_vw - виртуальный мир карты (по дефолту - -1 - все виртуальные миры)
_i - интерьер карты (по дефолту - -1 - все интерьеры)
Возвращает:
DynamicMap:mapid - карта успешно создана.
INVALID_MAP_ID - не удалось создать карту (превышен лимит карт)
Заметка: Придётся использовать все виртуальные миры и все интерьеры для того чтобы иметь возможность создавать точки в разных интерьерах и разных виртуальных мирах для одной и той же карты.
DestroyDynamicMap(DynamicMap:mapid)
Уничтожает карту и все точки прикреплённые к ней.
Параметры:
DynamicMap:mapid - ид карты.
Возвращает:
0 - не удалось удалить карту (карта не создана).
1 - карта и все прикреплённые точки успешно удалены .
Point:CreatePointForDynamicMap(DynamicMap:mapid, point_object, Float:_point_size=0.0, Float:p_realC_x = 0.0, Float:p_realC_y = 0.0, _vw = -1, _i = -1)
Создаёт и прикрепляет к динамичной карты точку, имеющая указанную модель объекта, размер, интерьер и виртуальный мир в соответствии с реальными координатами x и y.
Параметры:
DynamicMap:mapid - ид карты к которой будет прикреплена точка.
point_object - модель объекта (рекомендуется использовать задекларированные модели).
_point_size - расстояние между картой и центром точки (размер) (рекомендуется использовать задекларированные размеры).
Float:p_realC_x = 0.0, Float:p_realC_y = 0.0 - реальные координаты на которых точка будет указывать на карте (по дефолту - центр карты).
_vw = -1, _i = -1 - виртуальный мир и интерьер (по дефолту - интерьер карты и виртуальный мир).
Возвращает:
INVALID_POINT_ID - не удалось создать точку(превышен лимит точек)
Point:pointid - точка успешно создана.
DestroyPoint(Point:_pointid)
Удаляет точку.
Параметры:
Point:_pointid - ид точки.
Возвращает:
0 - не удалось удалить, точка не создана.
1- успешно удалена.
SetPointSize(Point:_pointid, Float:_pt_size)
Меняет расстояние между картой и точкой (размер точки) на указанный. Работает на двигающийся точки.
Parameters:
Point:_pointid - ид точки.
Float:_pt_size - новый размер точки (рекомендуется использовать задекларированные размеры).
Возвращает
0 - не удалось изменить, точка не создана.
1 - размер изменён.
2 - размер изменён во время движения точки.
SetPointObject(Point:_pointid, pointobject)
Меняет модель объекта. Если точка двигалась, она остановится на текущую позицию
Параметры:
Point:_pointid - ид точки.
pointobject - новая модель объекта.
Возвращает:
0 - не удалось изменить, точка не создана.
1 - модель объекта изменена.
AssignPointToPos(Point:_pointid, Float:real_x, Float:real_y)
Назначает положение точки на карте которое указывает на real_x и real_y.
Параметры:
Point:_pointid - ид точки.
Float:real_x, Float:real_y - реальные x и y координаты мира.
Возвращает:
0 - не удалось изменить позицию, точка не создана.
1 - успешно.
MovePointForPos(Point:_pointid, Float:real_mx, Float:real_my, Float:movespeed = 0.1)
Плавно двигает точку (с указанной скоростью передвижения) с текущей позиции, до положения на карте, указывающие на реальные координаты мира.
Параметры:
Point:_pointid - ид точки.
Float:real_mx, Float:real_my - реальные x и y координаты мира.
Float:movespeed = 0.1 - скорость передвижения (по дефолту 0.1).
Возвращает:
0 - не удалось переместить, точка не создана.
1 - успешно.
GetDynamicMapCoords(Float:x,Float:y, DynamicMap:mapid, &Float:on_map_x,&Float:on_map_y,&Float:on_map_z, Float:_point_size)
Функция записывает координаты точки с указанной динамичной карты в зависимости от размера точки и от координат реальной карты в переменные on_map_x, on_map_y, on_map_z.
Float:on_map_x, Float:on_map_y, Float:on_map_z.
Параметры:
Float:x,Float:y - координаты мира x и y.
DynamicMap:mapid - ид карты.
&Float:on_map_x,&Float:on_map_y,&Float:on_map_z - переменные в которых будут записаны координаты точки.
_point_size - размер токи.
Возвращает
Функция не возвращает никакое значение.
v0.2:
GetDynamicMapPointRealCoords(DynamicMap:_mapid, Float:on_map_x, Float:on_map_y, Float:on_map_z, &Float:real_x, &Float:real_y)
Функция записывает в актуальные параметры real_x, real_y реальные координаты которыми обозначены на динамичной карте _mapid координаты on_map_x, on_map_y, on_map_z.
Параметры:
DynamicMap:_mapid - ид карты
Float:on_map_x, Float:on_map_y, Float:on_map_z - переменные в которых записаны координаты на карте.
&Float:on_map_x,&Float:on_map_y,&Float:on_map_z - переменные в которых будут записаны реальные координаты.
Возвращает
Функция не возвращает никакое значение.
II. Задекларированные константы
Модели для точек:
PHP код:
POINT_WHITE
POINT_GREEN
POINT_RED
POINT_ORANGE
POINT_YELLOW
Размеры точки:
PHP код:
TINY_POINT
SMALL_POINT
MEDIUM_POINT
BIG_POINT
HUGE_POINT
III. Заметки
- Для использования данного инклюда нужен streamer.
- DynamicMaps должен быть подключён после a_samp и streamer.
- Рекомендуется самостоятельно задекларировать значение констант MAX_MAPS и MAX_POINTS
PHP код:
//Пример:
#define MAX_MAPS 1
#define MAX_POINTS 20
IV.Установка:
1) Скопировать код с Pastebin в чистый .txt файл. Pastebin - CLICK
2) Сохранить .txt файл с названием DynamicMaps в папку сервера/pawno/include
3) В начале мода (после #include <a_samp> и #include <a_streamer>) добавить #include <DynamicMaps>.
Автор: ^_^.