PDA

Просмотр полной версии : [Урок] Пикап с выдачей чего-либо



.Kos
28.01.2014, 01:03
Всем привет, вот вообщем то я заметил, что уроки с пикапами очень плохо описываются, и многи новечки не понимая что тут написано просто напросто, копипастят.
И вот я решил расписать всё подробно.

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

Первое что нужно сделать при добавлении пикапа, это обьявить переменную, которая будет присваивать 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:X X-координата добавляемого пикапа.
Float:Y Y-координата добавляемого пикапа.
Float:Z Z-координата добавляемого пикапа. Virtualworld ID виртуального мира пикапа. ID -1 означает что пикап буден виден во всех виртуальных мирах.

Для примера создадим пачку денег в центре Грув Стрит.
Теперь мы должны выбрать ID модели пикапа здесь. ID пачки денег - 1274.
Так же мы должны выбрать тип добавляемого пикапа. Нам нужно чтобы при подборе, пикап исчезал, а потом через некоторое время появлялся. Под это описание подходит 2-ой тип.
Пикапы обычно создаются при запуске скриптов/модов, то есть в OnGameModeInit_RU или OnFilterScriptInit_RU, но мы можем добавлять их и в других функциях (например в OnPlayerDeath_ru для создания пикапов с оружием).



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;
}

Ну вот вообщем то и всё, надеюсь кому нибудь теперь стало ясно как создаются пикапы.



P.S. Автор урока Steve_Leroy[GRA] т.е. Я.

DmX
28.01.2014, 15:38
Всем привет, вот вообщем то я заметил, что уроки с пикапами очень плохо описываются, и многи новечки не понимая что тут написано просто напросто, копипастят.
И вот я решил расписать всё подробно.

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

Первое что нужно сделать при добавлении пикапа, это обьявить переменную, которая будет присваивать 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:X X-координата добавляемого пикапа.
Float:Y Y-координата добавляемого пикапа.
Float:Z Z-координата добавляемого пикапа. Virtualworld ID виртуального мира пикапа. ID -1 означает что пикап буден виден во всех виртуальных мирах.

Для примера создадим пачку денег в центре Грув Стрит.
Теперь мы должны выбрать ID модели пикапа здесь. ID пачки денег - 1274.
Так же мы должны выбрать тип добавляемого пикапа. Нам нужно чтобы при подборе, пикап исчезал, а потом через некоторое время появлялся. Под это описание подходит 2-ой тип.
Пикапы обычно создаются при запуске скриптов/модов, то есть в OnGameModeInit_RU или OnFilterScriptInit_RU, но мы можем добавлять их и в других функциях (например в OnPlayerDeath_ru для создания пикапов с оружием).



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;
}

Ну вот вообщем то и всё, надеюсь кому нибудь теперь стало ясно как создаются пикапы.



P.S. Автор урока Steve_Leroy[GRA] т.е. Я.

Красавчик)

TimoXa32
28.01.2014, 15:46
Полезно

.Kos
28.01.2014, 16:11
Полезно
Спасибо. Старался расписать подробно, чтобы новичок понимал, что к чему.

*Dance*
28.01.2014, 22:08
Молодец, хорошо объяснил, новички думаю поймут.

SimpleMan
03.03.2014, 23:17
Спасибо

.Kos
04.03.2014, 00:17
Спасибо
Рад помочь!

bredvix
04.03.2014, 14:33
Для начинающих новичков в Pawn как раз пойдёт данный урок.:ok:

Salvage
04.03.2014, 16:39
Полезный урок, для новичков в самый раз. Жаль что, не было такого урока когда я искал как создавать пикапы.
Спасибо!

Nikoo007
05.03.2014, 14:08
Полезно для новичков :)
+сик)