Sari la conținut

Fundal de GUI personalizat în DeluxeMenus cu ItemsAdder

Minecraft nu are o setare pentru imaginea de fundal a unui meniu, totuși multe servere au meniuri de cufăr care arată ca niște ecrane personalizate. Trucul e o imagine de font în titlul meniului: ItemsAdder îți transformă PNG-ul într-un caracter, iar offseturile negative mută acel caracter peste cufăr. Ghidul ăsta îl configurează pas cu pas pentru DeluxeMenus.

Actualizat:

Cum funcționează un GUI texturat

Un meniu de cufăr își arată titlul în colțul din stânga sus. Titlul e text, iar textul poate conține caractere din resource packul serverului. ItemsAdder poate transforma orice PNG într-un astfel de caracter, numit font image (imagine de font). Pune o imagine de font mare în titlu și clientul o desenează peste ecranul cufărului.

Mai sunt două piese care le aliniază. Un offset negativ mută cursorul spre stânga înainte de imagine, ca poza să înceapă la marginea stângă a cufărului, nu după indentarea titlului. y_position al imaginii de font o mută în sus sau în jos până acoperă tot meniul.

Sloturile rămân sloturi normale. Acolo unde poza ta arată un buton, meniul are un slot gol pe care se poate da clic, cu material: air și propriile acțiuni la clic.

De ce ai nevoie

  • DeluxeMenus și PlaceholderAPI pe un server Spigot sau Paper.
  • ItemsAdder, care construiește resource packul și oferă placeholderele %img_…%.
  • O livrare funcțională a resource packului, ca jucătorii chiar să descarce packul (ItemsAdder oferă self-hosting și alte variante de hosting).
  • Un PNG de fundal. Minecraft nu permite glyphuri de font mai mari de 256×256 pixeli, așa că poza trebuie să încapă în asta.

Pasul 1: Fă imaginea de fundal

Creează meniul în generatorul de GUI: alege rândurile, o temă sau un preset și desenează butoane mari peste mai multe sloturi. Alege ItemsAdder la export, introdu namespace-ul (de exemplu mymenus) și numele meniului (de exemplu shop).

PNG-ul exportat are 256 de pixeli lățime. Înălțimea depinde de rânduri, de la 164 de pixeli pentru un rând la 254 de pixeli pentru șase. Spațiul în plus din jurul cufărului lasă ramele și decorațiunile să iasă din conturul normal al meniului.

Pasul 2: Înregistrează imaginea de font în ItemsAdder

Copiază PNG-ul în namespace-ul tău și adaugă o intrare font_images. Iată ce exportă generatorul de GUI pentru un meniu cu șase rânduri:

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

Poza propriu-zisă merge în plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.

  • scale_ratio e înălțimea la care e desenată imaginea. Folosește înălțimea reală în pixeli a PNG-ului, ca nimic să nu fie întins.
  • y_position mută imaginea pe verticală. ItemsAdder cere să fie mai mic sau egal cu scale_ratio, pentru că jocul nu permite mai mult.
  • show_in_gui: false ține fundalul în afara listei de emoji din ItemsAdder.

Pasul 3: Pune imaginea în titlul meniului DeluxeMenus

DeluxeMenus procesează placeholderele PlaceholderAPI din menu_title. ItemsAdder oferă %img_<name>% pentru imagine și %img_offset_<pixels>% pentru spațiu gol, care poate fi negativ.

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 la început păstrează poza în culorile ei reale. Fără el, imaginea e colorată cu culoarea titlului.
  2. %img_offset_-48% mută cursorul 48 de pixeli la stânga înainte de poză. Generatorul de GUI folosește valoarea asta pentru pânza lui: 8 pixeli pentru indentarea titlului cufărului plus marginea de 40 de pixeli pe care o adaugă pe fiecare parte.
  3. %img_gui_shop% e fundalul propriu-zis.
  4. Al doilea offset mută cursorul înapoi, ca &8Shop să fie scris peste poză, acolo unde stă un titlu. Valoarea lui depinde de lățimea pozei; generatorul de GUI o calculează pentru tine.

Dacă pictezi titlul direct în imagine în generatorul de GUI, titlul se termină după placeholderul fundalului și nu mai există un al doilea offset.

Pasul 4: Înregistrează meniul și refă packul

DeluxeMenus încarcă doar meniurile listate în config.yml:

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Rulează /iazip, ca ItemsAdder să refacă resource packul cu imaginea nouă.
  2. Rulează /dm reload. Deschide meniul o dată cu /dm open shop ca să-l verifici.
  3. register_command: true înregistrează /shop ca o comandă reală, dar doar la pornirea serverului. Repornește serverul o dată după ce adaugi un meniu nou.
  4. Intră din nou, acceptă resource packul și deschide meniul.

Erori frecvente și soluții

Ce veziCauză și soluție
Titlul arată %img_gui_shop% ca textLipsește PlaceholderAPI sau numele e greșit. Placeholderul folosește numele imaginii de font din config, fără namespace.
O căsuță goală sau un simbol greșit în loc de pozăPackul nu a fost refăcut sau jucătorul are un pack vechi. Rulează /iazip și intră din nou.
Unii jucători nu văd deloc pozaAu refuzat resource packul serverului. Verifică hostingul packului și setările serverului din client.
Poza e decalatăPrimul offset sau y_position nu se potrivește cu marginile PNG-ului. Exportă din nou în loc să ghicești numere.
Poza e gri sau mai închisăLipsește &f în fața imaginii.
/shop e o comandă necunoscutăServerul nu a fost repornit după ce ai adăugat meniul sau meniul lipsește din config.yml.
ItemsAdder refuză imaginea de fonty_position e mai mare decât scale_ratio sau imaginea e mai mare de 256×256.

Întrebări frecvente

Trebuie jucătorii să descarce ceva pentru un fundal de GUI personalizat?

Da, resource packul serverului construit de ItemsAdder. Fără el, titlul arată un pătrat placeholder sau nimic. ItemsAdder poate trimite packul automat când intră jucătorii.

De ce titlul meu din DeluxeMenus arată %img_…% ca text?

Placeholderul nu e înlocuit. Verifică dacă PlaceholderAPI e instalat, dacă ItemsAdder e încărcat și dacă numele de după img_ e exact numele imaginii de font din configul tău.

Pot folosi același fundal pentru meniuri cu mai puține rânduri?

Doar dacă poza se potrivește cu rândurile. Un cufăr cu trei rânduri e mai scund decât unul cu șase, așa că are nevoie de propriul PNG și propriul scale_ratio. Generatorul de GUI exportă înălțimea corectă pentru orice număr de rânduri.

Merge și fără ItemsAdder?

Același truc merge cu glyphuri Nexo sau Oraxen. Fără niciun plugin de resource pack poți construi totuși un meniu curat cu geamuri colorate, pe care generatorul de GUI îl exportă cu opțiunea „Niciunul”.

Surse

Verificat după documentația oficială: