Към съдържанието

Собствен GUI фон в DeluxeMenus с ItemsAdder

Minecraft няма настройка за фонова картинка на меню, а въпреки това много сървъри имат менюта в сандък, които изглеждат като собствени екрани. Трикът е font image в заглавието на менюто: ItemsAdder превръща твоя PNG в символ, а отрицателни отмествания местят този символ върху сандъка. Това ръководство го настройва стъпка по стъпка за DeluxeMenus.

Обновено:

Как работи текстурното GUI

Менюто в сандък показва заглавието си в горния ляв ъгъл. Заглавието е текст, а текстът може да съдържа символи от resource pack-а на сървъра. ItemsAdder може да превърне всеки PNG в такъв символ, наречен font image. Сложи голям font image в заглавието и клиентът ще го нарисува върху екрана на сандъка.

Още две неща го подравняват. Отрицателното отместване (offset) мести курсора наляво преди картинката, така че тя да започва от левия ръб на сандъка, а не след отстъпа на заглавието. y_position на font image-а го мести нагоре или надолу, докато покрие цялото меню.

Слотовете си остават нормални слотове. Там, където картинката ти показва бутон, менюто има празен слот за клик с material: air и собствени действия при клик.

Какво ти трябва

  • DeluxeMenus и PlaceholderAPI на Spigot или Paper сървър.
  • ItemsAdder, който изгражда resource pack-а и дава плейсхолдърите %img_…%.
  • Работеща доставка на resource pack-а, за да го свалят играчите наистина (ItemsAdder предлага self-hosting и други варианти за хостване).
  • Фонов PNG. Minecraft не позволява glyph-ове в шрифта по-големи от 256×256 пиксела, така че картинката трябва да се побере в това.

Стъпка 1: Направи фоновата картинка

Проектирай менюто в GUI редактора: избери редове, тема или шаблон и начертай големи бутони върху няколко слота. Избери ItemsAdder за експорт, въведи namespace (например mymenus) и името на менюто (например shop).

Експортираният PNG е широк 256 пиксела. Височината му зависи от редовете – от 164 пиксела за един ред до 254 пиксела за шест. Допълнителното място около сандъка позволява на рамки и декорации да излизат извън нормалния контур на менюто.

Стъпка 2: Регистрирай font image-а в ItemsAdder

Копирай PNG-то в своя namespace и добави запис font_images. Ето какво експортира GUI редакторът за меню с шест реда:

plugins/ItemsAdder/contents/mymenus/configs/gui_shop.yml
info:
  namespace: mymenus
font_images:
  gui_shop:
    path: gui/shop
    show_in_gui: false
    suggest_in_command: false
    scale_ratio: 254
    y_position: 45

Самата картинка отива в plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.

  • scale_ratio е височината, с която се рисува изображението. Използвай реалната височина на PNG-то в пиксели, за да не се разтяга нищо.
  • y_position мести изображението вертикално. ItemsAdder изисква то да е по-малко или равно на scale_ratio, защото играта не позволява повече.
  • show_in_gui: false държи фона извън списъка с емоджита на ItemsAdder.

Стъпка 3: Сложи изображението в заглавието на менюто в DeluxeMenus

DeluxeMenus обработва плейсхолдърите на PlaceholderAPI в menu_title. ItemsAdder дава %img_<name>% за изображението и %img_offset_<pixels>% за празно място, което може да е отрицателно.

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%img_offset_-48%%img_gui_shop%%img_offset_-201%&8Shop'
open_command: 'shop'
register_command: true
size: 54
items:
  button_1_buy:
    material: air
    slots: [10, 11, 19, 20]
    priority: 1
    click_commands:
      - '[openguimenu] shop_buy'
  1. &f в началото запазва истинските цветове на картинката. Без него изображението се оцветява в цвета на заглавието.
  2. %img_offset_-48% мести курсора 48 пиксела наляво преди картинката. GUI редакторът използва тази стойност за платното си: 8 пиксела за отстъпа на заглавието на сандъка плюс 40 пиксела поле, което добавя от всяка страна.
  3. %img_gui_shop% е самият фон.
  4. Второто отместване връща курсора назад, така че &8Shop да се изпише върху картинката там, където е мястото на заглавието. Стойността му зависи от ширината на картинката ти; GUI редакторът я изчислява вместо теб.

Ако „изпечеш“ заглавието в картинката в GUI редактора, заглавието свършва след плейсхолдъра на фона и няма второ отместване.

Стъпка 4: Регистрирай менюто и изгради pack-а отново

DeluxeMenus зарежда само менюта, изброени в неговия config.yml:

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Изпълни /iazip, за да изгради ItemsAdder resource pack-а отново с новото изображение.
  2. Изпълни /dm reload. Отвори менюто веднъж с /dm open shop, за да го провериш.
  3. register_command: true регистрира /shop като истинска команда, но само при стартиране на сървъра. Рестартирай сървъра веднъж, след като добавиш ново меню.
  4. Влез отново, приеми resource pack-а и отвори менюто.

Чести грешки и решения

Какво виждашПричина и решение
Заглавието показва %img_gui_shop% като текстPlaceholderAPI липсва или името е грешно. Плейсхолдърът използва името на font image-а от конфигурацията, без namespace.
Празна кутийка или грешен символ вместо картинкатаPack-ът не е изграден отново или играчът има стар pack. Изпълни /iazip и влез отново.
Някои играчи изобщо не виждат картинкаОтказали са resource pack-а на сървъра. Провери хостването на pack-а и настройките за сървъра в клиента.
Картинката е изместенаПървото отместване или y_position не съвпада с полетата на PNG-то. Експортирай отново, вместо да налучкваш числа.
Картинката е сива или по-тъмнаЛипсва &f пред изображението.
/shop е непозната командаСървърът не е рестартиран след добавянето на менюто или менюто липсва в config.yml.
ItemsAdder отказва font image-аy_position е по-голямо от scale_ratio или изображението е по-голямо от 256×256.

Често задавани въпроси

Трябва ли играчите да свалят нещо за собствен GUI фон?

Да, resource pack-а на сървъра, който ItemsAdder изгражда. Без него заглавието показва квадратче или нищо. ItemsAdder може да изпраща pack-а автоматично, когато играчите влизат.

Защо заглавието ми в DeluxeMenus показва %img_…% като текст?

Плейсхолдърът не се заменя. Провери дали PlaceholderAPI е инсталиран, дали ItemsAdder е зареден и дали името след img_ е точно името на font image-а от конфигурацията ти.

Мога ли да използвам същия фон за менюта с по-малко редове?

Само ако картинката съответства на редовете. Сандък с три реда е по-нисък от сандък с шест, затова му трябва собствен PNG и собствен scale_ratio. GUI редакторът експортира правилната височина за всеки брой редове.

Работи ли това без ItemsAdder?

Същият трик работи с glyph-ове от Nexo или Oraxen. Без никакъв плъгин за resource pack все пак можеш да направиш чисто меню с цветни стъклени панели, което GUI редакторът експортира с опцията „Без“.

Източници

Проверено спрямо официалната документация: