Çözüldü Doğru Skript nasıl yazılır?

  • Konuyu Başlatan Konuyu Başlatan zweig
  • Başlangıç tarihi Başlangıç tarihi
  • Görüntüleme 1.088
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

zweig

Birisi mi Spawnlandı?
Katılım
11 Eylül 2021
Mesajlar
9
Elmaslar
2
Puan
85
Yaş
26
Minecraft
alkrnz

Discord:

zweig#3896

Merhaba sevgili MC-TR kullanıcıları,

Forumda yüzlerce Skript bulunuyor
Ama dikkat edilmesi gereken konu, bir forum kullanıcısı Skript'e baktığına doğru yazılıp yazılmadığını, performansı etkileyip etkilemediğini anlayamıyor.

Sormak istediğim doğru Skript nasıl yazılır? Dikkat etmemiz gereken etkenler nelerdir. Sağlıklı performans dostu skript nasıl yazabiliriz? Veya bir skript'e baktığımızda nasıl anlayabiliriz.
 
Merhaba sevgili MC-TR kullanıcıları,

Forumda yüzlerce Skript bulunuyor
Ama dikkat edilmesi gereken konu, bir forum kullanıcısı Skript'e baktığına doğru yazılıp yazılmadığını, performansı etkileyip etkilemediğini anlayamıyor.

Sormak istediğim doğru Skript nasıl yazılır? Dikkat etmemiz gereken etkenler nelerdir. Sağlıklı performans dostu skript nasıl yazabiliriz? Veya bir skript'e baktığımızda nasıl anlayabiliriz.
Bunun için forum içerisinde oldukça bir konu bulunuyor. Bir skript performanslı kodlanması için biz skript geliştiricileri her zaman 'function' kullanıyoruz veya lag yapabilecek kodları daha farklı kod haline getiriyoruz(local variable gibi), bir skriptte gereksiz sunucu arkaplanında çalışmasına yarayacak kodlar bulunuyorsa sunucu lag yığını bir ihtimal olabilir. Bu skript'de olan "lag" ön yargısını henüz biz de kıramadık. Gereksiz loop, gereksiz arkaplanda çalışan ve işlevi olmayan variable, algoritmasız yazılan kod gibi kod hataları lag'a oldukça yer açar. Biz skript geliştiricileri en yaygın performanslı variable türü olarak local variable kullanırız ve function kullanırız. Function hakkında rehberlere göz atabilirsiniz. https://www.mc-tr.com/konu/function-skriptte-bilinmesi-gereken-seyler-bolum-1.45815/,

 
Tüm işlemleri main-thread'e yüklemek (sync), çok fazla ram tüketen şeyler kullanmak, gereksiz her şeyi depolamak evet bunlar lag yaptırır.
 
main-thread'e yüklemeyi biraz açar mısınız.
 
main-thread'e yüklemeyi biraz açar mısınız.
Skript'in yeni sürümlerinde async desteği var diye biliyorum, yaptığınız düz kodlama işleri çoğunlukla SYNC olarak çalışır yani sunucunun başladığı işlemci parçacığında işlenir. Ama bir işi async olarak yapmak o işi işlemcinin farklı bir parçacığında çalıştırarak sunucuya doğrudan etki yapmaz. Bu async yapılan işler çok fazla olursa tabii etkisi olur ama çok aşırıya kaçmadıkça ve mümkün olduğunca işlemleri async olarak yapmak gerek. Mümkün olduğunca diyorum çünkü dünyada ki bir bloğu güncellemek, entitylerde işlem yapmak gibi olayları async yapamıyoruz.

Olayın özeti şu ki bir listedeki oyuncuları looplarken çekiliş gibi skriptlerde async kullanılabilir ve bu sayede sunucu TPS'ine olan etkiyi kaldırırsınız. bknz:

Kod:
command /cekilisyap:
    trigger:
        async:
            clear {ceklist::*}
            loop players:
                add "%loop-player%" to {ceklist::*}
            wait 2 second
            set {_winner} to a random element out of {ceklist::*}
            wait 0.5 second
            send "&cÇekilişin kazananı. %{_winner}%" to players

(Sanırım mundoSK gerekli.)
 
Genellikle küçük Skriptler'de ASYNC'yi mi kullanmalıyım. Ve Skripti daha iyi öğrenebilip anlamam açısından resmi bir kaynak gönderebilir misin?
 
Resimli bir anlatım olsaydı daha iyi olabilirdi.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Hala Discord sunucumuza katılmadın mı?

Büyük bir topluluğun parçası ol, etkinliklere katıl ve özel hediyeler kazanma şansı yakala!

Şimdi Katıl
Üst