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

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

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

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

Билет Удачи (Samp-Rp копия)

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

A3st

Новичок
Сегодня я вам расскажу как сделать Билет удачи (Samp-Rp Копия).
Суть выйгрыша, если выпадает 3 одинаковых числа вы выйграли 10 000 вирт.
Код для создания Билета Удачи:
В enum pInfo
PHP:
pTicket,
pTicketNr[3],
pTicketWin
В OnPlayerCommand.
PHP:
if(strcmp(cmd, "/prizeticket", true) == 0 )
{
	if(PlayerInfo[playerid][pTicket] != 0)
	{
		SendClientMessage(playerid,COLOR_GRAD1,"У вас нет Билета Удачи.");
		return 1;
	}
	if(PlayerInfo[playerid][pTicketNr][0] == PlayerInfo[playerid][pTicketNr][1] == PlayerInfo[playerid][pTicketNr][2])
	{
		format(string,sizeof(string), "На карточке:[%d][%d][%d],PlayerInfo[playerid][pTicketNr][0],PlayerInfo[playerid][pTicketNr][1],PlayerInfo[playerid][pTicketNr][2]);
		SendClientMessage(playerid,COLOR_GREEN,string);
		SendClientMessage(playerid,COLOR_WHITE,"Поздравляем у вас выпало 3 одинаковых числа");
		PlayerInfo[playerid][pTicket] = 0;
		PlayerInfo[playerid][pTicketWin] = 1;
		PlayerInfo[playerid][pTicketNr][0] = 0;
		PlayerInfo[playerid][pTicketNr][1] = 0;
		PlayerInfo[playerid][pTicketNr][2] = 0;
		return 1;
	}
	else
	{
		format(string,sizeof(string), "На карточке:[%d][%d][%d],PlayerInfo[playerid][pTicketNr][0],PlayerInfo[playerid][pTicketNr][1],PlayerInfo[playerid][pTicketNr][2]);
		SendClientMessage(playerid,COLOR_GREEN,string);
		SendClientMessage(playerid,COLOR_WHITE,"Может в следущий раз повезёт");
		PlayerInfo[playerid][pTicket] = 0;
		PlayerInfo[playerid][pTicketNr][0] = 0;
		PlayerInfo[playerid][pTicketNr][1] = 0;
		PlayerInfo[playerid][pTicketNr][2] = 0;
		return 1;
	}
}
if(strcmp(cmd, "/giveticket", true) == 0 )
{
	if(PlayerInfo[playerid][pTicket] != 0)
	{
		SendClientMessage(playerid,COLOR_GRAD1,"У вас нет Билета Удачи.");
		return 1;
	}
	if(PlayerInfo[playerid][pTicketWin] == 1)
	{
		SendClientMessage(playerid,COLOR_WHITE,"Вы забрали свои 10 000 вирт. Спасибо за покупку Билета Удачи.");
		PlayerInfo[playerid][pCash] += 10000; //Выдача денег сервером
		PlayerInfo[playerid][pTicketWin] = 0; //Обнуление pTicketWin сервером
		return 1;
	}
	else
	{
		SendClientMessage(playerid,COLOR_WHITE,"Вы не чего не выйграли");
		return 1;
	}
}
Ищем комманду "/buy" и добавляем в неё Билет Удачи.
Комманда должна выглядить типо вот этой.
PHP:
else if(strcmp(cmd, "/buy", true) == 0)
{
	for(new i = 0; i < sizeof(BizzInfo); i++)
	{
		new inter = GetPlayerInterior(playerid);
		new bizinfo[400];
		new cena = BizzInfo[i][bCena];
		new cena2 = BizzInfo[i][bCena] * 2;
		new cena3 = BizzInfo[i][bCena] * 3;
		new cena4 = BizzInfo[i][bCena] * 4;
		new cena5 = BizzInfo[i][bCena] * 5;
		new cena6 = BizzInfo[i][bCena] * 6;
		new cena7 = BizzInfo[i][bCena] * 7;
		new cena8 = BizzInfo[i][bCena] * 3;// * 7 Умоножение цены можете уменьшить/прибавить - цена билета удачи.
	    	if (PlayerToPoint(10, playerid,BizzInfo[i][bBarX], BizzInfo[i][bBarY], BizzInfo[i][bBarZ]))
	    	{
	    		if( inter == 17 ||  inter == 16 ||  inter == 10 ||  inter == 18)
	    		{
				format(bizinfo,sizeof(bizinfo)," Телефоный номер\t\t[%d вирт]\n Телефонная книга\t\t[%d вирт]\n Справочник\t\t\t[%d вирт]\n Аптечки\t\t\t[%d вирт]\n Фотоаппарат\t\t\t[%d вирт]\n Цветы\t\t\t\t[%d вирт]\n Газовый балончик\t\t[%d вирт]\n Билет Удачи\t\t[%d вирт]",cena,cena2,cena3,cena4,cena5,cena6,cena7, cena8);
        			ShowPlayerDialog(playerid, 5589, DIALOG_STYLE_LIST, "24/7", bizinfo, "Купить", "Отмена");
			}
		}
	}
	return 1;
}
В OnDialogResponse.
В case 5589 - это ID "/buy" диалога.
Сверху где все cena добавляем cena8.
И идем к самому последнему listitem и добавляем новый listitem и пишем что написано в коде:
PHP:
else if(listitem == 7) //Listitem - строка диалога счёт введется от 0.
{
	new Float:health;
	GetPlayerHealth(playerid,health);
	if(PlayerToPoint(3, playerid,BizzInfo[h][bBarX], BizzInfo[h][bBarY], BizzInfo[h][bBarZ]))
	{
		if(BizzInfo[h][bProducts] <= 0)
		{
			SendClientMessage(playerid, COLOR_GREY,"Нет продуктов");
			return 1;
		}
		if(PlayerInfo[playerid][pCash] < cena8)
		{
			SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег на руках!");
			return 1;
		}
		BizzInfo[h][b2Till] += cena8;
		BizzInfo[h][bProducts]-=10;
		PlayerInfo[playerid][pCash] -=cena8;
		SendClientMessage(playerid, COLOR_BLUE, "Билет удачи приобретен,если вам выпадут 3 одинаковых числа, то вы выиграете 10 000 вирт");
		SendClientMessage(playerid, COLOR_BLUE, "(( Введите /prizeticket для того чтобы узнать номера, /giveticket чтобы получить выигрыш ))");
		PlayerInfo[playerid][pTicket] = 1;
		new randone = 1 + random(11);
		new randtwo = 100000 + random(11);
		new randtree = 1 + random(11);
		PlayerInfo[playerid][pTicketNr][0] = randone;
		PlayerInfo[playerid][pTicketNr][1] = randtwo;
		PlayerInfo[playerid][pTicketNr][2] = randtree;
		return 1;
	}
}
Весь код выглядеть должен вот так:
PHP:
case 5589:
{
	new sendername[MAX_PLAYER_NAME];
	GetPlayerName(playerid, sendername, sizeof(sendername));
	for(new h = 0; h < sizeof(BizzInfo); h++)
	{
		new cena = BizzInfo[h][bCena];
		new cena2 = BizzInfo[h][bCena] * 2;
		new cena3 = BizzInfo[h][bCena] * 3;
		new cena4 = BizzInfo[h][bCena] * 4;
		new cena5 = BizzInfo[h][bCena] * 5;
		new cena6 = BizzInfo[h][bCena] * 6;
		new cena7 = BizzInfo[h][bCena] * 7;
		new cena8 = BizzInfo[h][bCena] * 3; //Цена билета удачи должно быть таким же, Что и в "/buy", иначе будет не правильно. Это должно быть вашим добавлением.
		if(response)
		{
			//Тут все listitem.
			//if(listitem == 0,1,2,3,4,5,6) После этих listitem ставим предыдущий код он должен выглядить так:
			else if(listitem == 7) //Listitem - строка диалога счёт введется от 0.
			{	
				new Float:health;
				GetPlayerHealth(playerid,health);
				if(PlayerToPoint(3, playerid,BizzInfo[h][bBarX], BizzInfo[h][bBarY], BizzInfo[h][bBarZ]))
				{
					if(BizzInfo[h][bProducts] <= 0)
					{
						SendClientMessage(playerid, COLOR_GREY,"Нет продуктов");
						return 1;
					}
					if(PlayerInfo[playerid][pCash] < cena8)
					{
						SendClientMessage(playerid, COLOR_GREY, "У вас нет столько денег на руках!");
						return 1;
					}
					BizzInfo[h][b2Till] += cena8;
					BizzInfo[h][bProducts]-=10;
					PlayerInfo[playerid][pCash] -=cena8;
					SendClientMessage(playerid, COLOR_BLUE, "Билет удачи приобретен,если вам выпадут 3 одинаковых числа, то вы выиграете 10 000 вирт");
					SendClientMessage(playerid, COLOR_BLUE, "(( Введите /prizeticket для того чтобы узнать номера, /giveticket чтобы получить выигрыш ))");
					PlayerInfo[playerid][pTicket] = 1;
					new randone = 1 + random(11);
					new randtwo = 100000 + random(11);
					new randtree = 1 + random(11);
					PlayerInfo[playerid][pTicketNr][0] = randone;
					PlayerInfo[playerid][pTicketNr][1] = randtwo;
					PlayerInfo[playerid][pTicketNr][2] = randtree;
					return 1;
				}
			}
		}
	}
}
В OnPlayerConnect.
PHP:
PlayerInfo[playerid][pTicket] = 0;
PlayerInfo[playerid][pTicketWin] = 0;
PlayerInfo[playerid][pTicketNr][0] = 0;
PlayerInfo[playerid][pTicketNr][1] = 0;
PlayerInfo[playerid][pTicketNr][2] = 0;
В OnPlayerLogin.
PHP:
ini_getInteger(File,"Ticket",PlayerInfo[playerid][pTicket]);
ini_getInteger(File,"TicketWinner",PlayerInfo[playerid][pTicketWin]);
ini_getInteger(File,"TicketNr 1",PlayerInfo[playerid][pTicketNr][0]);
ini_getInteger(File,"TicketNr 2",PlayerInfo[playerid][pTicketNr][1]);
ini_getInteger(File,"TicketNr 3",PlayerInfo[playerid][pTicketNr][2]);
В OnPlayerRegister.
PHP:
ini_setInteger(File,"Ticket",PlayerInfo[playerid][pTicket]);
ini_setInteger(File,"TicketWinner",PlayerInfo[playerid][pTicketWin]);
ini_setInteger(File,"TicketNr 1",PlayerInfo[playerid][pTicketNr][0]);
ini_setInteger(File,"TicketNr 2",PlayerInfo[playerid][pTicketNr][1]);
ini_setInteger(File,"TicketNr 3",PlayerInfo[playerid][pTicketNr][2]);
В OnPlayerUpdateRL или другую сис-му сохранения.
PHP:
ini_setInteger(File,"Ticket",PlayerInfo[playerid][pTicket]);
ini_setInteger(File,"TicketWinner",PlayerInfo[playerid][pTicketWin]);
ini_setInteger(File,"TicketNr 1",PlayerInfo[playerid][pTicketNr][0]);
ini_setInteger(File,"TicketNr 2",PlayerInfo[playerid][pTicketNr][1]);
ini_setInteger(File,"TicketNr 3",PlayerInfo[playerid][pTicketNr][2]);
Примечание: если у вас уже есть cena8 то ставим cena9 и т.д, если у вас нет cena7, cena6, то ставим cena6, cena7, а если cena7 есть, то ставим cena8, как в коде.
Использование: Покупаете билет в любом Магазине 24/7, вводите комманду /prizeticket, затем если выпало 3 одиннаковых числа вводим /giveticket и получаете свои 10 000 вирт.
Буду благодарен за "Спасибо" под сообщением.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу