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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±

    Инвестигатор

    Инвестигатор 0.14v

    Введение:

    Данный плагин позволяет рассчитать маршрут из точки А в точку Б на карте Сан-Андреас (дороги, и не только).
    Он использует встроенный MapAndreas (без режима буфера) и алгоритм (от Джастина Хейес-Джонса), с помощью этого алгоритма вы можете рассчитать маршруты везде (кроме воды).
    Плагин также использует отдельный поток для расчёта маршрута.


    Алгоритм:

    Установка

    • Закиньте файл "PathFinder.dll" (для windows) или "PathFinder.so" (для linux) в вашу папку с плагинами (plugins)
    • Закиньте файл "PathFinder.inc" в вашу папку с инклюдами ("pawno/includes")
    • Добавьте плагин "PathFinder" ко всем плагинам в файл "server.cfg"


    Автовызываемые функции
    Этот плагин использует только один колбэк...

    PHP код:
    OnPathCalculated(routeidsuccessnodes[], nodes_size
    Параметры:
    • routeid <- ID рассчитанного маршрута
    • success <- Удачно ли расчан маршрут, вернёт 1, если успешно, 0 если нет
    • nodes[] <- ID узла на рассчитанном маршруте
    • nodes_size <- возвращает размер от "nodes[]"


    Пример:
    PHP код:
    public OnPathCalculated(routeidsuccessnodes[], nodes_size)
    {
        
    SendClientMessageToAll(-1"Маршрут расчитан.");
        if(
    success == 1)
        {
            new
                
    nodes_size,
                
    Floatpath_x,
                
    Floatpath_y,
                
    Floatpath_z
            
    ;
            do
            {
                --
    i;
                
    PathFinder_GetNodePos(nodes[i], path_xpath_ypath_z);
                
    printf("ID маршрута: %d, ID узла: %d. Координаты: X: %f, Y: %f, Z: %f"inodes[i], path_xpath_ypath_z);
            }
            while(
    i);
        }
        return 
    1;

    Внимание! Когда расчёт рассчитан неудачно, массив nodes[] создаётся только с одним индексом со значением равным -1 (nodes_size = 1).

    Нативные функции

    PathFinder_Init
    PHP код:
    PathFinder_Init(Floatzdifference 2.0maxnodes 10000); 
    Параметры:
    • zdifference <- максимальная разница по высоте (для расчёта)
    • maxnodes <- максимальное количество узлов для расчёта пути

    Эта функция устанавливает плагин (рекомендуется).

    PathFinder_FindWay
    PHP код:
    PathFinder_FindWay(routeidFloatstart_xFloatstart_yFloatend_xFloatend_ystep_limit = -1); 
    Параметры:
    • routeid <- ID маршрута
    • start_x <- Начала позиция на оси X
    • start_y <- Начала позиция на оси Y
    • end_x <- Конечная позиция на оси X
    • end_y <- Конечная позиция на оси Y
    • step_limit <- Количество шагов для расчёта ограничено. Если вы установите -1, плагин будет работать в нормальном режиме (без лимита). Если рассчитываемый маршрут достигнет лимита, рассчитывание прекратится и плагин вернёт маршрут (максимальное количество возможноых узло = step_limit - 1).

    Эта функция расчитывает путь из точки А в точку Б.

    PathFinder_GetNodePos
    PHP код:
    PathFinder_GetNodePos(nodeid, &Floatx, &Floaty, &Floatz); 
    Параметры:
    • nodeid <- ID узла
    • x <- Позиция узла на оси X
    • y <- Позиция узла на оси Y
    • z <- Позиция узла на оси Z

    Эта функция возвращает позицию узла на осях: X, Y, Z

    Внимание!
    Возвращаемое значение Z с точностью до нескольких сантиметров от практического положения земной поверхности
    Если вы хотите использовать это для телепортов, ботов, т.д, добавьте 1.0 вместо аргумента X

    PathFinder_SetTickRate
    PHP код:
    PathFinder_SetTickRate(rate 5); 
    Параметры:
    • rate


    Эта функция устанавливает скорость тактов для потоков связи. Значение по умолчанию 5 мс. Плагин использует скорость для вывода рассчитанного пути (не для расчёта).

    Видео
    Пример использования...




    Загрузка


    Автор: Pamdex
    Перевод: Londlem
    Оригинал: http://forum.sa-mp.com/showthread.php?t=427227


    Специально для: Pro-Pawn.Ru

    Копирование данной статьи без разрешения автора запрещено!
    Последний раз редактировалось L0ndl3m; 04.05.2014 в 20:23.

  2. 8 пользователя(ей) сказали cпасибо:
    #Contini (05.05.2014) $continue$ (07.01.2016) Daniel_Cortez (04.05.2014) DeimoS (04.05.2014) Hidden (19.05.2014) Kenny_Dalglish (04.05.2014) KShaddix (06.05.2014) [ForD] (26.05.2014)
  3. #2
    Аватар для bredvix
    Старичок

    Статус
    Оффлайн
    Регистрация
    01.08.2013
    Адрес
    Нижний Новгород
    Сообщений
    480
    Репутация:
    183 ±
    Интересная вещица. :)

  4. #3
    Аватар для #Contini
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.04.2014
    Сообщений
    5
    Репутация:
    0 ±
    Зачетная штука. Молодец.

 

 

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

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

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

Ваши права

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