Saltar para o conteúdo

Fundo de GUI personalizado no DeluxeMenus com ItemsAdder

O Minecraft não tem nenhuma definição para uma imagem de fundo em menus, mas muitos servidores têm menus de baú que parecem ecrãs personalizados. O truque é uma imagem de fonte no título do menu: o ItemsAdder transforma o teu PNG num carácter, e offsets negativos movem esse carácter para cima do baú. Este guia configura tudo passo a passo para o DeluxeMenus.

Atualizado:

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:

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

A 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_position move a imagem na vertical. O ItemsAdder exige que seja menor ou igual a scale_ratio, porque o jogo não permite mais.
  • show_in_gui: false manté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.

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 no início mantém a imagem nas suas cores reais. Sem isso, a imagem fica tingida com a cor do título.
  2. %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.
  3. %img_gui_shop% é o próprio fundo.
  4. O segundo offset leva o cursor de volta, para que &8Shop seja 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:

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Executa /iazip para o ItemsAdder reconstruir o resource pack com a nova imagem.
  2. Executa /dm reload. Abre o menu uma vez com /dm open shop para o verificares.
  3. register_command: true regista /shop como comando a sério, mas só quando o servidor arranca. Reinicia o servidor uma vez depois de adicionares um menu novo.
  4. Volta a entrar, aceita o resource pack e abre o menu.

Erros comuns e soluções

O que vêsCausa e solução
O título mostra %img_gui_shop% como textoFalta 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 imagemO 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 nenhumaRecusaram o resource pack do servidor. Verifica o alojamento do pack e as definições do servidor no cliente.
A imagem está desalinhadaO 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 escuraFalta o &f antes da imagem.
/shop é um comando desconhecidoO 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 fonteO y_position é maior do que o scale_ratio, ou a imagem é maior do que 256×256.

Perguntas frequentes

Os jogadores precisam de transferir alguma coisa para um fundo de GUI personalizado?

Sim, o resource pack do servidor que o ItemsAdder constrói. Sem ele, o título mostra um quadrado de substituição ou nada. O ItemsAdder pode enviar o pack automaticamente quando os jogadores entram.

Porque é que o título do meu DeluxeMenus mostra %img_…% como texto?

O placeholder não está a ser substituído. Verifica se o PlaceholderAPI está instalado, se o ItemsAdder está carregado e se o nome depois de img_ é exatamente o nome da imagem de fonte da tua config.

Posso usar o mesmo fundo em menus com menos linhas?

Só se a imagem corresponder às linhas. Um baú de três linhas é mais baixo do que um de seis, por isso precisa do seu próprio PNG e do seu próprio scale_ratio. O criador de GUI exporta a altura certa para cada número de linhas.

Isto funciona sem ItemsAdder?

O mesmo truque funciona com glyphs do Nexo ou do Oraxen. Sem nenhum plugin de resource pack, podes na mesma criar um menu limpo com painéis de vidro coloridos, que o criador de GUI exporta com a opção “Nenhum”.

Fontes

Verificado com a documentação oficial: