• Aliasesler, skript ile oluşturduğunuz bir komuta 2. bir komut ekler. Yani /uç diye bir komutunuz var diyelim, /uc adında bir aliases eklediğinizde hem /uç yazdığınızda, hem de /uc yazdığınızda da aynı komutu işleme koyacaktır. Bu sayede ç yerine c yazan oyuncularınız için daha kullanışlı bir komut yapabilirsiniz. Tabii sadece 2. bir komutla sınırlanmıyor, isterseniz aynı komuta 5 komut bile ekleyebilirsiniz.
  • Loop, bir işlemi tekrarlattırmaktır. Loop en sıklıkla /sil komutunda yani sohbeti silme komutunda kullanılır.

Bu konuda sizlere Aliases ve Loop’un kullanımını anlatacağım. Hadi başlayalım!

Önce bir .sk dosyası oluşturalım.

  • İlk olarak plugins klasöründen Skript klasörüne girin, ordan da scripts klasörüne girin.
  • Daha sonra üst kısımdan Görünüm‘e tıklayıp sağ taraftan Dosya adı uzantıları seçeneğini işaretleyin.
  • Daha sonra scripts klasörüne bir metin belgesi açın.
  • Yeni Metin Belgesi.txt diye bir şey gelecek, Yeni Metin Belgesi yazan kısmı değiştirebilirsiniz kafanıza göre ve .txt olan kısmı .sk yapın.

Böyle olacaktır, enter’a bastığınızda bir uyarı gelecek.

  • Evet‘e basın. Metin belgesi bir SK dosyasına dönüşecektir. Bütün skriptler .sk uzantılı olmak zorundadır, aksi takdirde skriptler çalışmayacaktır.

Skript için bir programa ihtiyacınız olacak, önerdiğim 3 program var: Notepad++Sublime Text 3Visual Studio Code

3’ünden birini indirebilirsiniz, Sublime Text 3 favorimdir.

  • Oluşturduğunuz SK dosyasına sağ tıklayıp indirdiğiniz programı seçin. Örneğin Notepad++ indirdiyseniz Edit with Notepad++ diye bir seçenek çıkacaktır. Ona basın.
  • İnternetten bulduğunuz skript’i kopyalayıp yapıştırın ve dosyayı kaydedin.
  • Sunucudayken /sk reload <dosyaismi> komutunu kullanın. <dosyaismi> kısmına SK dosyanızın ismini yazacaksınız. Örneğin ben deneme.sk yaptım, /sk reload deneme yazıyorum.
  • Komutu yazdıktan sonra eğer kırmızı bir yazı çıkarsa skript’te hata var demektir.

Komudumuzu oluşturalım.

Önceki derslerimizde komut oluşturmayı öğrenmiştik. Hadi /temizle adında bir komut oluşturalım, amacı da sohbeti temizlemek/silmek olsun.

command /temizle:
    permission: sohbet.temizle
    permission message: &cBu komutu kullanmak için uslu bir oyuncu olman gerek.
    trigger:
  • Komutu oluşturduk, bir permission ekledik ve bu permission’a sahip olmayanlar için esprili bir uyarı mesajı ekledik, command’ın vazgeçilmez dostu olan trigger’ı da ekledik. Fakat bu şekilde çalışır mı? “Hayır, çalışmaz!” Sesinizi duyar gibiyim. Evet çalışmaz, buna bir kod eklememiz gerek.
  • Fakat öncelikle buna bir 2. komut ekleyelim.

Aliases

Dediğim gibi aliases belirlediğiniz komuta 2. bir komut ekler. Takma komut yani. Komutlarınızda ç, ö gibi harfler kullandığınızda bazı oyuncular bu komutları c, o şeklinde yazıyorlar. Bunu düzeltmek için aliasesler her daim yanınızda.

Yetkililer sohbette küfür, argo gördüklerinde hemen sohbeti temizlemeleri gerekir. Oyuncular bu detaylara çok önem veriyor. Aliases’in kullanımında sohbet temizleme komutunu örnek vereceğim.

  • Aliases, command’ın altında, trigger’in üstünde aliases: şeklinde kullanılır. Yani permission’u nasıl kullanıyorsak aliases’de de aynı mantık.
  • Ayrıca permission gibi komutları yazarken “” tırnak işaretlerini kullanmayacağız, komut eklerken başında / (slash) kullanmalıyız.
  • Eğer birden fazla komut ekleyecekseniz komutları ayırmak için , (virgül) kullanmalısınız.

Örnek;


command /temizle:
    permission: sohbet.temizle
    permission message: &cBu komutu kullanmak için uslu bir oyuncu olman gerek.
    aliases: /sil , /s
    trigger:

Gördüğünüz gibi, aliasesler bu şekildedir. Artık yetkililer daha hızlı sohbeti temizlemek için /sil komutunu veya /s komutunu kullanabilecekler. Tabii /temizle komutunuda kullanabilirler.

Fakat kod bu şekilde çalışmaz, sil komutu için loop devreye giriyor.

Loop

  • Üstte dediğim gibi, loop bir işlemin tekrarlamasını sağlar. Belirlediğiniz sayı boyunca belirlediğiniz işlemi tekrarlar. Çok büyük sayılar yazarsanız sunucunuzda lag, donma v.s. olabilir.

Loop’un kullanımı;

loop 200 times: #İşlemi 200 kez tekrarla
  • Loop’un kullanımında kodun sonunda : (iki nokta) kullanılır, yani tekrarlatacağınız işlemi loop kodundan sonra 4 boşluk ile yazmalısınız. Komut oluştururken trigger: eklediğimizde bildiğiniz gibi 4 boşluk bırakarak koda devam ediyoruz, aynı işlemi loop kullandıktan sonra da yapıyoruz.

Örnek;

loop 200 times: #İşlemi 200 kez tekrarla
    send "" #200 kez sohbete boşluk gönder
  • Gördüğünüz gibi 4 boşluk bırakarak yazıyoruz. Üstteki kod sil komutumuz içindir, 200 kez sohbete boşluk gönderecek ve sohbette görünülebilir hiçbir mesaj kalmayacaktır. Sadece boşluk..
  • Hadi bu kodu sil komutumuza ekleyelim.

command /temizle:
    permission: sohbet.temizle
    permission message: &cBu komutu kullanmak için uslu bir oyuncu olman gerek.
    aliases: /sil, /s
    trigger:
        loop 200 times: #İşlemi 200 kez tekrarla
            send "" #200 kez sohbete boşluk gönder
        broadcast "&b&lMCDEYIZ &8► &7Sohbet gereksiz konuşmalar nedeniyle temizlendi." #Herkese mesaj gönder
  • Evet, kodumuz bu şekildedir. Sil komutu için 200 kere tekrarlattırmak yeterlidir, daha fazla kullanılırsanız sunucunuzda lag v.s. olabilir.
  • Ayrıca sıkça yapılan hatalardan biriside sohbet temizlendi mesajını looplattırmak. Eğer send “” kodunun altına “s” harfinin hizasına temizlendi mesajını yazarsanız 200 kez o mesajıda gönderecektir. Bu hatayı yapmamak için loop kodunun l harfi hizasına yazmalısınız.

Hadi komudumuzu deneyelim!

  • Skriptimizi reloadladık, hiçbir hata vermedi.
  • Evet, /temizle komutunu kullandık ve komudumuz gayet güzel çalışmakta. Şimdi ise /sil komutunu kullanalım.
  • Yaşasın, komutumuz gayet iyi çalışıyor!
  • Eğer yetkisi olmayan birisi komutu denerse şöyle bir uyarı mesajı alacak:
  • Eğer rehber grubuna veya başka bir gruba /sil komutu yetkisi eklemek istiyorsanız:

GroupManager için /mangaddp <grupismi> sohbet.temizle komutunu kullanın.

  • Rehber grubuna sohbet.temizle yetkisi verdim ve kendime rehber yetkisi verdim.
  • /sil komutunu kullandım ve gördüğünüz gibi, mükemmel!
Konuyu nasıl buldun?
2
1
0
0
2

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir