Poradnik Skript cz.4 – licznik odwiedzin serwera.

Kolejna część naszego poradnika do pluginu Skript pozwalającego na dostosowywanie serwera na silniku Bukkit do własnych potrzeb. W tym odcinku pokażę Wam jak wykorzystywać zmienne w naszym pluginie, dzięki czemu możemy liczyć różne wydarzenia. 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.

Czym właściwie jest zmienna w języku pluginu Skript? Jest jakieś słowo albo liczba, którą przechowujemy i którą można modyfikować oraz sprawdzać w dowolnym momencie. Brzmi tajemniczo, ale zaraz omówimy ją na przykładzie bardzo prostego licznika wejść na serwerze.

Kod skryptu:


variables:
{liczbawejsc} = 0
on login:
add 1 to {liczbawejsc}
send "Nasz serwer odwiedzany byl dotad <gold>%{liczbawejsc}%<reset> razy"
.

 

Omówienie kodu:
Variables znaczy po angielsku zmienna. Tworzymy je na samym początku skryptu. Omówimy teraz kod linijka po linijce:
variables: – tworzymy listę zmiennych, które będziemy używać w naszym skrypcie.
{liczbawejsc} = 0  – tworzymy nową zmienną o nazwie liczbawejsc. Nazwy zmiennych zawsze zapisujemy między nawiasami klamrowymi { }. Na początku liczba wejść będzie równała się 0.
on login: – sprawdzamy tzw. event logowania. Oznacza to, że wszystko co napiszemy niżej będzie wykonywało się podczas wejścia jakiegokolwiek gracza na serwer.
add 1 to {liczbawejsc} – Najważniejsza część skryptu. Powiększa ona dotychczasową liczbę wejść na serwer o 1.

send "Nasz serwer odwiedzany byl dotad <gold>%{liczbawejsc}%<reset> razy" – wysyła do gracza, który wszedł na serwer informację ile wynosi dotychczasowa liczba odwiedzin. Znacznik <gold> koloruje nam liczbę, aby wiadomość zwracała na siebie uwagę na czacie.


Tym sposobem skrypt na liczenie wejść jest już gotowy. A co jeżeli chcemy liczyć liczbę wejść dla każdego gracza oddzielnie? Napisałem skrypt, który to robi. Na jego przykładzie pokażę bardzo ciekawą możliwość zmiennych:

variables:
{liczbawejsc} = 0
{wejscia.%player%} = 0
on login:
add 1 to {liczbawejsc}
add 1 to {wejscia.%player%}
send "Nasz serwer odwiedzany byl dotad <gold>%{liczbawejsc}%<reset> razy"
send "Odwiedzasz nas <gold>%{wejscia.%player%}%<reset> raz"

W kodzie dodaliśmy 3 nowe linijki:

{wejscia.%player%} = 0 – tworzymy nową zmienną, która będzie gromadziła dane każdego gracza, który wejdzie na serwer. Działa to dlatego, że %player% jest tak naprawdę zmienną w zmiennej.

add 1 to {wejscia.%player%} – powiększa zmienną przechowującą liczbę wejść danego gracza o 1. %player% jest zastępowane nickiem gracza, który akurat wszedł na serwer, dlatego całość działa.

send "Odwiedzasz nas <gold>%{wejscia.%player%}%<reset> raz" – wysyła graczowi wiadomość o tym, który raz odwiedza on serwer.


W tym momencie nasz skrypt jest już skończony. Działa bez bugów, co możecie zobaczyć na tym screenie:

2013-07-31_18.26.47

Tym samym sposobem możemy również liczyć większość wydarzeń na serwerze, nie tylko logowania. Nic nie stoi na przeszkodzie, aby stworzyć skrypt liczący np. śmierci, postawione bloki, czy wycraftowane przedmioty. Wszystkie zmienne zapisywane są w zewnętrznym pliku, więc nawet w wypadku wyłączenia serwera nie mogą zniknąć, czy zresetować się.

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.