Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Мод Добавить новую ячейку в инвентарь

Тема в разделе "Модификации клиента", создана пользователем TCBfergie, 11 янв 2014.

  1. Автор темы
    TCBfergie

    TCBfergie Активный участник

    Баллы:
    63
    Имя в Minecraft:
    TCBfergie
    Помогите добавить новую ячейку в инвентарь игрока при помощи forge, планирую сделать новую броню. Отправьте пожалуйста код или src примера. На кройняк сойдет и туториал...
     
  2. Хостинг MineCraft
    <
  3. Defilak

    Defilak Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Defilak
    Создаешь свой GUI, свой контейнер к этому GUI, делаешь так чтобы шмот складывался/считывался с nbt данных игрока.
    После чего регестрируешь Event Handler, ловишь ивент открытия GUI, сравниваешь его (instanceof) с GUI инвентаря. Если равны - подсовываешь свой. У меня где-то был пример. Как найду - скину.
     
    Den-Xs, MrOrange и TCBfergie нравится это.
  4. Автор темы
    TCBfergie

    TCBfergie Активный участник

    Баллы:
    63
    Имя в Minecraft:
    TCBfergie
    Я понял, но вот с nbt поподробнее лучше...
     
  5. Defilak

    Defilak Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Defilak
    C NBT я и сам не сильно разобрался Шмот из инвентаря игрока можно получить методом Minecraft.getMinecraft().thePlayer.inventory.getStackInSlot(номер слота).
    Положить шмот - методом
    Minecraft.getMinecraft().thePlayer.inventory.setInventorySlotContents(номер слота, итемстак)
    UPD: С доп. слотами не прокатит, только что попробовал.

    Нашел следующий код:
    Код:
        public void saveToNBT (EntityPlayer entityplayer)
        {
            NBTTagCompound tags = entityplayer.getEntityData();
            NBTTagList tagList = new NBTTagList();
            NBTTagCompound invSlot;
    
            for (int i = 0; i < this.inventory.length; ++i)
            {
                if (this.inventory[i] != null)
                {
                    invSlot = new NBTTagCompound();
                    invSlot.setByte("Slot", (byte) i);
                    this.inventory[i].writeToNBT(invSlot);
                    tagList.appendTag(invSlot);
                }
            }
    
            tags.setTag("Energy.container", tagList);
        }
    
        public void readFromNBT (EntityPlayer entityplayer)
        {
            NBTTagCompound tags = entityplayer.getEntityData();
            NBTTagList tagList = tags.getTagList("Energy.container");
            for (int i = 0; i < tagList.tagCount(); ++i)
            {
                NBTTagCompound nbttagcompound = (NBTTagCompound) tagList.tagAt(i);
                int j = nbttagcompound.getByte("Slot") & 255;
                ItemStack itemstack = ItemStack.loadItemStackFromNBT(nbttagcompound);
    
                if (itemstack != null)
                {
                    this.inventory[j] = itemstack;
                }
            }
        }
     
    Последнее редактирование: 12 янв 2014
    MrOrange нравится это.
  6. savaekb2013

    savaekb2013 Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    savaekb
    Да действительно интерестно)
    Особенно если добавить на сервер как рюкзак)
     
  7. blackhawk3d

    blackhawk3d Активный участник Пользователь

    Баллы:
    63
    Можно сделать ячейки для очков,перчаток
     
  8. ms-dos95

    ms-dos95 Старожил Пользователь

    Баллы:
    103
    Skype:
    ms-dos95
    Имя в Minecraft:
    msdos95
    Если самому сделать не получается можно сделать связку TinkerConstruct вместе с BattleGear 2, предварительно отключив у TinkerConstruct генерацию руд и изменение стандартных крафтов. Связка этих двух модов официальная (по крайней мере в конфиге тинкера я видел надпись о связке с BattleGear 2). Рюкзачок тоже есть и он как отдельный слот в инвентаре. Вот скрины:
    [​IMG]

    [​IMG]
     
    Hephest нравится это.
  9. savaekb2013

    savaekb2013 Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    savaekb
    Так-то полезная и крутая информация)
    Но не охото целый мод ради этого ставить(
     
    ПриветОтЛайки нравится это.
  10. ms-dos95

    ms-dos95 Старожил Пользователь

    Баллы:
    103
    Skype:
    ms-dos95
    Имя в Minecraft:
    msdos95
    Это да! Жалко нету исходников TinkerConstruct и BattleGear 2[DOUBLEPOST=1390213385,1390213349][/DOUBLEPOST]А нет стой они есть https://github.com/SlimeKnights/TinkersConstruct
     
    savaekb2013 нравится это.
  11. savaekb2013

    savaekb2013 Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    savaekb
    А через MCP не как не получится?)[DOUBLEPOST=1390214147][/DOUBLEPOST]
    Всё увидел твою ссылку)[DOUBLEPOST=1390214200][/DOUBLEPOST]
    А не знаешь как через MCP создать 2 инвентарь?
     
  12. ms-dos95

    ms-dos95 Старожил Пользователь

    Баллы:
    103
    Skype:
    ms-dos95
    Имя в Minecraft:
    msdos95
    К сожалению такого я еще не создавал. Нужно обратится к профессионалам на форуме
     
  13. savaekb2013

    savaekb2013 Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    savaekb
    Ага
    Не подскажешь их ники?)
     
  14. ms-dos95

    ms-dos95 Старожил Пользователь

    Баллы:
    103
    Skype:
    ms-dos95
    Имя в Minecraft:
    msdos95
    Их много но боюсь их работы не бесплатные
     
  15. savaekb2013

    savaekb2013 Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    savaekb
    Жаль Жаль Жаль(((
     
  16. Defilak

    Defilak Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Defilak
    Что ты имеешь в виду под этим?
     
  17. savaekb2013

    savaekb2013 Активный участник Пользователь

    Баллы:
    88
    Имя в Minecraft:
    savaekb
    Как создать 2-инвентарь
    Допустим для VIP
     
  18. Defilak

    Defilak Активный участник Пользователь

    Баллы:
    78
    Имя в Minecraft:
    Defilak
    Точно тем же способом, который я описал в первом посте в этой теме.
     

Поделиться этой страницей