Skript: Różnice pomiędzy wersjami

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania
(zmiana "permisję" na "uprawnienia")
m
 
(Nie pokazano 5 wersji utworzonych przez 3 użytkowników)
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''' jest pluginem głównie przeznaczonym dla amatorskich administratorów serwerów, którzy mogą modyfikować swoje serwery bez posiadania znajomości języków programowania, m.in [https://pl.wikipedia.org/wiki/Java '''Java'''], [https://pl.wikipedia.org/wiki/Python '''Python'''] lub [https://pl.wikipedia.org/wiki/C++ '''C++'''], a dokładniej pisząc skrypty używając prostego języka angielskiego. Najbardziej podstawowym wymaganiem do użycia tej wtyczki jest silnik [https://www.spigotmc.org/ '''Spigot'''] i jego forki: [https://papermc.io/ '''PaperSpigot'''], [https://github.com/Spottedleaf/Tuinity '''Tuinity'''] itd.
  
==Dodatki==
+
Autorem pierwowzoru jest Njol, szwajcarski programista Java, natomiast obecnie używany i ciągle aktualizowany jest fork autorstwa ShaneBee i bensku. Najnowsze aktualizacje są publikowane [https://github.com/SkriptLang/Skript/releases tutaj].
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ą.
 
  
{{Main|Kategoria:Dodatki}}
+
== Dodatki ==
 +
Dodatki ''(ang. addony)'' dodają nowe składnie, które z kolei ułatwiają pracę i umożliwiają modyfikację wielu nowych aspektów serwera. Takich pluginów jest wiele, a jej niepełną listę znaleźć można [[:Kategoria:Dodatki|tutaj]].
  
==Skrypty==
+
== Początek ==
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 zacząć przygodę ze swoimi skryptami, wpierw zainstaluj najnowszy plik z [https://github.com/SkriptLang/Skript/releases tej strony], zależnie, czy skrypty testujesz na serwerze technicznym, lub chcesz z jego pomocą otworzyć publiczny serwer. Stabilna wersja pliku, czyli taka, która nie zawiera błędów jest oznaczona tagiem ''Latest Release''. Pobrany plik .jar wgraj do folderu <code>/plugins</code>, a następnie zrestartuj serwer. Po zrestartowaniu serwera we wcześniej wspomnianym katalogu powinien pojawić się folder <code>Skript</code>, w związku z tym w nim paczka plików. Nas, jako początkowych skrypterów powinien interesować katalog o nazwie <code>scripts</code>. W tym folderze pisze się i wgrywa swoje skrypty, czyli dokumenty tekstowe z rozszerzeniem '''.sk'''. Od administratorów wymaga się podstawowej wiedzy języka angielskiego i umiejętności korzystania z dokumentacji.
  
*'''/skript help''' - informacje o wtyczce i jej komendy.
+
== Dokumentacja i inne strony ==
*'''/skript disable [all/nazwa]''' - pozwala na wyłączenie skryptu (wszystkich lub konkretnego).
+
Dokumentacje opisują wszystkie zdarzenia, efekty, wyrażenia i warunki zawarte w teoretycznie każdym dodatku, w tym samego Skript'a w sposób przejrzysty dla każdego użytkownika, m.in. jak to u siebie zaimplementować, jakich dodatków się wymaga i również jest parę przykładów użycia.
*'''/skript enable [all/nazwa]''' - pozwala na włączenie skryptu (wszystkich lub konkretnego).
 
*'''/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.
 
  
Aby napisać swój pierwszy skrypt powinieneś otworzyć dowolny edytor tekstu ''(np. Windowsowy notatnik)'' lub ''Notepad++''.
+
* [https://docs.skunity.com/ skUnity Documentation]
 +
* [https://skripthub.net/docs/ SkriptHub Documentation]
 +
* [https://parser.skunity.com/ skUnity Parser] – internetowy edytor tekstowy, który sprawdza prawidłowość napisanego kodu, liczy ilość komend, funkcji i zmiennych.
 +
 
 +
== Komendy ==
 +
 
 +
*''/skript help'' - komendy i informacje o pluginie.
 +
*''/skript disable [all/nazwa]'' - wyłączenie poszczególnych/wszystkich skryptów.
 +
*''/skript enable [all/nazwa]'' - włączenie poszczególnych/wszystkich skryptów.
 +
*''/skript update'' - sprawdza, czy wersja Skripta jest najnowsza.
 +
*''/skript reload [all/nazwa]'' - Wczytywanie skryptów komendą. Ułatwia to manipulację i szybkie edytowanie skryptów.
 +
 
 +
== Konfiguracja ==
 +
Konfiguracja wtyczki Skript pozwala na modyfikację pluginem. Przykładowe wartości, które można zmienić według swoich potrzeb, to
 +
 
 +
'''enable effect commands''' - domyślna wartość: '''false''', wartość: '''boolean''', opis: wszystkie wiadomości wprowadzone na serwerze z prefiksem '!' zostaną zinterpretowane jako efekty i zostaną wykonane. Nierozsądni gracze mogą nadużyć komend i uszkodzić serwer/świat, np. <code>!create explosion of force 10000</code> spowoduje crash serwera i nieodwracalne zmiany na świecie spowodowane olbrzymią eksplozją.
 +
Przykłady użycia komend:
 +
<pre>
 +
!heal player - leczenie gracza
 +
!feed player - najedzenie gracza
 +
!broadcast "&4Ogłoszenie" - wysyłanie wiadomości o podanej treści do każdego gracza i konsoli
 +
!set time to 6:00 - komenda domyślnie jest wykonywana w świecie gracza, w tym przypadku czas na świecie zmieni się na godzinę 6:00</pre><br>
 +
'''allow ops to use effect commands''' - domyślna wartość: '''false''', wartość: '''boolean''', opis: czy operatorzy mają dostęp do używania komend podanych wyżej. Jeśli wartość wynosi ''false'' jedynie gracze z permisją <code>skript.effectcommands</code> mogliby wykonać te czynności.<br>
 +
'''date format''' - domyślna wartość: '''default''', wartość: '''tekst''', opis: W pliku konfiguracyjnym zakomentowano sposób zmieniania tej wartości. ''date format'' używa się później w ekspresji <code>now</code>. Dla przykładu: <code>dd/MM/yyyy</code> pokaże 24.12.2020. Więcej informacji można znaleźć [http://docs.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html tutaj].
  
 
==Pisanie skryptu==
 
==Pisanie skryptu==
Przed napisaniem skryptu zapoznaj się z:
+
Przed napisaniem skryptu zapoznaj się z tematami, takimi jak:
  
 
*[[Zdarzenia]]
 
*[[Zdarzenia]]
Linia 27: Linia 47:
 
*[[Zmienne]]
 
*[[Zmienne]]
  
Te artykuły dokładnie opisują podstawowe elementy tego języka.
+
== Błędy ==
Pierwszym skryptem może być np. komenda.
+
Podczas wczytywaniu skryptu może wystąpić błąd, który zostanie wyświetlony na czacie. Najczęściej, błędy wynikają z błędu w kodzie, niezainstalowanego dodatku, lub niekompatybilnej wersji.
<pre>command /hello:
 
    permission: sk.hello
 
    permission message: Nie masz uprawnień!
 
    aliases: /hi
 
    trigger:
 
        send "Hello world!" to player</pre>
 
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 <u>nie posiada on</u> uprawnienia.
 
*'''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.
 
*'''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]].
 
 
 
To była komenda. Podsumowując:
 
<pre><komenda/periodical/zdarzenie>:
 
    <effect>:
 
        <kod></pre>
 
 
 
(Periodical jest jedną z [[pętle|pętel]].)
 
 
 
Coś teraz o zdarzeniach.
 
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.
 
 
 
<pre>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</pre>
 
 
 
*'''on mine of stone''' - kiedy gracz wykopie <u>kamień</u>
 
*'''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ęć)
 
*'''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ę.
 
*'''chance of 15%:''' {{Main|Losowość}}
 
*'''drop 1 nether star''' - wyrzuć 1 gwiazdę netheru
 
*'''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==
 
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ń.
 
 
 
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>
 
 
 
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.
 
Dodatkowo trzeba się upewnić, czy poprawnie się zapisało efekt/wyrażenie/zdarzenie.
 
 
 
<pre>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:</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 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 56:
 
|-
 
|-
 
|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 71:
 
|}
 
|}
  
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ź nasze [https://skript.pl/ forum].
  
 
[[Kategoria:Skript]]
 
[[Kategoria:Skript]]

Aktualna wersja na dzień 12:12, 26 sie 2020

Skript jest pluginem głównie przeznaczonym dla amatorskich administratorów serwerów, którzy mogą modyfikować swoje serwery bez posiadania znajomości języków programowania, m.in Java, Python lub C++, a dokładniej pisząc skrypty używając prostego języka angielskiego. Najbardziej podstawowym wymaganiem do użycia tej wtyczki jest silnik Spigot i jego forki: PaperSpigot, Tuinity itd.

Autorem pierwowzoru jest Njol, szwajcarski programista Java, natomiast obecnie używany i ciągle aktualizowany jest fork autorstwa ShaneBee i bensku. Najnowsze aktualizacje są publikowane tutaj.

Dodatki

Dodatki (ang. addony) dodają nowe składnie, które z kolei ułatwiają pracę i umożliwiają modyfikację wielu nowych aspektów serwera. Takich pluginów jest wiele, a jej niepełną listę znaleźć można tutaj.

Początek

Aby zacząć przygodę ze swoimi skryptami, wpierw zainstaluj najnowszy plik z tej strony, zależnie, czy skrypty testujesz na serwerze technicznym, lub chcesz z jego pomocą otworzyć publiczny serwer. Stabilna wersja pliku, czyli taka, która nie zawiera błędów jest oznaczona tagiem Latest Release. Pobrany plik .jar wgraj do folderu /plugins, a następnie zrestartuj serwer. Po zrestartowaniu serwera we wcześniej wspomnianym katalogu powinien pojawić się folder Skript, w związku z tym w nim paczka plików. Nas, jako początkowych skrypterów powinien interesować katalog o nazwie scripts. W tym folderze pisze się i wgrywa swoje skrypty, czyli dokumenty tekstowe z rozszerzeniem .sk. Od administratorów wymaga się podstawowej wiedzy języka angielskiego i umiejętności korzystania z dokumentacji.

Dokumentacja i inne strony

Dokumentacje opisują wszystkie zdarzenia, efekty, wyrażenia i warunki zawarte w teoretycznie każdym dodatku, w tym samego Skript'a w sposób przejrzysty dla każdego użytkownika, m.in. jak to u siebie zaimplementować, jakich dodatków się wymaga i również jest parę przykładów użycia.

Komendy

  • /skript help - komendy i informacje o pluginie.
  • /skript disable [all/nazwa] - wyłączenie poszczególnych/wszystkich skryptów.
  • /skript enable [all/nazwa] - włączenie poszczególnych/wszystkich skryptów.
  • /skript update - sprawdza, czy wersja Skripta jest najnowsza.
  • /skript reload [all/nazwa] - Wczytywanie skryptów komendą. Ułatwia to manipulację i szybkie edytowanie skryptów.

Konfiguracja

Konfiguracja wtyczki Skript pozwala na modyfikację pluginem. Przykładowe wartości, które można zmienić według swoich potrzeb, to

enable effect commands - domyślna wartość: false, wartość: boolean, opis: wszystkie wiadomości wprowadzone na serwerze z prefiksem '!' zostaną zinterpretowane jako efekty i zostaną wykonane. Nierozsądni gracze mogą nadużyć komend i uszkodzić serwer/świat, np. !create explosion of force 10000 spowoduje crash serwera i nieodwracalne zmiany na świecie spowodowane olbrzymią eksplozją. Przykłady użycia komend:

!heal player - leczenie gracza
!feed player - najedzenie gracza
!broadcast "&4Ogłoszenie" - wysyłanie wiadomości o podanej treści do każdego gracza i konsoli
!set time to 6:00 - komenda domyślnie jest wykonywana w świecie gracza, w tym przypadku czas na świecie zmieni się na godzinę 6:00


allow ops to use effect commands - domyślna wartość: false, wartość: boolean, opis: czy operatorzy mają dostęp do używania komend podanych wyżej. Jeśli wartość wynosi false jedynie gracze z permisją skript.effectcommands mogliby wykonać te czynności.
date format - domyślna wartość: default, wartość: tekst, opis: W pliku konfiguracyjnym zakomentowano sposób zmieniania tej wartości. date format używa się później w ekspresji now. Dla przykładu: dd/MM/yyyy pokaże 24.12.2020. Więcej informacji można znaleźć tutaj.

Pisanie skryptu

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

Błędy

Podczas wczytywaniu skryptu może wystąpić błąd, który zostanie wyświetlony na czacie. Najczęściej, błędy wynikają z błędu w kodzie, niezainstalowanego dodatku, lub niekompatybilnej wersji.

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ź nasze forum.