[TuT] Pisanie własnych skryptów

M

Mieszk0PL

Gość
Witajcie, dziś mam to zaprezentowania MIni Poradnik, jak pisać własne skrypty w pluginie script. Temat będzie aktualizowany :)




Chcesz dodać swój skrypt do listy ? (Patrz do spoilera)
Jeżeli macie skrypt wymyślony przez Was, może podsyłać w odpowiedziach link autora i opis, mniej więcej będzie wyglądało to tak:

Wysyłamy tylko na PW (Prywatna Wiadomość)

Autor:
Opis:
Uwagi:
Link:

Wprowadzenie: Programy, które pomogą nam w pisaniu naszego skriptu
Osobiście polecam wam program o nazwie Notepad++

Możecie pobrać go z tej oto strony:
http://notepad-plus-plus.org/
Jego główne zalety:


+ Ponumerowane linie
+ Automatyczne tabowanie
+ Wsparcie kolorystyczne (wyróżnia główne, najważniejsze elementy, ze względu na szerokopasmowe rozpoznawanie języka, w którym piszemy {m.in. html, css, skript})
+ Jest darmowy

Przykładowy zrzut ekranu:

NOTEPAD++%20Screenshot%204.jpg

Pobieramy i instalujemy nasz plugin skript
1.Pobieramy nasz plugin skript:
http://dev.bukkit.org/bukkit-plugins/skript/
2. Otwierzmy za pomocą WinRAR lub 7Zip i całą zawartość wrzucamy do folderu "plugins"

3.Uruchamiamy ponownie serwer (można komendą /reload)

4.Cieszymy się naszym pluginem Skript

Część 1: Blokada stawiania TNT przez gracza + wiadomość zwrotna (informacja)
Pamiętajcie nie robimy SPACJI, tylko TAB # Akapity (Wcięcia)

Kod:
on place tnt:
player don't have permissions "antybloki.uzyj":
cancel event
send "<aqua>Nie mozesz stawiac tnt"
Objaśnienie kodu:
on place tnt: - skrypt zacznie działać w momencie położenia przez gracza TNT
player don't have permissions "antybloki.uzyj": - sprawdza czy gracz ma odpowiednią permissje (uprawnienie), w naszym przypadku antybloki.uzyj, a dokładniej rzecz biorąc skrypt zadziała dalej jeżeli gracz nie ma uprawnienia.
cancel event - anulowanie wydarzenie (w tym przypadku położenia TNT przez gracza)
send "<aqua>Nie mozesz stawiac tnt" - wysyła wiadomość zwrotną do gracza, "<aqua>" oznacza kolor tekstu (niżej masz wykaz kolorów)
Wykaz kolorów:
(patrz tylko na "Common Name" lub ew. "code")

colorcodesminecraft.png

Część 2: Pisanie własnej komendy

command /daj <item types> <player>:
description: Daj graczowi dany przedmiot
usage: /daj <przedmiot> <nick gracza>
permission: daj.daj
permission message: Nie masz permisji do uzywania tej komendy!
executable by: players
aliases: oddaj
trigger:
send "<aqua>Dales <red>%argument 1% <aqua>graczowi <red>%argument 2%" to player
give argument 1 to argument 2
send "<aqua>Otrzymales <red>%argument 1% <aqua>od gracza <rred>%player%" to argument 2
Objaśnienie:
command /daj <item types> <player>: - Komenda uruchamiająca dalszą część skryptu
description: Daj graczowi dany przedmiot - Opis
usage: /daj <przedmiot> <nick gracza> - Poprawianie gracza jeżeli wpisze źle komendę
permission: daj.daj - Permisja
permission message: Nie masz permisji do uzywania tej komendy! - Tekst wyświetlany jeżeli nie mamy permisji
executable by: players - używanie przez w tym przypadku players (Graczy)
aliases: oddaj - Podobne komendy
send "<aqua>Dales <red>%argument 1% <aqua>graczowi <red>%argument 2%" to player - Wiadomość wyświetlana przy dawaniu
give argument 1 to argument 2 - komenda która działa na podstawie argumentów z UP Arg 1 : Item Arg 2: Gracz
send "<aqua>Otrzymales <red>%argument 1% <aqua>od gracza <rred>%player%" to argument 2 - Wyświetlana wiadomość przy dostawaniu itemka
Części nie edytowane w spoilerze:
Kod:
command /zabij: # KOMENDA
description: Zabija wszystkich graczy # OPIS
usage: /zabij # POmoc dla gracza jezeli zle wpisze argumenty
permission: zabij.use # Permissja
permission message: Nie masz permisji do uzywania tej komendy! # Tekst wyswietlany jezeli nie mamy permissi
trigger:
loop all players: # Oznaczanie wszystkich graczy
send "<gold>Umrzesz za:" # Tekst wysylany do (@UP Wszystkich) graczy
wait 1 second # Ile czekamy
send "<aqua>3" # Test oraz kolor
wait 1 second
send "<aqua>2"
wait 1 second
send "<aqua>1"
wait 1 second
kill loop-player # Zabicie wszystkich graczy
send "<red>ZGINOLES." # Tekst

Część 3

Tworzenie własnych itemków

on rightclick holding a stick:
if name of player's tool is "Rozdzka fireballi":
if player has permission "rozdzki.fireballi":
shoot a fireball from player
else:
send "<red>Nie mozesz uzywac rozdzki fireballi."
if name of player's tool is "Rozdzka pioruna":
if player has permission "rozdzki.pioruna":
strike lightning at targeted block
else:
send "<red>Nie mozesz uzywac rozdzki pioruna"
if name of player's tool is "Rozdzka swini":
if player has permission "rozdzki.pig":
shoot a pig from player with speed 2
else:
send "<red>Nie mozesz uzywac rozdzki swini"
Część 4

Zmienne, i liczniki



variables: # ZMIENNA
{liczbawejsc} = 0 # Nowa zmienna o owej nazwie
{wejscia.%player%} = 0 # To co @UP
on login: # Podczas eventu logowania
add 1 to {liczbawejsc} # Dodaje 1 do licznika
add 1 to {wejscia.%player%} # Dodaje 1 do licznika
send "Nasz serwer odwiedzany byl dotad <gold>%{liczbawejsc}%<reset> razy" # Wiadomosc wyslania nadal podczas logowania!
send "Odwiedzasz nas <gold>%{wejscia.%player%}%<reset> raz" # To samo co @UP
Część 5

Wymieniarki



on rightclick on sign:
if line 1 is "&4Wymiana":
if line 2 is "&6Sadzonki":
player is holding a sapling:
remove 1 sapling from player's tool
send "<yellow>Oddales 1 %line2%. Twoja nagroda to 100 EXPA"

give 100 xp to the player
else:
send "<green>Ta tabliczka wymienia tylko sadzonki. Nie posiadasz ich w swojej rece."
stop trigger
SS'y dodam później.

To na tyle z tego MINI PORADNIKA jak mówiłem na początku

WASZE SKRYPTY:





Jeżeli ktoś znajdzie identyczny poradnik na MPCForum, to znaczy że jest mój ~Reski
 
Fajny poradnik, ale czy skrypt blokujący daną komendę będzie wyglądał tak? :
Kod:
if player use /plugins
    cancel event
    send: 'Nie mozesz uzywac takiej komendy'
Znając życie i moje doświadczenie to to nawet nie jest skrypt...
 
Sam się jeszcze uczę, ale myślę że wyglądać to powinno tak:
Kod:
when player execute command /pl
       cancel event
       send: 'Nie wolno takiej komendy uzywac'
 
Mieszk0PL napisał:
Kod:
when player execute command /pl
       cancel event
       send: 'Nie wolno takiej komendy uzywac'

Tak to nie będzie wyglądać :)

Jeżeli chcemy np. zablokować komendę /bukkit:me to będzie to wyglądać tak:

Kod:
command /bukkit:me:
    trigger:
        send "&cNie mozesz tego zrobic!"
        stop
 
@Mieszk0PL mam pytanie, czy mogę zrobić całą serie tego poradnika ? To znaczy zrobię nowe tematy itd. Pytam bo nie chcę aby temat który napiszę był uznawany za spam :D
 
Back
Do góry