Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Skript - Poradnik


KingOfGrimoN

Rekomendowane odpowiedzi

Opublikowano

Witam. Temat stworzony dla osób, które jednak popierają plugin Skript.

Tak, przyznaję, plugin ten nie nadaje się do tworzenia dużych projektów, takich jak np. GuildsBattles mojego autorstwa.

Lecz, jest to dodatek umożliwiający dodanie łatwych dodatków i narzędzi beż potrzeby tworzenia/pobierania nowego pluginu.

 

Przydatne linki:

 

 

Dokumentacja pluginu Skript:

http://njol.ch/projects/skript/doc

Strona z dodatkami do pluginu Skript:

http://www.skunity.com/

 

 

 

 

 

#0 Podstawy:

 

 

 

Aby korzystać z tego pluginu potrzebna jest nam niewielka wiedza na temat SSCC:

1. Nazwa. Nazwa pliku nie może zawierać znaków specjalnych: "#", "`", "%", "$", "{", "}", " ".

2. Rozszerzenia. Rozszerzeniem pliku może być tylko *.sk.

3. Zmienne. Zmienne powinny być tworzone w następujący sposób:

{<Nazwa_Skryptu>::<Nazwa_Zmiennej>}

Przykład:

{grimon::punkty} - Gdzie "grimon" to nazwa mojego skryptu, a "punkty" to nazwa zmiennej dotycząca punktów ... .

4. Szkielet skryptu. Kod nie powinien być pisany/umieszczany w dowolnej kolejności.

Kolejność:

- Skróty. (Definiowane jako "Aliases:".

- Zmienne. (Definiowane jako "Variables:".

- Opcje. (Definiowane jako "Options:".

- Komendy. (Definiowane jako "Command /<Komenda>:".

- Włączenie skryptu. (Definiowane jako "On skript load:".

- Wyłączenie skryptu. (Definiowane jako "On skript unload:".

- Zdarzenia na pętli czasowej. (Definiowane jako "Every <czas> <format czasu>:".

- Wydarzenia (eng. Events).

5. Wydarzenia i warunki. Każde wydarzenie rozpoczynane jest słowem "On". Każdy z warunków musi rozpoczynać się od słowa "If".

Wydarzenia nie powinny się powtarzać, zamiast używać jednego wydarzenia 2 lub 3 razy, można użyć warunku i zrobić to raz. Przykład:

 

#Zamiast:
On rightclick on stone:
    #Reszta kodu
 
On rightclick on cobblestone:
    #Reszta kodu
 
#Można to zrobić tak:
On rightclick:
        If event-block is stone:
        #Reszta kodu
If event-block is cobblestone:
    #Reszta kodu

 

 

 

 

Wszelkie informacje na temat SSCC zostały zebrane z pierwszego forum o pluginie Skript, Sk*ipt.pl, temat autorstwa Pirat Jaskiniowy.

 

 

 

 

#1 Pierwszy skrypt:

 

 

W pierwszej części pokaże jak zrobić proste wydarzenie.

Pierwsze co robimy to tworzymy plik "<Nazwa_Skryptu>.sk" w folderze "plugins/Skript/scripts/".

Następnie otwieramy nasz plik, najlepiej aby otwierać go za pomocą programu Notepad++.

 

Dobrze, mamy pusty plik.

 

Na samym początku zrobimy kilka opcji ułatwiających nam działanie.

 

Piszemy:

options:

Czyli definiujemy nasze opcje.

 

Następnie klikamy enter, znajdujemy się linijkę pod naszą frazą "options:".

Klikamy teraz Tabulator (przycisk z napisem Tab, na naszej klawiaturze).

Wygląda to tak, jakbyśmy wpisali 4 spacje, lecz postawienie 4 spacji jest błędem, nigdy tego nie róbcie.

Jeśli to wygląda tak:

uRY7Et.png

To jesteśmy na dobrej drodze.

Wpisujemy teraz:

<Nazwa_Skryptu>.ItemName: <Nazwa_przedmiotu>

W moim przypadku będzie to:

MpcSkript.ItemName: Swietlisty Miecz

Teraz musimy ustawić jaki to będzie przedmiot:

Czyli klikamy enter i jesteśmy w kolejnej linijce.

Klikamy ponownie Tabulator i piszemy:

<Nazwa_Skryptu>.ItemType: <Przedmiot_po_angielsku>

W moim przypadku będzie to diamentowy miecz, czyli:

MpcSkript.ItemType: diamond sword

Skoro to wygląda tak:

MDe7yn.png

To mogę wam pogratulować, bo stworzyliście swoje pierwsze opcje!

 

 

Ok skoro tab mamy za sobą to teraz wszystko pójdzie z górki.

Od teraz tam gdzie wpiszę <tab>, wy usuniecie to i zastąpicie to przyciskiem Tabulator(Tab na klawiaturze).

 

 

Myślałem, o czym tutaj pierwszą część zrobić. A więc, myślę, że zrobimy sobie prostą komendę, która da nam ustawiony w opcjach przedmiot, który będzie nosił nazwę, którą mu nadaliście.

 

Robimy od tego wszystkie jakieś 2 linijki odstępu i dodajemy sobie naszą nową komendę

Piszemy:

Command /<NaszaKomenda>:

Czyli tworzymy nową komendę.

W moim przypadku będzie to "getSuperSword"

Następnie piszemy

<tab>Permission: <permisja>

Czyli permisja, dzięki, której będziemy mogli użyć tej komendy.

Wiadomość o braku permisji:

<tab>Permission message: &cNie masz do tego uprawnien.

Następnie:

<tab>Trigger:

Czyli to co się dzieje po wpisaniu tej komendy

Dobra, w sumie to komendę już mamy, ale nie zadziała, ponieważ jest ona pusta.

Czyli musimy sobie dać ten przedmiot.

Piszemy:

<tab><tab>Give {@<Nazwa_Skryptu>.ItemType} named "{@<Nazwa_Skryptu>.ItemName}" to player

Już wyjasniam:

Give - czyli dajemy

{@<Nazwa_Skryptu>.ItemType} - Przedmiot. Musimy tu zastąpić "<Nazwa_Skryptu>" na to, co wpisaliśmy w opcjach, czyli w moim przypadku będzie to:

{@MpcSkript.ItemType}

named - Czyli przedmiot nazwany

{@<Nazwa_Skryptu>.ItemName} - Nazwa przedmiotu. Tutaj tak samo jak wcześniej "<Nazwa_Skryptu> zamieniamy na tą w opcjach, u mnie:

{@MpcSkript.ItemName}

to player - Do gracza, który wysłał komendę.

Może jakaś wiadomość?

Piszemy:

<tab><tab>Send "&6Otrzymales &b{@<Nazwa_Skryptu>.ItemName}"

Send - Czyli wysyłamy wiadomość.

"&6Otrzymales &b{@<Nazwa_Skryptu>.ItemName}" - Treść wiadomości, pamiętajcie aby zmienić <Nazwa_Skryptu> na to co podaliście w opcjach.

I na koniec dopisujemy sobie:

<tab><tab>stop
Całość to co tutaj już mamy wygląda tak:

 
Teraz zapisujemy, wchodzimy na nasz serwer mając OP lub permisje do komendy /Sk reload.
Wpisujemy na chacie /Sk reload <nazwa_skryptu>
Tam gdzie <nazwa_skryptu> chodzi o nazwę. pliku .sk
W moim przypadku będzie to /Sk reload MpcSkript.
Jeśli wyskoczy nam taki napis:

 
To oznacza, że wszystko zrobiliśmy tak jak należy.
 
Teraz jedyne co możemy zrobić to wpisać naszą komendę, w moim przypadku /getSuperSword
Jeśli mamy uprawnienia, to wyskoczy nam wiadomość:

I otrzymałem miecz.
 
 
Nie podam całości, jeśli chcecie to musicie przepisać. Wiem, że wam się nie chce, ale tak się właśnie uczy.


 
#2 Tworzymy drop ze stone. Part 1


W kolejnej części stworzymy własny drop ze stone, jest to wręcz banalne, przez co na forum wala się setki takich skryptów. Teraz możecie stworzyć go sami, bez potrzeby pomocy przy późniejszej edycji skryptu pod wasz serwer.
 
Zaczynamy! Tworzymy i otwieramy nasz skrypt. Pamiętaj! Skrypt musi mieć końcówkę .sk i znajdować się w folderze plugins/Skript/scripts.
 
Zacznijmy może od kilku opcji.
 
A więc:

options:

Czyli deklarujemy opcje.

<tab>chance.Diax: 2.3

Ustawmy teraz sobie szanse na drop przykładowo diamentu, pamiętajcie, w opcjach nie dodajemy nigdy znaku "%"!
Ale w końcu tworzymy cały skrypt na drop, więc dodajemy również reszte:

<tab>chance.Emerald: 2.0
<tab>chance.Coal: 5.0
<tab>chance.Redstone: 3.5
<tab>chance.Iron: 2.7
<tab>chance.Lapis: 6.0
<tab>chance.Gold: 2.7

 
Skoro mamy nasze opcje, to przejdźmy do reszty kodu.
Rozpocznijmy od blokady dropu z ród.
Zaczynamy wydarzeniem:

on break:

NIGDY nie używaj on mine.
 
Kolejną rzeczą jest sprawdzenie jakim blokiem jest zniszczony blok:

<tab>if event-block is any ore

Jeżeli blok to jakakolwiek ruda. Tak można, będzie oczywiście krócej, lecz można to zrobić dłuższym sposobem, dzięki któremu można dodać wiadomości z podanym procentem na drop.
 
Czyli tak:

<tab>if event-block is diamond ore:

Sprawdziliśmy teraz, czy zniszczony blok jest rudą diamentu, skoro jest to trzeba teraz anulować tę czynność i napisać wiadomość:

<tab><tab>cancel event
<tab><tab>set event-block to stone
<tab><tab>Send "&6Diamenty dropia z kamienia! Szansa to: &b{@chance.Diax}%%"
<tab><tab>stop

 
Czas na wyjaśnienie...
cancel event - Anuluje wydarzenie, czyli gdybyśmy zostawili samo cancel event, to nigdy ni zniszczylibyśmy tego bloku.
set event-block to stone - Ustawia zniszczony blok na kamień, można użyć air, wtedy po prostu blok zniknie.
Send "&6Diamenty dropia z kamienia! Szansa to: &b{@chance.Diax}%%" - Wysyła wiadomość do gracza, gdzie podany jest procent na drop z kamienia.
stop - Najzwyczajniej kończymy wydarzenie.
Teraz możecie zadać jeszcze jedno pytanie, dlaczego użyłem w wiadomości znaków "%%". Otóż pomiędzy procentami można umieścić zmienne, które wtedy są wyświetlane jako zapisane do nich wartości. Dzięki użyciu podwójnego znaku "%%", bez umieszczania pomiędzy nimi niczego, następuje wyświetlenie zwykłego znaku "%".
Mamy już rude diamentu, tak samo robimy z resztą ród.

<tab>if event-block is emerald ore:
<tab><tab>cancel event
<tab><tab>set event-block to stone
<tab><tab>Send "&6Szmaragdy dropia z kamienia! Szansa to: &b{@chance.Emerald}%%"
<tab><tab>stop

Już mamy dwie rudy, jeżeli chcecie więcej, to sami musicie to napisać, już wam pokazałem jak to zrobić :-)
 
U mnie wygląda to tak:
yadxqU.png
 
 
Dobrze, czas na drop z kamienia.
Nie będziemy zaczynać nowego wydarzenia, skoro jedno już mamy.
Dodajemy do tego wszystkiego kolejną linijkę!

<tab>if event-block is stone:

Czyli jeżeli zniszczony blok jest kamieniem.

<tab><tab>chance of {@chance.Diax}%:
<tab><tab><tab>drop 1 diamond at location of event-block
<tab><tab><tab>Send "&6Udalo Ci sie zdobyc &bDiament!"
<tab><tab><tab>stop

 
Czas na tlumaczenie.
chance of {@chance.Diax}%: - Czyli szansa to {@chance.Diax}, a wynosi to, to samo co ustawiliście w opcjach, na końcu ustawiamy "%", aby to był procent :P
drop 1 diamond at location of event-block - Czyli wyrzuca 1 diament w lokalizacji zniszczonego bloku.
Send "&6Udalo Ci sie zdobyc &bDiament!" - To jest jasne...
stop - To jest jasne.
 
Wszystko ok? To lecimy dalej:

<tab><tab>chance of {@chance.Emerald}%:
<tab><tab><tab>drop 1 emeraldat location of event-block
<tab><tab><tab>Send "&6Udalo Ci sie zdobyc &bSzamargd!"
<tab><tab><tab>stop

Wszystko raczej jasne.

Wygląda to tak:

aU64Em.png

 

Resztę musicie zrobić sami :-)

W następnej części przerobimy troszkę ten skrypt, sprawdzimy sobie jakiego narzędzia używa gracz, sprawdzimy jaki enchant ma to narzędzie, sprawdzimy również na jakiej wysokości się znajdujemy.

 

 

 

 

#3 Tworzymy drop ze stone. Part 2.

Niebawem...

 

 

Kolejne części poradnika niebawem!

Opublikowano

Nawet ,nawet poradnik. Jednakże to co tutaj jest mam już w małym palcu. Ocena: 8/10 ,ponieważ nie ma tutaj żadnej części dla zaawansowanych :)

bmqxnpM.png

Opublikowano

Poradnik świetny! Ale zostaję przy nauce Javy ;)

 

Dla początkujących się bardzo przyda. Plusik dla ciebie.

Opublikowano

@1361622928-U485574.pngKingOfGrimoN

3. Zmienne. Zmienne powinny być tworzone w następujący sposób:

{<Nazwa_Skryptu>::<Nazwa_Zmiennej>}

naucz się sam pisać skrypty a potem pisz poradniki.... Nazwa skryptu? Nie koniecznie... Dajesz co kolwiek... A to jest zmienna grupowa {1::2} gdzie 2 bedzie brane jako zawartość {1::*} bo tak wyglada ogolnie zmienna grupowa...

Zmienne tworzy się najpierw od:

variables: # na poczatku sk.....

tab {zmienna} = 0

# tak wlasnie stworzyles zmienna {zmienna}

aby manipulować ta zmienna dajesz add 1 to {zmienna} w tedy bd wartosc zmiennej 0 + 1 = 1 itd...

w zmiennej grupowej mozesz loopac zawartosc i robic cos z nia:

command /tpall:

    trigger:

        loop {1::*}:

            teleport loop-value to {spawn}

command /setspawn:

    trigger:

        set {spawn} to location of player

aby dodac do zmiennej gracza pisze sie:

add player to {1::*}

np:

command /addtp [<player>]:

     trigger:

        add player-arg to {1::*}

 

 

pkt 4 to wgl wymyśliłes.... Można pisać wszystko w takiej kolejności jak się chce... Nawet można na początku wpisać options: i na końcu options: i to 2 options bd brane jako dokonczenie tego 1..... omg znowu wykazales sie głupotą

pkt 5: wydarzenia zaczynaja sie od on... omg a jak dasz: EVERY 5 seconds: to gdzie masz on????

potem co? <Nazwa_Skryptu>.ItemName: <Nazwa_przedmiotu> w options.... To nie taki schemat omg... do tego nie ma schematu wiec po co wprowadzasz innych w blad... wpisza 1: opcja 2:opcja to nie bedzie erroru... po co maja wydluzac kod????

optem dajesz: on break a potem sprawdzasz co to.... jak wpiesz ze to ma byc stone to piszesz: on break stone... patola....

oo wiedze ze jeszcze jakas cz 2 ma byc tego dropu jak juz wszystko

Opublikowano

tak najlepiej wgrac skript i napisac, ze laguje... Naucz sie dobrze pisac skrypty , a jak sie nauczysz to w tedy zobacz czy laguje.

PS.Jesli chcesz sk uzywac na serwerze z 5 slotow to sie nie dziwie.... Najpierw naucz sie potem pisz. Albo przeczytaj ogólnie inne fora o tematyce sk np: skr*pt.pl i tam jakos inaczej sie wyrazaja....

  • 4 tygodnie później...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...