PrivateArea.inc - создание приватных зон
PrivateArea.inc
PrivateArea.inc - это библиотека, которая позволяет создавать приватные зоны на сервере в SA:MP.
Как это работает: Когда игрок пытается зайти в приватную зону, его откидывает обратно.
Ограничения:
- Для работы с данной библиотекой необходимо иметь streamer и foreach.
- Создавать можно только зоны с типом Sphere (сфера).
Константы:
- MAX_PRIVATE_AREA - Максимальное количество созданных приватных зон (по умолчанию 50);
- PRIVATE_AREA_NONE - Приватной зоны не существует;
- PRIVATE_AREA_FULL_LIMIT - Превышен лимит создания приватных зон.
Функции:
public OnPlayerTriedEnterPrivateArea(playerid, areaid);
CreatePrivateArea(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1, priority = 0);
DestroyPrivateArea(areaid);
DenyEntryToPrivateArea(areaid, playerid = -1);
AllowEntryToPrivateArea(areaid, playerid = -1);
IsPlayerAddInPrivateArea(playerid, areaid);
Описание функций:
- OnPlayerTriedEnterPrivateArea - Автовызываемая функция, которая вызывается когда игрок пытается войти в приватную зону.
Параметры:
- playerid - ID игрока;
- areaid - ID динамической зоны.
- CreatePrivateArea - Создает приватную зону на сервере.
Возвращаемые значения:
- ID динамической зоны в случае успеха;
- PRIVATE_AREA_FULL_LIMIT - если превышен лимит создания приватных зон.
Параметры:
- x, y, z - координаты зоны;
- size - размер зоны;
- worldid - виртуальный мир (по умолчанию -1);
- interiorid - интерьер (по умолчанию -1);
- playerid - укажите Id игрока, если необходимо создать зону только для него (по умолчанию -1);
- priority - установить приоритет загрузки зоны (по умолчанию 0).
- DestroyPrivateArea - Уничтожает приватную зону с сервера.
Возвращаемые значения:
- 1 - если приватная зона была успешно удалена;
- PRIVATE_AREA_NONE - если приватной зоны не существует.
Параметры:
- areaid - ID динамической зоны;
- DenyEntryToPrivateArea - Запрещает игроку входить в приватную зону.
Возвращаемые значения:
- 1 - в случае успеха;
- 0 - если ID игрока меньше 0 или больше MAX_PLAYERS-1;
- PRIVATE_AREA_NONE - если приватной зоны не существует.
Параметры:
- areaid - ID динамической зоны;
- playerid - ID игрока которому нужно запретить вход (по умолчанию -1 (запрещает входим всем)).
- AllowEntryToPrivateArea - Разрешает игроку входить в приватную зону.
Возвращаемые значения:
- 1 - в случае успеха;
- 0 - если ID игрока меньше 0 или больше MAX_PLAYERS-1;
- PRIVATE_AREA_NONE - если приватной зоны не существует.
Параметры:
- areaid - ID динамической зоны;
- playerid - ID игрока которому нужно разрешить вход (по умолчанию -1 (разрешает входим всем)).
- IsPlayerAddInPrivateArea - Проверяет добавлен ли игрок в приватную зону.
Возвращаемые значения:
- 1 - если игрок добавлен в приватную зону;
- 0 - если ID игрока меньше 0 или больше MAX_PLAYERS-1, либо игрок не добавлен в приватную зону;
- PRIVATE_AREA_NONE - если приватной зоны не существует.
Параметры:
- playerid - ID игрока;
- areaid - ID динамической зоны.
Пример использования:
new PrivateArea;
PrivateArea = CreatePrivateArea(0.0, 0.0, 0.0, 100.0);
DenyEntryToPrivateArea(PrivateArea);
return 1;
}
public OnPlayerTriedEnterPrivateArea(playerid, areaid) {
if(areaid == PrivateArea)
return 1;
}
Лог изменений
Код:
Version 1.1 (17.11.2020):
- Добавлена функция IsPlayerAddInPrivateArea(playerid, areaid);
Version 1.2 (17.11.2020):
- Исправлена ошибка при записи координат, когда игрок находится в автомобиле;
Автор статьи и библиотеки: punkochel
Скачать Include : GitHub
*Примечание: Данная версия инклуда содержит в себе функции, логика работы которых будет пересмотрена в ближайшее время. Вы можете его использовать, но выход новых версий возможно заставит вас изменить некоторые параметры.
*Исключительно для pro-pawn.ru
Копирование данной статьи на других ресурсах без разрешения автора или Daniel_Cortez запрещено!