Poradnik Skript cz.3 – magiczna moc admina.

Trzecia część naszego poradnika do pluginu Skript pozwalającego na dostosowywanie serwera na silniku Bukkit do własnych potrzeb. W tym odcinku pokażę Wam jak wykonywać jakieś czynności dla każdego gracza, kolorować wiadomości na czacie, stworzyć opóźnienie przydatne przy np. odliczaniu, a także jak w łatwy sposób modyfikować gracza – leczyć go, gasić, karmić, naprawiać jego narzędzia, czy też nakładać efekty mikstur. Zapraszam do czytania i komentowania!

Jeżeli jeszcze nie widziałeś pierwszej części poradnika link do niego znajduje się tutaj: KLIK. Tworzenie komendy zostało poruszone w tym odcinku: KLIK. Opisałem tam podstawy, które będziesz potrzebował w dzisiejszej części.

Przykładem, którym posłużymy się dzisiaj będzie napisany przeze mnie skrypt dodający na serwer komendę /ulecz. Po wpisaniu komendy nastąpi 3 -sekundowe odliczanie, a następnie każdy gracz obecny w danej chwili na serwerze zostanie uleczony, jego pasek głodu zostanie zregenerowany, narzędzie, które akurat trzymał w ręce zostanie naprawione, a także zostanie nałożony na niego efekt mikstury Strength 1 na jedną minutę. Dodatkowo jeżeli palił się, zostanie on ugaszony. Przechodzimy zatem do kodu:

command /ulecz:
description: Leczy i pomaga wszystkim graczom
usage: /ulecz
permission: ulecz.use
permission message: Nie masz permisji do uzywania tej komendy!
trigger:
loop all players:
send "<gold>Gracz %player% <gold>uleczy cie swoja moca za:"
wait 1 second
send "<aqua>3"
wait 1 second
send "<aqua>2"
wait 1 second
send "<aqua>1"
wait 1 second
heal loop-player
set hunger bar to 10
repair tool
extinguish loop-player
apply strength 1 to loop-player for 1 minute
send "<gold>Zostales uleczony."

Jak zapewne zauważyliście, tę komendę może wykonać tylko osoba posiadająca permisję ulecz.use. Znaczniki kolorów, np. <gold>, czy <aqua> kolorują nam tekst, który widzimy na czacie. Niestety z racji ograniczeń minecrafta możemy pisać w 16 kolorach, a są to black, dark gray, gray, white, blue, aqua, light blue, green, light green, yellow, gold, red, pink, purple, magenta, brown. Przejdźmy zatem do omówienia kodu:

command /ulecz:
description: Leczy i pomaga wszystkim graczom
usage: /ulecz
permission: ulecz.use
permission message: Nie masz permisji do uzywania tej komendy!
trigger:

Część wiadoma, jeżeli przeczytało się drugą część poradnika. Tworzymy nową komendę, dodajemy jej permisję i opis.

loop all players: – zapętlamy wszystkich graczy, którzy znajdują się obecnie na serwerze. Oznacza, że cały kod, który napiszemy niżej będzie wykonywał się dla każdego gracza. Pętle możemy robić tworzyć nie tylko z graczy, ale także np. z każdego bloku, czy moba znajdującego się na serwerze.

send "<gold>Gracz %player% <gold>uleczy cie swoja moca za:" – wysyła do każdego gracza wiadomość o rozpoczęciu leczenia. Formuła %player% jest zmienną, czyli słowem, które zostanie zastąpione przez nick gracza, który wykonał komendę. Znacznik koloru <gold> pokoloruje nam tekst na kolor złoty (cały biały tekst na czacie wygląda brzydko, polecam nadawać kolory różnym wiadomością, gdy piszecie skrypty. Oczywiście bez przesady, za dużo kolorów może za to zbytnio razić w oczy).

wait 1 second
send "<aqua>3"
wait 1 second
send "<aqua>2"
wait 1 second
send "<aqua>1"
wait 1 second

Tutaj tworzymy odliczanie. Polecenie wait 1 second opóźnia kolejne zadanie o jedną sekundę. Polecenie send "<aqua>3" wysyła do każdego gracza liczbę sekund ile zostało do leczenia. Znacznik <aqua> koloruje nam tą wiadomość na jasnoniebieski, turkusowy kolor. Myślę, że na podstawie odliczania można w łatwy sposób zrozumieć jak działa funkcja wait.

heal loop-player – leczy gracza, czyli ustawia jego pasek zdrowia na 10 serc. Zapytacie się czemu musieliśmy napisać loop-player? Otóż leczyć możemy nie tylko graczy, ale także moby. A omijać określenie kogo ma dotyczyć dana funkcja w kodzie, który zapętliliśmy (loop all players znajdujące się wyżej) możemy jeżeli dana funkcja może oddziaływać tylko na zapętlany obiekt. Mówiąc prościej – gdyby w minecrafcie nie istniały moby nie musielibyśmy określać kogo chcemy leczyć. Poprzednie funkcje – send, czy późniejsze set hunger bar dotyczą tylko gracza, więc nie ma potrzeby określania kogo innego mają dotyczyć (nie możemy przecież wysyłać wiadomości na czacie do creepera ;p).

set hunger bar to 10 – ustawia pasek głodu każdego gracza na 10 kresek

repair tool – odnawia zużycie narzędzia, które trzyma akurat każdy gracz

extinguish loop-player – extinguish, czyli z angielskiego ugaś. Jeżeli jakiś gracz na serwerze pali się, po wpisaniu komendy zostanie on ugaszony. Wymagane jest określenie, że chcemy ugasić zapętlonego gracza, ponieważ gasić możemy również moby.

apply strength 1 to loop-player for 1 minute – daje efekt mikstury strength 1, czyli siły na jedną minutę dla każdego gracza. Listę wszystkich dostępnych w minecrafcie efektów mikstur i ich angielskie nazwy znajdziecie na tej stronie: KLIK

send "<gold>Zostales uleczony." – koniec leczenia, wysyłamy graczowi informację o tym, że został już uleczony.

Skrypt skończony, oto efekt wpisania komendy przez któregoś z administratorów:

2013-07-24_22.19.44

To samo widzi oczywiście każdy gracz, który znajdował się obecnie na serwerze. Analogicznie do tego skryptu możemy również tworzyć skrypt, który będzie wyrządzał krzywdę graczom, np. podpalał ich, dawał efekt zatrucia, czy też strzelał piorunem. Jak widać możemy tworzyć sobie teraz na serwerze różne magiczne moce dla adminów, czy też vipów, jednocześnie robiąc nasz serwer ciekawszym, bardziej urozmaiconym.

To tyle na dzisiaj, zapraszam do komentowania i pochwalenia się jakie to skrypty udało Wam się stworzyć na swoim serwerze. Przypominam, że cała dokumentacja pluginu znajduje się na tej stronie: KLIK.