Вопросы

проблема со слотами, я сделал надевание/снятие аксессуаров по перемещению, переместив аксессуар в специальный слот

- он одевается, но если я в инвентаре перемещу аксессуар с этой же костью - то надетаый аксессуар снимется

Спойлер

                    if(pInfo[playerid][pInventory][j] == 0 && ClickInv[playerid] != -1 && pInfo[playerid][pActivTrade][ClickInv[playerid]] == 0)
                    {
                        new id = ClickInv[playerid];
                        if(j != 0 && j != 1 && j != 2 && j != 3 && j != 4 && j != 5)
                        {
                            if(ItemsInfo[pInfo[playerid][pInventory][id]][Access] == 1
                            {
                                pInfo[playerid][pSlotItem][ItemsInfo[pInfo[playerid][pInventory][id]][AcessBone]] 0// записываем ид обьекта в слот
                                RemovePlayerAttachedObject(playerid, ItemsInfo[pInfo[playerid][pInventory][id]][AcessBone]);
                                save_slotitem(playerid);
                                ClickInv[playerid] = -1;
                            }
                        }
                        if(j >= 0 && j <= 5) {
                            if(ItemsInfo[pInfo[playerid][pInventory][id]][Access] == 0) {
                                ShowPlayerDialog(playerid,D_NULL,DIALOG_STYLE_MSGBOX, ""colserver"Инвентарь",""colwhi"Этот предмет не является аксессуаром","Закрыть","");
                                PlayerTextDrawBackgroundColor(playerid, inventory_slot[playerid][ClickInv[playerid]], 505290495);
                                PlayerTextDrawShow(playerid, inventory_slot[playerid][ClickInv[playerid]]);
                                ClickInv[playerid] = -1;
                                return true;
                            }
                            if(IsPlayerAttachedObjectSlotUsed(playerid, ItemsInfo[pInfo[playerid][pInventory][id]][AcessBone])) {
                                ShowPlayerDialog(playerid,D_NULL,DIALOG_STYLE_MSGBOX, ""colserver"Инвентарь",""colwhi"Выбранная часть тела уже занята, освободите ее","Закрыть","");
                                PlayerTextDrawBackgroundColor(playerid, inventory_slot[playerid][id], 505290495);
                                PlayerTextDrawShow(playerid, inventory_slot[playerid][ClickInv[playerid]]);
                                ClickInv[playerid] = -1;
                                return true;
                            }
                            pInfo[playerid][pSlotItem][ItemsInfo[pInfo[playerid][pInventory][id]][AcessBone]] ItemsInfo[pInfo[playerid][pInventory][id]][ItemModel]; // записываем ид обьекта в слот
                            AtachPlayerAcces(playerid, ItemsInfo[pInfo[playerid][pInventory][id]][ItemModel], GetPlayerSkin(playerid));
                            save_slotitem(playerid);
                        }
 
                        pInfo[playerid][pInventory][j] = pInfo[playerid][pInventory][id];
                        pInfo[playerid][pInventoryKolvo][j] = pInfo[playerid][pInventoryKolvo][id];
                        pInfo[playerid][pInventory][id] = 0;
                        pInfo[playerid][pInventoryKolvo][id] = 0;
 
                        PlayerTextDrawBackgroundColor(playerid, inventory_slot[playerid][id], 505290495);
 
                        InvUpdate(playerid, j, pInfo[playerid][pInventory][j]);
 
                        if(id < 5 && j < 0)  InvUpdate(playerid, id, pInfo[playerid][pInventory][id]);
                        if(id > 5 && j > 5)  InvUpdate(playerid, id, pInfo[playerid][pInventory][id]);
                        //
                        if(id >= 0 && id <= 5) InvUpdate(playerid, id, pInfo[playerid][pInventory][id]);
                        if(j >= 0 && j <= 5) InvUpdate(playerid, id, pInfo[playerid][pInventory][id]); // обновляем предыдущую ячейку
 
                        SaveInventory(playerid);
                        ClickInv[playerid] = -1;
                        break;
                    }

 

 

Отредактировано пользователем hokageud

Поделиться сообщением


Ссылка на сообщение

0 ответов на этот вопрос

Ответы на этот вопрос пока отсутствуют

Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • OdinDvaTri
      От OdinDvaTri
      ImperiaL-RPG - тот самый легендарный проект, который снова открыт и уже ждёт своих игроков.
      Многофункциональный сервер, в котором вы не будете нуждаться в отыгровке Role Play режима.
      Мод не банально сплагиачен, а написан с 0 нашими Администраторами.
      На сервере есть свое радио, есть возможность стать rDj сервера.
      Также проходят различные мероприятия и конкурсы от администрации.
      Присоединяйся к нам и окунись в увлекательный мир прямо сейчас! Наш сервер ждет именно тебя. Будь лучшим в нашей игровой вселенной!
      IP: play.imperial-rpg.ru:7777
      Форум: https://forum.imperial-rpg.ru/
      TG: https://t.me/imperialrpg
    • INewBRO
      От INewBRO
      Перепроверял код много раз. В компиляторе 4 ошибки. Код с компилятором прикрепил. Помогите
      case DLG_REGAGE:         {             if(!strlen(inputtext))             {                 SPD(playerid, DLG_REGAGE, DIALOG_STYLE_INPUT, "{0797FF}Регистрация{FFFFFF} • Выберите возраст персонажа",//415 строка                     "{FFFFFF}Выберите возраст вашего персонажа:\n\                     {ff6a00}\t• Возраст должен быть от 18 до 60-и\n\",                 "Готово", "");//418 строка                 return SCM(playerid, COLOR_RED, "-Ошибка- {FFFFFF} Введите ваш возраст в поле ниже");             }  
    • Pomogitemne
      От Pomogitemne
      Здравствуйте, не нашёл подходящий раздел поэтому пишу здесь. Скачал я GTA Criminal Russia закинул туда мультиплеер добавляю свой сервер и хочу к нему подключится... Вот что пишет "ошибка в файлах и показывает этот путь  C:\user\OneDrive\Документы\GTA San Andres User Files\CR-MP 0.3.7\reports\mp.txt" удалял и переустанавливал 4 раза не помогает. Что делать?