INFO! Skrypt jak i jego opis został początkowo stworzony i opublikowany przez ZiemniaQ'a. Jako że nie zawsze działał poprawnie, a dodatkowo został porzucony to postanowiłem go poprawić i udostępnić. Link do oryginalnego tematu: https://skript.pl/temat/33308-pyratop-skrypt-na-tworzenie-topki/.
Opis ≫
Funkcja automatycznie posegreguje podaną listę zmiennych w kolejności malejącej. Wystarczy wkleić kod do dowolnego pliku i przeładować. Będzie dostępny do użycia globalnie - we wszystkich innych skryptach.
Korzystanie ≫
Pierwszym warunkiem jaki należy spełnić jest posiadanie zmiennej w formacie {nazwa::nick_gracza}. W miejscu nazwy może się znajdować cokolwiek: wykopany_stone, zabojstwa, smierci, itp.
Gdy już posiadamy naszą zmienną, korzystamy z funkcji, która wygeneruje nam naszą listę z topką:
set {_lista::*} to createTop("nazwa", 5)
gdzie:
pierwszym argumentem funkcji jest tekst zawierający nazwę naszej zmiennej
drugim argumentem jest liczba, która oznacza ilość miejsc w topce jaka zostanie wygenerowana
Powyższy sposób daje nam już gotową listę, którą możemy zapętlić i wyświetlić powiedzmy na chacie w domyślnym formacie nick gracza - wartość
Gdyby jednak zaszła taka potrzeba, zwracany format można dowolnie zmieniać, dodając trzeci argument (tekst) do funkcji.
Można korzystać z trzech zmiennych:
[INDEX] lub [I] - zostanie zamieniony na pozycję gracza w topce
[PLAYER] lub [P] - zostanie zamieniony na nick gracza
[VALUE] lub [V] - zostanie zamienione na wartość zmiennej w topce
Przykładowo poniższa funkcja będzie zwracać wartości w takim formacie: 1. PanMaruda: 100
createTop("nazwa", 5, "&7[I]. &b[P]&7: &3[V]")
Można też dodawać dowolny tekst: PanMaruda zdobył 100 punktów i zajął 1 miejsce
createTop("nazwa", 5, "&b[P] &7zdobył &3[V] &7punktów i zajął &9&l[I] &7miejsce.")
jeżeli w drugim argumencie podamy wartość większą od zera, wtedy topka wygeneruje się od najwyższej do najniższej wartości - gdy liczba będzie ujemna - wtedy topka będzie odwrócona
Zastosowanie ≫
Wygenerowane topki można umieszczać wszędzie i nie ma tu żadnego ograniczenia, mogą to być: listy na chacie, przedmioty w GUI, hologramy, tabliczki, lore, strony internetowe itp.
Chciałbym poinformować że nie jest to najwydajniejszy sposób na segregowanie zmiennej, więc w połączeniu ze Skriptem oraz obszerną listą (+200 wyników) ta funkcja może doprowadzić do spadku wydajności tj. znacznego obciążenia procesora. Zalecam używanie jej jednorazowo np. podczas startu serwera lub automatycznie co pewien czas. Moim zdaniem nie powinna być wykonywana na każde życzenie gracza.
Przykłady ≫
Wersja 4.3 (zmiany) ≫
od tej wersji funkcja wymaga pluginu Skript w wersji przynajmniej 2.4, co za tym idzie najlepiej wersji gry powyżej 1.14 włącznie
od tej wersji wszystkie indeksy (nicki graczy) pobierane są ze zmiennej podanej w pierwszym argumencie
usunięto argument czwarty 'reversed = boolean' powodujący generowanie odwróconej listy
usunięto argument trzeci 'list = objects' przez który dodawane były indeksy
dodano opcję generowania odwróconej listy gdy jej wielkość (argument drugi) będzie liczbą ujemną
Wymagania ≫
plugin Skript w wersji 2.4 lub wyższej
(zalecane) silnik Spigot lub Paper w wersji 1.14 i wyższe
Pobieranie ≫
pyraTop v1.0 wersja ZiemniaQ'a
pyraTop REBORN v2.0.0
pyraTop REBORN v3.0.0
pyraTop REBORN v4.0.0
pyraTop REBORN v4.2.0 (ostatnia wersja dla skripta 2.2)
pyraTop REBORN v4.3.0
PO-TA-TOES