Kolejna część naszego poradnika do pluginu Skript pozwalającego na dostosowywanie serwera na silniku Bukkit do własnych potrzeb. W tej części pokażę Wam jak tworzyć limit wykonywania akcji w czasie oraz jak odgrywać dźwięki na serwerze. Zapraszam do czytania i komentowania!
Jeżeli jeszcze nie widziałeś poprzednich części poradnika linki do nich znajdują się tutaj: KLIK. Opisałem tam podstawy, które będziesz potrzebował w dzisiejszej części.
Na potrzeby tego poradnika napisałem skrypt dodający na nasz serwer boost, czyli tłumacząc na polski dopalacz. Po kliknięciu na cukier trzymając go w ręce gracz dostanie efekt szybkości i wyższego skoku na 5 sekund oraz odegra się dźwięk strzału ghasta. Po raz kolejny gracz będzie mógł użyć boostu dopiero po upłynięciu 30 sekund. Przejdźmy zatem do kodu:
Kod skryptu:
on rightclick with sugar:
player has permission "naszskrypt.boost":
set {czas} to difference between {opoznienie.%player%} and now
if {czas} is less than 30 seconds:
send "Poczekaj jeszcze %difference between 30 seconds and {czas}%"
else:
send "<yellow><bold>BOOST!"
execute command "/playsound mob.ghast.fireball %name of player%"
apply swiftness 2 to the player for 5 seconds
apply jump boost 2 to the player for 5 seconds
set {opoznienie.%player%} to now
Omówienie kodu:
on rightclick with sugar:
– nasz kod wywołuje się, gdy jakiś gracz kliknie prawym przyciskiem myszki na cukier.
player has permission "naszskrypt.boost":
– sprawdza, czy gracz posiada permisję (lub jak kto woli uprawnienie), którą tutaj nazwałem naszskrypt.boost.
set {czas} to difference between {opoznienie.%player%} and now
– tutaj zaczyna się trochę matematyki. Tworzymy zmienną o nazwie czas i jako jej wartość oznaczamy różnicę pomiędzy liczbą {opoznienie.%player%} (czyli momentem kiedy gracz po raz ostatni użył boostu), a aktualnym czasem systemowym serwera (nazwanym w skrypcie now).
if {czas} is less than 30 seconds:
– sprawdzamy czy zmienna czas jest mniejsza, niż 30 sekund.
send "Poczekaj jeszcze %difference between 30 seconds and {czas}%"
– powiadomienie wysyłane graczowi, jeżeli nie minęło jeszcze 30 sekund. Zmienna, którą wyślemy we wiadomości to różnica pomiędzy liczbą 30, a czasem, który pokazuje ile minęło od ostatniego użycia boostu. Nie znalazłem jednak sposobu, aby wyświetlać tę liczbę jako np. 23 sekund. Niestety, ale wygląda na to, że z racji ograniczeń skriptu musi być to wyświetlane jako 23 seconds.
else:
– co ma się wykonywać, jeżeli czas od ostatniego użycia będzie jednak dłuższy niż 30 sekund.
send "<yellow><bold>BOOST!"
– wysyła do gracza wiadomość o tym, że uaktywnił boosta. Znacznik <bold> sprawia, że tekst jest pogrubiony.
execute command "/playsound mob.ghast.fireball %name of player%"
– sposób na odegranie dźwięku za pomocą Skriptu. Nie można tego zrobić bezpośrednio za pomocą pluginu, jednak społeczność znalazła na to ciekawą metodę wykorzystującą dostępną w Minecrafcie komendę /playsound. Argument %name of player% jest automatycznie zastępowany nickiem gracza. W moim przypadku użyłem odgłosu strzału ghasta, jednak dla Was przygotowałem listę wszystkich dostępnych dźwięków, które możecie użyć: KLIK.
apply swiftness 2 to the player for 5 seconds
– dodaje efekt mikstury szybkość 2 na 5 sekund.
apply jump boost 2 to the player for 5 seconds
– dodaje efekt mikstury wyższy skok 2 na 5 sekund.
set {opoznienie.%player%} to now
– ustawia zmienną o nazwie {opoznienie.%player%}
jako aktualny czas systemowy. Dzięki temu będziemy mogli sprawdzić, kiedy gracz po raz ostatni użył boosta.
Skrypt jest w tym momencie skończony. Jak działa możecie przekonać się na poniższych screenach:
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.