Skript-mirror: Różnice pomiędzy wersjami

Z wiki.skript.pl
Przejdź do nawigacji Przejdź do wyszukiwania
(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...")
 
 
(Nie pokazano 4 pośrednich wersji utworzonych przez tego samego użytkownika)
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.
+
'''Ten artykuł wymaga nieco wiedzy na temat Javy od czytelnika.'''
  
=== Importowanie ===
+
'''Skript-mirror''' lub '''Skript-reflect''' to dodatek do [[Skript]], który pozwala na interakcję języka skryptowego z językiem Java, import klas i głębsze wykonywanie kodu, np. nie mając chcianych wyrażeń w Skripcie da się stworzyć własne, jednocześnie rozszerzając możliwości. Domyślnie, dodatek pozwala na import klas z Javy, silników Bukkit, Spigot i jego forków, tak samo jak i klas z pluginów, które są zainstalowane na naszym serwerze. W katalogu <code>plugins/Skript-reflect</code> można wgrać '''dowolny''' plik .jar, by następnie z niego pozyskać chcianą klasę.
Aby importować klasę należy wyszukać ją w różnorodnych dokumentacjach, np. [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Bukkit.html Bukkita]. Następnie do kodu należy importować klasę efektem ''import'':
+
 
<pre>import:
+
Ten plugin już nie jest aktualizowany na bieżąco, chociaż powstał nowy fork autorstwa TPGamesNL o nazwie <code>skript-reflect</code>. Dlatego, w tym artykule będziemy omawiać tę wersję, i rzeczy, które dodaje również zostaną tutaj wspomniane.
 +
 
 +
Opis dodatku wg autora znajduje się [https://tpgamesnl.gitbook.io/skript-reflect/ tutaj].
 +
 
 +
== Instalacja ==
 +
1. Pobierz plik .jar wersji skript-reflect z [https://github.com/TPGamesNL/skript-reflect/releases tej strony].<br>
 +
2. Wgraj plik do folderu <code>/plugins</code>.<br>
 +
3. Zrestartuj serwer.<br>
 +
 
 +
== Importowanie klas ==
 +
Klasy importuje się w bloku kodu <code>import:</code> w pliku .sk, aby później z nich skorzystać. Wymaga się pełnej ścieżki, żeby klasa została importowana prawidłowo.
 +
 
 +
=== Czytanie dokumentacji ===
 +
Większość pluginów oferuje ''Javadocs'', czyli dokumentacje przyjazne dla użytkownika. Przydają się wtedy, kiedy chcemy dodać coś nowego na nasz serwer.
 +
 
 +
* [https://hub.spigotmc.org/javadocs/spigot Dokumentacja Spigot]
 +
 
 +
<pre>
 +
import:
 
     org.bukkit.event.player.PlayerJoinEvent
 
     org.bukkit.event.player.PlayerJoinEvent
    org.bukkit.event.player.PlayerQuitEvent
 
 
</pre>
 
</pre>
Powyżej zostały importowane dwie klasy związane z dołączeniem oraz opuszczeniem serwera przez gracza. ''PlayerJoinEvent'' w dosłownym tłumaczeniu oznacza zdarzenie wywołane dołączeniem gracza na serwer, a ''PlayerQuitEvent'' jego wyjściem. Istnieje wiele [https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/event/Event.html zdarzeń Bukkita], znajdują się one w kategorii ''org.bukkit.event.Event''.
+
Zostało zaimportowane zdarzenie. Do określania zdarzeń w następnej części kodu trzeba określić jedynie najdalsze "dziecko" czyli ''PlayerJoinEvent''.
 +
<pre>
 +
on PlayerJoinEvent:
 +
    set join message to "%event.getPlayer()% dołączył do gry"
 +
 
 +
on join:
 +
    set join message to "%event.getPlayer()% dołączył do gry"
 +
 
 +
on join:
 +
    set join message to "%player% dołączył do gry"
 +
</pre> Te trzy sekcje kodu są identyczne, drugi z nich pokazuje, że składnię Skript można łączyć ze składnią Java. Przydaje się to szczególnie wtedy, kiedy w Skripcie nie ma tego, czego chcielibyśmy uzyskać sami (a jest to w dokumentacji np. Spigota), dlatego sięgamy wtedy po skript-reflect, aby to otrzymać.
 +
 
 +
== Własne wyrażenia ==
 +
Skript-reflect 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>
 +
 
 +
 
 +
[[Kategoria:Skript]]

Aktualna wersja na dzień 00:56, 27 sie 2020

Ten artykuł wymaga nieco wiedzy na temat Javy od czytelnika.

Skript-mirror lub Skript-reflect to dodatek do Skript, który pozwala na interakcję języka skryptowego z językiem Java, import klas i głębsze wykonywanie kodu, np. nie mając chcianych wyrażeń w Skripcie da się stworzyć własne, jednocześnie rozszerzając możliwości. Domyślnie, dodatek pozwala na import klas z Javy, silników Bukkit, Spigot i jego forków, tak samo jak i klas z pluginów, które są zainstalowane na naszym serwerze. W katalogu plugins/Skript-reflect można wgrać dowolny plik .jar, by następnie z niego pozyskać chcianą klasę.

Ten plugin już nie jest aktualizowany na bieżąco, chociaż powstał nowy fork autorstwa TPGamesNL o nazwie skript-reflect. Dlatego, w tym artykule będziemy omawiać tę wersję, i rzeczy, które dodaje również zostaną tutaj wspomniane.

Opis dodatku wg autora znajduje się tutaj.

Instalacja

1. Pobierz plik .jar wersji skript-reflect z tej strony.
2. Wgraj plik do folderu /plugins.
3. Zrestartuj serwer.

Importowanie klas

Klasy importuje się w bloku kodu import: w pliku .sk, aby później z nich skorzystać. Wymaga się pełnej ścieżki, żeby klasa została importowana prawidłowo.

Czytanie dokumentacji

Większość pluginów oferuje Javadocs, czyli dokumentacje przyjazne dla użytkownika. Przydają się wtedy, kiedy chcemy dodać coś nowego na nasz serwer.

import:
    org.bukkit.event.player.PlayerJoinEvent

Zostało zaimportowane zdarzenie. Do określania zdarzeń w następnej części kodu trzeba określić jedynie najdalsze "dziecko" czyli PlayerJoinEvent.

on PlayerJoinEvent:
    set join message to "%event.getPlayer()% dołączył do gry"

on join:
    set join message to "%event.getPlayer()% dołączył do gry"

on join:
    set join message to "%player% dołączył do gry"

Te trzy sekcje kodu są identyczne, drugi z nich pokazuje, że składnię Skript można łączyć ze składnią Java. Przydaje się to szczególnie wtedy, kiedy w Skripcie nie ma tego, czego chcielibyśmy uzyskać sami (a jest to w dokumentacji np. Spigota), dlatego sięgamy wtedy po skript-reflect, aby to otrzymać.

Własne wyrażenia

Skript-reflect 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.