Přeskočit na obsah

Vlastní pozadí GUI v DeluxeMenus s ItemsAdderem

Minecraft nemá nastavení pro obrázek na pozadí menu, a přesto má hodně serverů menu v truhle, která vypadají jako vlastní obrazovky. Trik spočívá v obrázku ve fontu v nadpisu menu: ItemsAdder udělá z tvého PNG znak a záporné offsety tento znak posunou přes truhlu. Tento návod to krok za krokem nastaví pro DeluxeMenus.

Aktualizováno:

Jak funguje GUI s texturou

Menu v truhle ukazuje svůj nadpis v levém horním rohu. Nadpis je text a text může obsahovat znaky z resource packu serveru. ItemsAdder umí z jakéhokoli PNG udělat takový znak, kterému se říká font image (obrázek ve fontu). Dej do nadpisu velký obrázek ve fontu a klient ho vykreslí přes obrazovku truhly.

Aby vše sedělo, jsou potřeba ještě dvě věci. Záporný offset posune kurzor před obrázkem doleva, takže obrázek začne u levého okraje truhly, a ne až za odsazením nadpisu. y_position obrázku ve fontu ho posune nahoru nebo dolů, dokud nezakryje celé menu.

Sloty zůstávají normálními sloty. Tam, kde tvůj obrázek ukazuje tlačítko, má menu prázdný klikací slot s material: air a vlastními akcemi po kliknutí.

Co potřebuješ

  • DeluxeMenus a PlaceholderAPI na serveru se Spigotem nebo Paperem.
  • ItemsAdder, který sestaví resource pack a poskytuje placeholdery %img_…%.
  • Fungující doručování resource packu, aby si hráči pack skutečně stáhli (ItemsAdder nabízí self-hosting i jiné možnosti hostování).
  • PNG pozadí. Minecraft nepovoluje glyphy fontu větší než 256×256 pixelů, takže obrázek se do toho musí vejít.

Krok 1: Vytvoř obrázek pozadí

Navrhni menu v tvůrci GUI: vyber řádky, motiv nebo předlohu a nakresli velká tlačítka přes několik slotů. Jako export zvol ItemsAdder, zadej svůj namespace (například mymenus) a název menu (například shop).

Exportované PNG je široké 256 pixelů. Jeho výška závisí na počtu řádků, od 164 pixelů pro jeden řádek po 254 pixelů pro šest. Prostor navíc kolem truhly umožňuje, aby rámečky a dekorace přesahovaly normální obrys menu.

Krok 2: Zaregistruj obrázek ve fontu v ItemsAdderu

Zkopíruj PNG do svého namespace a přidej položku font_images. Tohle tvůrce GUI exportuje pro šestiřádkové menu:

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

Samotný obrázek patří do plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.

  • scale_ratio je výška, ve které se obrázek vykreslí. Použij skutečnou výšku PNG v pixelech, aby se nic neroztáhlo.
  • y_position posouvá obrázek svisle. ItemsAdder vyžaduje, aby byla menší nebo rovna scale_ratio, protože víc hra nedovolí.
  • show_in_gui: false drží pozadí mimo seznam emoji ItemsAdderu.

Krok 3: Vlož obrázek do nadpisu menu v DeluxeMenus

DeluxeMenus zpracovává placeholdery PlaceholderAPI v menu_title. ItemsAdder poskytuje %img_<name>% pro obrázek a %img_offset_<pixels>% pro prázdné místo, které může být záporné.

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 na začátku zachová obrázek ve skutečných barvách. Bez něj se obrázek obarví barvou nadpisu.
  2. %img_offset_-48% posune kurzor před obrázkem o 48 pixelů doleva. Tvůrce GUI tuto hodnotu používá pro své plátno: 8 pixelů na odsazení nadpisu truhly plus okraj 40 pixelů, který přidává na každé straně.
  3. %img_gui_shop% je samotné pozadí.
  4. Druhý offset posune kurzor zpět, takže &8Shop se napíše na obrázek tam, kam nadpis patří. Jeho hodnota závisí na šířce tvého obrázku; tvůrce GUI ji spočítá za tebe.

Pokud v tvůrci GUI vmaluješ nadpis přímo do obrázku, nadpis končí za placeholderem pozadí a druhý offset odpadá.

Krok 4: Zaregistruj menu a přestav pack

DeluxeMenus načítá jen menu uvedená v jeho config.yml:

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Spusť /iazip, aby ItemsAdder přestavěl resource pack s novým obrázkem.
  2. Spusť /dm reload. Otevři menu jednou přes /dm open shop a zkontroluj ho.
  3. register_command: true zaregistruje /shop jako skutečný příkaz, ale jen při startu serveru. Po přidání nového menu server jednou restartuj.
  4. Připoj se znovu, přijmi resource pack a otevři menu.

Časté chyby a jejich řešení

Co vidíšPříčina a řešení
Nadpis ukazuje %img_gui_shop% jako textChybí PlaceholderAPI nebo je špatně název. Placeholder používá název obrázku ve fontu z configu, bez namespace.
Místo obrázku prázdný čtverec nebo špatný symbolPack nebyl přestavěn, nebo má hráč starý pack. Spusť /iazip a připoj se znovu.
Někteří hráči nevidí obrázek vůbecOdmítli resource pack serveru. Zkontroluj hostování packu a nastavení serveru v klientovi.
Obrázek je posunutýPrvní offset nebo y_position neodpovídá okrajům tvého PNG. Exportuj znovu, místo abys hádal čísla.
Obrázek je šedý nebo tmavšíPřed obrázkem chybí &f.
/shop je neznámý příkazServer nebyl po přidání menu restartován, nebo menu chybí v config.yml.
ItemsAdder obrázek ve fontu odmítney_position je větší než scale_ratio, nebo je obrázek větší než 256×256.

Časté otázky

Musí si hráči kvůli vlastnímu pozadí GUI něco stahovat?

Ano, resource pack serveru, který sestaví ItemsAdder. Bez něj nadpis ukazuje zástupný čtverec nebo nic. ItemsAdder umí pack poslat automaticky, když se hráči připojí.

Proč nadpis v DeluxeMenus ukazuje %img_…% jako text?

Placeholder se nenahrazuje. Zkontroluj, že je nainstalovaný PlaceholderAPI, že je načtený ItemsAdder a že název za img_ je přesně název obrázku ve fontu z tvého configu.

Můžu stejné pozadí použít pro menu s menším počtem řádků?

Jen pokud obrázek odpovídá řádkům. Truhla se třemi řádky je nižší než truhla se šesti, takže potřebuje vlastní PNG a vlastní scale_ratio. Tvůrce GUI exportuje správnou výšku pro každý počet řádků.

Funguje to bez ItemsAdderu?

Stejný trik funguje s glyphy Nexo nebo Oraxenu. Bez jakéhokoli pluginu na resource packy můžeš pořád postavit čisté menu z barevných skleněných tabulí, které tvůrce GUI exportuje s volbou „Žádný“.

Zdroje

Ověřeno podle oficiální dokumentace: