Skript: Różnice pomiędzy wersjami

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania
(zmiana "permisję" na "uprawnienia")
(Liczne zmiany merytoryczne, redakcyjne, techniczne. Poprawy wielu definicji.)
Linia 1: Linia 1:
'''Skript''' jest pluginem dla silników opartych o Bukkit API. Ta wtyczka pozwala graczom na tworzenie różnorodnych rzeczy i zdarzeń, od kilkuset zdarzeń po wiele typów i wyrażeń. Plugin został napisany specjalnie dla graczy, którzy chcą dodawać coś autorskiego nie umiejąc Javy. Język Skripta opiera się na podstawowym języku angielskim i jest prosty w użyciu.
+
'''Skript''' to plugin przeznaczony dla silników serwerowych opartych na bibliotece Bukkit. Wtyczka ta umożliwia tworzenie oraz uruchamianie różnorodnych instrukcji i czynności na odpowiednie zdarzenia, od kilkuset zdarzeń po wiele typów i wyrażeń. Plugin został napisany specjalnie dla użytkowników, którzy chcą dodawać coś autorskiego nie umiejąc Javy. Język Skript opiera się na podstawowym języku angielskim i jest prosty w użyciu.
  
 
==Dodatki==
 
==Dodatki==
Dla Skripta można tworzyć '''dodatki'''. Istnieje wiele dodatków, które dodają bardzo dużo nowych wyrażeń, efektów, zdarzeń lub typów. Autorzy bardzo chętnie je tworzą i publikują.
+
Skript pozwala na tworzenie '''dodatków'''. Istnieje wiele wtyczek, które dodają bardzo dużo nowych wyrażeń, efektów, zdarzeń lub typów. Autorzy bardzo chętnie je tworzą i publikują. Oficjalną kategorię z dodatkami możesz znaleźć [[:Kategoria:Dodatki|tutaj]].
 
 
{{Main|Kategoria:Dodatki}}
 
  
 
==Skrypty==
 
==Skrypty==
Aby stworzyć swój pierwszy skrypt, otwórz klienta FTP i zainstaluj wtyczkę [https://github.com/SkriptLang Skript] (najnowsze wersje). Po wgraniu wtyczki należy zrestartować serwer, i sprawdzić czy plugin jest kompatybilny z serwerem. Kiedy wszystko działa, to:
+
Aby stworzyć swój pierwszy skrypt, otwórz klienta FTP i zainstaluj wtyczkę [https://github.com/SkriptLang/Skript/releases Skript] (najnowsza wersja). Po wgraniu wtyczki należy zrestartować serwer, i sprawdzić czy plugin jest kompatybilny z wersją silnika serwera. Oprócz samego uruchamiania skryptów, Skript umożliwia nam manipulację między nimi oraz między samym pluginem poprzez komendy. Możemy uruchomić takie instrukcje jak:
  
*'''/skript help''' - informacje o wtyczce i jej komendy.
+
*'''/skript help''' - wyświetla informacje o wtyczce i jej komendy.
 
*'''/skript disable [all/nazwa]''' - pozwala na wyłączenie skryptu (wszystkich lub konkretnego).
 
*'''/skript disable [all/nazwa]''' - pozwala na wyłączenie skryptu (wszystkich lub konkretnego).
 
*'''/skript enable [all/nazwa]''' - pozwala na włączenie skryptu (wszystkich lub konkretnego).
 
*'''/skript enable [all/nazwa]''' - pozwala na włączenie skryptu (wszystkich lub konkretnego).
 
*'''/skript update''' - sprawdza wersję Skripta.
 
*'''/skript update''' - sprawdza wersję Skripta.
*'''/skript reload [all/nazwa]''' - jest to najważniejsza z komend, która odświeża skrypt (lub wszystkie skrypty), więc można je tworzyć podczas gry na bieżąco i co chwilę sprawdzać ich działanie.
+
*'''/skript reload [all/nazwa]''' - pozwala ponownie wczytać skrypt (lub wszystkie skrypty), więc można je tworzyć podczas gry na bieżąco i co chwilę sprawdzać ich działanie.
  
 
Aby napisać swój pierwszy skrypt powinieneś otworzyć dowolny edytor tekstu ''(np. Windowsowy notatnik)'' lub ''Notepad++''.
 
Aby napisać swój pierwszy skrypt powinieneś otworzyć dowolny edytor tekstu ''(np. Windowsowy notatnik)'' lub ''Notepad++''.
  
 
==Pisanie skryptu==
 
==Pisanie skryptu==
Przed napisaniem skryptu zapoznaj się z:
+
Przed napisaniem skryptu zapoznaj się z tematami, takimi jak:
  
 
*[[Zdarzenia]]
 
*[[Zdarzenia]]
Linia 29: Linia 27:
 
Te artykuły dokładnie opisują podstawowe elementy tego języka.
 
Te artykuły dokładnie opisują podstawowe elementy tego języka.
 
Pierwszym skryptem może być np. komenda.
 
Pierwszym skryptem może być np. komenda.
<pre>command /hello:
+
 
 +
=== Komendy ===
 +
Komendy to instrukcje wykonywane przez dowolnego adresata wypisującego w polu chatu określony łańcuch znaków poprzedzony znakiem "/" (w Minecrafcie).<pre>command /hello:
 
     permission: sk.hello
 
     permission: sk.hello
 
     permission message: Nie masz uprawnień!
 
     permission message: Nie masz uprawnień!
Linia 38: Linia 38:
  
 
*'''command /hello''' opisuje budowę komendy. Po wpisaniu komendy "hello" ma się wykonać poniższy kod.
 
*'''command /hello''' opisuje budowę komendy. Po wpisaniu komendy "hello" ma się wykonać poniższy kod.
*'''permission: sk.hello"''' jest opcjonalne, ale Skript sprawdza, czy gracz posiada uprawnienia
+
*'''permission: sk.hello"''' jest opcjonalne, ale Skript sprawdza, czy gracz posiada uprawnienia.
*'''permission message: Nie masz uprawnień!''' opisuje wiadomość, która się pojawi graczowi na czacie, jeżeli <u>nie posiada on</u> uprawnienia.
+
*'''permission message: Nie masz uprawnień!''' opisuje wiadomość, która się pojawi graczowi na czacie, jeżeli <u>nie posiada on</u> określonych uprawnień.
 
*'''aliases: /hi''' - w tym przypadku można dodatkowo wpisać ''/hi'' i się wykona komenda ''/hello''.
 
*'''aliases: /hi''' - w tym przypadku można dodatkowo wpisać ''/hi'' i się wykona komenda ''/hello''.
*'''trigger:''' tutaj jest potrzebne, jak do każdej innej komendy. Trigger opisuje, co ma zrobić gra po wpisaniu komendy.
+
*'''trigger:''' ten operator jest wymagany przy pisaniu każdej komendy. Trigger opisuje, co ma zrobić gra po wpisaniu komendy.
*'''send "Hello world!" to player''' - send: wysyła, "Hello world!" jest stringiem, tekstem, w cudzysłowiu, można wstawić tu dowolną wartość, natomiast ''to player'' oznacza, że wiadomość ma być wysłana do nas. Jak później bardziej poznacie wtyczkę to się okaże, że można wstawiać w miejsce ''player'' różne [[typy]].
+
*'''send "Hello world!" to player''' - ''send'' jest operacją, która określa instrukcję wysyłania wiadomości. "Hello world!" jest przykładowym łańcuchem znaków - w tym miejscu powinniśmy napisać wiadomość, którą chcemy wysłać dla danego odbiorcy. ''to player'' natomiast oznacza, że wiadomość ma być wysłana do nas. W późniejszym czasie, po większym rozeznaniu się z wtyczką poznacie więcej [[typy|typów]] odbiorców wiadomości.
  
To była komenda. Podsumowując:
+
Podsumowując:
 
<pre><komenda/periodical/zdarzenie>:
 
<pre><komenda/periodical/zdarzenie>:
 
     <effect>:
 
     <effect>:
 
         <kod></pre>
 
         <kod></pre>
  
(Periodical jest jedną z [[pętle|pętel]].)
+
''(Periodical jest jedną z [[pętle|pętli]].)''
  
Coś teraz o zdarzeniach.
+
=== Zdarzenia ===
Krótko mówiąc, zdarzenia wywołują kod, jak gracz zacznie coś robić na serwerze, np. jeść lub zadać obrażenia, albo zginąć lub rzucić śnieżką. W Skripcie jest od groma tych zdarzeń ([[Zdarzenia]]) plus więcej w dodatkach.
+
Zdarzenia to kod wywoływany podczas wykonanej czynności. Czynnością takową może być na przykład rozpoczęcie jedzenia bądź zadanie obrażenia. W Skripcie wyróżniamy bardzo wiele zdarzeń (Wszystkie można znaleźć [[Zdarzenia|tutaj]]).
  
 
<pre>on mine of stone:
 
<pre>on mine of stone:
Linia 59: Linia 59:
 
             drop 1 nether star of unbreaking 10 named "&cGwiazda Piekła" at event-block</pre>
 
             drop 1 nether star of unbreaking 10 named "&cGwiazda Piekła" at event-block</pre>
  
*'''on mine of stone''' - kiedy gracz wykopie <u>kamień</u>
+
*'''on mine of stone''' uruchamia instrukcje wskazane poniżej podczas, gdy gracz zacznie kopać kamień.
*'''if player's tool is diamond pickaxe''' - sprawdza, czy narzędziem w ręce gracza jest diamentowy kilof
+
*'''if player's tool is diamond pickaxe''' sprawdza, czy narzędziem w ręce gracza jest diamentowy kilof.
*'''of unbreaking 10''' - tutaj sprawdza, czy ten kilof ma Niezniszczalność X (w miejscu ''unbreaking 10'' można wpisać wszystkie [[typy]] zaklęć)
+
*'''of unbreaking 10''' sprawdza, czy ten kilof ma Niezniszczalność X (w miejscu ''unbreaking 10'' można wpisać wszystkie [[typy]] zaklęć).
*'''named "Kilof Mocy" with lore "Linia 1","Linia 2","Linia 3":''' czy kilof jest nazwany ''Kilof Mocy'' i czy ma on opis (lore). Tutaj można dodać wiele linijek, wystarczy że po pierwszej "linii" opisu napiszemy przecinek i rozpoczynamy cudzysłowiem drugą linijkę.
+
*'''named "Kilof Mocy" with lore "Linia 1","Linia 2","Linia 3"''' sprawdza, czy kilof jest nazwany ''Kilof Mocy'' i czy ma on opis (lore). Tutaj można dodać wiele linijek, wystarczy że po pierwszej "linii" opisu dopiszemy przecinek. Cudzysłowiem rozpoczynamy drugą linię.
*'''chance of 15%:''' {{Main|Losowość}}
+
*'''chance of 15%''' {{Main|Losowość}}
*'''drop 1 nether star''' - wyrzuć 1 gwiazdę netheru
+
*'''drop 1 nether star''' nakazuje wyrzucić jedną gwiazdę netheru (ang. ''nether star'').
 
*'''event-block''' - miejsce zdarzenia (miejsce wykopanego kamienia). W zdarzeniach można używać terminów event-() aby określić miejsce zdarzenia. np. <code>on death of cow: drop 1 of milk bucket at event-entity</code>
 
*'''event-block''' - miejsce zdarzenia (miejsce wykopanego kamienia). W zdarzeniach można używać terminów event-() aby określić miejsce zdarzenia. np. <code>on death of cow: drop 1 of milk bucket at event-entity</code>
 
Pętle? {{Main|Pętle}}
 
  
 
==Wgrywanie skryptu==
 
==Wgrywanie skryptu==
Napisany skrypt należy zapisać w rozszerzeniu .sk i wgrać do folderu <code>Skript/scripts</code>. Przykładowe skrypty można usunąć, ale warto się również z nich nauczyć pewnych [[efekt]]ów lub wyrażeń.
+
Napisany skrypt należy zapisać w rozszerzeniu .sk i wgrać do folderu <code>Skript/scripts</code>, który znajduje się w katalogu <code>plugins</code> katalogu naszego serwera. Przykładowe skrypty można usunąć, ale warto się również z nich nauczyć pewnych [[efekt]]ów lub wyrażeń.
  
 
Wchodząc do gry wpisujemy komendę /sk reload <nazwa skryptu> (bez .sk, ponieważ wtedy Skript nam nie znajdzie pliku.)
 
Wchodząc do gry wpisujemy komendę /sk reload <nazwa skryptu> (bez .sk, ponieważ wtedy Skript nam nie znajdzie pliku.)
Wszystko jest okej, ale co, jeżeli będą błędy?
 
 
==Jak rozumieć błędy==
 
  
*Źródłem jest [https://skript.pl/temat/2594-jak-rozumieć-błędy/ klik!] autorstwa ''PoweredDragon''<br><br>
+
==[https://skript.pl/temat/2594-jak-rozumieć-błędy/ Jak rozumieć błędy?]==
  
Warto zlokalizować błąd. Skript zawsze podaje, w jakiej linii kodu wystąpił błąd, więc należy się tam udać i wyszukać się źle napisanego fragmentu.
+
Aby pierw zrozumieć błędy, należy ze zrozumieniem przeczytać wyswietlony przez plugin Skript błąd. Plugin zawsze podaje, w jakiej linii kodu wystąpił błąd, więc należy się tam udać i wyszukać źle napisany fragment skryptu.
Dodatkowo trzeba się upewnić, czy poprawnie się zapisało efekt/wyrażenie/zdarzenie.
+
Dodatkowo trzeba się upewnić, czy poprawnie efekt/wyrażenie/zdarzenie zostało zapisane. Poniższy przykład ilustruje mnogość zapisanych warunków, które odegrają taką samą instrukcję.
  
 
<pre>on step over dirt:
 
<pre>on step over dirt:
Linia 98: Linia 93:
 
walking over dirt:
 
walking over dirt:
 
walking on dirt:</pre>
 
walking on dirt:</pre>
Te wszystkie sposoby działają tak samo! :O<br><br>
+
Najczęstszym błędem jest <code>can't understand this condition/effect</code>. Wynika to z tego faktu, że jak sam Skript nam mówi, <u>nie może</u> zrozumieć efektu/warunku w danej linii. Przed wyszukaniem fragmentu kodu z błędem warto pierw sprawdzić, czy w katalogu <code>plugins</code> posiadamy odpowiedni dodatek, do którego próbujemy się odwołać. Jeżeli posiadamy odpowiedni addon w naszym katalogu - należy sprawdzić, czy jest on kompatybilny z wersją serwera. Jeżeli mimo wszystko uważamy, że dodatek posiada wersję wspierającą naszą edycję silnika, należy upewnić się, czy nasz serwer odpowiednio wczytał addon komendą <code>/plugins</code> na serwerze.
Najczęstszym błędem jest <code>can't understand this condition/effect</code>. Wynika to z tego faktu, że jak sam Skript nam mówi, <u>nie może on</u> zrozumieć efektu/warunku w danej linii. Dlatego trzeba zobaczyć, czy się nie posiada danego dodatku i sprawdzić, czy dodatek jest kompatybilny, to znaczy jest zaznaczony na zielono. Zaznaczony na czerwono oznacza, że nie działa.
 
  
 
<center>'''Najczęstsze błędy'''</center>
 
<center>'''Najczęstsze błędy'''</center>
Linia 107: Linia 101:
 
|-
 
|-
 
|can't understand this condition/effect
 
|can't understand this condition/effect
|Skript nie może zrozumieć warunku/efektu. Warto zobaczyć, czy się posiada dodatek lub czy się dobrze zapisało.
+
|Skript nie może zrozumieć warunku/efektu. Warto zobaczyć, czy posiadamy dodatek bądź czy fragment kodu jest poprawny.
 
|-
 
|-
 
|indentation error
 
|indentation error
|Błąd z wcięciami w kodzie. Wcięcia (taby) są bardzo ważne i zawsze wystąpi jedno wcięcie do przodu po dwukropku.
+
|Błąd z wcięciami w kodzie. Wcięcia są bardzo ważne w pluginie Skript - podczas wczytywania kodu Skript sprawdza każde wcięcie.
 
|-
 
|-
 
|invalid use of quotes
 
|invalid use of quotes
|Złe użycie cudzysłowia. W [[tekst]]ach ważne jest prawidłowe ich użycie. Aby Skript wziął cudzysłów za tekst należy go wpisać dwukrotnie <code>"" < to jest tekst!</code>
+
|Złe użycie cudzysłowia. W [[tekst]]ach ważne jest prawidłowe ich użycie. Aby Skript wziął cudzysłów za tekst należy go wpisać dwukrotnie - <code>"" #To jest tekst!</code>
 
|-
 
|-
 
|the percent sign is used for expressions (e.g. %player%). To insert a '%' type it twice: %%
 
|the percent sign is used for expressions (e.g. %player%). To insert a '%' type it twice: %%
Linia 122: Linia 116:
 
|}
 
|}
  
Jeżeli naprawdę Skript cię wycieńcza z błędami koniecznie odwiedź forum: [https://skript.pl/ klik!].
+
Jeżeli naprawdę Skript cię wycieńcza z błędami - koniecznie odwiedź [https://skript.pl/ forum].
  
 
[[Kategoria:Skript]]
 
[[Kategoria:Skript]]

Wersja z 21:16, 20 lis 2019

Skript to plugin przeznaczony dla silników serwerowych opartych na bibliotece Bukkit. Wtyczka ta umożliwia tworzenie oraz uruchamianie różnorodnych instrukcji i czynności na odpowiednie zdarzenia, od kilkuset zdarzeń po wiele typów i wyrażeń. Plugin został napisany specjalnie dla użytkowników, którzy chcą dodawać coś autorskiego nie umiejąc Javy. Język Skript opiera się na podstawowym języku angielskim i jest prosty w użyciu.

Dodatki

Skript pozwala na tworzenie dodatków. Istnieje wiele wtyczek, które dodają bardzo dużo nowych wyrażeń, efektów, zdarzeń lub typów. Autorzy bardzo chętnie je tworzą i publikują. Oficjalną kategorię z dodatkami możesz znaleźć tutaj.

Skrypty

Aby stworzyć swój pierwszy skrypt, otwórz klienta FTP i zainstaluj wtyczkę Skript (najnowsza wersja). Po wgraniu wtyczki należy zrestartować serwer, i sprawdzić czy plugin jest kompatybilny z wersją silnika serwera. Oprócz samego uruchamiania skryptów, Skript umożliwia nam manipulację między nimi oraz między samym pluginem poprzez komendy. Możemy uruchomić takie instrukcje jak:

  • /skript help - wyświetla informacje o wtyczce i jej komendy.
  • /skript disable [all/nazwa] - pozwala na wyłączenie skryptu (wszystkich lub konkretnego).
  • /skript enable [all/nazwa] - pozwala na włączenie skryptu (wszystkich lub konkretnego).
  • /skript update - sprawdza wersję Skripta.
  • /skript reload [all/nazwa] - pozwala ponownie wczytać skrypt (lub wszystkie skrypty), więc można je tworzyć podczas gry na bieżąco i co chwilę sprawdzać ich działanie.

Aby napisać swój pierwszy skrypt powinieneś otworzyć dowolny edytor tekstu (np. Windowsowy notatnik) lub Notepad++.

Pisanie skryptu

Przed napisaniem skryptu zapoznaj się z tematami, takimi jak:

Te artykuły dokładnie opisują podstawowe elementy tego języka. Pierwszym skryptem może być np. komenda.

Komendy

Komendy to instrukcje wykonywane przez dowolnego adresata wypisującego w polu chatu określony łańcuch znaków poprzedzony znakiem "/" (w Minecrafcie).

command /hello:
    permission: sk.hello
    permission message: Nie masz uprawnień!
    aliases: /hi
    trigger:
        send "Hello world!" to player

Po krótce:

  • command /hello opisuje budowę komendy. Po wpisaniu komendy "hello" ma się wykonać poniższy kod.
  • permission: sk.hello" jest opcjonalne, ale Skript sprawdza, czy gracz posiada uprawnienia.
  • permission message: Nie masz uprawnień! opisuje wiadomość, która się pojawi graczowi na czacie, jeżeli nie posiada on określonych uprawnień.
  • aliases: /hi - w tym przypadku można dodatkowo wpisać /hi i się wykona komenda /hello.
  • trigger: ten operator jest wymagany przy pisaniu każdej komendy. Trigger opisuje, co ma zrobić gra po wpisaniu komendy.
  • send "Hello world!" to player - send jest operacją, która określa instrukcję wysyłania wiadomości. "Hello world!" jest przykładowym łańcuchem znaków - w tym miejscu powinniśmy napisać wiadomość, którą chcemy wysłać dla danego odbiorcy. to player natomiast oznacza, że wiadomość ma być wysłana do nas. W późniejszym czasie, po większym rozeznaniu się z wtyczką poznacie więcej typów odbiorców wiadomości.

Podsumowując:

<komenda/periodical/zdarzenie>:
    <effect>:
        <kod>

(Periodical jest jedną z pętli.)

Zdarzenia

Zdarzenia to kod wywoływany podczas wykonanej czynności. Czynnością takową może być na przykład rozpoczęcie jedzenia bądź zadanie obrażenia. W Skripcie wyróżniamy bardzo wiele zdarzeń (Wszystkie można znaleźć tutaj).

on mine of stone:
    if player's tool is diamond pickaxe of unbreaking 10 named "Kilof Mocy" with lore "Linia 1","Linia 2","Linia 3":
        chance of 15%:
            drop 1 nether star of unbreaking 10 named "&cGwiazda Piekła" at event-block
  • on mine of stone uruchamia instrukcje wskazane poniżej podczas, gdy gracz zacznie kopać kamień.
  • if player's tool is diamond pickaxe sprawdza, czy narzędziem w ręce gracza jest diamentowy kilof.
  • of unbreaking 10 sprawdza, czy ten kilof ma Niezniszczalność X (w miejscu unbreaking 10 można wpisać wszystkie typy zaklęć).
  • named "Kilof Mocy" with lore "Linia 1","Linia 2","Linia 3" sprawdza, czy kilof jest nazwany Kilof Mocy i czy ma on opis (lore). Tutaj można dodać wiele linijek, wystarczy że po pierwszej "linii" opisu dopiszemy przecinek. Cudzysłowiem rozpoczynamy drugą linię.
  • chance of 15% Information.png Artykuł główny: Losowość
  • drop 1 nether star nakazuje wyrzucić jedną gwiazdę netheru (ang. nether star).
  • event-block - miejsce zdarzenia (miejsce wykopanego kamienia). W zdarzeniach można używać terminów event-() aby określić miejsce zdarzenia. np. on death of cow: drop 1 of milk bucket at event-entity

Wgrywanie skryptu

Napisany skrypt należy zapisać w rozszerzeniu .sk i wgrać do folderu Skript/scripts, który znajduje się w katalogu plugins katalogu naszego serwera. Przykładowe skrypty można usunąć, ale warto się również z nich nauczyć pewnych efektów lub wyrażeń.

Wchodząc do gry wpisujemy komendę /sk reload <nazwa skryptu> (bez .sk, ponieważ wtedy Skript nam nie znajdzie pliku.)

Jak rozumieć błędy?

Aby pierw zrozumieć błędy, należy ze zrozumieniem przeczytać wyswietlony przez plugin Skript błąd. Plugin zawsze podaje, w jakiej linii kodu wystąpił błąd, więc należy się tam udać i wyszukać źle napisany fragment skryptu. Dodatkowo trzeba się upewnić, czy poprawnie efekt/wyrażenie/zdarzenie zostało zapisane. Poniższy przykład ilustruje mnogość zapisanych warunków, które odegrają taką samą instrukcję.

on step over dirt:
on step on dirt:
on steping on dirt:
on steping over dirt:
step over dirt:
step on dirt:
steping over dirt:
steping on dirt:
on walk over dirt:
on walk on dirt:
on walking on dirt:
on walking over dirt:
walk over dirt:
walk on dirt:
walking over dirt:
walking on dirt:

Najczęstszym błędem jest can't understand this condition/effect. Wynika to z tego faktu, że jak sam Skript nam mówi, nie może zrozumieć efektu/warunku w danej linii. Przed wyszukaniem fragmentu kodu z błędem warto pierw sprawdzić, czy w katalogu plugins posiadamy odpowiedni dodatek, do którego próbujemy się odwołać. Jeżeli posiadamy odpowiedni addon w naszym katalogu - należy sprawdzić, czy jest on kompatybilny z wersją serwera. Jeżeli mimo wszystko uważamy, że dodatek posiada wersję wspierającą naszą edycję silnika, należy upewnić się, czy nasz serwer odpowiednio wczytał addon komendą /plugins na serwerze.

Najczęstsze błędy
Błąd Opis i wyjaśnienie
can't understand this condition/effect Skript nie może zrozumieć warunku/efektu. Warto zobaczyć, czy posiadamy dodatek bądź czy fragment kodu jest poprawny.
indentation error Błąd z wcięciami w kodzie. Wcięcia są bardzo ważne w pluginie Skript - podczas wczytywania kodu Skript sprawdza każde wcięcie.
invalid use of quotes Złe użycie cudzysłowia. W tekstach ważne jest prawidłowe ich użycie. Aby Skript wziął cudzysłów za tekst należy go wpisać dwukrotnie - "" #To jest tekst!
the percent sign is used for expressions (e.g. %player%). To insert a '%' type it twice: %% Procenty w tekście. Aby były wzięte za tekst należy je wstawić dwa razy. Tak samo jak z cudzysłowiem.
can't understand expression Skript nie rozumie wyrażenia.

Jeżeli naprawdę Skript cię wycieńcza z błędami - koniecznie odwiedź forum.