Como funciona uma GUI com textura
Um menu de baú mostra o título no canto superior esquerdo. O título é texto, e o texto pode conter caracteres do resource pack do servidor. O ItemsAdder consegue transformar qualquer PNG num carácter destes, chamado font image (imagem de fonte). Coloca uma imagem de fonte grande no título e o cliente desenha-a por cima do ecrã do baú.
Há mais duas peças para tudo ficar alinhado. Um offset negativo move o cursor para a esquerda antes da imagem, para que a imagem comece na borda esquerda do baú e não depois do recuo do título. O y_position da imagem de fonte move-a para cima ou para baixo até cobrir o menu inteiro.
Os slots continuam a ser slots normais. Onde a tua imagem mostra um botão, o menu tem um slot vazio e clicável com material: air e as suas próprias ações ao clicar.
O que precisas
- DeluxeMenus e PlaceholderAPI num servidor Spigot ou Paper.
- ItemsAdder, que constrói o resource pack e fornece os placeholders
%img_…%. - Uma entrega do resource pack que funcione, para que os jogadores transfiram mesmo o pack (o ItemsAdder oferece self-hosting e outras opções de alojamento).
- Um PNG de fundo. O Minecraft não permite glyphs de fonte maiores do que 256×256 píxeis, por isso a imagem tem de caber nisso.
Passo 1: Cria a imagem de fundo
Desenha o menu no criador de GUI: escolhe as linhas, um tema ou preset e desenha botões grandes sobre vários slots. Escolhe ItemsAdder como exportação, introduz o teu namespace (por exemplo mymenus) e o nome do menu (por exemplo shop).
O PNG exportado tem 256 píxeis de largura. A altura depende das linhas, de 164 píxeis para uma linha até 254 píxeis para seis. O espaço extra à volta do baú permite que molduras e decorações saiam do contorno normal do menu.
Passo 2: Regista a imagem de fonte no ItemsAdder
Copia o PNG para o teu namespace e adiciona uma entrada font_images. É isto que o criador de GUI exporta para um menu de seis linhas:
info:
namespace: mymenus
font_images:
gui_shop:
path: gui/shop
show_in_gui: false
suggest_in_command: false
scale_ratio: 254
y_position: 45A imagem em si vai para plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.
scale_ratioé a altura a que a imagem é desenhada. Usa a altura real do PNG em píxeis para que nada fique esticado.y_positionmove a imagem na vertical. O ItemsAdder exige que seja menor ou igual ascale_ratio, porque o jogo não permite mais.show_in_gui: falsemantém o fundo fora da lista de emojis do ItemsAdder.
Passo 3: Coloca a imagem no título do menu do DeluxeMenus
O DeluxeMenus interpreta placeholders do PlaceholderAPI em menu_title. O ItemsAdder fornece %img_<name>% para a imagem e %img_offset_<pixels>% para espaço vazio, que pode ser negativo.
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'&fno início mantém a imagem nas suas cores reais. Sem isso, a imagem fica tingida com a cor do título.%img_offset_-48%move o cursor 48 píxeis para a esquerda antes da imagem. O criador de GUI usa este valor para a sua tela: 8 píxeis do recuo do título do baú mais a margem de 40 píxeis que acrescenta de cada lado.%img_gui_shop%é o próprio fundo.- O segundo offset leva o cursor de volta, para que
&8Shopseja escrito por cima da imagem, onde fica um título. O valor depende da largura da tua imagem; o criador de GUI calcula-o por ti.
Se pintares o título na imagem no criador de GUI, o título termina depois do placeholder do fundo e não há segundo offset.
Passo 4: Regista o menu e reconstrói o pack
O DeluxeMenus só carrega os menus listados no seu config.yml:
gui_menus:
shop:
file: shop.yml- Executa
/iazippara o ItemsAdder reconstruir o resource pack com a nova imagem. - Executa
/dm reload. Abre o menu uma vez com/dm open shoppara o verificares. register_command: trueregista/shopcomo comando a sério, mas só quando o servidor arranca. Reinicia o servidor uma vez depois de adicionares um menu novo.- Volta a entrar, aceita o resource pack e abre o menu.
Erros comuns e soluções
| O que vês | Causa e solução |
|---|---|
O título mostra %img_gui_shop% como texto | Falta o PlaceholderAPI, ou o nome está errado. O placeholder usa o nome da imagem de fonte da config, sem o namespace. |
| Uma caixa vazia ou um símbolo errado em vez da imagem | O pack não foi reconstruído, ou o jogador tem um pack antigo. Executa /iazip e volta a entrar. |
| Alguns jogadores não veem imagem nenhuma | Recusaram o resource pack do servidor. Verifica o alojamento do pack e as definições do servidor no cliente. |
| A imagem está desalinhada | O primeiro offset ou o y_position não correspondem às margens do teu PNG. Exporta outra vez em vez de adivinhar números. |
| A imagem está cinzenta ou mais escura | Falta o &f antes da imagem. |
/shop é um comando desconhecido | O servidor não foi reiniciado depois de o menu ser adicionado, ou o menu não está no config.yml. |
| O ItemsAdder recusa a imagem de fonte | O y_position é maior do que o scale_ratio, ou a imagem é maior do que 256×256. |