Skocz do zawartości
  • 0

Topki


Nayan

Pytanie

Cześć, od jakiegoś czasu bawię się w skrypty i jakieś proste mi wychodzą. Wziąłem ostatnio pod lupę statystyki w stylu "wykopany stone". Nie mam jednak pomysłu jak zrobić "topkę" - czyli żeby jakoś posortować te wartości. Mógłby ktoś mi tutaj wytłumaczyć albo odesłać do dobrego poradnika jak to robić? Nie mówię tylko akurat o "wykopany stone" tylko topki w sensie generalnym

Odnośnik do komentarza
https://skript.pl/temat/39261-topki/
Udostępnij na innych stronach

8 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
24 minuty temu, Nayan napisał:

Dzięki, ale wolałbym nauczyć się jak to napisać samemu mimo wszystko. Jest gdzieś jakiś poradnik?

Znaczy ten skrypt który ci podał jest tylko do sortowania listy.

aby zrobić topke musisz ustawiac zmienna na 0 gdy nie jest stworzona:

on join:
	if {stone::%player%} is not set:
		set {stone::%player%} to 0

dodawać 1 do zmiennej gdy wykopie blok

on break:
	add 1 to {stone::%player%}

no i wyświetlanie 

command /top [<text>]:
	trigger:
		send createTop("stone", 10, all offline players, "&7[INDEX]. &b[PLAYER]&7: &3[VALUE]")

 

Odnośnik do komentarza
https://skript.pl/temat/39261-topki/#findComment-246654
Udostępnij na innych stronach

  • 0
27 minut temu, Nayan napisał:

Dzięki, ale wolałbym nauczyć się jak to napisać samemu mimo wszystko. Jest gdzieś jakiś poradnik?

pyraTop to jedynie funkcja na tworzenie topek i ich zczytywanie. Możesz jej użyć, aby skrypt na topki napisać bądź wziąć kod pod lupę i na jego podstawie stworzyć własne funkcje. Poradnik na pisanie topek w Skripcie nie wiem czy znajdziesz, prędzej jakieś poszczególne elementy, które możesz do tego celu wykorzystać.

Odnośnik do komentarza
https://skript.pl/temat/39261-topki/#findComment-246655
Udostępnij na innych stronach

  • 0
W dniu 19.05.2020 o 10:21, Nayan napisał:

Dzięki, ale wolałbym nauczyć się jak to napisać samemu mimo wszystko. Jest gdzieś jakiś poradnik?

:kappalul::kappalul::kappalul:

Uwaga atenszyn atenszyn, poradnik jak zrobić skrypt na topke:

#Zaczynamy od zmiennej z wykopanym kamieniem
# {kamien::%player%} = liczba, gdzie %player% oznacza nick gracza
# robimy kopię powyższej listy do zmiennej tymczasowej
set {_kamien::*} to {kamien::*}

#wywołujemy pętlę, która powtórzy się (rozmiar listy)-razy
#wewnątrz niej zapętlamy główną listę, i zapisujemy pierwszy wynik do dwóch zmiennych - wartosc i gracz
loop (size of {kamien::*}) times:
	loop {_kamien::*}:
		if {_value} or {_player} is not set:
			set {_value} to loop-value
			set {_player} to loop-index

#kontynuujemy kod, sprawdzając czy wartość z zapętlonej listy jest większa od zmiennej {_value} - jeżeli tak - nadpisujemy zmienne {_value} oraz {_player}
		if loop-value > {_value}:
			set {_value} to loop-value
			set {_player} to loop-index

#gdy cała pętla się skończy w zmiennej {_value} będzie największa ilość wykopanego kamienia, a w {_player} nick odpowiadającego jej gracza
#zapisujemy więc teraz dwie finalne zmienne jako indeks podając liczbę zapętlenia wykonywanego przez pirwszą pętlę (z rozmiarem listy)
#dodatkowo aby skrypt nie wyświetlał tego samego gracza n-razy musimy usunąć go z zapętlanej listy
		set {_topka::gracz::%loop-number%} to {_player}
		set {_topka::wartość::%loop-number%} to {_value}
		delete {_kamien::%{_player}%}, {_value} and {_player}

#gdy obydwie pętle się skończą nasza topka (od najwyższej wartości) będzie się znajdować w zmiennych {_topka::gracz::*} oraz {_topka::wartość::*},
#indeks owych listy oznacza jednocześnie miejsce w topce, czyli np.

send "najwiecej wykopanego kamienia ma %{_topka::gracz::1}%, a jego wynik to %{_topka::wartość::1}%

Tylko po co się tak szarpać skoro jest gotowy skrypt, który działa lepiej, w miarę szybko i do tego na większości nowych wersji? :kappa:

 

Edytowane przez PanMaruda
Odnośnik do komentarza
https://skript.pl/temat/39261-topki/#findComment-246869
Udostępnij na innych stronach

  • 0
W dniu 20.05.2020 o 18:14, PanMaruda napisał:

:kappalul::kappalul::kappalul:

Uwaga atenszyn atenszyn, poradnik jak zrobić skrypt na topke:

#Zaczynamy od zmiennej z wykopanym kamieniem
# {kamien::%player%} = liczba, gdzie %player% oznacza nick gracza
# robimy kopię powyższej listy do zmiennej tymczasowej
set {_kamien::*} to {kamien::*}

#wywołujemy pętlę, która powtórzy się (rozmiar listy)-razy
#wewnątrz niej zapętlamy główną listę, i zapisujemy pierwszy wynik do dwóch zmiennych - wartosc i gracz
loop (size of {kamien::*}) times:
	loop {_kamien::*}:
		if {_value} or {_player} is not set:
			set {_value} to loop-value
			set {_player} to loop-index

#kontynuujemy kod, sprawdzając czy wartość z zapętlonej listy jest większa od zmiennej {_value} - jeżeli tak - nadpisujemy zmienne {_value} oraz {_player}
		if loop-value > {_value}:
			set {_value} to loop-value
			set {_player} to loop-index

#gdy cała pętla się skończy w zmiennej {_value} będzie największa ilość wykopanego kamienia, a w {_player} nick odpowiadającego jej gracza
#zapisujemy więc teraz dwie finalne zmienne jako indeks podając liczbę zapętlenia wykonywanego przez pirwszą pętlę (z rozmiarem listy)
#dodatkowo aby skrypt nie wyświetlał tego samego gracza n-razy musimy usunąć go z zapętlanej listy
		set {_topka::gracz::%loop-number%} to {_player}
		set {_topka::wartość::%loop-number%} to {_value}
		delete {_kamien::%{_player}%}, {_value} and {_player}

#gdy obydwie pętle się skończą nasza topka (od najwyższej wartości) będzie się znajdować w zmiennych {_topka::gracz::*} oraz {_topka::wartość::*},
#indeks owych listy oznacza jednocześnie miejsce w topce, czyli np.

send "najwiecej wykopanego kamienia ma %{_topka::gracz::1}%, a jego wynik to %{_topka::wartość::1}%

Tylko po co się tak szarpać skoro jest gotowy skrypt, który działa lepiej, w miarę szybko i do tego na większości nowych wersji? :kappa:

 

a gdzie początek kodu ? kamień niby jak to zczytuje żę kopiesz kamień xd?

Odnośnik do komentarza
https://skript.pl/temat/39261-topki/#findComment-340673
Udostępnij na innych stronach

  • 0
10 godzin temu, Deyvson napisał:

a gdzie początek kodu ? kamień niby jak to zczytuje żę kopiesz kamień xd?

No tak, 3 lata temu wpis i odkopuj go teraz zamiast skończyć sprawę ze mną :)

 

On odpowiedział na pytanie jak robić topki, nie jak zliczać wykopanego stone. Na to pytanie odpowiedział xAxee w wiadomości wcześniej :)

Odnośnik do komentarza
https://skript.pl/temat/39261-topki/#findComment-340680
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Nieaktywny
Odpowiedz na pytanie...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...