Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Система покупки оружия - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

Система покупки оружия BuyWeapons Оценка: -----

#1
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
BuyWeapons 0.4.3


BuyWeapons позволяет быстро сделать магазин огнестрельного оружия.

Изображение

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



Скриншоты [Показать]

[!] Зарегистрированные ID диалогов: 18498, 18499

Применение этого include очень просто. Достаточно в меню или пикап поставить: BuyWeapons. На свое усмотрение вы можете ставить свое количество патронов или цену, или использовать указанные в include.

Параметры


BuyWeapons(playerid, weaponid, ammo, price);

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

[!] Если параметры price и ammo оставить без значения, то они примут значения указанные в include.

Ключи

Эти ключи, макросы, написаны в начале файла. Для активации их нужно раскомментировать.

Макрос Описание
 BW__KEY__REPEAT  Блокировка проверки на замену оружия
 BW__KEY__RESET_AMMO  Блокировка сброса патронов при покупке

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


new pickup;

public OnGameModeInit()
{
    pickup = CreatePickup(......);
    return 1;
}

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

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

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

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

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


История версий и их цели

  • 0.1, 0.1.1
    Основная версия.
  • 0.2 test, 0.2.1, 0.2.2, 0.2.3
    Цель: меньше зависимости от switch, проверка на такое же оружие, уменьшение stack, исправление багов, оптимизация.
  • 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.6.1, 0.3.6.2
    Цель: полный отказ от switch, замена оружия если слот уже занят, исправление багов, оптимизация.
  • 0.4.1, 0.4.2, 0.4.3
    Цель: увеличить возможности функции добавив параметры патронов и цены, исправление багов, возможность блокировки функционала, оптимизация.


Версии


Репозиторий: https://github.com/m1n1vv/BuyWeapons

BuyWeapons 0.4.3 ***** [Показать]

BuyWeapons 0.3.6.2 [Показать]

BuyWeapons 0.2.3 [Показать]

BuyWeapons 0.1.1 [Показать]


Автор:  m1n1vv 

Сообщение отредактировал m1n1vv: 17 Январь 2017 - 01:10

4

Сказали спасибо 1:

#2
Пользователь офлайн   Jeckson! 

  • Местный
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Хорошая работа.

UPD>>> Вкурил. Перехваты используются в инклюдах и плагинах.

Сообщение отредактировал Jeckson!: 21 Июнь 2016 - 11:32

0

#3
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
BuyWeapons 0.3.4


Нашел ошибку в вычислении слота. Сделал проверку на M4 и AK-47, которая показала, что оружие определялось на 1 слот назад.

5|30|3718
2----
0----
0----
4----
0----

5|50|3967
2----
0----
0----
5----


  • Исправлено




Так же исправил баг, который при повторной покупке последнего оружия показывал окно о замене оружия с одинаковыми названиями и другими данными.

  • Исправлено



Сообщение отредактировал m1n1vv: 21 Июнь 2016 - 17:22

1

#4
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
BuyWeapons 0.3.5


  • Исправлен еще один ложный вызов диалогового окна о замене оружия;
  • Сообщение об удалении всех патронов со старого оружия при замене перенесено в диалоговое окно;
  • Доработано получение оружия;
  • Пересчитаны все массивы.


Github: https://github.com/m1n1vv/BuyWeapons

Сообщение отредактировал m1n1vv: 07 Январь 2017 - 13:41

0

#5
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
BuyWeapons 0.4.1


  • В функцию добавлены параметры патронов и цены. Их указывать не обязательно. Вы можете указать свои цены и количество патронов в include, и если есть какие-то исключения, то использовать те параметры. Подробный пример расписан в файле в описании;
  • Все присваивания перенесены в основную функцию;
  • Массив дальности стрельбы переделан в набор целых чисел, вместо элементов строк;
  • Строка об информации о оружии реализована через format, вместо набора strcat;
  • Мелкие косметические работы.


Чего еще стоит добавить?

Github: https://github.com/m1n1vv/BuyWeapons

Сообщение отредактировал m1n1vv: 07 Январь 2017 - 13:43

0

#6
Пользователь офлайн   Const 

  • Знаток
  • Вставить ник
  • Цитировать
  • Раскрыть информацию
Не знаю, идея может показаться бредовой, но, ладно :laugh:
Так-то всё уже в принципе готов, но вот может это ещё:
Может стоит как-то разукрасить всё это дело, выглядит немного серо. Но только не стоит перебарщивать.
И наверное это лучше бы смотрелось на альтернативных диалогах от Nexius'а. Ну вообще тогда стоит подключать ещё один инклуд, ну ладно, сам суди как удобней)
0

#7
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияConst (07 Январь 2017 - 13:57) писал:

Не знаю, идея может показаться бредовой, но, ладно :laugh:


В чем конкретно?
0

#8
Пользователь офлайн   Const 

  • Знаток
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияm1n1vv (07 Январь 2017 - 14:00) писал:

В чем конкретно?

В подключении доп. инклуда.
0

#9
Пользователь офлайн   m1n1vv 

  • Искусственный Cверхинтеллект
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияConst (07 Январь 2017 - 14:02) писал:

В подключении доп. инклуда.

Ааа. Ты видимо не любишь каждую систему делать в отдельном инклуде.
0

#10
Пользователь офлайн   Const 

  • Знаток
  • Вставить ник
  • Цитировать
  • Раскрыть информацию

Просмотр сообщенияm1n1vv (07 Январь 2017 - 14:28) писал:

Ааа. Ты видимо не любишь каждую систему делать в отдельном инклуде.

Хм... Почему же. Может я действительно не всегда в инклуды пихаю, например регистрацию, но всякие системы, которые точно не изменятся, пихаю именно в инклуд.
Ты наверное меня не правильно понял, я имел ввиду, что может показаться бредовой моя идея, которую я изложил выше)
Система нормальная, ничего против не скажу.
0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей