Гайд по Пикапам RU

From SA-MP Wiki

Jump to: navigation, search

Объявление переменной

Первое что нужно сделать при добавлении пикапа, это обьявить переменную, которая будет присваивать ID добавляемого пикапа. Это будет глобальная переменная(то есть может быть использована в нескольких функциях), мы будем её использовать при добавлении пикапа, и в авто вызываемой функции. Объявление этой переменной желательно в начале мода(или хотя бы до функций OnGameModeInIt и OnPlayerPickupPickup). На примере дадим название переменной "mypickup".

new mypickup;

Добавление пикапа

Есть два пути добавления пикапов. CreatePickup and AddStaticPickup. AddStaticPickup не возвращает ID созданного пикапа при его создании, не может быть удален и может быть добавлен исключительно в OnGameModeInit_RU, по этому мы будем использовать CreatePickup.

Синтаксис функции CreatePickup:

Параметры:
(model,type,Float:X,Float:Y,Float:Z,Virtualworld)
modelМодель добавляемого пикапа.
typeТип создаваемого пикапа.
Float:XX-координата добавляемого пикапа.
Float:YY-координата добавляемого пикапа.
Float:ZZ-координата добавляемого пикапа.
VirtualworldID виртуального мира пикапа. ID -1 означает что пикап буден виден во всех виртуальных мирах.


Для примера создадим пачку денег в центре Грув Стрит.

Теперь мы должны выбрать ID модели пикапа здесь. ID пачки денег - 1274.

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

Пикапы обычно создаются при запуске скриптов/модов, то есть в OnGameModeInit_RU или OnFilterScriptInit_RU, но мы можем добавлять их и в других функциях (например в OnPlayerDeath_ru для создания пикапов с оружием).

Вот пример добавления пикапа, с присваиванием его ID, переменной 'mypickup':

mypickup = CreatePickup(1274, 2, 2491.7900, -1668.1653, 13.3438, -1);

Указывание того, что будет при подборе пикапа

Когда вы подбираете пикап, автоматически вызывается функция OnPlayerPickUpPickup_RU, используя 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

Personal tools
In other languages