[ INC ] polygons

Тема в разделе "Gamemodes\Scripting", создана пользователем Seregamil, 29 июн 2014.






    • Пользователь GTA-NEWS

    Seregamil Newbie

    Сообщения:
    32
    Симпатии:
    18
    Баллы:
    8
    Представляю систему, которая позволит рисовать полигоны в SA-MP.

    Презентация возможностей построения полигонов:

    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]
    [​IMG]

    Количество гангзон использованных для полигонов не превысило 100 штук.

    Функции:

    CreatePolygon( Float: area[ ], all_points = sizeof area ) - Создает полигон из массива и возвращает ID полигона
    DestroyPolygon( polygonid ) - Удаляет полигон по его ID
    PolygonFlashForAll( polygonid, color = 0xFF0000AA ) - Включает мигание полигона по его ID определенным цветом
    PolygonFlashForPlayer( playerid, polygonid, color = 0xFF0000AA ) - Включает мигание полигона по его ID определенному игроку определенным цветом
    PolygonStopFlashForAll( polygonid ) - Выключает мигание полигона для всех игроков
    PolygonStopFlashForPlayer( playerid, polygonid ) - Выключает мигание полигона для определенного игрока
    PolygonShowForAll( polygonid, color = 0xFFFFFFAA ) - Показывает полигон всем игрокам определенным цветом
    PolygonShowForPlayer( playerid, polygonid, color = 0xFFFFFFAA ) - Показывает полигон определенному игроку определенным цветом
    PolygonHideForAll( playerid, polygonid ) - Скрывает полигон для всех игроков
    PolygonHideForPlayer( playerid, polygonid ) - Скрывает полигон для определенного игрока
    CountGangZones() - Выдает количество ВСЕХ гангзон на ВСЕМ сервере


    По стандарту, максимальное количество полигонов равно 20.

    Система работает как со стримером, так и без него.

    Если у вас подключен стример, то вам так же доступны новые каллбэки:

    OnPlayerEnterPolygon( playerid, polygonid ) - Срабатывает при входе игрока на полигон
    OnPlayerLeavePolygon( playerid, polygonid ) - Срабатывает при выходе игрока из полигона



    Прямые линии рисует одной гангзоной.

    Если при создании полигона, количество созданных гангзон превышает максимальное количество гангзон, т.е. 1024, то полигон самостоятельно удалит себя.

    Ссылка на репозиторий с инклудом и тестовым скриптом: https://github.com/Seregamil/SA-MP-Polygons

    Автор системы: Seregamil
    NeaKTIV, willpower, ExXxELL и 2 другим нравится это.


    • Пользователь GTA-NEWS

    theLipau3n Super prO

    Сообщения:
    116
    Симпатии:
    186
    Баллы:
    43
    Какое максимальное количество углов у одного полигона?

    • Пользователь GTA-NEWS

    Seregamil Newbie

    Сообщения:
    32
    Симпатии:
    18
    Баллы:
    8
    Без ограничений.

    Программа, которую я использовал для рисования: http://forum.sa-mp.com/showthread.php?t=467190&highlight=Zone Editor

    Можно и дедовским методом через /save

    • Пользователь GTA-NEWS

    Seregamil Newbie

    Сообщения:
    32
    Симпатии:
    18
    Баллы:
    8

    • VIP GTA-NEWS

    WiX ViP

    Сообщения:
    193
    Симпатии:
    732
    Баллы:
    93
    В 101 строке ошибка
    Лично у меня не дорисовывал линию от последней точки к первой
    Заменил
    Код:
    if( points + 1 == j )
    break;
    на
    Код:
    if( points + 1 == j )
    {
          end_x = area[0];
          end_y = area[1];
    }
    
    И заработало

Поделиться этой страницей