DynamicMaps (динамические карты в игре) v0.2
echo phpinfo();
Показано с 1 по 8 из 8

Тема: DynamicMaps (динамические карты в игре) v0.2

  1. #1
    Пользователь Аватар для ^_^
    Регистрация
    21.06.2013
    Сообщений
    55
    Вес репутации
    1

    DynamicMaps (динамические карты в игре) v0.2

    Данный инклуд позволяет создавать карту 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 - координаты центра

    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>.

    Автор: ^_^.
    Последний раз редактировалось SDraw; 17.08.2015 в 18:11.

  2. 2 пользователей сказали cпасибо ^_^ за это полезное сообщение:

    Dr.Deft (17.08.2015),Engineer: (05.07.2014)

  3. #2
    Профессионал Аватар для frog163
    Регистрация
    12.04.2010
    Адрес
    Samara
    Сообщений
    3,224
    Вес репутации
    1

    Re: DynamicMaps (динамические карты в игре) v0.1

    причём создавать её можно на любой ротации R-Z.
    Как насчет самих конусов? Жопой/боком не поворачиваются? Например при угле 123.0 по всем осям

  4. #3
    Пользователь Аватар для ^_^
    Регистрация
    21.06.2013
    Сообщений
    55
    Вес репутации
    1

    Re: DynamicMaps (динамические карты в игре) v0.1

    Конусы и цилиндры работают нормально для каждого угла (даже для 123). Единственный минус - это постепенное углубление в объект карты и обратное возвышение при передвижении на больших расстояниях для некоторых углов (более легко заметить на углах ~пи/4*x (x - целое число, x=2k+1). Впрочем этот недостаток можно исправить легко - таймер и обычный AssertPointPos, но это не очень хорошо скажется на работу сервера (для плавного движения придётся вызывать этот таймер довольно часто).
    Последний раз редактировалось ^_^; 04.07.2014 в 21:44.

  5. #4
    Пользователь Аватар для ^_^
    Регистрация
    21.06.2013
    Сообщений
    55
    Вес репутации
    1

    Re: DynamicMaps (динамические карты в игре) v0.1

    Попрошу модератора раздела переместить тему в раздел "Разработки пользователей форума", не обратил внимание на подраздел когда создавал тему.

  6. #5
    Пользователь
    Регистрация
    21.08.2011
    Адрес
    Россия
    Сообщений
    441
    Вес репутации
    1

    Re: DynamicMaps (динамические карты в игре) v0.1

    Была идея, да руки не дошли
    Неплохо

  7. #6
    Забаненный
    Регистрация
    10.03.2011
    Адрес
    Казахстан, Алма-Ата
    Сообщений
    2,567
    Вес репутации
    0

    Re: DynamicMaps (динамические карты в игре) v0.1

    Цитата Сообщение от frog163 Посмотреть сообщение
    Как насчет самих конусов? Жопой/боком не поворачиваются? Например при угле 123.0 по всем осям
    хах Диман тебя обошли чет)

  8. #7
    Слава Україні Аватар для Engineer:
    Регистрация
    20.09.2011
    Адрес
    Украина.
    Сообщений
    1,726
    Вес репутации
    1

    Re: DynamicMaps (динамические карты в игре) v0.1

    good

  9. #8
    Пользователь Аватар для ^_^
    Регистрация
    21.06.2013
    Сообщений
    55
    Вес репутации
    1

    Re: DynamicMaps (динамические карты в игре) v0.1

    UPD: v0.2
    * Добавлена функция GetDynamicMapPointRealCoords.

Похожие темы

  1. 30р при регистрации в игре
    от rndkelli в разделе Беседка
    Ответов: 2
    Последнее сообщение: 29.05.2014, 20:07
  2. Динамические телепорты
    от Privies в разделе [FS] - скрипты
    Ответов: 4
    Последнее сообщение: 30.04.2014, 20:46
  3. Левые варнинги в игре ....
    от hImIkAt в разделе Вопросы по скриптингу
    Ответов: 5
    Последнее сообщение: 17.10.2013, 15:18
  4. Просмотр пикапов в игре
    от Ex.AleKi в разделе Готовые решения
    Ответов: 0
    Последнее сообщение: 03.01.2012, 16:35

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •