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

Помогите Эффект зачарованности

Тема в разделе "Разработка плагинов для новичков", создана пользователем musel70, 16 авг 2014.

Статус темы:
Закрыта.
  1. Автор темы
    musel70

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

    Баллы:
    88
    Приветствую форумчан, появился один вопрос.

    Как можно добавить эффект зачарования. Я имею в виду переливающийся эффект(без самого зачарования).
     
  2. Хостинг MineCraft
    <
  3. serega6531

    serega6531 Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    shkurovs
    Можно отправлять клиенту пакет о зачаровании. Предмет будет светиться, но и надпись о зачаровании тоже будет, хотя на самом деле его нет.
     
  4. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ну можно создать своё зачарование и дать ему какое-нибудь "пустое" имя, ну как костылёк.
     
  5. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Баллы:
    173
    NBT Теги:
    Код:
        /**
         *
         * Оригиналка: https://github.com/nisovin/MagicSpells/blob/master/src/com/nisovin/magicspells/volatilecode/VolatileCodeEnabled_1_7_R3.java
         *
         * Версия MC 1.7.10
         * @param item - Предмет который вы хотите зачаровать
         * @return
         */
        public ItemStack addFakeEnchantment(ItemStack item) {
            if (!(item instanceof CraftItemStack)) {
                item = CraftItemStack.asCraftCopy(item);
            }
            NBTTagCompound tag = getTag(item);      
            if (tag == null) {
                tag = new NBTTagCompound();
            }
            if (!tag.hasKey("ench")) {
                tag.set("ench", new NBTTagList());
            }      
            return setTag(item, tag);
        }
      
        private static NBTTagCompound getTag(ItemStack item) {
            if (item instanceof CraftItemStack) {
                try {
                    Field field = CraftItemStack.class.getDeclaredField("handle");
                    field.setAccessible(true);
                    return ((net.minecraft.server.v1_7_R4.ItemStack)field.get(item)).tag;
                } catch (Exception e) {
                }
            }
            return null;
        }
      
        private static ItemStack setTag(ItemStack item, NBTTagCompound tag) {
            CraftItemStack craftItem = null;
            if (item instanceof CraftItemStack) {
                craftItem = (CraftItemStack)item;
            } else {
                craftItem = CraftItemStack.asCraftCopy(item);
            }
          
            net.minecraft.server.v1_7_R4.ItemStack nmsItem = null;
            try {
                Field field = CraftItemStack.class.getDeclaredField("handle");
                field.setAccessible(true);
                nmsItem = ((net.minecraft.server.v1_7_R4.ItemStack)field.get(item));
            } catch (Exception e) {
            }
            if (nmsItem == null) {
                nmsItem = CraftItemStack.asNMSCopy(craftItem);
            }
          
            nmsItem.tag = tag;
            try {
                Field field = CraftItemStack.class.getDeclaredField("handle");
                field.setAccessible(true);
                field.set(craftItem, nmsItem);
            } catch (Exception e) {
            }
          
            return craftItem;
        }
     
  6. Автор темы
    musel70

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

    Баллы:
    88
    Огромное спасибо за помощь!
     
Статус темы:
Закрыта.

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