IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

1. diel - Úvod do jazyka Skript a prvý kód

Skript je plugin, ktorý umožňuje tvoriť jednoduché prídavné pluginy k vášmu Minecraft serveru bez znalosti Javy. Tvorba prebieha pomocou série rôznych príkazov písaných do plaintext súboru (je to teda vlastný skriptovací jazyk). Príkazy sú zadávané v angličtine a sú jednoduché. Dajú sa teda tvoriť rôzne pluginy (alebo skôr skripty, pretože pre ich spustenie potrebujete plugin Skript) pre váš Minecraft server.

Ak chcete zistiť čo všetko sa dá pomocou Skriptu vytvoriť, stačí sa pozrieť na rôzne Skript fóra, dokumentáciu (odporúčam SkUnity) alebo napríklad len do kategórie "Skript" na spigot, ktorá značí ako veľmi je Skript vlastne rozšírený.

Výhody Skriptu

  • Jednoduchosť celého procesu písania skriptu (netreba znalosť Javy ani žiadneho iného jazyka)
  • Rozšírená komunita (takmer vždy nájdete odpoveď, a keď nie, niekto vám rád na fórach pomôže)
  • Plno skriptov, ktoré si môžete stiahnuť a učiť sa z nich rôzne nové funkcie
  • Mnoho dokumentáciou (či už staršie dokumentácie od pôvodného vývojárov, alebo novší od aktuálneho vývojárov, alebo komunitné SkUnity, na ktoré okrem originálnych kódov máte aj kódy, ktoré môžete využiť s Skript Addony)
  • Veľké množstvo addon, ktoré môžu pridať viac možností do vášho kódu, napr. Zapisovanie a čítanie YML súborov, čítanie dát z GitHub (napríklad pri čítaní aktuálnej verzie), tvorba vlastných GUI atď.
  • Na písanie skriptu nie je potrebný žiadny profesionálny editor či program, bohato stačí aj Poznámkový blok

Aby to bolo fér, pozrime sa aj na nevýhody.

Nevýhody Skriptu

  • Citlivosť formátovanie - Každú časť kódu musíte starostlivo odtabovat, inak bude Skript hlásiť problémy
  • Súbory sú ukladané v plaintextu, teda môže úplne ktokoľvek editovať váš kód a vydávať ju za svoj
  • Aj na pomerne dosť základných vecí (teda, skôr záleží na tom, čo tvoríte) potrebujete nejaké addony

Jednoducho by som to zhrnul tak, že ak nemáte záujem tvoriť v Jave, alebo skrátka tomu nerozumiete a chcete iba tvoriť pluginy, tak je Skript pre vás, ale treba si uvedomiť aj už spomínané nevýhody.

Práve si vyťažil kameň!

Začneme jednoduchým skriptom, ktorý nám pošle správu do chatu keď vyťažíme kameň. Kód bude vyzerať nejako takto:

on mine of stone: # Event (při vytěžení kamene)
  send "Prave jsi vytezil kamen!" to player # Odešle zprávu hráčovi

Uložíme ako <název>.sk a vložíme do zložky plugins / Skript / scripts

Hláška o vyťaženie kameňa v Minecraftu v jazyku Skript - Skript - Minecraft modding bez Javy

Dobrá, teraz nám to pri vyťažení kameňa zašle správu do chatu. Treba podotknúť, že správy možno samozrejme aj farebne upravovať pomocou farebných kódov (&<kód>, napr. &2). Ale povedzme, že chceme zasielať farebne formátovanú správu pri vyťažení rôznych ore. V tom prípade bude kód vyzerať napríklad takto:

on mine of iron ore:
  send "&7Prave jsi vytezil &f&lIron Ore&7!" to player
on mine of gold ore:
  send "&7Prave jsi vytezil &e&lGold Ore&7!" to player
on mine of diamond ore:
  send "&7Prave jsi vytezil &b&lDiamond Ore&7!" to player
on mine of emerald ore:
  send "&7Prave jsi vytezil &a&lEmerald Ore&7!" to player
on mine of lapis ore:
  send "&7Prave jsi vytezil &1&lLapis Ore&7!" to player
on mine of redstone ore:
  send "&7Prave jsi vytezil &4&lRedstone Ore&7!" to player

A výsledok zase nejako takto:

farebné hlášky v Minecraftu - Skript - Minecraft modding bez Javy

Samozrejme namiesto "gold ore" ai. Môžeme do kódu vložiť potrebné "wood planks" alebo iný názov bločkov.

Prvý príkaz

Predpokladám, že budete vo svojich skriptoch zo všetkého najčastejšie využívať príkazy - vyzerajú nejako v tomto štýle:

/prikaz <argument1>

A rovnako sa aj zadávajú priamo do chatu pre ich spustenie. Základ je príkaz a potom ho môžu rozširovať argumenty. Príkazy vo Skriptu tvoríme takto:

command /prikaz:
  trigger:
    send "text" to player

Dobrá, takže si môžeme vymyslieť príkaz, napríklad /test, keď je spustený, odošle sa hráči do chatu správu "Funguje to!":

command /test:
  trigger:
    send "&cFunguje to!"

Výsledok (ak všetko funguje) by mal vyzerať takto:

Výsledok testu príkazu v jazyku Skript - Skript - Minecraft modding bez Javy

To bude pre prvú lekciu Skriptu všetko, kód ukázaný v tutoriálu si môžete stiahnuť tu: https://pastebin.com/pC9kEW5p

Skript stiahnete z oficiálneho GitHub vývojárov: https://github.com/...ipt/releases

Premenné

Najprv je ale treba si položiť otázku - čo to vlastne je premenná?

** Premenná ** je niečo, čo uchováva určitú informáciu (hodnotu). Premenná teda môže napr. Uchovávať informáciu o hráčovi a ďalšie. Vo Skriptu sú premenné hojne využívané, práve vďaka tomu, že sa do nich dajú ukladať informácie.

Skript umožňuje použitie troch typov premenných:

  • "Normálna" premenné - alebo skrátka premenné - sú unikátne a ich dáta sú uchovávané aj po reštarte servera (alebo Skriptu)
  • Lokálne premenné - alebo tiež dočasné premenné - sú lokálne len pre jedného hráča, tieto premenné sa automaticky po reštarte odstráni
  • Options - Nemožno ich zmeniť z hry, sú nastavené priamo na začiatku skriptu

Medzi normálne premenné môžete zaradiť aj listy alebo slovensky zoznamy - to znamená, že v jednej premennej je niekoľko samostatných hodnôt (môže byť použité napríklad pre denník Warp atď.)

Samotný Skript však obsahuje už vopred hotové a použiteľné premenné, ako napríklad:

player # Označení hráče
now # Aktuální datum, čas...
message # Zpráva do chatu (využijeme například při eventu On Chat)
block # Právě vytěžený block (využijeme například při eventu On Destroy)

Ich použitie môžeme využiť napríklad v jednoduchom logovanie zničených a položených bločky.

Využijeme eventu "on destroy" a "on place" a taky funkcie "log", ktorú môžeme využiť takto:

log "<text>" to file "<název souboru>"

Všetky súbory tvorené pomocou funkcie "log" sa ukladajú do zložky "plugins / Skript / logs". Teraz teda využijeme dvoch eventov a funkcie log k vytvoreniu tohto kódu:

on break: # Event - při zničení
  log "DESTROY | %player% znicil block %block%" to file "logovani.log" # Logujeme text do souboru "logovani.log" za použití proměnných block a player

on place: # Event - při položení
  log "PLACE | %player% polozil block %block%" to file "logovani.log"

Na tomto príklade si môžeme všimnúť toho, že premenné zapisujeme s percentami na začiatku a konci. Toto slúži na identifikáciu toho, že sa jedná o premennú.

Výsledok v súbore "logovani.log" vyzerá nejako takto:

výsledok logovanie - Skript - Minecraft modding bez Javy

pozn. súbory je nutné otvárať v notepad ++ alebo PSPadu, pri otvorení v default windows editore (poznámkový blok) sa text hodí do jedného riadku a je to neprehľadné, pozri tu.

Ďalej máme nami definované premenné. Ich využitie si môžeme ukázať na jednoduchom / home systému:

command /sethome: # Příkaz definován
  trigger:
    set {domov.%player%} to location of player # Nastavíme proměnnou {domov.%player%} (závorky tam musí být) na aktuální lokaci hráče
    send "&aDomov nastaven!" to player # Odešleme hráči zprávu o nastavení domova

command /home:
  trigger:
    teleport player to {domov.%player%} # Teleportujeme hráče na souřadnice nastavené v jeho proměnné
    send "&aByl jsi teleportovan do sveho domova!" to player

Výsledok vyzerá nejako takto (či ste všetko urobili správne):

Výsledok / home - Skript - Minecraft modding bez Javy

Pri použítí / sethome sa vám nastaví home a pomocou / home sa na neho teleportuje.

Dobrá, ale teraz si ukážeme aplikovanie premenných priamo v texte odosielaného hráčovi. Použijeme tento kód:

command /mycoord:
  trigger:
    set {_playerloc} to player's location # Nastavíme proměnnou {_playerloc} na aktuální lokaci hráče
    send "&cTve souradnice jsou:&a %{_playerloc}%" to player # Zašleme zprávu s proměnnou - musíme ji napsat s procenty

(Áno, do chatu možno napísať aj jednoducho% player 's location%, ale chcel som ukázať ako použiť nadefinovanú premennú)

výsledok:

Aplikovanie premenných priamo v texte odosielanej hráčovej - Skript - Minecraft modding bez Javy

Dobrá, to by sme mali prebranej obyčajné premenné. Teraz si trošku rozoberieme a ukážeme options. options


Options nastavujeme tak, že na začiatku skriptu vložíme tento kód (samozrejme prispôsobené):
options:
  verze: 1.0
  prefix: &ePlugin

Týmto sme si nastavili option verzie a option prefix - tie môžeme následne ďalej využiť v skripte ako nemenné premenné.

Skúsime teda využiť option prefix v príkaze / mycoord:

command /mycoord:
  trigger:
    set {_playerloc} to player's location # Nastavíme proměnnou {_playerloc} na aktuální lokaci hráče
    send "&c[{@prefix}&c] &cTve souradnice jsou:&a %{_playerloc}%" to player # {@prefix} značí option "prefix", options píšeme bez procent a se zavináčem na začátku názvu

Výsledok po použití Option vyzerá nejako takto:

Použitie option v jazyku Skript - Skript - Minecraft modding bez Javy

Samozrejme to môže vyzerať mnohokrát inak, podľa toho, ako si nastavíte option prefix :)

Využitie oboch definovaných Option naraz možno urobiť napríklad pri príkaze / about:

command /about:
  trigger:
    send "&c[{@prefix}&c] &cPlugin v{@verze}" to player
Využitie viac options naraz v jazyku Skript - Skript - Minecraft modding bez Javy

To bude pre prvú lekciu Skriptu všetko, posledný kód ukázaný v tutoriálu si môžete stiahnuť tu: https://pastebin.com/yjN5qMSL


 

Všetky články v sekcii
Skript - Minecraft modding bez Javy
Preskočiť článok
(neodporúčame)
Skript - podmienky a argumenty
Článok pre vás napísal 205nd
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Autor se věnuje primárně Skriptu, z menší části umí i HTML a naprosté základy PHP.
Aktivity