Skocz do zawartości

piratjsk

Użytkownik
  • Ilość zawartości

    600
  • Rejestracja

  • Wygrane w rankingu

    5

Treść opublikowana przez piratjsk

  1. Jeśli komenda /cuse ma aktywować(wykorzystywać) dany kod, to tu jest rozwiązanie: options: tag: &3[Gamercraft]&2command /gcode: trigger: player has permission "code.generate": set {_k1} to random integer between 0 and 9 set {_k2} to random integer between 0 and 9 set {_k3} to random integer between 0 and 9 set {_k4} to random integer between 0 and 9 set {_k5} to random integer between 0 and 9 set {_k6} to random integer between 0 and 9 set {_k7} to random integer between 0 and 9 set {_k8} to random integer between 0 and 9 set {_k9} to random integer between 0 and 9 set {_kod} to "%{_k1}%%{_k2}%%{_k3}%%{_k4}%%{_k5}%%{_k6}%%{_k7}%%{_k8}%%{_k9}%" loop {codes::*}: {_kod} is loop-value make player execute command "gcode" stop send "{@tag} Kod &8- &b%{_kod}%" add {_kod} to {codes::*}command /gcodes: trigger: send "{@tag} Lista kodow &e(%size of {codes::*}%) &8- &b%{codes::*}%"command /cuse [<text&gt]: trigger: loop {codes::*}: arg is loop-value remove arg from {codes::*} send "{@tag} Kod aktywowany!" stop send "{@tag} Niepoprawny kod!"Wykorzystany kod jest usuwany z listy.Przy okazji usunąłem niepotrzebne linijki, zastosowałem zmienne lokalne, dodałem sprawdzanie czy przypadkiem generowany kod nie jest już na liście i wiadomość jeśli wpiszemy niepoprawny kod.
  2. Nie dodam czegoś takiego gdyż skrypt ten zlicza tylko zabójstwa i śmierci oraz pokazuje punkty: zabójstwa odjąć śmierci (z których wyświetla top5)
  3. Z tego co się orientuję to na obecnej wersji bukkita/spigota boss bar z SkriptPlus nie działa. (wypowiedź autora sk+ na ten temat)
  4. na tnt: on explode: loop blocks in radius 5: loop-block is ore set loop-block to air
  5. Mi wszystko ładnie działa. Jakiej wersji Skript i SkriptPlus używasz? Wyświetla jakieś błędy?
  6. piratjsk

    Lista logowań

    on quit: set {obecnosci::%player%} to nowon join: delete {obecnosci::%player%} {nieobecni::%player%} is set: delete {nieobecni::%player%}every minute: loop {obecnosci::*}: set {_val} to loop-value difference between {_val} and now is greater than or equal to 7 days loop {nieobecni::*}: loop-value-2 is loop-index-1 stop add loop-index to {nieobecni::*}command /nieobecni: trigger: send "Gracze nieobecni od 7 (lub wiecej) dni:" send "%{nieobecni::*}%"
  7. on walking on bedrock: if {ox.play.%player%} is 1: execute console command "/warp oxs %player%" send "&b[OX]&4Gracz %player% odpadl!" to all players remove 1 from {ox.online} if {ox.online} = 1: set {zmienna.%player%} to true send "&b[OX]&9wejdz na biale pole aby wygrac"on walking on quartz block: {zmienna.%player%} is true delete {zmienna.%player%} send "&b[OX]&9%player% Wygral OX!!!" to all players execute console command "/warp oxwin %player%"W momencie gdy ostatni gracz będzie chodził po bedrocku możesz stworzyć zmienną, a następnie gdy wejdzie na białe pole sprawdzić czy ona istnieje - jeśli tak to ją usunąć.
  8. register new shaped recipe for tnt of sharpness 1 named "&6Bomba Nuklearna!" using none, diamond, none, diamond, tnt, diamond, none, diamond, noneOczywiście powyższy kod trzeba podpiąć do jakiegoś eventu/komendy, najlepiej do zdarzenia "on script load:".
  9. piratjsk

    Skript money.

    @upZanim odwołasz się do zapętlonego gracza, musisz go zapętlić. every 2 seconds: loop all players: add 20 to balance of loop-player send "&aOtrzymales &620$&a za przebywanie na serwerze!." to loop-player
  10. Te ostrzeżenia oznaczają, że jakieś zmienne mogą mieć taką samą nazwę (np. użyta w komendzie {chat::%arg%} może przyjąć taką samą nazwę jak zdefiniowana w innym miejscu w kodzie zmienna {chat::*}). Ogólnie nie należy się tymi ostrzeżeniami przejmować. Można je wyłączyć w konfiguracji Skripta, w tym celu trzeba ustawić opcję disable variable conflict warnings: na true.
  11. Aktualizacja v1.5.0: - kilka poprawek wizualnych - dodane sprawdzanie wersji - po kliknięciu na nazwę warpu na teleportuje do niego - po najechaniu na nazwę warpu wyświetlają się jego koordynaty - poprawa efektów wizualnych i dźwiękowych.
  12. Definiując zmienne nie możesz użyć %argument%, gdyż zmienne te są definiowane przy starcie skryptu, a nie przy pierwszym odwołaniu się do nich. Prościej: %arg% może być używany tylko w kodzie komendy, nigdzie indziej. Rozwiązanie problemu: dodaj w kodzie, przed pierwszym odwołaniem się do tej zmiennej linijkę: - jeśli używasz tego w komendzie (x - w zależności który argument przechowuje pożądaną wartość): {pkk.%arg x%.%player%} is not set: set {pkk.%arg x%.%player%} to false- jeśli używasz tego po kliknięciu w tabliczkę (x - w zależności w której linii przechowywana jest pożądana wartość): {pkk.%line x of clicked block%.%player%} is not set: set {pkk.%line x of clicked block%.%player%} to false- w kodzie który podałeś wyżej: on rightclick on sign: line 3 is "&lKoniec" {pkk.%line 1 of clicked block%.%player%} is not set: set {pkk.%line 1 of clicked block%.%player%} to false #dalszy kod
  13. piratjsk

    Skript - pętle

    Tak, w tym przypadku zapętlamy kod 1073741844 razy.
  14. Definiując opcje musisz wciąć kod o jeden tab po "options:". options: opcja: wartość opcji
  15. piratjsk

    Skript - pętle

    Dzięki. :) (błąd poprawiony)
  16. Nazwa: spawnAutor: PiratJaskiniowyWersja Skript: v2.0.2 (lub nowsza)Prosty skrypt (jednak niektórym sprawiający problem) na spawn z koniecznością odczekania w bezruchu przez ustaloną ilość sekund oraz efektem "kręcenia się/falowania" obrazu.W wersji całkowicie wykonanej w Skripcie:/spawn - brak uprawnienia/setspawn - spawn.setspawnPozycja spawnu zapisywana jest w zmiennej {spawn}.W wersji nakładki na plugin oferujący komendę /spawn:Do tej wersji wymagany jest zewnętrzny plugin oferujący komendę /spawn.Skrypt wykorzystuje zmienną {tp.%player%} dla każdego gracza (używającego komendy /spawn).Download! (samodzielny)Download! (nakładka)
  17. Nazwa: InfoBot Autor: PiratJaskiniowy Wersja Skript: v2.0.2 (lub nowsza) Skrypt umożliwia stworzenie automatycznie wyświetlanych, co określony czas, komunikatów(z perfixem lub bez) na czacie. Komendy: /ib add <treść komunikatu> - dodaje komunikat /ib del <nr komunikatu> - usuwa komunikat /ib debug - wyświetla informacje i listę komunikatów (z numeracją) Download!
  18. Nazwa: rank! Autor: PiratJaskiniowy Wersja Skript: v2.0.2 (lub nowsza) Komendy: /rank - wyświetla statystyki gracza /rank <nick> - wyświetla statystyki podanego gracza (rank.others) /rank top - wyświetla 5 najlepszych graczy (rank.top) Download!
  19. [infosopher=blue] Uwaga!: Od wersji 1.5.0 skrypt wymaga SkriptPlus [/infosopher]wersja Skript: 2.1 (lub nowsza) wymagane: - SkriptPlus 1.4 (lub nowszy) - CraftBukkit Beta Build 1.7.2-R0.3 (lub nowszy) download: v1.5.0 WarpBox autor: PiratJaskiniowy Skrypt pozwala tworzyć, usuwać i używać (również za pomocą tabliczek) warpy. Wszystko to za pomocą polskich lub angielskich komend. uprawnienia: - warpbox.* | Pozwala korzystać ze wszystkich funkcji skryptu. - warpbox.warp | Pozwala używać warpów. - warpbox.lista | Pozwala wyświetlać listę warpów. - warpbox.tworz | Pozwala tworzyć warpy. - warpbox.usun | Pozwala usuwać warpy. - warpbox.tabliczki | Pozwala używać tabliczek. - warpbox.tabliczki.tworz | Pozwala tworzyć i niszczyć tabliczki. - warpbox.pomoc | Pozwala wyświetlić pomoc skryptu. - warpbox.przeladuj | Pozwala przeładować skrypt. - warpbox.nieczekaj | Pozwala na natychmiastową teleportację nawet gdy funkcja wb_wait jest włączona. Jeśli funkcja per_warp_perm jest włączona: - warpbox.warp.nazwa_warpu | Pozwala używać konkretnego warpu. - warpbox.warp.* | Pozwala używać wszystkich warpów. komendy: /skoczdo <nazwa warpu> - przenosi do warpu aliasy: warp /ustawwarp <nazwa warpu> - tworzy warp aliasy: setwarp /usunwarp <nazwa_warpu> - usuwa warp aliasy: delwarp /listawarpow - wyświetla listę warpów aliasy: warps, warplist /warpbox [info/pomoc/przeladuj] aliasy: wb info - wyświetla informacje o skrypcie pomoc - wyświetla pomoc skryptu aliasy: help, ? przeladuj - przeładowuje skrypt aliasy: reload jak tworzyć tabliczki?: W pierwszej linijce wpisujemy "[wb]". W drugiej linijce wpisujemy nazwę warpu. do zrobienia: Jestem otwarty na propozycje. changelog:
  20. piratjsk

    Skript - pętle

    Poradnik przedstawiający pętle w Skript. Skript - pętle Poznajemy pętle, ich rodzaje i przykładowe zastosowania. I. Wstęp Czym są pętle? Jak je dzielimy? Pętle są wyrażeniami, dzięki którym możemy zapętlić w dany sposób/daną ilość razy jakiś kod. Pętle dzielimy na dwie grupy: - pętle skończone (wykonujące określoną ilość razy dany kod) - pętle nieskończone (wykonujące dany kod przez cały czas działania skryptu) wyjątkiem jest pętla while, która może być skończona lub nieskończona. II. Pętle skończone Czym się charakteryzują? Do czego można ich użyć? Pętle skończone można podzielić na dwie grupy: - pętle ze zdefiniowaną ilością zapętleń: loop 13 times: # kod loop {zmienna} times: # kod loop 4*5+2^30 times: # kod W pętlach tych możemy się odwoływać do zmiennej loop-number, która przechowuje numer zapętlenia. - pętle zapętlające daną grupę obiektów loop {lista::*}: # kod loop all players: # kod loop all sheeps in player's world: # kod loop players in radius 4 of player: # kod loop inventory of clicked block: # kod loop inventory of arg: # kod loop worlds: # kod loop all dropped items: # kod Każda z tych pętli może zawierać inne zmienne: po zapętleniu listy zmiennych: loop-index - nazwa zmiennej, loop-value - wartość zmiennej, po zapętleniu graczy: loop-player - gracz, po zapętleniu owiec: loop-sheep (lub loop-entity) - owca, po zapętleniu ekwipunku: loop-item - przedmiot, po zapętleniu światów: loop-world - świat. Pętle te wykonają dany kod dla każdego obiektu z zapętlonej grupy. Pętle w pętli Jeśli tworzymy kilka pętli w sobie nawzajem i posiadają one zmienne o takich typach, aby się do nich odwołać musimy zdefiniować numer pętli w formacie: nazwa_zmiennej-numer_pętli np. loop-number-2. loop 30 times: loop 4 times: loop-number-1 is 3: send "3 zapętlenie pierwszej pętli, wyświetli się 4 razy" loop-number-2 is 4: send "4 zapętlenie drugiej pętli, wyświetli się 30 razy" loop-number-1 is 30: send "ostatnie zapetlenie pierwszej pętli, wyświetli się 4 razy" III. Pętle nieskończone Czym się charakteryzują? Do czego można ich użyć? Pętle nieskończone, jak sama nazwa wskazuje, wykonują dany kod nieograniczoną ilość razy. Jako jedyne stanowią samodzielne jednostki (nie muszą być zawarte w komendach, zdarzeniach). every <czas>: # kod every 1 tick: # kod every 5 hours: # kod Dany kod będzie wykonywany w nieskończoność co zdefiniowany czas np. co 5 godzin. IV. Pętla while Czym się charakteryzuje? Do czego można jej użyć? Ciekawą pętlą jest pętla while, gdyż może być zarówno skończona jaki i nieskończona. while <warunek>: # kod Słownie można opisać ją tak: dopóki warunek jest spełniony wykonuje dany kod. while 1 is 1: # kod Powyższa pętla będzie wykonywała dany kod w nieskończoność. W praktyce jednak nie ma sensu tworzyć nieskończonej pętli while gdyż będzie ona działała tak samo jak pętle every. Jedyną różnicą jest ta, że jeśli kod w pętli nie będzie zawierał polecenia wait to nieskończona pętla while "zlaguje" serwer gdyż będzie on bez najmniejszej przerwy wykonywał kod w pętli "nie mając czasu" na żadne inne działanie. Tak więc tworzenie nieskończonych pętli while - niewskazane! Przy używaniu tej pętli warto zastosować zabezpieczenie przed nieskończonością, mianowicie: set {_limit} to <limit powtorzen> while <warunek>: # kod remove 1 from {_limit} {_limit} is 0: exit loop V. Przykłady Przykładowe zastosowania różnych pętli. - Pętla every 5 seconds oraz zapętlenie wszystkich graczy na serwerze: every 5 seconds: loop all players: {vampire.%loop-player%} is true sunlight level at the loop-player is greater than 10 ignite the loop-player for 5 seconds Działanie: jeśli zmienna {vampire.%gracz%} ma wartość true i gracz przebywa w słońcu - będzie się palił. - Zapętlenie wszystkich graczy: command /ac [<text>]: trigger: loop all players: loop-player has permission "jestem.adminem": send arg to loop-player Działanie: wysyła wiadomość do wszystkich graczy posiadających uprawnienie jestem.adminem. - Pętla while: on right click on sign: line 1 is "[sklep]" line 2 constains "S" and "K" and ":" set {_i} to 1 while {_k} or {_s} is not set: line 2 of clicked block constains "S %{_i}%:": set {_s} to {_i} line 2 of clicked block constains ":%{_i}% K": set {_k} to {_i} add 1 to {_i} {_i} is 9999: exit loop send "Cena kupna: %{_k}%, Cena sprzedaży: %{_s}%" Działanie: pętla while jest tu wykorzystana do pobrania kwoty kupna i sprzedaży z tabliczki o wzorze: linia 1: [sklep] linia 2: S <cena sprzedaży>:<cena kupna> K Pętla będzie wykonywana tak długo, aż zmienne {_s} i {_k} będą zapisane lub gdy osiągnie 9999 powtórzeń.
  21. Krótki poradnik jak posortować listę zmiennych od największej wartości do najmniejszej lub odwrotnie. Skript - sortowanie listy zmiennych Uczymy się sortować listę zmiennych, czyli tworzyć ranking. I. O co chodzi? O co w tym wszystkim chodzi? Co chcemy osiągnąć? Założenia. W tym poradniku będziemy dążyć do stworzenia rankingu (dla przykładu: ilości wykopanego kamienia). Poradnik ten jest adresowany do osób posiadających podstawową wiedzę o pisaniu skryptów dla pluginu Skript. II. Tworzymy ... nasz ranking. Na początek musimy stworzyć listę zmiennych przechowującą wartości liczbowe. W praktyce krok ten będzie polegał na przykład na stworzeniu skryptu zliczającego wykopany kamień. on join: {stone::%player%} is not set: set {stone::%player%} to 0 {nick::%player%} is not set: set {nick::%player%} to uncolored display name of player on mine of stone: add 1 to {stone::%player%} Stworzyliśmy więc listę zmiennych w formacie {stone::nazwa_gracza} przechowującą wartość liczbową, w naszym przypadku ilość wykopanego przez gracza kamienia. Dodatkowo stworzyliśmy zmienną przechowującą nick gracza z uwzględnieniem wielkości znaków. Następnym krokiem będzie stworzenie komendy /top, która będzie wyświetlała 5 najlepszych kopaczy kamienia. command /top [<integer=1>]: trigger: set {_strony} to rounded up (size of {stone::*} / 5) arg is between 1 and {_strony}: send "ranking kopaczy kamienia" loop {stone::*}: set {_lista::%loop-index%} to loop-value set {_num} to size of {_lista::*} set {_max} to arg * 5 set {_min} to {_max} - 4 loop {_max} times: loop {_lista::*}: {_wartosc.%loop-number%} is not set: set {_wartosc.%loop-number%} to loop-value-2 set {_nazwa.%loop-number%} to loop-index loop-value-2 is more than {_wartosc.%loop-number%}: set {_wartosc.%loop-number%} to loop-value-2 set {_nazwa.%loop-number%} to loop-index delete {_lista::%{_nazwa.%loop-number%}%} loop {_max} times: loop-number is between {_min} and {_max} loop-number <= {_num}: send "%loop-number%. %{nick::%{_nazwa.%loop-number%}%}% (%{_wartosc.%loop-number%}%)" {_max} is more than {_num}: set {_r} to {_num} loop {_max} - {_num} times: add 1 to {_r} send "%{_r}%. brak" send "Strona: %arg% z %{_strony}%" stop {_strony} is 1: send "Wyniki mieszcza sie na 1 stronie." stop send "Wyniki mieszcza sie na %{_strony}% stronach." Definiujemy komendę uwzględniając argument będący liczbą całkowitą wskazujący na stronę wyników którą chcemy zobaczyć. Zapisujemy do zmiennej {_strony} ilość stron jaką zapełnią wyniki. Sprawdzamy czy podana strona mieści się w przedziale od 1 do wcześniej zdefiniowanej zmiennej {_strony}. Dla bezpieczeństwa kopiujemy naszą listę - tworzymy listę roboczą na której będziemy pracować. Zapisujemy do zmiennej {_num} ilość wyników. (w naszym przypadku kopaczy kamienia) Zapisujemy do zmiennej {_max} nr ostatniego wyniku, który zmieści się na wybranej stronie. (mnożymy stronę razy ilość wyników na stronie) Do zmiennej {_min} zapisujemy nr pierwszego wyniku, który zmieści się na wybranej stronie. (od zmiennej {_max} odejmujemy ilość wyników na stronie minus 1) Sortujemy: Zapętlamy {_max} ilość razy, czyli tyle do jakiego miejsca w rankingu potrzebujemy wyniki. W każdym zapętleniu wykonujemy następujące czynności: - zapętlamy listę - zapisujemy wartość (do {_wartosc.%loop-number%}) i nazwę (do {_nazwa.%loop-number%}) pierwszej zmiennej. %loop-number% jest to numer zapętlenia, czyli pierwsze zapętlenie - 1, drugie - 2 itd... - sprawdzamy wartość każdej zmiennej czy nie jest większa od tej zapisanej - jeśli jest nadpisujemy ją. w ten sposób po sprawdzeniu wartości wszystkich zmiennych w {_wartosc.%loop-number%} mamy zapisaną tą o najwyższej wartości - usuwamy zapisaną zmienną z listy i następne zapętlenie, czyli nasz kod się powtarza z tą różnicą, że zmienna o największej wartości jest już inna gdyż pierwszą usunęliśmy z listy. Efektem naszej dotychczasowej pracy są pary zmiennych: - {_wartosc.1}, {_nazwa.1} - przechowują zmienną o największej wartości - {_wartosc.2}, {_nazwa.2} - przechowują zmienną o mniejszej wartości - {_wartosc.3}, {_nazwa.3} - przechowują zmienną o mniejszej wartości - itd... Wyświetlamy: Ponownie zapętlamy kod tyle razy, do którego miejsca w rankingu potrzebujemy wyniki. W każdym zapętleniu wykonujemy następujące czynności: - sprawdzamy czy numer zapętlenia mieści się w przedziale wyników, które chcemy zobaczyć na danej stronie - sprawdzamy czy numer zapętlenia nie jest większy niż ilość wpisów z listy (w naszym przypadku kopaczy kamienia) - jeśli powyższe warunki są spełniony wyświetlamy wiadomość "%loop-number%. %{nick::%{_nazwa.%loop-number%}%}% (%{_wartosc.%loop-number%}%)", która będzie miała postać np: "1. PiratJaskiniowy (99)" Sortowanie wartości od najmniejszej do największej: Co w przypadku gdy chcemy posortować listę w odwrotnym kierunku? Wystarczy w 12 linii zmienić "more" na "less". Otrzymamy wtedy wyniki w takiej formie jak wcześniej z tą różnicą, że zmienna {_wartosc.1} będzie przechowywać najmniejszą wartość. Co się stanie gdy ostatnia strona nie zostanie zapełniona? - Będzie krótsza od reszty. Możemy jednak temu zaradzić: - Sprawdzamy czy taki stan ma miejsce. (czy maksymalna ilość wyników jest większa niż przechowywana w naszej liście) - Zapisujemy ilość zmiennych w liście do {_r}. - Zapętlamy kod /maksymalna ilość wyników minus liczba wpisów z naszej listy/ razy. - Dodajemy 1 do {_r}. - Wyświetlamy wiadomość "%{_r}%. brak", która będzie miała postać np: "33. brak".
  22. piratjsk

    Skript - podstawy

    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): 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
×
×
  • Dodaj nową pozycję...