piratjsk 700 Opublikowano 1 lutego 2014 Udostępnij Opublikowano 1 lutego 2014 (edytowane) Jakiś czas temu stworzyłem takie coś, może komuś się przyda. Skript - podstawyPodstawowe 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 pluginuInstalujemy 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łaOficjalna 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 skryptProgramy. 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ówCzym 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 świataVI. KomentarzeJak 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 12 kwietnia 2017 przez piratjsk poprawa formatowania i linków, dodanie informacji o Skript IDE TheSMB i ECLC 2 Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/ Udostępnij na innych stronach Więcej opcji udostępniania...
ECLC 5 Opublikowano 26 lutego 2014 Udostępnij Opublikowano 26 lutego 2014 Wielkie dzięki za poradnik. :) Jestem jeszcze zielony w tym sprawach, ale mam nadzieję, że uda mi się coś nauczyć. Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-370 Udostępnij na innych stronach Więcej opcji udostępniania...
theneuetimes 522 Opublikowano 26 lutego 2014 Udostępnij Opublikowano 26 lutego 2014 Poradnik dobry, aleadd -1 to {_time} # odejmuje sekunde od licznikaJest trochę bezsensowne :p Nie lepiej użyć remove 1 from {_time}? KiwoPL 1 Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-381 Udostępnij na innych stronach Więcej opcji udostępniania...
lew281 4 Opublikowano 20 marca 2014 Udostępnij Opublikowano 20 marca 2014 Ciekawe, jestem już dobry w sk ale nigdy nie myślałem o aliasach ;-; Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-862 Udostępnij na innych stronach Więcej opcji udostępniania...
ToNy 548 Opublikowano 18 kwietnia 2014 Udostępnij Opublikowano 18 kwietnia 2014 Poradnik dobry dla początkujących ale u dołu popsuły ci się litery ;) Boom 1 Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-1939 Udostępnij na innych stronach Więcej opcji udostępniania...
hypersonic0 16 Opublikowano 28 lipca 2014 Udostępnij Opublikowano 28 lipca 2014 Poradnik bardzo dobry dla początkującego w scriptach. Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-15678 Udostępnij na innych stronach Więcej opcji udostępniania...
TheSMB 21 Opublikowano 15 sierpnia 2014 Udostępnij Opublikowano 15 sierpnia 2014 Przydał mi się na start:D:D Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-19804 Udostępnij na innych stronach Więcej opcji udostępniania...
Erax104 5 Opublikowano 10 września 2016 Udostępnij Opublikowano 10 września 2016 Dobry poradnik jestem doświadczonym skripterem, ale nie to jest bez sensu XD add -1 to {_time} # odejmuje sekunde od licznika Odnośnik do komentarza https://skript.pl/temat/5-skript-podstawy/#findComment-94164 Udostępnij na innych stronach Więcej opcji udostępniania...
PoweredDragon 1016 Opublikowano 10 września 2016 Udostępnij Opublikowano 10 września 2016 @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 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 Więcej opcji udostępniania...
Rekomendowane odpowiedzi