Как glyph става фон на меню
Менюто в сандък изписва заглавието си в горния ляв ъгъл и това заглавие може да съдържа символи от resource pack-а на сървъра. Glyph е такъв символ, нарисуван от твоя PNG. Сложи голям glyph в заглавието и клиентът ще го нарисува върху целия екран на сандъка.
Две стойности го позиционират. Отрицателният shift мести курсора наляво преди glyph-а, така че картинката да започва от ръба на сандъка, а не от отстъпа на заглавието. Ascent на glyph-а го мести вертикално, докато покрие менюто. Слотовете остават истински слотове: там, където картинката показва бутон, менюто има празен слот с material: air, който пак изпълнява действия при клик.
Ако вместо това използваш ItemsAdder, прочети версията на това ръководство за ItemsAdder. Идеята е същата, само конфигурацията и имената на плейсхолдърите са различни.
Какво ти трябва
- DeluxeMenus и PlaceholderAPI на сървъра ти. DeluxeMenus обработва плейсхолдърите на PlaceholderAPI в
menu_title. - Nexo или Oraxen, които изграждат resource pack-а и дават плейсхолдърите за glyph и shift.
- За Oraxen: glyph-овете в заглавията на инвентари работят нативно на Paper 1.21.2 или по-нов. По-старите сървъри се нуждаят от PacketEvents според документацията на Oraxen.
- Фонов PNG от най-много 256×256 пиксела. По-големи текстури не са позволени за един glyph.
Стъпка 1: Проектирай фона
Направи менюто в GUI редактора: избери редовете, шаблон или тема и начертай големи бутони през няколко слота. При експорта избери Nexo или Oraxen, задай namespace (например mymenus) и име на менюто (например shop).
PNG-то е широко 256 пиксела и високо между 164 пиксела (един ред) и 254 пиксела (шест реда). Полето около сандъка дава място на рамките да излизат извън нормалния контур на менюто.
Стъпка 2а: Конфигурация на glyph в Nexo
Nexo чете glyph-ове от всеки YAML файл в папката си glyphs. Текстурата се записва като namespace:path, тук PNG-то в plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heightе нарисуваната височина. Използвай реалната височина на PNG-то в пиксели.ascentмести glyph-а нагоре. Според Nexo височината никога не трябва да е по-малка от ascent.- Плейсхолдърите са
%nexo_gui_shop%за glyph-а и%nexo_shift_<pixels>%за празно място, което може да е отрицателно.
Стъпка 2б: Конфигурация на glyph в Oraxen
Oraxen чете glyph-ове от plugins/Oraxen/glyphs/. Пътят до текстурата е относителен спрямо pack/textures/, затова PNG-то отива в plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen изисква
heightда е по-голямо или равно наascent; Minecraft налага това. - Плейсхолдърът за glyph е
%oraxen_gui_shop%. За отместванията има два плейсхолдъра:%oraxen_shift_<pixels>%мести надясно,%oraxen_neg_shift_<pixels>%мести наляво. Всеки поддържа до 2047 пиксела. - Има ключ
char, с който сам избираш символа, но той не е задължителен.
Стъпка 4: Регистрирай менюто и презареди
gui_menus:
shop:
file: shop.yml- Изгради pack-а отново:
/nexo reload(или/nexo reload pack) за Nexo,/oraxen reload allза Oraxen. - Изпълни
/dm reloadи тествай с/dm open shop. - Рестартирай сървъра веднъж. DeluxeMenus регистрира
/shopотregister_command: trueсамо при стартиране. - Влез отново, за да получиш новия resource pack.
Чести грешки и решения
| Какво виждаш | Причина и решение |
|---|---|
%nexo_gui_shop% или %oraxen_gui_shop% като текст | PlaceholderAPI липсва или ID-то на glyph-а в плейсхолдъра не съвпада с ключа във файла на glyph-а. |
| Празна кутийка или грешен символ | Pack-ът не е изграден отново или играчът има стария pack. Презареди плъгина и влез отново. |
| Glyph от Oraxen липсва само в заглавията на менюта | Сървърът е по-стар от Paper 1.21.2 и PacketEvents не е инсталиран. |
| Картинката е изместена | Shift или ascent не съвпада с PNG-то. Експортирай отново от същия дизайн. |
| Картинката е по-тъмна от PNG-то | Липсва &f преди първия плейсхолдър. |
| Glyph-ът се отхвърля при зареждане | ascent е по-голямо от height или PNG-то е по-голямо от 256×256. |
/shop не прави нищо | Менюто не е в config.yml или сървърът не е рестартиран след добавянето му. |