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

Плагин [EDIT/MISC/DEV] PowerNBT - редактор NBT тегов [1.9]

Тема в разделе "Релизы плагинов", создана пользователем DPOH-VAR, 28 ноя 2012.

  1. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Т.е. нужно зачаровать вещь командой, при этом без вывода результата на экран. Я правильно понял?
    Если так, то добавлю возможность в следующем снапшоте.
     
  2. Хостинг MineCraft
    <
  3. MrShanersHD

    MrShanersHD Участник

    Баллы:
    33
    Имя в Minecraft:
    MrShanersHD
    Нет, смотри к примеру у меня сделано меню выбора сервера и я хочу сделать чтобы выбор лобби был зачарованный, но на что зачарованный чтобы не было видно
     
  4. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Чтобы предмет светился, достаточно указать ему пустой лист енчантов
    /nbt item ench = list
     
  5. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    @DPOH-VAR
    Как можно вывести атрибуты предмета, дамаг например? Смог вывести все кроме атрибутов.
     
  6. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    с помощью команды /nbt item мы работаем только с тегами предмета. (tag)
    Чтобы получить остальные свойства самого предмета (Count, Slot, Damage, id), нужно редактировать объект, который содержит этот предмет.
    Например, если предмет лежит у нас в первом слоте инвентаря, то чтобы получить его дамаг, нужна команда:
    /nbt me Inventory[0].Damage
    Соответственно, если этот предмет лежит в сундуке:
    /nbt block Items[0].Damage
    При подсчете номера предмета пустые клетки в инвентаре следует пропускать.

    UPD:
    NBT Формат для предметов: http://minecraft.gamepedia.com/Player.dat_format#Item_structure
     
  7. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Мне бы через апи, инвентарь хочу чекать на подозрительные предметы.
     
  8. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Суть не меняется. Нужно брать теги у холдера, а не у предмета.
     
  9. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    И почему везде 0 выводит? У меча дамаг 7 а выводит 0.[DOUBLEPOST=1421856630,1421856536][/DOUBLEPOST]Мне нужно вывести Attack damage с меча.
     
  10. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Damage - это насколько поврежден данный предмет, а не его сила атаки.
    Также этот тег используется для указания варианта предмета. Например у шерсти и глины тег Damage отвечает за ее цвет.
     
  11. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Вы не поняли, мне нужно вывести такие атрибуты как Attack damage .[DOUBLEPOST=1421856748,1421856696][/DOUBLEPOST]Я смог вывести все даже чарку, но мне нужны именно такие атрибуты.
     
  12. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Сила атаки не хранится ни в каких тегах у предмета.
    Придется высчитывать вручную.
    Т.е. составить базовую мапу соответствия (id предмета -> урон), а затем вычислять реальное значение по модификаторам: http://minecraft.gamepedia.com/Attribute#Modifiers

    UPD: Возможно еще энчанты придется учитывать.
     
  13. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Как же не хранится, если вот она

    [​IMG]
    Не из воздуха же она берется.
     
  14. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    Скорее всего из воздуха.
    То есть клиент сам высчитывает это значение на основе атрибутов.

    Можно еще поэкспериментировать со значением generic.attackDamage у игрока.
    Но оно меняется только если у игрока предмет находится в руках или надет.
     
  15. alexandrage

    alexandrage Администратор

    Баллы:
    173
    Skype:
    alexandr0116
    Я таки нашел детектор атрибутов предметов.
    https://cloud.mail.ru/public/88000bcd6344/CIWD.jar
    Удивлен что такая продвинутая либа как PowerNBT не способна на это.
     
  16. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    1) PowerNBT не проверяет предметы на наличие "читов", т.к. он не предназначен для этого.
    Это редактор NBT-структуры игровых объектов + API для работы с NBT-тегами.
    2)
    Ради интереса я глянул исходники CheatItemWatchDog.
    Код:
    При PlayerInteractEvent:
        если у предмета есть атрибуты:
            очистить атрибуты,
            отменить событие.
        удалить все атрибуты шлема,
        если у предмета есть энчант уровнем > 5:
            очистить этот энчант,
            отменить событие.
    
    При InventoryClickEvent:
        то же самое.
    
    При EntityDamageByEntityEvent:
        то же самое для Damager.
    Все делается с помощью Bukkit API, кроме очистки атрибутов.
    PowerNBT API хватит для работы с атрибутами, если пользователь имеет хоть немного прямые руки и умеет читать документацию.
    3) PowerNBT, в отличие от этого плагина, работает с Forge, MCPC+, Cauldron, и еще некоторыми нестандартными серверами.
     
    Последнее редактирование: 30 янв 2015
  17. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Проще вообше тупо рекреэйтить предмет с таким же материалом и датой при каждом взаимодействии, чем каждый раз проверять всю эту ерунду. Всё равно при полном ограничение креатива ничего кроме блоков вытянуть нельзя, а им нбт данные не нужны.
     
  18. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    А вот тут не согласен.
    В NBT у предметов хранится много чего доступного из gm:survival:
    ench, display, pages, title, author, Explosion, Decorations и т.д. Их очищать - уж точно не стоит.
     
  19. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    При ограниченном креативе это всё не нужно, абсолютно, сказал же. Ограниченный креатив из полезного может только летать и строить.
     
  20. svk

    svk Старожил Пользователь

    Баллы:
    123
    Имя в Minecraft:
    svk
    И что это такое? -_-
    [​IMG][DOUBLEPOST=1441890708,1441890659][/DOUBLEPOST]Видимо classmap.yml надо установить... :oops:[DOUBLEPOST=1441890978][/DOUBLEPOST]Нет, всё равно это-же...[DOUBLEPOST=1441892362][/DOUBLEPOST]Ясно, в ядре вся трабла...
    http://rubukkit.org/threads/powernbt-ne-rabotaet-o_o.81562/
     
  21. Автор темы
    DPOH-VAR

    DPOH-VAR Старожил Пользователь

    Баллы:
    153
    Skype:
    dpohvar
    маппинги на груви я не стал делать. Маппинг нужен только для поддержки древних версий форжа.
    Тут https://www.spigotmc.org/resources/powernbt.9098/ можно взять почти последнюю готовую версию PowerNBT.
    Попробуй его запустить.
    Если будут проблемы - пропиши в конфиге плагина
    Код:
    debug: true
    и сюда лог. Я починю.

    PS: не забудь указать версию сервера и плагина.[DOUBLEPOST=1456892368,1441892997][/DOUBLEPOST]Добавил совместимость с 1.9
    https://www.spigotmc.org/resources/powernbt.9098/
     

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