PanMaruda 624 Opublikowano 14 grudnia 2019 Udostępnij Opublikowano 14 grudnia 2019 (edytowane) 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: Skrypt automatycznie posegreguje podaną mu listę zmiennych w kolejności malejącej. Instalacja: Skrypt zapisujemy w nowym lub istniejącym już pliku tekstowym w końcówką .sk w folderze pluginu Skript, dla przykładu: /plugins/Skript/scripts/pyraTop.sk Następnie należy wyłączyć i włączyć serwer ponownie lub skorzystać z komendy /sk reload <nazwa_pliku> Po wykonaniu jednej z tych czynności skrypt będzie gotowy do użycia globalnie tj. funkcje i zmienne będą działać we wszystkich innych skryptach na serwerze. 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 , przepisNaZiemniakiZGrilla itp Gdy już posiadamy naszą zmienną, korzystamy z funkcji, która wygeneruje nam naszą listę z topką: set {_lista::*} to createTop("nazwa", 5) gdzie: {_lista::*} to zmienna, do której zostanie zapisana topka 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, jednak jest ona ograniczona do pewnego formatu, który tutaj objaśnię: Na samej górze skryptu znajdują się trzy opcje - przedrostki i przyrostki dla nicku oraz indeksu. Służą one zmianie wyglądu zwracanej topki, która w czystej postaci wygląda tak: [indeks][nick gracza][wynik gracza] Przykład: 1PanMaruda100 2ZiemniaQ98 Dzięki tej funkcji możemy dodać odstępy, kolory i całe inne formatowanie pomiędzy poszczególne fragmenty, co da nam domyślnie taki efekt: <indexPrefix>[index]<namePrefix>[nick gracza]<nameSuffix>[wynik gracza] options: indexPrefix: &8 namePrefix: . &5 nameSuffix: &7: &d 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: Spoiler Skrypt wygeneruje top 3 (lub podaną w argumencie ilość) najlepszych górników, i wyświetli wszystko na chacie osobie która wywołała komendę. on mine: if {bloki::%player%} is set add 1 to {bloki::%player%} else set {bloki::%player%} to 1 command /topka [<integer=3>]: trigger: set {_top::*} to createTop("bloki", arg 1) send "&9&lNajlepsi górnicy:" send {_top::*} Skrypt policzy ilość znaków w każdej wiadomości gracza, a następnie po wpisaniu komendy wygeneruje topkę i wyświetli ją graczowi w GUI (wymagane TuSKe) on chat: if {chat::%player%} is set: add (length of message) to {chat::%player%} else: set {chat::%player%} to (length of message) command /topka [<integer=10>]: trigger: set {_top::*} to createTop("chat", arg 1) open virtual chest inventory with (rounded up ((size of {_top::*}) / 9)) rows named "Topka chatu" to player loop (size of {_top::*}) times: format gui slot (loop-number - 1) of player with 1 of potato named {_top::%loop-number%} Wymagania: plugin Skript w wersji 2.2 lub wyższej (zalecane) silnik Spigot lub Paper w wersji 1.9 i wyższe Download: pyraTop v1.0 wersja ZiemniaQ'a pyraTop REBORN wersja Marudy Edytowane 22 grudnia 2019 przez TakiJakTy Usuwam formatowanie. Notatka dodana przez TakiJakTy Odnośnik do komentarza https://skript.pl/temat/36021-pyratop-reborn-skrypt-na-tworzenie-topki/ Udostępnij na innych stronach Więcej opcji udostępniania...
xAxee 1968 Opublikowano 14 grudnia 2019 Udostępnij Opublikowano 14 grudnia 2019 3 minuty temu, PanMaruda napisał: Skrypt automatycznie posegreguje podaną mu listę zmiennych w kolejności malejącej. *Ustawi liste graczy na posegregowaną i sformatowaną inną, podaną mu liste wyników 14 minut temu, PanMaruda napisał: jako że nie zawsze działał poprawnie, a dodatkowo został porzucony Nie został porzucony... Tylko ZiemniaQ usunął konto . Ogólnie wiem, że struktura i działanie nie zostało wymyślone przez ciebie, ale lepiej by było, aby tylko segregowało podaną mu listę.(Czyli żeby tylko przesuwało indexy, a nie dodawało ten format iwg). Odnośnik do komentarza https://skript.pl/temat/36021-pyratop-reborn-skrypt-na-tworzenie-topki/#findComment-230775 Udostępnij na innych stronach Więcej opcji udostępniania...
PanMaruda 624 Opublikowano 14 grudnia 2019 Autor Udostępnij Opublikowano 14 grudnia 2019 (edytowane) 42 minuty temu, xAxee napisał: *Ustawi liste graczy na posegregowaną i sformatowaną inną, podaną mu liste wyników To jest treść z tamtego posta, ja jedynie skopiowałem i edytowałem co trzeba. 42 minuty temu, xAxee napisał: Nie został porzucony... Tylko ZiemniaQ usunął konto. Dla mnie jest to równoznaczne, nie ma go = projekt porzucony. 42 minuty temu, xAxee napisał: Ogólnie wiem, że struktura i działanie nie zostało wymyślone przez ciebie, ale lepiej by było, aby tylko segregowało podaną mu listę.(Czyli żeby tylko przesuwało indexy, a nie dodawało ten format iwg). No tak, tylko że mamy dwie wartości - nick gracza i wynik, przy czym to nick jest indeksem. Nie mogę "poprzesuwać indeksów" (czyt. nicków) bo to nic nie da. Skript i tak je sobie poukłada po swojemu (bodajże alfabetycznie) więc topka nie będzie miała sensu. Mogę nadpisać indeksy liczbami w kolejności, ale wtedy właśnie stracę nicki graczy. Może ja nie widzę twojego sposobu myślenia, może jestem zbyt głupi, ale póki co dla mnie pozostają dwa rozwiązania: tak jak ZiemniaQ - mogę zostawić funkcję która będzie rozbijać topkę na nicki i wartości, potem zwracać je osobno i tak dalej. Tylko że to wprowadza niepotrzebne zamieszanie w kodzie, skrypt się wydłuża, komplikuje, ludzie się gubią. Trzy listy, więcej pętli, większe obciążenie procesora - najlepiej tego unikać. tak jak zrobiłem ja - zwracam (jedną) posegregowaną listę z gotowym formatowaniem, które przecież użytkownik może sobie prosto dostosować (fakt, będzie jednolite dla wszystkich, ale moim zdaniem to wciąż lepsze). Tym sposobem można wysłać topkę jedną linijką kodu. Edit: Zawsze można też zamienić miejscami indeks z wartością zmiennej i wtedy zamiast {smierci::Maruda} = 10, będzie {smierci::10} = Maruda, tylko że wartości będą się nakładać na siebie, a cała topka zwróci się w odwrotnej kolejności (rosnącej, bo Skript tak sobie ułoży indeksy) Edytowane 14 grudnia 2019 przez PanMaruda Odnośnik do komentarza https://skript.pl/temat/36021-pyratop-reborn-skrypt-na-tworzenie-topki/#findComment-230778 Udostępnij na innych stronach Więcej opcji udostępniania...
kiroxtv 3 Opublikowano 22 grudnia 2019 Udostępnij Opublikowano 22 grudnia 2019 (edytowane) Witam, a jak w takim GUI używając Twojej funkcji utworzyć głowki graczy? Mam tutaj skrypcik, ale działać nie chce command /topkakopania: trigger: play sound "entity.chicken.egg" with volume 1 at player set {_topsmierciog::*} to createTop("smierciog", 9) wait 2 tick open virtual chest inventory with 5 rows named "&f&lTopka &6&lKiroksiewicz" to player wait 2 tick set {_smiercigraczy} to 0 send "%{_topsmierciog::*}%" to player loop (size of {_topsmierciog::*}) times: add 1 to {_smiercigraczy} if {_smiercigraczy} is 1: format gui slot (loop-number - 1) of player with (skull of (loop-value) parsed as offline player) named "&6&l%(loop-number)% TOP SMIERCI!!" with lore "%{_topsmierciog::%loop-number%}%" else: format gui slot (loop-number - 1) of player with (skull of (loop-value) parsed as offline player) named "&6&l%(loop-number)% TOP SMIERCI" with lore "%{_topsmierciog::%loop-number%}%" stop Edytowane 22 grudnia 2019 przez kiroxtv Odnośnik do komentarza https://skript.pl/temat/36021-pyratop-reborn-skrypt-na-tworzenie-topki/#findComment-231428 Udostępnij na innych stronach Więcej opcji udostępniania...
TakiJakTy 140 Opublikowano 26 grudnia 2019 Udostępnij Opublikowano 26 grudnia 2019 Ten temat został przeniesiony do archiwum. Temat został przeniesiony do archiwum na prośbę autora. Notatka dodana przez TakiJakTy Odnośnik do komentarza https://skript.pl/temat/36021-pyratop-reborn-skrypt-na-tworzenie-topki/#findComment-231884 Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi