Skript: Różnice pomiędzy wersjami
(Znaczniki: Z internetu mobilnego, Z wersji mobilnej www, VisualEditor) |
(potęŹny update.) |
||
| 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 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. | ||
| − | ==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ą. | 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}} | {{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](najnowsze wersje). Po wgraniu wtyczki należy zrestartować serwer, i sprawdzić czy plugin jest kompatybilny z serwerem. Kiedy wszystko działa, to: |
| − | *'''/skript help''' - informacje o wtyczce i komendy | + | * '''/skript help''' - informacje o wtyczce i komendy |
| − | *'''/skript disable''' - pozwala na wyłączenie skryptów/określonego | + | * '''/skript disable''' - pozwala na wyłączenie skryptów/określonego |
| − | *'''/skript enable''' - włączanie skryptów/konkretnego | + | * '''/skript enable''' - włączanie skryptów/konkretnego |
| − | *'''/skript update''' - sprawdza wersję Skripta. | + | * '''/skript update''' - sprawdza wersję Skripta. |
| − | *'''/skript reload''' - jest to najważniejsza z komend, która odświeża skrypt, więc można je tworzyć podczas grania na bieżąco i co chwilę sprawdzać jego działanie. | + | * '''/skript reload''' - jest to najważniejsza z komend, która odświeża skrypt, więc można je tworzyć podczas grania na bieżąco i co chwilę sprawdzać jego działanie. |
Aby napisać swój pierwszy skrypt powinienieś otworzyć dowolny edytor tekstu ''(np. Windowsowy notatnik)'' lub ''Notepad++''. | Aby napisać swój pierwszy skrypt powinienieś 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: | ||
| − | + | * [[Zdarzenia]] | |
| − | *[[Zdarzenia]] | + | * [[Warunki]] |
| − | *[[Warunki]] | + | * [[Typy]] |
| − | *[[Typy]] | + | * [[Wyrażenia]] |
| − | *[[Wyrażenia]] | + | * [[Komendy]] |
| − | *[[Komendy]] | + | * [[Zmienne]] |
| − | *[[Zmienne]] | ||
| − | |||
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. | ||
| Linia 36: | Linia 34: | ||
send "Hello world!" to player</pre> | send "Hello world!" to player</pre> | ||
Po krótce: | Po krótce: | ||
| − | + | * '''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 permisję (potrzebny '''PermissionsEx''' |
| − | *'''permission: sk.hello"''' jest opcjonalne, ale Skript sprawdza, czy gracz posiada | + | * '''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> | + | * '''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:''' 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]]. |
| − | *'''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: | To była komenda. Podsumowując: | ||
| Linia 50: | Linia 47: | ||
(Periodical jest jedną z [[pętle|pętel]].) | (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> | ||
| + | {| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;" | ||
| + | !Błąd | ||
| + | !Opis i wyjaśnienie | ||
| + | |- | ||
| + | |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. | ||
| + | |- | ||
| + | |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. | ||
| + | |- | ||
| + | |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> | ||
| + | |- | ||
| + | |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: [https://skript.pl/ klik!]. | ||
Wersja z 01:37, 29 paź 2019
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.
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ą.
Skrypty
Aby stworzyć swój pierwszy skrypt, otwórz klienta FTP i zainstaluj wtyczkę Skript(najnowsze wersje). Po wgraniu wtyczki należy zrestartować serwer, i sprawdzić czy plugin jest kompatybilny z serwerem. Kiedy wszystko działa, to:
- /skript help - informacje o wtyczce i komendy
- /skript disable - pozwala na wyłączenie skryptów/określonego
- /skript enable - włączanie skryptów/konkretnego
- /skript update - sprawdza wersję Skripta.
- /skript reload - jest to najważniejsza z komend, która odświeża skrypt, więc można je tworzyć podczas grania na bieżąco i co chwilę sprawdzać jego działanie.
Aby napisać swój pierwszy skrypt powinienieś otworzyć dowolny edytor tekstu (np. Windowsowy notatnik) lub Notepad++.
Pisanie skryptu
Przed napisaniem skryptu zapoznaj się z:
Te artykuły dokładnie opisują podstawowe elementy tego języka. Pierwszym skryptem może być np. komenda.
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 permisję (potrzebny PermissionsEx
- permission message: Nie masz uprawnień! opisuje wiadomość, która się pojawi graczowi na czacie, jeżeli nie posiada on 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:
<komenda/periodical/zdarzenie>:
<effect>:
<kod>
(Periodical jest jedną z 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.
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 - kiedy gracz wykopie kamień
- 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%:
Artykuł główny: 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.
on death of cow: drop 1 of milk bucket at event-entity
Pętle?
Artykuł główny: Pętle
Wgrywanie skryptu
Napisany skrypt należy zapisać w rozszerzeniu .sk i wgrać do folderu Skript/scripts. 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 klik! autorstwa PoweredDragon
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.
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:
Te wszystkie sposoby działają tak samo! :O
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 on 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.
| Błąd | Opis i wyjaśnienie |
|---|---|
| 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. |
| 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. |
| 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: klik!.