Rehber Skript Rehberi Ders #2 - By xBuhariPvP

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Buhari

mbuharigkz.com
Yönetici
Onaylı Satıcı
Hosting Görevlisi
Katılım
6 Eylül 2017
Mesajlar
2.057
Elmaslar
1.248
Puan
18.150
Discord İzni
Minecraft
xBuhari

Discord:

xBuhari

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.
 

Hazır olan Skript dosyalarını kurcalarken bazı hatalarla karşılaşıyordum. Sanırım bu konu sayesinden birkaç hatanın üstesinden gelebileceğim.
 
Cidden Yararlı olmuş. Başarılar.
 
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
Bu kadar uzatmak yerine;
Kod:
command /mctr:
    permission: mctr.mctr
    permission message: &bYetkin yok!
Bu şekilde yapıp hem kodu kısaltıp hem zamandan kazanırsınız. Aynı şekilde,
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
Kodu bu kadar uzatıp, sürekli kontol ettirmeyede gerek yok. On gamemode change eventi ile kontrol edebilirsiniz. (
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
). Ama bunlar sadece rehber olduğu için bir şey demeyeceğim, güzel anlatmışsın ancak konu düzenine biraz daha dikkat etmeni öneririm. Başarılar...
 
Moderatör tarafından düzenlendi:

Hazır olan Skript dosyalarını kurcalarken bazı hatalarla karşılaşıyordum. Sanırım bu konu sayesinden birkaç hatanın üstesinden gelebileceğim.

Yararlı olduysa ne mutlu bana..

Cidden Yararlı olmuş. Başarılar.
Teşekkürler.

Bu kadar uzatmak yerine;
Kod:
command /mctr:
    permission: mctr.mctr
    permission message: &bYetkin yok!
Bu şekilde yapıp hem kodu kısaltıp hem zamandan kazanırsınız. Aynı şekilde,

Kodu bu kadar uzatıp, sürekli kontol ettirmeyede gerek yok. On gamemode change eventi ile kontrol edebilirsiniz. (
Değerli ziyaretçimiz, içeriği görebilmek için şimdi giriş yapın veya kayıt olun.
). Ama bunlar sadece rehber olduğu için bir şey demeyeceğim, güzel anlatmışsın ancak konu düzenine biraz daha dikkat etmeni öneririm. Başarılar...
Evet öyle daha kısa olabilir amacım if else kullanımını göstermekti. Diğerinde de aynı şekilde while kullanımını göstermek :). Konu düzenini 3. rehberde daha farklı yapmayı düşünüyorum teşekkür ederim.
 
Sonunda beklenen konu :) Yararlı olmuş, umarım devamı gelir.
 
Eline sağlık, çok güzel olmuş fakat kullandığın renkleri ve konu düzenini değiştirmeni öneririm.
 
Sayende 2-3 satır yazmayı öğrendim. O zaman bende sana bilgili olduğum yerden öneri yapayım. Yazıları rengarenk yapmak göz alıyor, sadece başlıkları renklendirirsen daha rahat okunur, süper.
 
Sayende 2-3 satır yazmayı öğrendim. O zaman bende sana bilgili olduğum yerden öneri yapayım. Yazıları rengarenk yapmak göz alıyor, sadece başlıkları renklendirirsen daha rahat okunur, süper.
Yorumun için teşekkürler 3. rehberde renkleri biraz daha azaltayım.
 
Gerçekten yararlı bir konu ve sade bir anlatım yapmışsın başarılar
 
Çok basit ve aynı şeyleri yazmışsın ayriyetten stop komudu bu tarz yerlere eklenmiyor mesaj gönderirken stopa gerek yok. Ortada bir loop olması gerek :)
 
Çok basit ve aynı şeyleri yazmışsın ayriyetten stop komudu bu tarz yerlere eklenmiyor mesaj gönderirken stopa gerek yok. Ortada bir loop olması gerek :)
Skriptti deneyebilirsiniz. Else kullanmaktansa stop kullanmayı tercih ederim.
 
Yararlı, teşekkürler
 
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