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

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

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

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

Магазин одежды.(Для фанатов самп-рп :D)

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

Barni

Компетентный
Всем привет! Сейчас я научу вас делать магазин одежды в меню.
PHP:
new Menu:BuyClothes;//Переменная для записи ида меню.
new SkinMen[7][2] ={//Мужские скины
{15,1000},
{66,1000},
{143,1000},
{50,1000},
{24,5000},
{23,50000},
{29,350000}
};
new SkinMale[5][2] ={//Женские скины
{12,1000},
{93,5000},
{192,100000},
{233,100000},
{216,2000000}
};
new ChangeSkin[MAX_PLAYERS];//Переменная для смены скинa
В OnGameModeInit. Создадим меню и добавим "кнопочки"
PHP:
BuyClothes = CreateMenu ( "Clothes", 1, 10.0, 130.0, 100.0, 80.0);//Создаём меню
AddMenuItem(BuyClothes, 0, "Next>>");//"Кнопка" Далее
AddMenuItem(BuyClothes, 0, "<<Previous");//"Кнопка" Назад
AddMenuItem(BuyClothes, 0, "Done");//"Кнопка" Выбор
AddMenuItem(BuyClothes, 0, "Exit");//"Кнопка" Отмена
Теперь находим паблик OnPlayerSelectedMenuRow(playerid, row) И перед последним return'om встовляем:
P.s У кого нету new Menu:current = GetPlayerMenu(playerid);Вставить в самое начало.
Menu:current = GetPlayerMenu(playerid);// Узнаём меню игрока
PHP:
if(current == BuyClothes)//Если меню игрока buyclothes то..
 	{
  		switch(row)//Переключаем "кнопки"
    	{
	            case 0://Если он нажал на "кнопку" NExt to
 	            {
             		if(PlayerInfo[playerid][pSex] == 1)//Если игрока мужик то..
					{
						ChangeSkin[playerid]++;//Увелчиваем переменную..
						if(ChangeSkin[playerid] >= 6)//Если переменная равна ил более 6 то..
						{
							ChangeSkin[playerid] = 0;//Обнуляем её.. т.е. переходим к скину 0(Не CJ А каторый в Масиве SkinMen самый первый)
						}
						SetPlayerSkin(playerid,SkinMen[ChangeSkin[playerid]][0]);//Меняем игроку скин на тот каторый он выбрал
						format(string,sizeof(string),"%d$",SkinMen[ChangeSkin[playerid]][1]);//Показываем ему стоимость скина
						GameTextForPlayer(playerid,string,9999,1);
					}
					else// Или если игрок женщина
					{
						ChangeSkin[playerid]++;//велчиваем переменную
						if(ChangeSkin[playerid] >= 5)//Если переменная равна или более 5 то
						{
							ChangeSkin[playerid] = 0;//Обнуляем её т.е. переходим к скину 0(Не CJ А каторый в Масиве SkinMale самый первый)
						}
						SetPlayerSkin(playerid,SkinMale[ChangeSkin[playerid]][0]);//Меняем её скин
                        format(string,sizeof(string),"%d$",SkinMale[ChangeSkin[playerid]][1]);//Показываем стоимость скина
						GameTextForPlayer(playerid,string,9999,1);
					}
					ShowMenuForPlayer(BuyClothes, playerid);//Показываем меню, т.к. после нажатия на любую кнопку оно исчезает
				}
	            case 1://Если нажал на кнопку Назад
	            {
                    if(PlayerInfo[playerid][pSex] == 1)//Если он мужик
					{
						ChangeSkin[playerid]--;//Уменьшаем переменную
						if(ChangeSkin[playerid] <= 0)//Если пересменная меньше или равна 0 то
						{
							ChangeSkin[playerid] = 6;//Даём ей значение 6 переходим к самому последнему скину в масиве SkinMale
						}
						SetPlayerSkin(playerid,SkinMen[ChangeSkin[playerid]][0]);//Меняем скин
                        format(string,sizeof(string),"%d$",SkinMen[ChangeSkin[playerid]][1]);//Показываем стоимость
						GameTextForPlayer(playerid,string,9999,1);
					}
					else//Если она женщина
					{
						ChangeSkin[playerid]--;//Уменьшаем переменную
						if(ChangeSkin[playerid] <= 0)//Если переменная равна или меньше 0 то
						{
							ChangeSkin[playerid] = 5;// Ставим значение 5 и переходим к последниму скину в масиве SkinMale
						}
						SetPlayerSkin(playerid,SkinMale[ChangeFirstSkin[playerid]][0]);//Меняем скин
                        format(string,sizeof(string),"%d$",SkinMale[ChangeSkin[playerid]][1]);//Показываем стоимость
						GameTextForPlayer(playerid,string,9999,1);
					}
					ShowMenuForPlayer(BuyClothes, playerid);//Показываем меню, зачем я уже говарил выше
				}
				case 2://Если игрока нажал на "кнопку" Даллее
 				{
				    new cost;//Создадим переменную..
				    cost = SkinMen[ChangeSkin[playerid]][1];//Приравниваем переменную к цене скина в масиве Цыфра 1 - второй столбик масива
				    new cena;//Создаём ещё одну переменную..
				    cena = SkinMale[ChangeSkin[playerid]][1];//;//Приравниваем переменную к цене скина в масиве Цыфра 1 - второй столбик масива
					if(PlayerInfo[playerid][pSex] == 1)//Если он мужик то
					{
					    if(GetPlayerMoney(playerid) >= cost)//Если у него денег больше и равно цене скина то
					    {
        					PlayerInfo[playerid][pChar] = GetPlayerSkin(playerid);//Узнаём его скин и записываем в акаунт
                			SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);//Меняем ему скин на тот каторый он купил
							TogglePlayerControllable(playerid, 1);//Размораживаем его
							SetCameraBehindPlayer(playerid);//Ставим нормально камеру(чтоб он не багал хз где а ккамера осталась в магазине)
							SetPlayerPos(playerid,221.7944,-8.4229,1002.2109);//Меняем позицию
							SetPlayerFacingAngle(playerid,273.5792);//Меняем поворот головы
							SetPlayerInterior(playerid,5);//Даём 5 интерьер
                                                                                    GivePlayerMoney(playerid,-cost);//Забираем деньги за скин
					    }
						else//Если нету денег то
						{
						    SendClientMessage(playerid,COLOR_GREY,"У вас не достатачн денег");//Пишем сообщение
	    					ShowMenuForPlayer(BuyClothes, playerid);//Показываем меню..
						}
					}
					else//Если она женщина то
					{
					    if(GetPlayerMoney(playerid) >= cena)//Если у неё денег больше или равно цене скину в масиве то
					    {
        					PlayerInfo[playerid][pChar] = GetPlayerSkin(playerid);//УЗнаём её скин и записваем в акаунт
                			SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);//Меняем ей скин каторый она купила
							TogglePlayerControllable(playerid, 1);//Размораживаем
							SetCameraBehindPlayer(playerid);//Ставим камеру нормально
							SetPlayerPos(playerid,221.7944,-8.4229,1002.2109);//Меняем позицию
							SetPlayerFacingAngle(playerid,273.5792);//Меняем поворт головы
							SetPlayerInterior(playerid,5);//Даём 5 интерьер
                                                                                    GivePlayerMoney(playerid,-cost);//Забираем деньги за скин
					    }
						else//Если у неё меньше денег то
						{
						    SendClientMessage(playerid,COLOR_GREY,"У вас не достатачн денег");//Машем сообщение
	    					ShowMenuForPlayer(BuyClothes, playerid);//Паказываем меню
						}
					}

				}
				case 3://Если игрок нажал на "кнопку" Exit
				{
                	SetPlayerSkin(playerid,PlayerInfo[playerid][pChar]);//Меняем на скин каторый у игрока был
					TogglePlayerControllable(playerid, 1);//Размораживаем
					SetPlayerPos(playerid,221.7944,-8.4229,1002.2109);//Меняем позицию
					SetPlayerFacingAngle(playerid,273.5792);//Меняем поворот головы
					SetPlayerInterior(playerid,5);//Даём 5 интерьер
					SetCameraBehindPlayer(playerid);//Делаем норм камеру
				}
		}
	}
Теперь создадим тест команду /clothes:
PHP:
if(strcmp(cmd, "/clothes", true) == 0)
	{
	    if(gPlayerLogged[playerid] != 0)//Если игрок залогинен
	    {
         	if(PlayerToPoint(5.0,playerid,X,Y,Z))//Если игрок находится в превельных координатах(Коорджината ставим свои!)
			{
				if(PlayerInfo[playerid][pLeader]==0 && PlayerInfo[playerid][pMember] == 0)//Если игрок не состоит во фракции и не лидер
				{
				    ShowMenuForPlayer(BuyClothes, playerid);//Показываем ему меню..
				    new rand = random(sizeof(gInviteSpawns));//Создаём переменню рандум и приравниваем её
            		SetPlayerPos(playerid, 222.3489,-8.5845,1002.2109); //меняем позицию
					SetPlayerFacingAngle(playerid, 266.7302);//Меняем поворто головы
					SetPlayerCameraPos(playerid,222.3489 + 3, -8.5845, 1002.2109);//Меняем позицию камеры, чтобы она сметрела прямо на игрока
					SetPlayerCameraLookAt(playerid,222.3489, -8.5845, 1002.2109);//Устанавлием направление камеры
                    TogglePlayerControllable(playerid, 0);//Замораживаем, чтоы не ходил туда сюда :D
					ChangeSkin[playerid]=0;//Обнуляем переменную.
				}
			}
	    }
	    return 1;
	}
Ещё хочу добавить на счёт переменной ChangeSkin[MAX_PLAYERS];
SkinMale - это массив.
ChangeSkin - Переменная для выбора скина.
SkinMale[ChangeSkin[playerid]][0] - Тут мы их "как бы" совместили, т.е.если переменная ChangeSkin будет равна 3, то будет показан скин из массива под номером 3, Считать надо от 0.
Автор урока: Barni
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу