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

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

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

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

Магазин одежды как на Samp-RP

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

Raid_Liker

Умник
Всем привет вот решил выложить мануал как сделать магазин одежды как на Samp-RP. Ну чтож приступим.
Ко всем new'ам добовляем:
Код:
new Menu:BuyClothes;
new Menu:current = GetPlayerMenu(playerid);
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];
Далее в OnGameModeInit создадим меню и сделаем кнопки:
Код:
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) перед последним ретурном вставляем это:
Код:
[SPOILER]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 = SkinMen[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);//Делаем норм камеру
                                }
                }
        }[/SPOILER]
Создадим команду /clothes
Код:
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);//Замораживаем, чтоы не ходил туда сюда 
                                        ChangeSkin[playerid]=0;//Обнуляем переменную.
                                }
                        }
            }
            return 1;
        }
Помог поставь +
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу