Гайд по Пикапам RU
From SA-MP Wiki
Contents |
Гайд по Пикапам
Объявление переменной
Первое что нужно сделать при добавлении пикапа, это объявить переменную, которая будет присваивать ID добавляемого пикапа. Это будет глобальная переменная(то есть может быть использована в нескольких функциях), мы будем её использовать при добавлении пикапа, и в авто вызываемой функции. Объявление этой переменной желательно в начале мода(или хотя бы до функций OnGameModeInIt и OnPlayerPickupPickup). На примере дадим название переменной "mypickup".
new mypickup;
Добавление пикапа
Есть два пути добавления пикапов. CreatePickup and AddStaticPickup. AddStaticPickup не возвращает ID созданного пикапа при его создании, не может быть удален и может быть добавлен исключительно в OnGameModeInit, по этому мы будем использовать CreatePickup.
Синтаксис функции CreatePickup:
Параметры:model | Модель добавляемого пикапа. |
type | Тип создаваемого пикапа. |
Float:X | X-координата добавляемого пикапа. |
Float:Y | Y-координата добавляемого пикапа. |
Float:Z | Z-координата добавляемого пикапа. |
Virtualworld | ID виртуального мира пикапа. ID -1 означает что пикап буден виден во всех виртуальных мирах. |
Для примера создадим пачку денег в центре Грув Стрит.
Теперь мы должны выбрать ID модели пикапа здесь. ID пачки денег - 1274.
Так же мы должны выбрать тип добавляемого пикапа. Нам нужно чтобы при подборе, пикап исчезал, а потом через некоторое время появлялся. Под это описание подходит 2-ой тип.
Пикапы обычно создаются при запуске скриптов/модов, то есть в OnGameModeInit или OnFilterScriptInit, но мы можем добавлять их и в других функциях (например в OnPlayerDeath для создания пикапов с оружием).
Вот пример добавления пикапа, с присваиванием его ID, переменной 'mypickup':
mypickup = CreatePickup(1274, 2, 2491.7900, -1668.1653, 13.3438, -1);
Указывание того, что будет при подборе пикапа
Когда вы подбираете пикап, автоматически вызывается функция OnPlayerPickUpPickup, используя playerid (ID игрока, поднявшего пикап) и pickupid, ID подбираемого пикапа.
Там мы можем добавить действий над игроком и пикапом.
Некоторые пикапы, такие как здоровье, броня, оружия по умолчанию запрограммированы, и не нуждаются в использовании OnPlayerPickUpPickup.
Когда игрок поднимает наш пикап, мы хотим дать ему 100$, но чтобы это сделать мы должны проверить, подобрал ли он именно денежный пикап:
public OnPlayerPickUpPickup(playerid, pickupid) { if(pickupid == mypickup) // Проверка, поднял ли игрок именно денежный пикап { SendClientMessage(playerid, 0xFFFFFFFF, "Вы получили $100!"); // Сообщить игроку GivePlayerMoney(playerid, 100); // Давание игроку денег } // Если вы хотите использовать это для других пикапов: else if (pickupid == название_другой_переменной) { // Необходимые действия... } return 1; }
Поздравляем, теперь вы знаете как делать пикапы!
Переводил на русский язык MazaHACKa