MasPickups
Удобнее, функциональнее, проще
Описание:
Данный инклуд писался мной давно для своих личных целей, я не заметил похожих библиотек, разве что некоторые другие подобия, которые мне показались не достаточно удобными и функциональным да и их поддержка уже закончилась, поэтому я решил заняться этим. Инклуд находится в данный момент в режиме тестирования, обо всех багах прошу сообщать мне на гитхаб или в эту тему, постараюсь фиксить оперативно.
Зависимости:
Streamer
Совместим с:
YSF
ePickups
YSI
Функции:
Код:
PickupCreate(pick_Function[23], pick_Model, pick_Type, Float:pick_X, Float:pick_Y, Float:pick_Z, pick_VirtualWorld = 0, pick_Interior = 0, pick_Playerid = 0, Float:streamdistance = STREAMER_PICKUP_SD)
Создает динамический пикап, все аргументы, кроме pick_Function, взяты именно с функции создания пикапов, поэтому их объяснять не буду.
pick_Function - функция, которая будет вызвана при взятии пикапа.
Возвращает: id созданного пикапа
пример Пример:
Код:
PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
* Примечание Функцию, которую Вы укажете при создании пикапа нужно использовать следующим образом:
Код:
new PolicePickup;
OnGamemodeInit() {
PolicePickup = PickupCreate("dynPoliceDetective", 19197, 23, 2545.0198, -2114.5449, 11.0047, 0);
PickupSetAntiFlood(PolicePickup, 10);
return 1;
}
Pickup:dynPoliceDetective(playerid, pickupid) { // указывать Pickup: обязательно
return 1;
}
Удаляет пикап
id - id пикапа
Возвращает: 0, если пикап не был найден, в остальных случаях 1
Код:
PickupSetAntiFlood(id, interval)
Устанавливает антифлуд для пикапа
id - id пикапа
interval - количество времени в секундах для действия антифлуда после подбора пикапа
Возвращает: в любом случае 1
пример Пример:
Код:
new test = PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
PickupSetAntiFlood(test , 3);
Узнает тип пикапа
id - id пикапа
Возвращает: id типа пикапа
пример Пример:
Код:
new test = PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
new model = GetPickupTypeEx(test); // в данном случае 23
Код:
GetPickupVirtualWorldEx(id)
Узнает виртуальный мир пикапа
id - id пикапа
Возвращает: id виртуального мира
пример Пример:
Код:
new test = PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
new vw = GetPickupVirtualWorldEx(test ); // в данном случае 0
Код:
GetPickupPlayerid(id)
Узнает id игрока для которого был создан пикап
id - id пикапа
Возвращает: id игрока
пример Пример:
Код:
new test = PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
new playerid = GetPickupPlayerid(test ); // в данном случае 0
Код:
PickupEmitate(playerid, id)
Эмитирует взятие пикапа игроком
playerid - id игрока
id - id пикапа
Возвращает: 0, если функция не была найдена
пример Пример:
Код:
new test = PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
PickupEmitate(playerid, test );
Код:
SetPickupModel(&id, model)
Устанавливает пикапу новую модель
id - пикап
model - модель
Возвращает: всегда 1
Код:
SetPickupType(&id, type)
Устанавливает пикапу новый тип
id - пикап
type - тип
Возвращает: всегда 1
Код:
SetPickupVirtualWorld(&id, world)
Устанавливает пикапу новый мир
id - пикап
world - мир
Возвращает: всегда 1
Код:
SetPickupInterior(&id, interior)
Устанавливает пикапу новый интерьер
id - пикап
interior - тип
Возвращает: всегда 1
Код:
PickupSetTag(bool:is_on_key = false, antiflood = 0, sync = INVALID_PICKUP)
Устанавливает последнему созданному пикапу определенные значения для работы
is_on_key - пикап на кнопку или нет,
antiflood - секунд антифлуда,
sync - синхронизация с другим пикапом
Возвращает: всегда 1
Теперь переходим к интересному:
Синхронизания двух пикапов
Нужно для пикапов входа и выхода из здания/в здание. Один пикап телепортирует игрока на другой пикап, также и наоборот. Виртуальный мир и интерьеры также синхронизированы.
Код:
SyncPickup(syncid, withid)
Синхронизирует два пикапа
syncid - первый пикап
withid - второй пикап
Возвращает: всегда 1
Пример синхронизации:
Код:
new tcd = PickupCreate("", 19197, 23, 2507.3115, -2125.3401, 11.0047, 0);
PickupSetAntiFlood(tcd, 3);
new tsd = PickupCreate("", 19197, 23, 2507.3115, -2130.3401, 11.0047, 0);
PickupSetAntiFlood(tsd, 3);
SyncPickup(tcd, tsd);
Внимание! По умолчанию, для того, чтобы игрок не катался по пикапам, анти флуд у синхронизированных пикапов стоит 3 секунды, поэтому устанавливать антифлуд в этом случае не обязательно.
Код:
OnPlayerUseSyncPickup(playerid, pickupid, syncpickupid)
Вызывается, когда игрок телепортируется по синхронизированному пикапу.
playerid - id игрока
pickupid - id пикапа
syncpickupid - id пикапа, к которому игрок телепортировался
Пикап на клавишу
Пикап будет срабатывать только при нажатии на клавишу, которую можно поменять.
Пикап будет срабатывать только при нажатой клавише
id - пикап
Возвращает: всегда 1
По умолчанию клавиша - левый альт, ее можно поменять вставив перед #include:
Код:
#define MAS_PCK_KEY 1024 // вместо 1024 код вашей клавиши
Также можно поменять текст, который будет показываться как подсказка в таких пикапах, для этого в инклуде поменяйте строчку:
Код:
static const _mas_KEY_PRESS_TEXT[] = "{ADFF2F}Нажмите левый альт";
Код:
PickupSetOnPickup(id)
Противоположен прошлой функции, пикап будет срабатывать как обычно
id - пикап
Возвращает: 0, если не был найден, в остальных случаях 1
Текущая версия: 0.7 (Финальный релиз)
- Добавлены функции DeletePickup, PickupSetOnPickup, PickupSetTag
- Исправлены баги, а также небольшая оптимизация
- Добавлена совместимость с foreach, если он подключен, то будет дополнительная оптимизация.
- Отредактирована совместимость с YSF, теперь если он подключен, то будет дополнительная оптимизация.
- Изменен стандартный размер динамической зоны для срабатывания пикапа, теперь он меньше и работает лучше.
Прошлая версия: 0.6
- Добавлены функции SetPickupModel, SetPickupType, SetPickupVirtualWorld и SetPickupInterior
- Добавлена возможность сделать пикап работающим только по нажатию клавиши через функцию PickupSetOnKey
- Добавлена возможность полной настройки данных:
Можно задефайнить MAS_PCK_TEXT_KEY до подключения инклуда, это заменит текст-подсказку возле пикапа, работающем только по клавише.
Аналогично с PICKUP_SYNC_STANDART_ANTIFLOOD. Задефайнив новое значение, можно изменить стандартный антифлуд у синхронизированных пикапов (он добавляется к тому, что указан в PickupSetAntiFlood)
Скачать последнюю версию
GitHub
Автор: Masson
Публикация в иных источниках без согласия автора запрещена.