Skript-mirror: Różnice pomiędzy wersjami
(Utworzono nową stronę "'''Skript-mirror''' jest dodatkiem do Skripta umożliwiającym importowanie poszczególnych klas (wydarzeń, wyrażeń i efektów) z silników gry, np. Bukkita lub S...") |
|||
| Linia 1: | Linia 1: | ||
'''Skript-mirror''' jest dodatkiem do [[Skript]]a umożliwiającym importowanie poszczególnych klas (wydarzeń, wyrażeń i efektów) z silników gry, np. Bukkita lub Spigota oraz z zewnętrznych pluginów, pozwalając jednocześnie na rozszerzenie możliwości Skripta. Aby zrozumieć ten dodatek zaleca się podstawową naukę języka programowania Javy, jednak nie jest on wymagany, ponieważ wystarczy importować i zastosowywać klasy w skryptach. | '''Skript-mirror''' jest dodatkiem do [[Skript]]a umożliwiającym importowanie poszczególnych klas (wydarzeń, wyrażeń i efektów) z silników gry, np. Bukkita lub Spigota oraz z zewnętrznych pluginów, pozwalając jednocześnie na rozszerzenie możliwości Skripta. Aby zrozumieć ten dodatek zaleca się podstawową naukę języka programowania Javy, jednak nie jest on wymagany, ponieważ wystarczy importować i zastosowywać klasy w skryptach. | ||
| − | === | + | === Instalacja === |
| − | + | 1. Pobierz dodatek z [https://forums.skunity.com/resources/skript-mirror.254/ tej strony].<br> | |
| + | 2. Wgraj wtyczkę do folderu \plugins.<br> | ||
| + | 3. Zrestartuj serwer.<br> | ||
| + | |||
| + | == Czytanie dokumentacji == | ||
| + | Wiele pluginów oferuje swoje publiczne dokumentacje, aby z nich korzystać importując klasy, na przykład [https://docs.oracle.com/javase/8/docs/api/index.html?overview-summary.html Java] lub [https://hub.spigotmc.org/javadocs/bukkit/index.html?overview-summary.html Spigot]. Każda pełna nazwa jest skonstruowana z pakietu oraz "rodziców", po kropce następuje sub-klasa, czyli "dziecko", i tak dalej. <code>org.bukkit.event.Player</code> ''org'' rozpoczyna nazwę, jest on "rodzicem" dalszych subklas, ''bukkit'' natomiast zawiera wiele sub-klas, w tym właśnie ''event'' który z kolei zawiera sub-klasę ''Player''. Taką pełną klasę należy importować, aby zadziałała. W kodach źródłowych pluginów także można pozyskać klasy. | ||
| + | |||
| + | === Instalacja zewnętrznych pluginów === | ||
| + | Czysty skript-mirror rozpoznaje jedynie klasy z paru silników i Javy. Aby rozszerzyć ten zbiór należy wgrać swój chciany dodatek do folderu \plugins\skript-mirror. Jeżeli nie ma go, to należy go zrobić pod nazwą ''skript-mirror''. | ||
| + | |||
| + | == Importowanie klas == | ||
| + | Aby zaimportować klasę pomyślnie, należy zatwierdzić jej pełną nazwę. W tym celu używa się nowego bloku kodu ''import:'' | ||
<pre>import: | <pre>import: | ||
org.bukkit.event.player.PlayerJoinEvent | org.bukkit.event.player.PlayerJoinEvent | ||
| − | org.bukkit.event.player.PlayerQuitEvent | + | org.bukkit.event.player.PlayerQuitEvent</pre> |
| − | </pre> | + | Zostały zaimportowane zdarzenia. Do określania zdarzeń w następnej części kodu trzeba określić jedynie najdalsze "dziecko" czyli ''PlayerJoinEvent''. |
| − | + | <pre>on PlayerJoinEvent: | |
| + | # kod</pre> | ||
| + | |||
| + | == Zastosowanie klas == | ||
| + | <pre>on PlayerJoinEvent: | ||
| + | set {_gracz} to event.getPlayer() | ||
| + | broadcast "&8>> &6%{_gracz}% &adołączył na serwer! | ||
| + | |||
| + | on PlayerQuitEvent: | ||
| + | set {_gracz} to event.getPlayer() | ||
| + | broadcast "&8>> &6%{_gracz}% &copuścił serwer!"</pre> | ||
| + | |||
| + | Użyto metody ''.getPlayer()''. Pozyskuje nazwę gracza i przydzielana jest ona do tymczasowej [[zmienne]]j ''{_gracz}''. Następnie Skript ogłasza wiadomość. W powyższym kodzie został połączony język Skript oraz Java, ponieważ jest to możliwe. | ||
| + | |||
| + | Do pobierania danych w np. zdarzeniach służą '''metody''', np. jak ta opisana powyżej. Jej przedrostkiem jest ''event.'' ponieważ nawiązuje ona do wywołanego zdarzenia. | ||
| + | |||
| + | == Własne wyrażenia == | ||
| + | Skript-mirror udostępnia możliwość tworzenia własnych efektów, zdarzeń lub wyrażeń. | ||
| + | |||
| + | Ogólny wzór składni: | ||
| + | * [text] - Opcjonalne | ||
| + | * (text) - Wymagane | ||
| + | * text1|text2 - lub | ||
| + | * %text% - typ zmiennej | ||
| + | |||
| + | Na przykład <code>(fill) %expression-1% (with) [%integer%] %expression-2%</code>. To jest efekt, ale w tym momencie nie może nic zrobić, ponieważ nie ma kodu w sobie. Wymagany jest blok ''trigger:''. | ||
| + | |||
| + | <pre>effect [GM] announce %expr-1%: | ||
| + | trigger: | ||
| + | send "%colored expr-1%" to all players | ||
| + | |||
| + | on rightclick: | ||
| + | announce "&8>> &6&lSkript-mirror jest świetnym dodatkiem"</pre> | ||
| + | Ten skrypt dodaje efekt ogłaszający wiadomość na czacie. Aby sprawdzić tego skuteczność, dodano zdarzenie który wywołuje nowo powstały efekt. | ||
| + | Aby dodać efekt trzeba przed składnią napisać ''effect''. Niektóre dodane przez nas rzeczy mogą być już zawarte w innych pluginach, poleca się więc dodawać przedrostki przed nimi, np. [GM] aby Skript wiedział, że jest to akurat nasze. <br> | ||
| + | ''%expr-1%'' oznacza to, co wpisze się w efekcie po ''announce'' czyli tekst. | ||
| + | |||
| + | === Warunki === | ||
| + | [[Warunki]] w skript-mirror wyglądają mniej więcej tak: | ||
| + | <pre>[local] condition [AxTops] %player% can buy (for|with) %number%: | ||
| + | check: | ||
| + | if {points::%expr-1%} >= expr-2: | ||
| + | continue</pre> | ||
| + | |||
| + | * [local] oznacza globalność tego warunku, tzn. jeżeli [local] zostało zastosowane to znaczy, że można tego warunku użyć w jednym skrypcie. | ||
| + | * [AxTops] jest przedrostkiem opcjonalnym. | ||
| + | |||
| + | Warunek sprawdza, czy gracz może kupić coś za "punkty" w zmiennej ''{points}''. | ||
| + | ''%expr-1%'' to gracz, nawiązanie do %player% w składni, a ''%expr-2%'' nawiązuje do ''%number%''. | ||
| + | |||
| + | '''check''' to blok specjalnie dla warunków. Jeżeli kod w bloku się zgadza, to należy zastosować '''continue'''. Continue tymczasem daje wartość '''true''' więc skrypt idzie dalej. | ||
| + | |||
| + | </pre> | ||
Wersja z 02:36, 31 gru 2019
Skript-mirror jest dodatkiem do Skripta umożliwiającym importowanie poszczególnych klas (wydarzeń, wyrażeń i efektów) z silników gry, np. Bukkita lub Spigota oraz z zewnętrznych pluginów, pozwalając jednocześnie na rozszerzenie możliwości Skripta. Aby zrozumieć ten dodatek zaleca się podstawową naukę języka programowania Javy, jednak nie jest on wymagany, ponieważ wystarczy importować i zastosowywać klasy w skryptach.
Spis treści
Instalacja
1. Pobierz dodatek z tej strony.
2. Wgraj wtyczkę do folderu \plugins.
3. Zrestartuj serwer.
Czytanie dokumentacji
Wiele pluginów oferuje swoje publiczne dokumentacje, aby z nich korzystać importując klasy, na przykład Java lub Spigot. Każda pełna nazwa jest skonstruowana z pakietu oraz "rodziców", po kropce następuje sub-klasa, czyli "dziecko", i tak dalej. org.bukkit.event.Player org rozpoczyna nazwę, jest on "rodzicem" dalszych subklas, bukkit natomiast zawiera wiele sub-klas, w tym właśnie event który z kolei zawiera sub-klasę Player. Taką pełną klasę należy importować, aby zadziałała. W kodach źródłowych pluginów także można pozyskać klasy.
Instalacja zewnętrznych pluginów
Czysty skript-mirror rozpoznaje jedynie klasy z paru silników i Javy. Aby rozszerzyć ten zbiór należy wgrać swój chciany dodatek do folderu \plugins\skript-mirror. Jeżeli nie ma go, to należy go zrobić pod nazwą skript-mirror.
Importowanie klas
Aby zaimportować klasę pomyślnie, należy zatwierdzić jej pełną nazwę. W tym celu używa się nowego bloku kodu import:
import:
org.bukkit.event.player.PlayerJoinEvent
org.bukkit.event.player.PlayerQuitEvent
Zostały zaimportowane zdarzenia. Do określania zdarzeń w następnej części kodu trzeba określić jedynie najdalsze "dziecko" czyli PlayerJoinEvent.
on PlayerJoinEvent:
# kod
Zastosowanie klas
on PlayerJoinEvent:
set {_gracz} to event.getPlayer()
broadcast "&8>> &6%{_gracz}% &adołączył na serwer!
on PlayerQuitEvent:
set {_gracz} to event.getPlayer()
broadcast "&8>> &6%{_gracz}% &copuścił serwer!"
Użyto metody .getPlayer(). Pozyskuje nazwę gracza i przydzielana jest ona do tymczasowej zmiennej {_gracz}. Następnie Skript ogłasza wiadomość. W powyższym kodzie został połączony język Skript oraz Java, ponieważ jest to możliwe.
Do pobierania danych w np. zdarzeniach służą metody, np. jak ta opisana powyżej. Jej przedrostkiem jest event. ponieważ nawiązuje ona do wywołanego zdarzenia.
Własne wyrażenia
Skript-mirror udostępnia możliwość tworzenia własnych efektów, zdarzeń lub wyrażeń.
Ogólny wzór składni:
- [text] - Opcjonalne
- (text) - Wymagane
- text1|text2 - lub
- %text% - typ zmiennej
Na przykład (fill) %expression-1% (with) [%integer%] %expression-2%. To jest efekt, ale w tym momencie nie może nic zrobić, ponieważ nie ma kodu w sobie. Wymagany jest blok trigger:.
effect [GM] announce %expr-1%:
trigger:
send "%colored expr-1%" to all players
on rightclick:
announce "&8>> &6&lSkript-mirror jest świetnym dodatkiem"
Ten skrypt dodaje efekt ogłaszający wiadomość na czacie. Aby sprawdzić tego skuteczność, dodano zdarzenie który wywołuje nowo powstały efekt.
Aby dodać efekt trzeba przed składnią napisać effect. Niektóre dodane przez nas rzeczy mogą być już zawarte w innych pluginach, poleca się więc dodawać przedrostki przed nimi, np. [GM] aby Skript wiedział, że jest to akurat nasze.
%expr-1% oznacza to, co wpisze się w efekcie po announce czyli tekst.
Warunki
Warunki w skript-mirror wyglądają mniej więcej tak:
[local] condition [AxTops] %player% can buy (for|with) %number%:
check:
if {points::%expr-1%} >= expr-2:
continue
- [local] oznacza globalność tego warunku, tzn. jeżeli [local] zostało zastosowane to znaczy, że można tego warunku użyć w jednym skrypcie.
- [AxTops] jest przedrostkiem opcjonalnym.
Warunek sprawdza, czy gracz może kupić coś za "punkty" w zmiennej {points}. %expr-1% to gracz, nawiązanie do %player% w składni, a %expr-2% nawiązuje do %number%.
check to blok specjalnie dla warunków. Jeżeli kod w bloku się zgadza, to należy zastosować continue. Continue tymczasem daje wartość true więc skrypt idzie dalej.