Kaip glyph’as tampa meniu fonu
Skrynios meniu rašo pavadinimą viršutiniame kairiajame kampe, o tame pavadinime gali būti simbolių iš serverio resursų paketo. Glyph’as yra toks simbolis, nupieštas iš tavo PNG. Įdėk didelį glyph’ą į pavadinimą, ir klientas jį nupieš per visą skrynios ekraną.
Jo vietą nustato dvi reikšmės. Neigiamas shift prieš glyph’ą perkelia žymeklį į kairę, todėl paveikslėlis prasideda nuo skrynios krašto, o ne nuo pavadinimo įtraukos. Glyph’o ascent perkelia jį vertikaliai, kol jis uždengia meniu. Slotai lieka tikri slotai: ten, kur paveikslėlyje matosi mygtukas, meniu turi tuščią slotą su material: air, kuris vis tiek vykdo paspaudimo veiksmus.
Jei vietoj to naudoji ItemsAdder, skaityk šio gido ItemsAdder versiją. Idėja ta pati, skiriasi tik config ir placeholder’ių pavadinimai.
Ko tau reikia
- DeluxeMenus ir PlaceholderAPI tavo serveryje. DeluxeMenus apdoroja PlaceholderAPI placeholder’ius
menu_titlelauke. - Nexo arba Oraxen, kurie sukuria resursų paketą ir pateikia glyph bei shift placeholder’ius.
- Oraxen atveju: glyph’ai inventoriaus pavadinimuose natūraliai veikia Paper 1.21.2 ar naujesnėje versijoje. Pagal Oraxen dokumentaciją senesniems serveriams reikia PacketEvents.
- Fono PNG, ne didesnis nei 256×256 pikselių. Didesnės tekstūros vienam glyph’ui neleidžiamos.
1 žingsnis: suprojektuok foną
Sukurk meniu GUI kūrėje: pasirink eilutes, šabloną ar temą ir nupiešk didelius mygtukus per kelis slotus. Prie eksporto pasirink Nexo arba Oraxen, nustatyk namespace (pavyzdžiui, mymenus) ir meniu pavadinimą (pavyzdžiui, shop).
PNG yra 256 pikselių pločio ir nuo 164 pikselių (viena eilutė) iki 254 pikselių (šešios eilutės) aukščio. Paraštė aplink skrynią suteikia rėmeliams vietos išlįsti už įprasto meniu kontūro.
2a žingsnis: Nexo glyph config
Nexo skaito glyph’us iš bet kurio YAML failo savo glyphs aplanke. Tekstūra rašoma kaip namespace:path, čia tai PNG, esantis plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heightyra piešiamas aukštis. Naudok tikrąjį PNG aukštį pikseliais.ascentpakelia glyph’ą aukštyn. Nexo sako, kad height niekada negali būti mažesnis už ascent.- Placeholder’iai yra
%nexo_gui_shop%glyph’ui ir%nexo_shift_<pixels>%tarpui, kuris gali būti neigiamas.
2b žingsnis: Oraxen glyph config
Oraxen skaito glyph’us iš plugins/Oraxen/glyphs/. Jo tekstūros kelias yra santykinis pack/textures/ atžvilgiu, todėl PNG keliauja į plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen reikalauja, kad
heightbūtų didesnis arba lygusascent; to reikalauja Minecraft. - Glyph’o placeholder’is yra
%oraxen_gui_shop%. Poslinkiams yra du placeholder’iai:%oraxen_shift_<pixels>%perkelia į dešinę,%oraxen_neg_shift_<pixels>%į kairę. Kiekvienas palaiko iki 2047 pikselių. - Yra ir
charraktas, kuriuo simbolį gali pasirinkti pats, bet jis neprivalomas.
4 žingsnis: užregistruok meniu ir perkrauk
gui_menus:
shop:
file: shop.yml- Perkurk paketą:
/nexo reload(arba/nexo reload pack) Nexo atveju,/oraxen reload allOraxen atveju. - Paleisk
/dm reloadir išbandyk su/dm open shop. - Vieną kartą perkrauk serverį. DeluxeMenus
/shopišregister_command: trueužregistruoja tik startuodamas. - Prisijunk iš naujo, kad gautum naują resursų paketą.
Dažnos klaidos ir jų taisymas
| Ką matai | Priežastis ir sprendimas |
|---|---|
%nexo_gui_shop% arba %oraxen_gui_shop% kaip tekstas | Trūksta PlaceholderAPI arba glyph ID placeholder’yje nesutampa su raktu glyph faile. |
| Tuščias langelis arba neteisingas simbolis | Paketas nebuvo perkurtas arba žaidėjas turi seną paketą. Perkrauk pluginą ir prisijunk iš naujo. |
| Oraxen glyph’o trūksta tik meniu pavadinimuose | Serveris senesnis nei Paper 1.21.2 ir PacketEvents neįdiegtas. |
| Paveikslėlis pasislinkęs | Shift arba ascent neatitinka PNG. Eksportuok iš naujo iš to paties dizaino. |
| Paveikslėlis tamsesnis nei PNG | Prieš pirmą placeholder’į trūksta &f. |
| Glyph’as atmetamas įkeliant | ascent didesnis už height arba PNG didesnis nei 256×256. |
/shop nieko nedaro | Meniu nėra config.yml arba jį pridėjus serveris nebuvo perkrautas. |