Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info
  • Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.

MasPickups

Nestyreff

Новичок
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);


Код:
PickupSetAntiFlood(id, interval)
Устанавливает антифлуд для пикапа
id - id пикапа
interval - количество времени в секундах для действия антифлуда после подбора пикапа
Возвращает: в любом случае 1


Пример:


Код:
new test = PickupCreate("testPickup", 19197, 23, 0.0, 0.0, 0.0, 0);
PickupSetAntiFlood(test , 3);


Код:
GetPickupTypeEx(id)
Узнает тип пикапа
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






Теперь переходим к интересному:​


Пример работы с пикапами:
Код:
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;
}


Синхронизания двух пикапов
Нужно для пикапов входа и выхода из здания/в здание. Один пикап телепортирует игрока на другой пикап, также и наоборот. Виртуальный мир и интерьеры также синхронизированы.

Код:
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 пикапа, к которому игрок телепортировался


Пикап на клавишу
Пикап будет срабатывать только при нажатии на клавишу, которую можно поменять.


Код:
PickupSetOnKey(id)
Пикап будет срабатывать только при нажатой клавише
id - пикап
Возвращает: всегда 1


По умолчанию клавиша - левый альт, ее можно поменять вставив перед #include:

Код:
#define MAS_PCK_KEY 1024 // вместо 1024 код вашей клавиши

Также можно поменять текст, который будет показываться как подсказка в таких пикапах, для этого в инклуде поменяйте строчку:

Код:
static const _mas_KEY_PRESS_TEXT[] = "{ADFF2F}Нажмите левый альт";





В следующих версиях:

- Временные пикапы
- Пикапы по нажатию кнопки
- Альтернатива SetPlayerCheckpoint
и другое


Текущая версия: 0.6
- Добавлены функции SetPickupModel, SetPickupType, SetPickupVirtualWorld и SetPickupInterior
- Добавлена возможность сделать пикап работающим только по нажатию клавиши через функцию PickupSetOnKey
- Добавлена возможность полной настройки данных:
Можно задефайнить MAS_PCK_TEXT_KEY до подключения инклуда, это заменит текст-подсказку возле пикапа, работающем только по клавише.
Аналогично с PICKUP_SYNC_STANDART_ANTIFLOOD. Задефайнив новое значение, можно изменить стандартный антифлуд у синхронизированных пикапов.








Автор: Masson
Публикация в иных источниках без согласия автора запрещена.
 
Сверху Снизу