Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Мануал Магазин оружий!

Статус
В этой теме нельзя размещать новые ответы.

animkaa

Новичок
Мой первый скрипт! Если уже был такой то извините. Мы будем делать магазин, который будет вызываться диалоговое окно, через команду /shop
И так приступим:

1. Вот этот код
PHP:
if(!strcmp(cmdtext, "/shop", true))
    {
    ShowPlayerDialog(playerid, 228, DIALOG_STYLE_LIST, "Магазин", "9mm ($300)\nSilenced 9mm ($350)\nDesert Eagle ($600)\n{0000BB}Shotgun ($550)\nMicro SMG/Uzi ($450)\nAK-47 ($1000)\nМ4A1 ($1000)", "Купить", "Выход");
    }
Нужно вставить вот сюда
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
И у вас должно получится вот так(У меня это первая команда xD)
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if(!strcmp(cmdtext, "/shop", true))
    {
    ShowPlayerDialog(playerid, 22, DIALOG_STYLE_LIST, "Магазин", "9mm ($300)\nSilenced 9mm ($350)\nDesert Eagle ($600)\n{0000BB}Shotgun ($550)\nMicro SMG/Uzi ($450)\nAK-47 ($1000)\nМ4A1 ($1000)", "Купить", "Выход");
    }
	return 1;
}
И запомните, номер диалогового окна у нас "22" - он не должен сходится не с каким другим(простите за мою плохую формулировку предложения :bw:)
2. Дальше идем вот сюда
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
И вставляем вот этот код
PHP:
if(dialogid == 22 && response)
    {
    switch(listitem)
     {
      case 0:
      {
      if(GetPlayerMoney(playerid) < 300)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -300);
      GivePlayerWeapon(playerid, 22, 150);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили 9mm!");
      }
Чтобы высветился нужный нам диалог, нужно поставить ид 22 вот здесь
PHP:
if(dialogid == 22 && response)
И так у нас 7 оружий в магазине, а значит case 0: у нас должно быть от 0 до 6 (Потому что считают от нуля! Знаю КЭП)
И теперь повторяем так с каждым
PHP:
      case 1:
      {
      if(GetPlayerMoney(playerid) < 350)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -300);
      GivePlayerWeapon(playerid, 23, 200);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Silenced 9mm");
      }
      case 2:
      {
      if(GetPlayerMoney(playerid) < 600)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -600);
      GivePlayerWeapon(playerid, 24, 150);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Desert Eagle!");
      }
      case 3:
      {
      if(GetPlayerMoney(playerid) < 550)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -550);
      GivePlayerWeapon(playerid, 25, 200);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Shotgun!");
      }
      case 4:
      {
      if(GetPlayerMoney(playerid) < 450)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -450);
      GivePlayerWeapon(playerid, 28, 200);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Micro SMG/Uzi!");
      }
      case 5:
      {
      if(GetPlayerMoney(playerid) < 1000)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -1000);
      GivePlayerWeapon(playerid, 30, 300);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили AK-47!");
      }
      case 6:
      {
      if(GetPlayerMoney(playerid) < 1000)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -1000);
      GivePlayerWeapon(playerid, 31, 300);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили M4A1!");
      }
     }
    }
И у вас должно получится вот так
PHP:
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == 228 && response)
    {
    switch(listitem)
     {
      case 0:
      {
      if(GetPlayerMoney(playerid) < 300)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -300);
      GivePlayerWeapon(playerid, 22, 150);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили 9mm!");
      }
      case 1:
      {
      if(GetPlayerMoney(playerid) < 350)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -300);
      GivePlayerWeapon(playerid, 23, 200);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Silenced 9mm");
      }
      case 2:
      {
      if(GetPlayerMoney(playerid) < 600)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -600);
      GivePlayerWeapon(playerid, 24, 150);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Desert Eagle!");
      }
      case 3:
      {
      if(GetPlayerMoney(playerid) < 550)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -550);
      GivePlayerWeapon(playerid, 25, 200);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Shotgun!");
      }
      case 4:
      {
      if(GetPlayerMoney(playerid) < 450)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -450);
      GivePlayerWeapon(playerid, 28, 200);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили Micro SMG/Uzi!");
      }
      case 5:
      {
      if(GetPlayerMoney(playerid) < 1000)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -1000);
      GivePlayerWeapon(playerid, 30, 300);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили AK-47!");
      }
      case 6:
      {
      if(GetPlayerMoney(playerid) < 1000)
      return SendClientMessage(playerid, COLOR_RED, "У вас недостаточно денег!");
      GivePlayerMoney(playerid, -1000);
      GivePlayerWeapon(playerid, 31, 300);
      SendClientMessage(playerid, COLOR_GREEN, "Вы купили M4A1!");
      }
     }
    }
// У меня дальше регистрация!
А и еще, если у кого этого нету, то вставьте в начало мода к #define'нам
PHP:
#define COLOR_RED 0xAA3333AA
#define COLOR_GREEN 0x9EC73DAA
Учился на сайте
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу