John_Rayder
Ученик
Предлагаю вашему вниманию систему покупки оружия по количеству патронов. Вводим в диалоговое окно ваше кол-во патронов, выбираем "Купить". Введеное число в поле (кол-во пт) умножается на цену, которая показана в меню выбора покупки. Данную систему разрабатывал я и вот некоторые скриншоты:
Меню выбора оружия:
Меню ввода кол-ва патронов:
Диалог самой покупки:
Вот собственно и сама сис-ма:
Ко всем new:
В public OnPlayerEnterCheckpoint(playerid):
В public OnPlayerPickUpPickup(playerid, pickupid):
Находим свой пикап входа в магазин. У меня он выглядит так:
Вставляем в него:
На выход из магазина:
Также можете вставлять в любой интерьер и ко всем магазинам оружия
Далее ко всем командам:
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]):
Автор: John_Rayder (т.е. Я)
Коментируем, оцениваем
Меню выбора оружия:
Меню ввода кол-ва патронов:
Диалог самой покупки:
Вот собственно и сама сис-ма:
Ко всем new:
HTML:
new ammoche[MAX_PLAYERS];
Код:
if(ammoche[playerid] == 800) //проверка
{
OnPlayerCommandText(playerid,"/ammonacc");
return true;
}
Находим свой пикап входа в магазин. У меня он выглядит так:
Код:
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, "Далее", "Закрыть");
}
Код:
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 (т.е. Я)
Коментируем, оцениваем
Последнее редактирование:
