Lekce 5 - Skript - SkAddony - SkRayfall
V předchozí lekci, Skript - SkAddony - SkQuery, jsme si ukázali nejstarší SkAddon - SkQuery.

SkRayFall je SkAddon, který přidává primárně grafické vylepšení hry, jako například podporu zobrázování titlů, actionbarů, generování bossbarů, scoreboardů, particlů, tvorba hologramů a plno dalšího. Dnes si ukážeme ty, které pravděpodobně budete používat nejčastěji.
Titly
Hned ze začátku se naučíme velmi užitečnou věc - zobrazování titlů. Title je v Minecraftu text, který vám překryje obrazovku pro sdělení nějaké zprávy (zpravidla je u něj i subtitle). Dá se tedy využít pro sdělení nějaké informace hráčům na serveru, či pro propagaci nějaké služby na serveru... využití je spousta.

Základní kód pro odeslání titlu vypadá takto:
send player title "<zpráva do titlu>" with subtitle "<zpráva do subtitlu>" for 10 seconds #zobrazit na 10 sekund hráči, který ten příkaz odeslal
My si nyní naprogramujeme jednoduchý skript pro odeslání title všem hráčům s vlastní zprávou:
command /zaslattitle [<text>]: trigger: if arg-1 is not set: #V případě, že argument za příkazem není nastaven (aby nám to nedělalo nepořádek) send "&cNastav zprávu!" else: set {_alert.zprava} to colored arg-1 #Pro nastavení barevnosti hodnoty v argumentu send player title "%{_alert.zprava}%" with subtitle "&aTitle vytvořený podle tutoriálu itnetwork.cz" for 10 seconds #Pošleme title s argumentem a subtitlem
Výsledek by měl vypadat takto:

Hologramy
Pomocí SkRayFall lze taky vytvořit hologramy - zprávy, které se zobrazí pomocí pojmenovaných armorstandů ve vzduchu. Na tuto funkci budeme potřebovat plugin Holographic Displays
Kód pro vytvoření hologramu:
create hologram <text hologramu> at <lokace> for <čas>
Tudíž si nyní vytvoříme takový skript, který nám vypíše předem vyplněnou hodnotu do hologramu:
command /hdcreate [<text>]: trigger: if arg-1 is not set: #V případě že argument za příkazem není nastaven send "&cNastav text hologramu!" else: set {_hologram.text} to colored arg-1 #Pro nastavení barevnosti hodnoty v argumentu create hologram "%{_hologram.text}%" at location of player for 10 seconds #Vytvoříme hologram s textem v příkazu, na místě kde se hráč nachází a na 10 sekund
Formátování hologramů ve Skriptu
Hologramy, vytvořené pomocí SkRayFall, se dají různě formátovat, a to přidáním řádků, vložení létajících itemů do hologramu atd.
Barevnost
Klasické barevné kódy, které vytvoříme pomocí znaku &<číslo 0-9 nebo písmeno a-f>, tabulku barev naleznete zde
Odřádkování
Řádky v hologramu odřádkujeme středníkem (;), příklad:
create hologram "&ePrvní řádek!;&cDruhý řádek;&b;&ačtvrtý řádek, ten předemnou byl prázdný" at location of player for 10 seconds
Vložení itemu do hologramu
Item do hologramu vložíme tímto kódem:
create hologram "ItemStack:Wool;&cNademnou levituje vlna!;&c;&b&litnetwork.cz" at location of player for 10 seconds

Particly (částicové efekty)
Na začátku článku jsem zmínil, že s pomocí SkRayFall lze tvořit i tzv. particly. Co jsou zač? Particly jsou 2D částicové efekty, které se zobrazí na určitém místě (např. po výbuchu, při chození či při dešti). Pomocí SkRayFall je ovšem lze vyvolat i záměrně, a to pouze kouskem kódu!
Když používáme SkRayFall, máme dostupné jen některé particly. Jejich celý list můžete naleznout zde. Pokud netušíte jak některé z nich vypadají, kompletní seznam všech particlů a jejich vzhledů naleznete na Minecraft Wiki.
Využití je rozmanité, ať už pro upoutání pozornosti, "vyjádření"
emoce hráče či prostě jen pro ozdobu. Pokud se budete velmi nudit, můžete
z nich zkusit vytvořit třeba i nápisy či jiné, složitější obrazce
show [počet] <ID> particles at <lokace> for <hráč> [offset by (rozmístění ve směrech x, y a z)]
Počet značí kolik particlů (vyjádřených proměnnou ID) se má na místě (vyjádřeném proměnnou lokace) zobrazit pro hráče (vyjádřeného proměnnou hráč), popřípadě v jakých směrech okolo lokace (vyjádřeno proměnnou rozmístění).
Zkusme si tedy nyní vytvořit maličký skript na vylekání libovolného hráče, který po použití zobrazí particle "SMOKE" jeden blok od aktuální pozice hráče (do každého směru)
command /baf [<offline player>]: trigger: if arg-1 is not set: #V případě že argument za příkazem není nastaven send "&cSpecifikuj hráče!" else: if arg-1 is online: #Kontrola jestli hráč, zadaný v argumentu za příkazem, je online show 420 "SMOKE_LARGE" particles at location of arg-1 for arg-1 offset by 1, 1, 1 #Zobrazí 120 kouřových particlů v lokaci hráče zvoleného v argumentu vždy 1 blok od hráče do všech směrů. Nezapomínejte uvést ID particlu do uvozovek! send "&0&lBAF!!!" to arg-1 send "&aVykonáno!" else: send "&cTento hráč není online!"
Výsledek by měl po použití příkazu vypadat nějak takto:

Tablist
Pomalu se blížíme ke konci dnešního tutoriálu a jako poslední se budeme bavit o tablistech. Co je to tablist?
Seznam hráčů
Tablist je to, co se vám většinou zobrazí po stisknutí klávesy Tab. Můžete zde vidět všechny online hráče na serveru. Možná už jste si někdy všimli, že tam občas bývá i něco navíc, a přesně to se nyní naučíme.
Header (hlavička) a footer (patička) tablistu se zobrazují na těchto místech:

Tudíž řekněme, že budeme chtít hráče v hlavičce pozdravit a v patičce ukázat aktuální počet hráčů na serveru. Pro tento případ si vytvoříme malý skript, který každou sekundu zacyklí všechny online hráče a nastaví jim hlavičku a patičku tablistu:
every 20 ticks: #Každou sekundu loop all players: #Zacyklíme všechny hráče na serveru set tab header to "&aAhoj %loop-player%&a!" and footer to "&6 Online hráči: &c%amount of players%" for loop-player #Nastavíme obsah tablistu pro zacyklené hráče
Výsledek:

Upozornění
Toto pravděpodobně nebude fungovat jestliže máte nainstalovaný plugin TitleManager, nebo jiný plugin, který umí upravovat tablisty, a v něm zapnutou funkci pro vlastní tablisty!
Se SkRayFall se dá ovšem dělat i spousta dalších věcí a jejich popis a ukázání by vystačilo ještě na hodně dlouho.
Kompletní dokumentaci ke SkRayFall můžete nalézt zde. Kódy z dnešní lekce naleznete po kliknutí sem, SkRayFall zase stáhnete zde.