Доступ к архиву

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

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

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

Новая сис-ма покупки оружия в магазинах [ALL]

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

John_Rayder

Ученик
Предлагаю вашему вниманию систему покупки оружия по количеству патронов. Вводим в диалоговое окно ваше кол-во патронов, выбираем "Купить". Введеное число в поле (кол-во пт) умножается на цену, которая показана в меню выбора покупки. Данную систему разрабатывал я и вот некоторые скриншоты:

Меню выбора оружия:



Меню ввода кол-ва патронов:



Диалог самой покупки:






Вот собственно и сама сис-ма:

Ко всем new:
HTML:
new ammoche[MAX_PLAYERS];
В public OnPlayerEnterCheckpoint(playerid):

Код:
if(ammoche[playerid] == 800) //проверка
	{
	OnPlayerCommandText(playerid,"/ammonacc");
	return true;
        }
В public OnPlayerPickUpPickup(playerid, pickupid):
Находим свой пикап входа в магазин. У меня он выглядит так:
Код:
if(pickupid == ammonac[0])
Вставляем в него:

Код:
SetPlayerCheckpoint(playerid,296.0250,-38.0599,1001.5156,1.0);//координаты чекпоинта
ammoche[playerid] = 800;
На выход из магазина:

Код:
DisablePlayerCheckpoint(playerid);
ammoche[playerid] = 0;
Также можете вставлять в любой интерьер и ко всем магазинам оружия

Далее ко всем командам:
Код:
if(strcmp(cmd, "/ammonacc", true) == 0)
	{
					new listitems[] = "{FFFFFF}Desert Eagle - 30$ пт\nM4 - 50$ пт\nАК-47 - 45$ пт\nДробовик - 40$ пт\nSniper Rifle - 120$ пт\nRifle - 70$ пт\nКастет  - 500$\nБита - 1100$";
				ShowPlayerDialog(playerid, 6470, DIALOG_STYLE_LIST, "Оружейный магазин", listitems, "Далее", "Закрыть");
	}
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):

Код:
        case 6470:
  {
      if(response)
        {
        new string[500];
                if(listitem == 0)
                {
                ShowPlayerDialog(playerid, 6471, DIALOG_STYLE_INPUT, "Desert Eagle", "Введите кол-во патронов для покупки", "Купить", "Отмена");
                return 1;
                }
                if(listitem == 1)
                {
                ShowPlayerDialog(playerid, 6472, DIALOG_STYLE_INPUT, "M4", "Введите кол-во патронов для покупки", "Купить", "Отмена");
                return 1;
                }
                if(listitem == 2)
                {
                ShowPlayerDialog(playerid, 6473, DIALOG_STYLE_INPUT, "АК-47", "Введите кол-во патронов для покупки", "Купить", "Отмена");
                return 1;
                }
                if(listitem == 3)
                {
                ShowPlayerDialog(playerid, 6474, DIALOG_STYLE_INPUT, "Дробовик", "Введите кол-во патронов для покупки", "Купить", "Отмена");
                return 1;
                }
                if(listitem == 4)
                {
                ShowPlayerDialog(playerid, 6475, DIALOG_STYLE_INPUT, "Sniper Rifle", "Введите кол-во патронов для покупки", "Купить", "Отмена");
                return 1;
                }
                if(listitem == 5)
                {
                ShowPlayerDialog(playerid, 6476, DIALOG_STYLE_INPUT, "Rifle", "Введите кол-во патронов для покупки", "Купить", "Отмена");
                return 1;
                }
                if(listitem == 6)
                {
                if(PlayerInfo[playerid][pCash] < 500)
		        {
		        SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного оружия!");
		        return 1;
		        }
	            PlayerInfo[playerid][pCash] -= 500;
                GivePlayerWeapon(playerid, 1, 1);
                SendClientMessage(playerid,COLOR_WHITE,"Вы купили кастет за 500$");
                return 1;
                }
                if(listitem == 7)
                {
                if(PlayerInfo[playerid][pCash] < 1100)
		        {
		        SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного оружия!");
		        return 1;
		        }
	            PlayerInfo[playerid][pCash] -= 1100;
                GivePlayerWeapon(playerid, 5, 1);
                SendClientMessage(playerid,COLOR_WHITE,"Вы купили биту за 1100$");
                return 1;
                }
		}
		}
case 6471:
  {
      if(response)
        {
        new plat = strval(inputtext);
        new plat2 = 30;
        if(PlayerInfo[playerid][pCash] < 30 * plat)
		{
		SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного кол-ва патронов!");
		return 1;
		}
		PlayerInfo[playerid][pCash] -= 30 * plat;
        GivePlayerWeapon(playerid, 24, plat);
        format(string,sizeof(string),"Вы купили Desert Eagle с {9ACD32}%d {FFFFFF}патронами за{9ACD32} %d$",plat,plat*plat2);
        SendClientMessage(playerid,COLOR_WHITE,string);
        return 1;
		}
		}
case 6472:
  {
      if(response)
        {
        new plat = strval(inputtext);
        new plat2 = 50;
        if(PlayerInfo[playerid][pCash] < 50 * plat)
		{
		SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного кол-ва патронов!");
		return 1;
		}
		PlayerInfo[playerid][pCash] -= 50 * plat;
        GivePlayerWeapon(playerid, 31, plat);
        format(string,sizeof(string),"Вы купили M4 с {9ACD32}%d {FFFFFF}патронами за{9ACD32} %d$",plat,plat*plat2);
        SendClientMessage(playerid,COLOR_WHITE,string);
        return 1;
		}
		}
case 6473:
  {
      if(response)
        {
        new plat = strval(inputtext);
        new plat2 = 45;
        if(PlayerInfo[playerid][pCash] < 45 * plat)
		{
		SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного кол-ва патронов!");
		return 1;
		}
		PlayerInfo[playerid][pCash] -= 45 * plat;
        GivePlayerWeapon(playerid, 30, plat);
        format(string,sizeof(string),"Вы купили АК-47 с {9ACD32}%d {FFFFFF}патронами за{9ACD32} %d$",plat,plat*plat2);
        SendClientMessage(playerid,COLOR_WHITE,string);
        return 1;
		}
		}
case 6474:
  {
      if(response)
        {
        new plat = strval(inputtext);
        new plat2 = 40;
        if(PlayerInfo[playerid][pCash] < 40 * plat)
		{
		SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного кол-ва патронов!");
		return 1;
		}
		PlayerInfo[playerid][pCash] -= 40 * plat;
        GivePlayerWeapon(playerid, 25, plat);
        format(string,sizeof(string),"Вы купили Дробовик с {9ACD32}%d {FFFFFF}патронами за{9ACD32} %d$",plat,plat*plat2);
        SendClientMessage(playerid,COLOR_WHITE,string);
        return 1;
		}
		}
case 6475:
  {
      if(response)
        {
        new plat = strval(inputtext);
        new plat2 = 120;
        if(PlayerInfo[playerid][pCash] < 120 * plat)
		{
		SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного кол-ва патронов!");
		return 1;
		}
		PlayerInfo[playerid][pCash] -= 120 * plat;
        GivePlayerWeapon(playerid, 34, plat);
        format(string,sizeof(string),"Вы купили Sniper Rifle с {9ACD32}%d {FFFFFF}патронами за{9ACD32} %d$",plat,plat*plat2);
        SendClientMessage(playerid,COLOR_WHITE,string);
        return 1;
		}
		}
case 6476:
  {
      if(response)
        {
        new plat = strval(inputtext);
        new plat2 = 70;
        if(PlayerInfo[playerid][pCash] < 70 * plat)
		{
		SCM(playerid,COLOR_WHITE,"{E0561B}У вас недостаточно денег для покупки данного кол-ва патронов!");
		return 1;
		}
		PlayerInfo[playerid][pCash] -= 70 * plat;
        GivePlayerWeapon(playerid, 33, plat);
        format(string,sizeof(string),"Вы купили Rifle с {9ACD32}%d {FFFFFF}патронами за{9ACD32} %d$",plat,plat*plat2);
        SendClientMessage(playerid,COLOR_WHITE,string);
        return 1;
		}
		}





Автор: John_Rayder (т.е. Я)
Коментируем, оцениваем
:)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу