Skocz do zawartości
  • 0

top damager


3meraldK

Pytanie

Witam, mam problem z tym skryptem: *fragment* (moje nieudane próby zrobienia tego :D)

on death of ravager:
	if name of ravager is "&5&lRavager &e&lKing":
		broadcast "&5&lRavager &e&lKing! &ehas been slaint!"
		set {_sorted::*} to sorted {%victim%::damage::*}
		set {_s} to size of {_sorted::*}
		set {_best} to {%victim%::attackers::%{_s}%} 
		broadcast "&cThe top damager is %{_best}%"
		clear drops
		give {_best} {@portal}
		delete {%victim%::damage::*}
		delete {%victim%::attackers::*} 
		
on damage of ravager:
	if name of victim is "&5&lRavager &e&lKing":
		if {%victim%::damage::*} contains "%attacker%":
			add damage to {%victim%::damage::%attacker%}
		else:
			set {_attacker} to " %attacker%"
			add {_attacker} to {%victim%::damage::%attacker%}
			add damage to {%victim%::damage::%attacker%}
		broadcast "%{%victim%::damage::*}%"

chciałbym tak, żeby po prostu gra wykrywała top damagera i dawała mu nagrodę

p.s. prosiłbym o zoptymalizowanie tego

Edytowane przez 3meraldK
Odnośnik do komentarza
https://skript.pl/temat/35758-top-damager/
Udostępnij na innych stronach

4 odpowiedzi na to pytanie

Rekomendowane odpowiedzi

  • 0
set {_sorted::*} to sorted {%victim%::damage::*}

Znając życie ten efekt ustawia sobie od nowa indeksy więc wszystkie nicki graczy są kasowane.

set {_best} to {%victim%::attackers::%{_s}%}

Nie wiem gdzie i skąd ta zmienna się bierze, ale jeżeli dobrze go odczytuje to raczej ten sposób nie zadziała.

 

Ogólnie jak nie zależy ci na topce a jedynie na jednym graczu to wystarczy wybrać sobie największy wynik ze zmiennej:

loop {zmienna::*}:
	if {_wynik} is not set:
		set {_wynik} to loop-value
		set {_gracz} to loop-index
	else:
		if loop-value > {_wynik}:
			set {_wynik} to loop-value
			set {_gracz} to loop-index

 

Odnośnik do komentarza
https://skript.pl/temat/35758-top-damager/#findComment-229446
Udostępnij na innych stronach

  • 0
13 minut temu, PanMaruda napisał:

set {_sorted::*} to sorted {%victim%::damage::*}

Znając życie ten efekt ustawia sobie od nowa indeksy więc wszystkie nicki graczy są kasowane.


set {_best} to {%victim%::attackers::%{_s}%}

Nie wiem gdzie i skąd ta zmienna się bierze, ale jeżeli dobrze go odczytuje to raczej ten sposób nie zadziała.

 

Ogólnie jak nie zależy ci na topce a jedynie na jednym graczu to wystarczy wybrać sobie największy wynik ze zmiennej:


loop {zmienna::*}:
	if {_wynik} is not set:
		set {_wynik} to loop-value
		set {_gracz} to loop-index
	else:
		if loop-value > {_wynik}:
			set {_wynik} to loop-value
			set {_gracz} to loop-index

 

spoko, dzięki, ale czy mógłbyś jeszcze taki cały fragment w całości napisać tak, aby działał? tutaj odsyłam do fragmentu który wysłałem na początku

Odnośnik do komentarza
https://skript.pl/temat/35758-top-damager/#findComment-229450
Udostępnij na innych stronach

  • 0
1 godzinę temu, PanMaruda napisał:

Jaki problem wstawić sobie to do kodu i podmienić zmienną?

jest pewien problem, aby wstawić odpowiednie fragmenty do eventów on damage, on death

Odnośnik do komentarza
https://skript.pl/temat/35758-top-damager/#findComment-229475
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ę...