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

From SA-MP Wiki

Jump to: navigation, search

Contents

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

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

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

new mypickup;

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

Есть два пути добавления пикапов. CreatePickup and AddStaticPickup. AddStaticPickup не возвращает ID созданного пикапа при его создании, не может быть удален и может быть добавлен исключительно в OnGameModeInit, по этому мы будем использовать 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 или 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

Personal tools
Navigation
Toolbox
In other languages