PDA

Просмотр полной версии : [Include] BuyWeapons



m1n1vv
17.01.2017, 01:58
BuyWeapon - система покупки оружия.

Все действия будут происходишь в двух диалоговых окнах. В основном выводится вся информация об оружии. Если во время покупки система определит, что у вас в этом же слоте уже есть оружие, то запустится второе диалоговое окно, которое предложит заменить.

Использование системы довольное простое. Достаточно в меню или пикап поставить функцию BuyWeapon с нужными параметрами. Ид оружия является обязательным, а количество патронов или цену можно ставить на свое усмотрение, или использовать указанные в инклуде.


https://www.youtube.com/watch?v=f72H9AEBAKU

Параметры

BuyWeapon(playerid, weaponid, ammo, price);


playerid - id игрока
weaponid - id оружия (с 22 по 34)
ammo - количество патронов (необязательный)
price - цена оружия (необязательный)


Ключи
Для деактивации одной из функций, допишите нужный макрос перед инклудом.



Макрос
Описание


BW__KEY__INFO
Блокировка информации об оружии


BW__KEY__REPEAT
Блокировка проверки на замену оружия


BW__KEY__RESET_AMMO
Блокировка сброса патронов при покупке



Пример применения

#include <a_samp>
#include <mn_BuyWeapon>

new pickup;

public OnGameModeInit()
{
pickup = CreatePickup(1242, 2, 1503.3359, 1432.3585, 10.1191, -1);
return 1;
}

public OnPlayerPickUpPickup(playerid, pickupid)
{
if (pickupid == pickup)
{
ShowPlayerDialog(playerid, 68, DIALOG_STYLE_LIST, !"Покупка оружия", !"Silenced 9mm\n\
Sniper Rifle\n\
Micro SMG/Uz\n\
M4", !"Купить", !"Отмена");
}
return 1;
}

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch (dialogid)
{
case 68:
{
switch (listitem)
{
case 0: BuyWeapon(playerid, 23);
//Silenced 9mm (игрок получит 9mm с указанным количеством патронов и ценой в инклуде)

case 1: BuyWeapon(playerid, 34, .ammo = 100);
//Sniper Rifle (игроку будет выдано 100 патронов для этого оружия по цене указанной в инклуде)

case 2: BuyWeapon(playerid, 28, .price = 3000);
//Micro SMG/Uz (оружие будет стоить $3000 с количеством патронов указанных в инклуде)

case 3: BuyWeapon(playerid, 31, 100, 3000);
//M4 (игрок получит M4 со 100 патронами за $3000)

//Если параметры price и ammo оставить без значения, то они примут значения указанные в инклуде.
}
return 1;
}
}
return 0;
}

Версия: 0.5.2
Автор: m1n1vv
Репозиторий: https://github.com/m1n1vv/BuyWeapon

Battista
13.02.2017, 14:52
Интересная у тебя система открытия дверей, не подскажешь что используешь для нее?)

ziggi
14.02.2017, 01:10
Интересная у тебя система открытия дверей, не подскажешь что используешь для нее?)

Думаю, что удаляется стандартный дом, ставится новый, но с дырой для двери, ставится интерьер и двери. Для открывания используется GetPlayerCameraTargetObject + OnPlayerKeyStateChange + MoveObject.

P.S. m1n1vv, изучи git tag (https://git-scm.com/book/ru/v1/%D0%9E%D1%81%D0%BD%D0%BE%D0%B2%D1%8B-Git-%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-%D0%BC%D0%B5%D1%82%D0%BA%D0%B0%D0%BC%D0%B8), чтобы не создавать такую ерунду: https://github.com/m1n1vv/Pawn/blob/master/archive/

Geebrox
16.02.2017, 00:37
отличная работа, мне понравился

m1n1vv
12.01.2018, 20:04
BuyWeapons 0.5.1

Незначительная оптимизация;
Добавлен макрос блокировки диалога с информацией об оружии.


BuyWeapons 0.5.2

Изменен подбор калибра.