{YARDIM} TOP 5 YAPMAK

LeeSeen

Taş Madencisi
En iyi cevaplar
0
Merhaba arkadaşlar, sunucumda kullanmak için bir stats skripti kodluyordum

Her şeyi yaptım fakat Top5'i beceremedim.

{kda::*} variable'ına kaydedilen verileri yüksekten alçağa doğru nasıl sıralayabilirim? kodunu atabilir misiniz?
Teşekkürler şimdiden
 

LeeSeen

Taş Madencisi
En iyi cevaplar
0
Öldürme ve ölmeyi birbirine bölüp adamın k/d'sini buldum kda variable'ına kaydettim

Şimdi istediğim kda variable'ının büyükten küçüğe sıralanması
 

LifeMCServer

Nether Yerlisi
En iyi cevaplar
98
Bunu dene:
PHP:
command /kdtop5:
    trigger:
        loop {kda::*}:
            add 1 to {_size}
            if {_low.to.high.list::%loop-value%} is not set:
                set {_low.to.high.list::%loop-value%} to loop-index
            else:
                set {_n} to 0
                loop {_size} times:
                    set {_n} to {_n}+1
                    {_low.to.high.list::%loop-value-1%.%{_n}%} is not set
                    set {_low.to.high.list::%loop-value-1%.%{_n}%} to loop-index
                    stop loop
        wait 1 tick
        set {_n} to size of {_low.to.high.list::*}
        loop {_low.to.high.list::*}:
            set {_high.to.low.list::%{_n}%} to loop-value
            set {_n} to {_n}-1
        wait 1 tick
        message "&m------------&5[&r &6&lKD &nTop 5&r &m&5]&r&m------------"
        loop {_high.to.low.list::*}:
            add 1 to {_result}
            if loop-value is not "<player>":
                send json of "&b%loop-value%&7: &e%{kda::%loop-value%}% KD" tooltip "&6Istatistik görmek için tıkla!" run "/stat %loop-value%" to player
            else:
                stop
            if {_result} is 5:
                message "&m------------&5[&r &6&lKD &nTop 5&r &m&5]&r&m------------"
                stop
 

Breakthrough

Obsidyen Madencisi
En iyi cevaplar
0
Bunu dene:
PHP:
command /kdtop5:
    trigger:
        loop {kda::*}:
            add 1 to {_size}
            if {_low.to.high.list::%loop-value%} is not set:
                set {_low.to.high.list::%loop-value%} to loop-index
            else:
                set {_n} to 0
                loop {_size} times:
                    set {_n} to {_n}+1
                    {_low.to.high.list::%loop-value-1%.%{_n}%} is not set
                    set {_low.to.high.list::%loop-value-1%.%{_n}%} to loop-index
                    stop loop
        wait 1 tick
        set {_n} to size of {_low.to.high.list::*}
        loop {_low.to.high.list::*}:
            set {_high.to.low.list::%{_n}%} to loop-value
            set {_n} to {_n}-1
        wait 1 tick
        message "&m------------&5[&r &6&lKD &nTop 5&r &m&5]&r&m------------"
        loop {_high.to.low.list::*}:
            add 1 to {_result}
            if loop-value is not "<player>":
                send json of "&b%loop-value%&7: &e%{kda::%loop-value%}% KD" tooltip "&6Istatistik görmek için tıkla!" run "/stat %loop-value%" to player
            else:
                stop
            if {_result} is 5:
                message "&m------------&5[&r &6&lKD &nTop 5&r &m&5]&r&m------------"
                stop
Liste büyüdükçe her yenilemede sunucuyu öldürecektir.
 

Blueyescat

Bedrock Kaşifi
En iyi cevaplar
0
Liste büyüdükçe her yenilemede sunucuyu öldürecektir.
Bu ufacık şey mi? :D Listede 2-3 milyon oyuncu varsa 1-2 saniyede bitebilir.



Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.

Kod:
function sortHighestToLowest(indexes: Objects, values: Objects) :: Strings:
    set {_size} to size of {_values::*}
    loop {_size} times:
        loop {_size} - 1 times:
            set {_value1} to {_values::%loop-number-2%}
            set {_value2} to {_values::%loop-number-2 + 1%}
            {_value1} is less than {_value2}
            set {_index1} to {_indexes::%loop-number-2%}
            set {_indexes::%loop-number-2%} to {_indexes::%loop-number-2 + 1%}
            set {_values::%loop-number-2%} to {_value2}
            set {_indexes::%loop-number-2 + 1%} to {_index1}
            set {_values::%loop-number-2 + 1%} to {_value1}
        remove 1 from {_size}
    return {_indexes::*}

# #################################################################### #

loop {kda::*}:
    add loop-index to {_indexes::*}
set {_büyüktenKüçüğe::*} to sortHighestToLowest({_indexes::*}, {kda::*})

{kda::*} listesi {kda::%player%} gibi belirlenmek zorunda.
Sonra bu şekilde listelenebilir:
Kod:
loop {_büyüktenKüçüğe::*}:
    send "%loop-index%. %loop-value%: %{kda::%loop-value%}%K/D"
    if loop-index is "5":
        stop loop

Not: sortHighestToLowest fonksiyonu
Linki görebilmek için üye olmanız gerekiyor. Giriş yap veya üye ol.
tarafından yapılmıştır. Skript 2.2+
 
Son düzenleme:
Üst