Poradnik Skript cz.7 – słodki boost

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:

2013-08-21_22.25.08 2013-08-21_22.26.50

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.