Данный инклуд добавляет возможность создавать фильтры для стандартного выбора скинов
- Подключение:
Для работы инклуда не требуется никаких дополнительных библиотек.
Что-бы подключить инклуд, достаточно добавить в начало мода, после подключения "a_samp"
PHP код:
#include <ds_skinselector>
- Настройка:
Для удобства настройки некоторые данные вынесены в макросы:
Имя макроса Значение по умолчанию Описание макроса
MAX_REGISTERED_ID_FILTERS
10В данном макросе указывается максимальное число фильтров, которые могут быть созданы одновременно.
ID фильтров начинаются с нуля, следовательно, по умолчанию доступны слоты с
"0" по "9".
MAX_REGISTERED_NAME_FILTERS
30
Максимальная длина для имени фильтров.
INVALID_SS_FILTER_ID
-1
Значение, которое будет возвращаться при любых ошибках, связанных с функциями инклуда
Пример настройки:
PHP код:
#include <a_samp>
#define MAX_REGISTERED_ID_FILTERS 30// Увеличим число фильтров до 30
#define MAX_REGISTERED_NAME_FILTERS 14// Уменьшим максимальную длину имени фильтров до 14
#include <ds_skinselector>
//Тут остальные инклуды
- Особенности работы:
Инклуд имеет довольно "хрупкую" структуру, так как вся его работа завязана на AddPlayerClass, которые создаются внутри него (точнее, на их суммарном количестве).
Поэтому:
Если в вашем моде присутствуют функции AddPlayerClass/AddPlayerClassEx, удалите их.
Любая лишняя единица данных функций заставит систему работать некорректно.
Так же в инклуде учтен переход к выбору скина при смерти (нажатие на F4) и с помощью ForceClassSelection.
- Новый коллбэк:
Данный коллбэк является платформой для функций-обработчиков данных из OnDialogResponse.PHP код:
OnPlayerSelectedSkin(playerid, classid)
Иными словами, он нужен лишь для того, чтоб Вы записывали в него определённые функции из инклуда.
Подробнее об этих функциях расскажу ниже.
- Описание функций:
*Примечание:
Описание данных функций продублировано внутри самого инклуда
- Примеры использования:
Обе системы очень примитивны и просто являются примером использования данного инклуда.
Смену фильтров Вы можете реализовать как вашей душе угодно (на видео, что я давал в самом начале статьи, смена фильтров реализована через текстдравы).
Основная задача данного инклуда - предоставить функционал. А уже как Вы им распорядитесь - ваше право :)
P.S. С данным инклудом довольно легко реализовать, например, магазин одежды. Или же систему гардероба. Да много чего можно сделать. Точнее, всё, что связано со скинами :D
Есть один маленький совет: вместо обычных ID использовать либо макросы, либо enum. Тогда проще будет контролировать свободные/занятые ID
Автор инклуда - DeimoS
Ссылка на Pastebin - Клик