MasPickups
Удобнее, функциональнее, проще
Описание:
Данный инклуд писался мной давно для своих личных целей, я не заметил похожих библиотек, разве что некоторые другие подобия, которые мне показались не достаточно удобными и функциональным да и их поддержка уже закончилась, поэтому я решил заняться этим. Инклуд находится в данный момент в режиме тестирования, обо всех багах прошу сообщать мне на гитхаб или в эту тему, постараюсь фиксить оперативно.
Зависимости:
Streamer
Совместим с:
YSF
ePickups
YSI
Функции:
Создает динамический пикап, все аргументы, кроме pick_Function, взяты именно с функции создания пикапов, поэтому их объяснять не буду.Код: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 - функция, которая будет вызвана при взятии пикапа.
Возвращает: id созданного пикапа
* Примечание Функцию, которую Вы укажете при создании пикапа нужно использовать следующим образом:
Код: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;
}
Удаляет пикапКод:DeletePickup(id)
id - id пикапа
Возвращает: 0, если пикап не был найден, в остальных случаях 1
Устанавливает антифлуд для пикапаКод:PickupSetAntiFlood(id, interval)
id - id пикапа
interval - количество времени в секундах для действия антифлуда после подбора пикапа
Возвращает: в любом случае 1
Узнает тип пикапаКод:GetPickupTypeEx(id)
id - id пикапа
Возвращает: id типа пикапа
Узнает виртуальный мир пикапаКод:GetPickupVirtualWorldEx(id)
id - id пикапа
Возвращает: id виртуального мира
Узнает id игрока для которого был создан пикапКод:GetPickupPlayerid(id)
id - id пикапа
Возвращает: id игрока
Эмитирует взятие пикапа игрокомКод:PickupEmitate(playerid, id)
playerid - id игрока
id - id пикапа
Возвращает: 0, если функция не была найдена
Устанавливает пикапу новую модельКод: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
Пример синхронизации:
Внимание! По умолчанию, для того, чтобы игрок не катался по пикапам, анти флуд у синхронизированных пикапов стоит 3 секунды, поэтому устанавливать антифлуд в этом случае не обязательно.Код: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);
Вызывается, когда игрок телепортируется по синхронизированному пикапу.Код:OnPlayerUseSyncPickup(playerid, pickupid, syncpickupid)
playerid - id игрока
pickupid - id пикапа
syncpickupid - id пикапа, к которому игрок телепортировался
Пикап на клавишу
Пикап будет срабатывать только при нажатии на клавишу, которую можно поменять.
Пикап будет срабатывать только при нажатой клавишеКод:PickupSetOnKey(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
Публикация в иных источниках без согласия автора запрещена.