Как работи текстурното 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 редакторът за меню с шест реда:
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>% за празно място, което може да е отрицателно.
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'&fв началото запазва истинските цветове на картинката. Без него изображението се оцветява в цвета на заглавието.%img_offset_-48%мести курсора 48 пиксела наляво преди картинката. GUI редакторът използва тази стойност за платното си: 8 пиксела за отстъпа на заглавието на сандъка плюс 40 пиксела поле, което добавя от всяка страна.%img_gui_shop%е самият фон.- Второто отместване връща курсора назад, така че
&8Shopда се изпише върху картинката там, където е мястото на заглавието. Стойността му зависи от ширината на картинката ти; GUI редакторът я изчислява вместо теб.
Ако „изпечеш“ заглавието в картинката в GUI редактора, заглавието свършва след плейсхолдъра на фона и няма второ отместване.
Стъпка 4: Регистрирай менюто и изгради pack-а отново
DeluxeMenus зарежда само менюта, изброени в неговия config.yml:
gui_menus:
shop:
file: shop.yml- Изпълни
/iazip, за да изгради ItemsAdder resource pack-а отново с новото изображение. - Изпълни
/dm reload. Отвори менюто веднъж с/dm open shop, за да го провериш. register_command: trueрегистрира/shopкато истинска команда, но само при стартиране на сървъра. Рестартирай сървъра веднъж, след като добавиш ново меню.- Влез отново, приеми 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. |