Пикап - это абсолютно любой объект, который не имеет плотных текстур* и будет вращатся над землей. Пикап может быть подобран**, что может вызвать паблик OnPlayerPickUpPickup.
*Т.е будет прозрачен и плотное тело сможет сквозь него пройти. **В зависимости от типа.
Как сделать пикап?
В нашем распоряжении имеются две функции для создания пикапов: AddStaticPickup и CreatePickup. Чем же они отличаются? Первая функция может использоватся только в паблике OnGameModeInit* и пикап созданный данной функцией нельзя будет удалить (см. далее), вторую функцию вы можете использовать где угодно и созданный потом пикап можете удалять где хотите, достаточно только знать ID пикапа.
Теперь поговорим о функциях подробнее. Первая функция возвращает 1, если пикап успешно создан , вторая же функция возвращает ID созданного пикапа и -1 если произошла ошибка в создании пикапа, а если точнее, то если превышено максимальное число созданных пикапов. Давайте разберемся в синтаксисе обоих функций:
Вы наверняка уже поняли, что функции одинаковы. Различаются только возвращаемые величины и возможность дальнейшей манипуляции пикапами. Давайте разберем аргументы функций подробнее:
model - объект**, который станет пикапом type - тип*** пикапа Float: x, Float: y, Float: z - это позиция пикапа по осям: x, y и z. Соответственно: оси x, y и высота. Virtualworld - виртуальный мир в котором находится пикап, если вы хотите, чтобы пикап отображался в любом виртуальном мире, задайте аргументу значение -1
*Так говорит официальная вики, но опыты лиц, не связанных с ней, говорят, что использование таких функций как AddStaticVehicle и AddStaticPickup возможно и за пределами паблика OnGameModeInit. Но все таки, если официальная вики говорит что нельзя, наверное надо прислушатся. **Пикапом может стать любой валидный объект, однако если вы хотите соблюдать этикет, то вам надо обратится к этому списку. ***Вы конечно можете обратится к концу данной страницы, однако я предоставлю вам переведенный мною список типов пикапов:
0 - Пикап не отображается 1 - Пикап не берется, но отображается 2 - Пикап берется, исчезает и появляется через некоторое время 3 - Пикап берется, исчезает и появлется после смерти игрока 4 - Удаляется после некоторого времени после создания. (Может быть использовано для дропа оружия с игроков?) 5 - То же самое что и тип 4 8 - Пикап берется, однако не вызывается паблик OnPlayerPickUpPickup, удаляется автоматически(?!) 11 - Пикап взрывается через некоторое время после создания (бомбы?) 12 - Тоже самое что и тип 12 13 - Медленно опускается к земле(?!) 14 - Подберается, но только если игрок сидит в машине 15 - Тоже самое, что и тип 3 19 - Подберается, но не имеет эффекта (информационные иконки?) (?!) 22 - Тоже самое, что и тип 3 23 - Подберается, но не исчезает
?! - этот символ означает, что я не до конца понял смысл предложения, поэтому перевел буквально. Буду благодарен за ваши дополнения к этим пунктам.
Как проверить что игрок подобрал пикап?
Для этого существует специальный паблик - OnPlayerPickUpPickup. Он выполняется когда игрок встает на пикап и если тип пикапа позволяет ему быть подобранным. У паблика всего два аргумента: playerid и pickupid. Вот как должен выглядеть паблик:
Всего в паблике, как уже говорилось, два аргумента: playerid и pickupid, соответственно: ид игрока подобравшего пикап и ид подобранного пикапа, что позволяет сделать такую проверку:
Code
if(pickupid == 0) SendClientMessage(playerid,0xFFFFFFAA,"Вы подобрали самый первый пикап в моде!");
Тоесть, если игрок подберает пикап с ид равным нулю, высвечивается сообщение: Вы подобрали самый первый пикап в моде!.
Однако, считать каждый пикап цифрами не очень удобно. Вы наверное помните, что возвращает CreatePickup? А возвращает она ид созданного пикапа, что позволяет использовать переменные для удобства.
Code
new FirstPickup;
public OnGameModeInit() { FirstPickup = CreatePickup(1212,2,0.0,0.0,0.0,-1); return 1; }
Ну на самом деле таких функций всего одна - DestroyPickup. Она удаляет пикап, как уже говорилось раннее, созданный функцией CreatePickup. Аргумент у данной функции всего один - ид удаляемого пикапа. Думаю даже примеров приводить не нужно.
Тонкости работы с пикапами
Тонкость, опять же, всего одна. Если вы ставите модель пикапа - оружие, то при подборе такого пикапа вам будет даватся это оружие и патроны к нему. Если броню, то броня, если здоровье, то здоровье. Однако если вы поставите тип пикапа 23, то этого всего можно будет избежать.