Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 6 из 6
  1. #1
    Аватар для ^_^
    Übermensch

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    157
    Репутация:
    245 ±

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

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

  2. 12 пользователя(ей) сказали cпасибо:
    #ball (14.07.2014) AndreyKa (05.07.2014) DeimoS (04.07.2014) J-Ex (04.07.2014) L0ndl3m (05.07.2014) lososnee (27.07.2014) MR_BEN (04.07.2014) Osetin (04.07.2014) Seregamil (04.07.2014) Spectrum (04.07.2014) [ForD] (17.08.2015)
  3. #2
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    А как то можно будет вывести карту с моделями точек POINT_WHITE = 19177? в дальнейшом чтобы использовать без инклуида?

  4. #3
    Аватар для ^_^
    Übermensch

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    157
    Репутация:
    245 ±
    Цитата Сообщение от Nurick Посмотреть сообщение
    А как то можно будет вывести карту с моделями точек POINT_WHITE = 19177? в дальнейшом чтобы использовать без инклуида?
    А зачем это собственно нужно? Можете спокойно использовать только функцию создания карты, создания точки и передвижения точки. Учитывая что остальные функции имеют флаг "stock", при компилировании они будут пропущены и не попадут в .amx файл. О личной потери памяти можете тоже не беспокоится, использование дефайнов перед #include - поможет этого избежать.

  5. Пользователь сказал cпасибо:
  6. #4
    Аватар для Nurick
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.04.2014
    Адрес
    Уфа, Россия
    Сообщений
    319
    Репутация:
    52 ±
    Цитата Сообщение от ^_^ Посмотреть сообщение
    А зачем это собственно нужно? Можете спокойно использовать только функцию создания карты, создания точки и передвижения точки. Учитывая что остальные функции имеют флаг "stock", при компилировании они будут пропущены и не попадут в .amx файл. О личной потери памяти можете тоже не беспокоится, использование дефайнов перед #include - поможет этого избежать.
    Просто я не люблю держать вещи которые я в дальнейшем не буду использовать, просто мне бы поставить карту сделать местоположение точек и всё.


    Спасибо за include, кстати сегодня видел данный include на sa-mp.com(http://forum.sa-mp.com/showthread.php?t=523856) так как с английским плоховато поленился переводить через переводчик.

  7. #5
    Аватар для ^_^
    Übermensch

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    157
    Репутация:
    245 ±
    Цитата Сообщение от Nurick Посмотреть сообщение
    Просто я не люблю держать вещи которые я в дальнейшем не буду использовать, просто мне бы поставить карту сделать местоположение точек и всё.


    Спасибо за include, кстати сегодня видел данный include на sa-mp.com(http://forum.sa-mp.com/showthread.php?t=523856) так как с английским плоховато поленился переводить через переводчик.
    Я его везде выкладывал, ибо использую MIT лицензию. В Копирайтах так и написано "Copyright (c) 2014 Nicholas_West ^_^(SmileySmile)".

  8. #6
    Аватар для ^_^
    Übermensch

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    157
    Репутация:
    245 ±
    UPD: v0.2
    * Добавлена функция GetDynamicMapPointRealCoords.

  9. Пользователь сказал cпасибо:
    [ForD] (17.08.2015)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

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