[Include] polygons
#1

Представляю систему, которая позволит рисовать полигоны в SA-MP.

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







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

Функции:

PHP Code:
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.

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

Если у вас подключен стример, то вам так же доступны новые каллбэки:
PHP Code:
OnPlayerEnterPolygon( playerid, polygonid ) - Срабатывает при входе игрока на полигон
OnPlayerLeavePolygon
( playerid, polygonid ) - Срабатывает при выходе игрока из полигона 
Прямые линии рисует одной гангзоной.

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

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

Автор системы: Seregamil
Reply
#2

Не чувак, это адовая трата гангзон, по-моему
Посмотри лучше на иконки.
Если ты будешь рисовать с помощью них, по-любому выиграешь в кол-ве заюзанных гангзон.
они всё-таки не резиновые
Reply
#3

Великолепно =)

Quote:

Не чувак, это адовая трата гангзон, по-моему

Найдётся человек которому и эта работа пригодится.
Reply
#4

Quote:
Originally Posted by Vinnyy
View Post
Не чувак, это адовая трата гангзон, по-моему
Посмотри лучше на иконки.
Если ты будешь рисовать с помощью них, по-любому выиграешь в кол-ве заюзанных гангзон.
они всё-таки не резиновые
Никто же не собирается создавать больше 20 полигонов за раз и все с кривыми прямыми, верно?
Reply
#5

Если было бы реализовано заполнение контуров ( заливка ), то можно было бы уменьшить кол-во использованных гангзон примерно вдвое (для сложных фигур) и до одной для прямоугольников. Получится даже в некотором смысле расширение для обычного редактора гангзон.
Reply
#6

Quote:
Originally Posted by Mutha_X
View Post
Если было бы реализовано заполнение контуров ( заливка ), то можно было бы уменьшить кол-во использованных гангзон примерно вдвое (для сложных фигур) и до одной для прямоугольников. Получится даже в некотором смысле расширение для обычного редактора гангзон.
Да, вы правы, но идея скрипта заключена именно в пиксельном рисовании на карте.
Reply
#7

Исправлен код перехвата OnPlayer(Enter/Leave)DynamicArea
Исправлен баг с недорисовкой последней точки полигона
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)