- Katılım
- 1 Haz 2019
- Mesajlar
- 9
- Beğeni
- 1
- Puanları
- 10
Merhaba değerli forum üyeleri , bugün /süre top ve /süre özelliği bulunan güzel kolay ve türevlerine benzemeyen bir skript paylaşacağım öncelikle 1 - 2 bilgi vereyim, skript'in çalışması için skript-mirror ve TuSKe adlı add-on gereklidir indirmek için
tıklayın skript-mirror. tıklayın TuSKe
Eğer sunucu sürümünüz 1.8 gibi alt sürümler ise timestatistic: kısmını ellemeyin eğer 1.14.4 gibi sürümler ise PLAY_ONE_MINUTE olarak ayarlamanız gerekiyor
skript her saniye tüm oyuncuları kaydetmek yerine istatistikten verileri çekiyor bu sayede lag yapmıyor, neyse fazla uzatmadan kodu bırakayım.
tıklayın skript-mirror. tıklayın TuSKe
Eğer sunucu sürümünüz 1.8 gibi alt sürümler ise timestatistic: kısmını ellemeyin eğer 1.14.4 gibi sürümler ise PLAY_ONE_MINUTE olarak ayarlamanız gerekiyor
skript her saniye tüm oyuncuları kaydetmek yerine istatistikten verileri çekiyor bu sayede lag yapmıyor, neyse fazla uzatmadan kodu bırakayım.
Kod:
options:
topx: 9
timestatistic: PLAY_ONE_TICK
import:
org.bukkit.Statistic
players property total time:
return type: number
get:
return round(expression-1.getStatistic(Statistic.{@timestatistic})/20)
on skript load:
set {timelist::*} to sırala({time::*}, {@topx})
on skript unload:
set {timelist::*} to sırala({time::*}, {@topx})
every 30 minutes:
set {timelist::*} to sırala({time::*}, {@topx})
function formattedTime(süre: number) :: String:
return "&e%floor({_süre}/86400)% &7gün, &e%floor(mod({_süre},86400)/3600)% &7saat, &e%floor(mod({_süre},3600)/60)% &7dakika, &e%floor(mod({_süre},60))% &7saniye"
function sırala(x: objects, n: number) :: Objects:
loop {_n} times:
set {_maxValuetime} to -1
loop {_x::*}:
set {_time::*} to loop-value-2 split at "\\"
set {_time::2} to {_time::2} parsed as number
if {_time::2} > {_maxValuetime}:
set {_maxValuetime} to {_time::2}
set {_maxValues} to loop-value-2
add {_maxValues} to {_return::*}
remove {_maxValues} from {_x::*}
delete {_maxValues}
delete {_maxValuetime}
return {_return::*}
command /süre [<text>]:
trigger:
if arg 1 is not set:
set {_time} to total time of player
open virtual chest inventory with size 1 named "&cSüre Top" to player
make gui slot 0,1,2,3,5,6,7 and 8 of player with shiny lime stained glass pane named " " to nothing
make gui slot 4 of player with ("%player%" parsed as offline player)'s skull named "&6Oyunda kalma süreniz" with lore "","&7Oyunda toplamda",formattedTime({_time}) and "&7süre boyunca kalmışsınız." to nothing
set {time::%player%} to "%player%\\%{_time}%"
else if arg 1 is "top" or "sıralama" or "sırala":
open virtual chest inventory with size ceil({@topx}/9) named "&cSüre Top" to player
loop {timelist::*}:
set {_sıralama::*} to loop-value-1 split at "\\"
make gui slot {_n} otherwise 0 of player with ("%{_sıralama::1}%" parsed as offline player)'s skull named "&c%{_n}+1%. Kişi" with lore "", "&9%{_sıralama::1}% &7adlı oyuncu", "&6%formattedTime({_sıralama::2} parsed as number)%" and "&7kadar oyunda kalarak &3%{_n}+1%. &7sıraya çıkmıştır." to nothing
add 1 to {_n}
else if arg 1 is "yenile":
if player is op:
set {timelist::*} to sırala({time::*}, {@topx})
send "&aSistem yenilendi."
else:
send "&cYetkin yok."