Skocz do zawartości

Skript - podstawy


Rekomendowane odpowiedzi

Jakiś czas temu stworzyłem takie coś, może komuś się przyda. :)

Skript - podstawy
Podstawowe informacje o pluginie i skryptach do niego.

I. Co to takiego?
Czym jest Skript? Co można zrobić za jego pomocą?
Skript jest pluginem umożliwiającym w prosty sposób pisanie wtyczek na serwery.
Za jego pomocą bez znajomości javy możemy napisać np. system warpów, gildii, skrypt na loterię, automatyczne wiadomości, statystyki, zmodyfikować dropy z danych bloków, zmienić wyświetlaną nazwę gracza, zablokować używanie danych przedmiotów, stworzyć minigrę, spolszczyć komendy i wiele innych.
(Gotowe skrypty znajdziesz w tym miejscu.)

II. Instalacja pluginu
Instalujemy Skript i zapoznajemy się z jego strukturą i konfiguracją.
Naszą przygodę ze skryptami zaczynamy od instalacji pluginu Skript, w tym celu:
1. Pobieramy najnowszą wersję pluginu - przenieś
2. Pobrany plik zapisujemy w folderze /plugins/
3. Ponownie uruchamiamy serwer(lub używamy komendy /reload)

Jeśli wszystko zrobiliśmy poprawnie plugin powinien utworzyć następujące foldery i pliki:
/plugins/Skript/ - główny folder pluginu
/plugins/Skript/config.sk - plik konfiguracyjny skryptu
/plugins/Skript/aliases-english.sk - angielskie aliasy dla id przedmiotów i bloków, które będziemy używać w skryptach
/plugins/Skript/aliases-german.sk - niemieckie aliasy dla id przedmiotów i bloków, które będziemy używać w skryptach
/plugins/Skript/scripts/ - folder, w którym będziemy zapisywać nasze skrypty

Zajmiemy się teraz plikiem konfiguracyjnym(opisywany plik konfiguracyjny pochodzi z wersji Skripta 2.1):

Cytuj

linia 33: language: english - ustawia język jakim będziemy się posługiwać podczas pisania skryptów (dostępne: english, german)
linia 40: check for new version: true - czy plugin przy starcie ma sprawdzać czy jest nowa wersja (true/false)
linia 46: update check interval: 12 hours - (jeśli opcja wyżej true) co ile czasu działania serwera ma ponownie być sprawdzane czy jest nowa wersja
linia 53: automatically download new version: false - jeśli wykryje nową wersję to czy ma być ona automatycznie pobierana (true/false)
linia 61: enable effect commands: false - czy komendy efektów(opisane w dalszej części poradnika) mają być włączone (true/false)
linia 62: effect command token: ! - znak od jakiego będą się zaczynały komendy efektów
linia 76: allow ops to use effect commands: false - czy op-owie mają mieć dostęp do komend efektów (true/false)
linia 81: date format: default - format zmiennej now (korzysta z SimpleDateFormat javy: przenieś)
linia 90: verbosity: normal - ustala ile informacji ma być zapisywanych w logach (dostępne: low, normal, high, very high, debug)
linia 98: plugin priority: high - priorytet Skripta w odniesieniu do innych pluginów (dostępne: lowest, low, normal, high, highest)
linia 110: log player commands: true - czy w logach mają być zapisywane użycia komend stworzonych w skryptach (true/false)
linia 115: number accuracy: 2 - ile cyfr po przecinku ma być wyświetlanych podczas używania liczb ułamkowych
linia 120: maximum target block distance: 100 - maksymalna odległość bloku, na który patrzymy możliwa do użycia w skryptach
linia 126: case sensitive: false - czy w skryptach powinna być uwzględniana wielkość liter(w wyrażeniach 'replace', 'contains', 'is/is not) (true/false)
linia 131: disable variable conflict warnings: false - czy mają być wyświetlane ostrzeżenia o możliwym konflikcie zmiennych (true/false)
linie 140-241: znajduje się tu konfiguracja zapisu zmiennych do baz danych

III. Przydatne źródła
Oficjalna dokumentacja, forum i tutoriale.
Podczas pisania skryptów miejscem, w które z pewnością będziemy zaglądać będzie oficjalna dokumentacja pluginu. Znajdziemy w niej opis wszystkich funkcji, które możemy wykorzystać w naszych skryptach.
Dokumentacja: https://bensku.github.io/Skript/ (dokumentacja jest w języku angielskim)
Innym miejscem, w które warto zajrzeć jest dokumentacja Skript i dodatków do niego tworzona przez społeczność:
SkUnity: http://skunity.com/ (strona jest anglojęzyczna)
SkUnity Forum: https://forums.skunity.com/ (forum jest anglojęzyczne)


IV. Piszemy pierwszy skrypt
Programy. Zasady podczas pisania skryptów. Jak zapisać i uruchomić skrypt?
Pisanie skryptów musimy zacząć od wyposażenia się w narzędzie pracy czyli edytor tekstu.
Najlepszym wyborem będzie, któryś z dwóch:
1. SublimeText 3 - http://www.sublimetext.com/ (ja korzystam z tego)
2. Notepad++ - http://notepad-plus-plus.org/

Do Notepad++ powstało rozszerzenie dodające kolorowanie składni dla Skript: przenieś
Tworzone jest też IDE specjalnie dla Skript: Skript IDE.
Może się ono okazać całkiem ciekawą alternatywą dla zwykłych edytorów dzięki podpowiadaniu i kolorowaniu kodu zintegrowanemu ze SkUnity, inteligentnemu wykrywaniu błędów oraz funkcji automatycznego testowania skryptów.

Teraz, gdy wybraliśmy już edytor, uruchamiamy go i możemy pisać nasz skrypt:

command /hello:
    trigger:
        send "Czesc, %player%!"

Bardzo ważna jest odpowiednia tabulacja (wcinanie tekstu). Najlepiej kierować się zasadą, że jeśli linijka kończy się dwukropkiem to następną wcinamy o jeden stopień. Wcięcia mogą być robione za pomocą tabulatora lub spacji ważne tylko, żeby w danym bloku kodu były takie same.
Wklejamy wyżej podany kod i zapisujemy plik z dowolną nazwą (np: skrypt), z rozszerzeniem .sk (skrypt.sk) w folderze /plugins/Skript/scripts/.
Teraz uruchamiamy ponownie serwer lub używamy komendy /sk reload nazwa_pliku lub /sk reload scripts (przeładowuje wszystkie skrypty).
Jeśli wszystko zrobiliśmy poprawnie po wpisaniu komendy /hello powinien wyświetlić się tekst "Czesc, nasz_nick!".

V. Komendy efektów
Czym są? Jak z nich korzystać?
Za pomocą komend efektów możemy wywoływać pewne efekty(lista) bezpośrednio w grze, bez pisania skryptów.
Aby móc ich używać gracz musi posiadać uprawnienie skript.effectcommands lub być op-em(tylko jeśli włączona opcja allow ops to use effect commands) oraz muszą być (komendy efektów) włączone w konfiguracji plugniu(linia 61).
Domyślnie komendy efektów mają postać "!efekt", wpisujemy je bez ukośnika(zastępuje go wykrzyknik) na czacie.
Przykładowe komendy efektów:
!heal player - leczy gracza
!set time to 6:00 - ustawia czas
!ban all players - banuje wszystkich graczy
!teleport player to spawn - teleportuje gracza na spawn świata


VI. Komentarze
Jak je wstawiać i po co?
Podczas pisania(w szczególności rozbudowanych skryptów) warto opisać co robi dany fragment kodu aby ułatwić nam późniejszą jego edycję.
W skryptach dla Skript komentarze rozpoczynamy znakiem kratki #, od postawienia go wszystko w danej linijce kodu będzie traktowane jako komentarz i nie będzie brane pod uwagę podczas działania skryptu.

[...]
add -1 to {_time}  # odejmuje sekunde od licznika
{_time} is 0:  # czy czas oczekiwania już minął (czy licznik=0)
    teleport player to {warpbox.warp.%arg%}                         # teleportuje
    send "&f&l[&fwarpbox&l] &7Zostales przeniesiony do &f%arg%&7."  # do wybranego warpu
    {@wb_effects_visual} is true:      # usuwanie
        remove nausea from the player  # efektu wizualnego
        stop
    {_time} is smaller than 4:                                             # odliczanie
        send "&f&l[&fwarpbox&l] &7Teleportacja nastapi za &f%{_time}%&7."  # od 3
        wait 1 second
[...]

Innym zastosowaniem dla komentarzy może być opis opcji konfiguracyjnych lub podanie autora, nazwy skryptu itp.

# Wspaniały skrypt v1.0
# autor: Genialny autor
# url: http://link_do_dyskusji_na_temat_skryptu.pl

options:
    # czy ma być wyświetlana informacja?
    info: false
    # czy ma być wyświetlane ostrzeżenie?
    warn: true
Edytowane przez piratjsk
poprawa formatowania i linków, dodanie informacji o Skript IDE
Odnośnik do komentarza
https://skript.pl/temat/5-skript-podstawy/
Udostępnij na innych stronach

  • 4 tygodnie później...
  • 4 tygodnie później...
  • 4 tygodnie później...
  • 3 miesiące temu...
  • 3 tygodnie później...
  • 2 lata później...

@UP
Jest to sensowne, tak samo jak subtract 1, tylko, że zajmuje mniej miejsca i można w ogóle wykluczyć efekt subtract ze skryptu :P
Co do poradnika - dziwne, że mi umknął, ale jest spoko.

Odnośnik do komentarza
https://skript.pl/temat/5-skript-podstawy/#findComment-94248
Udostępnij na innych stronach

  • Szifter zablokował(a) ten temat
Nieaktywny
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...