Skript Rehberi #2
1- Bu derste yapacaklarımız :
- if else stop kullanımlarını ;
- loop , while kullanımlarını ;
- değişken oluşturmayı , düzenlemeyi öğrenme.
2- Gerekli olan şeyler nedir ?
- Bu konuyu okumak ,
- Bir kod editörü (Önerim: Sublime Text).
3- Haydi yazmaya başlayalım ...
A ->
- Mctr.sk adlı bir skript dosyası oluşturalım ve açalım. Ama bomboş. Neden mi ? Çünkü içine bir şey yazmadık. Hadi B bölümüne geçip yazmaya başlayalım.
B ->
- Önceki konumuzdan artık bir şeyleri biliyoruz önceki konuya bakmak isteyenler konunun en aşağısında link var bakabilirler. Şimdi ilk olarak if , else ve stop kullanımları üzerinde çalışalım.
- if bir olayın gerçekleşmesini bir koşula bağlar , mesela 16 elma var ise elmaları sil diye bir komut yazabiliriz if sayesinde örneğin;
Kod:
command /mctr: #/mctr adlı bir komut oluşturuyoruz
trigger: #Komutumuzun altındakileri tetikliyor
if player has permission "mctr.mctr": #Eğer oyuncu mctr.mctr yetkisine sahip ise
send "&bDeneme" #Oyuncuya deneme mesajı gönder
- else ise if in başarısız olduğu durumlarda kullanılır mesela az önce oyuncunun yetkisi var ise dedik ya yoksa ? Hemen örnek veriyorum..;
Kod:
command /mctr: #/mctr adlı bir komut oluşturuyoruz
trigger: #Komutumuzun altındakileri tetikliyor
if player has permission "mctr.mctr": #Eğer oyuncu mctr.mctr yetkisine sahip ise
send "&bDeneme" #Oyuncuya deneme mesajı gönder
else: #Eğer yetkisi yok ise
send "&bYetki yok!" #Oyuncuya Yetki yok! mesajı gönder
- stop ta döngüyü durdurmaya yarıyor mesela else kullanmak yerine stop kullanabiliriz. Nasıl olacak diye soruyorsunuz duyuyorum. Skript'te , Java'da her şey döngüde ilerler neredeyse. İf in içindeki olaydan sonra else kontrol edilir. Biz bu else nin kontrol edilmesini istemiyorsak stop kullanmalıyız. Hemen aşağıda bir örnek verdim. Burada ki amacımız if player has permission çalıştıktan sonra döngüyü durdurup Yetkin yok mesajı göndermek. Zaten yetkisi yok ise if çalışmaz ve direk Yetkin yok mesajı gönderir.
Kod:
command /mctr: #/mctr adlı bir komut oluşturuyoruz
trigger: #Komutumuzun altındakileri tetikliyor
if player has permission "mctr.mctr": #Eğer oyuncu mctr.mctr yetkisine sahip ise
send "&bDeneme" #Oyuncuya deneme mesajı gönder
stop #Döngüyü durdur
send "&bYetkin yok" #Yetkin yok mesajı gönder
C ->
- if else kullanımı öğrendik. Alıştırma yapa yapa daha çabuk kavrarsınız eminim. Şimdi gelelim loop ve while ' ya. Öncelikle söylemem gereken bir şey var ki bunları çok abartı kullanırsanız sunucuya çok büyük laglar girebilir. Neyse başlayalım demek istediğimi konunun sonunda anlayacaksınız :).
- Loop , looplanan veriyi , oyuncuyu , bloğu veya başka bir şeyi elimize almaya sağlar. Örneğin biz bir listede sıra numaralarını almak istiyoruz verilerin. Bunun için ilk önce listeyi loopluyoruz ondan sonra kullanacağımız yerde %loop-index% yazıyoruz. Örneğin;
Kod:
command /mctrekle [<text>]: #/mctrekle [arguman] adlı bir komut oluşturuyoruz
trigger: #Komutumuzun altındakileri tetikliyor
if arg 1 is set: #Eğer argüman 1 imiz girilmiş ise (Argüman 1 = [<text>] kısmı)
add arg 1 to {liste::*} #liste adlı listeye argümanımızı ekle
send "&b%arg 1% Listeye eklendi" #Argümanımızın listeye eklendiğinin bilgi mesajını gönder
stop #Döngüyü durdur
send "&bLütfen argüman giriniz" #Lütfen argüman giriniz mesajını gönder
command /mctr: #/mctr adlı bir komut oluşturuyoruz
trigger: #Komutumuzun altındakileri tetikliyor
if {liste::*} is set: #Eğer listemiz boş değil ise
loop {liste::*}: #Listemizi loopla
send "&b%loop-index% %loop-value%" Verilerin sırası ile değerini mesaj olarak gönder örneğin /mctrekle deneme yazarsak /mctr yazdığımızda 1 deneme mesajı gönderir.
- While bir olayın gerçekleşmesi için kendini sürekli bir döngüye sokar. Ne zaman ki olay biterse while kendini durdurur. Mesela giriş yaptıktan sonra oyuncu ne zaman gamemode 1 e geçerse gamemode 0 a geçirsin diye bir kullanım olabilir örneğin;
Kod:
on join: #Ne zaman giriş yaparsa
while gamemode of player is creative: #Ne zaman oyun modu yaratıcı olursa
set gamemode of player to survival #Oyun modunu hayatta kalma yap
D ->
- Loop ile while da öğrendik şimdi sıra değişkenlerde. Değişken nedir diye soracak olursak değişken içine bir şey ekleyip çıkarabildiğimiz bir liste. Örneğin {deneme} diye bir değişkenimiz var bunun içine bir şey koyup çıkarabiliriz. Hemen örnek vereyim:
Kod:
command /degiskenekle [<integer>]: #/degiskenekle [sayı] adlı bir komut oluşturuyoruz.
trigger: #Komutumuzun altındakileri tetikliyor
if arg 1 is set: #Eğer sayı girilmiş ise
add arg 1 to {deneme} #Deneme değişkenine sayıyı ekle
send "&b%{deneme}%" #Deneme değişkenini mesaj olarak gönder
stop #Döngüyü durdur
send "&bLütfen sayı giriniz" #Lütfen sayı giriniz mesajını gönder
Rehberimi okuduğunuz için teşekkürler birilerine bir şeyler öğretebildi isem ne mutlu bana. Yakında 3. rehberi de hazırlayacağım 3. rehberde hangi konunun olsun yorum olarak yazabilirsiniz.
