Komutları anlamayı sağlamak için bazı bilinmesi gereken noktalar

BerkY

Kömür madencisi
Katılım
6 Ara 2019
Mesajlar
11
Beğeni
4
Puanları
30
Genelde pek çok kişi komutları kullanmak istiyor ama yardım komutunun açıklamasından anlamayabiliyor veya komutlarda kullanılan ögeleri bilemeyebiliyor ve başkalarından gördüklerini kopyalamakla sınırlı kalıyor. Bu durumda olmamak için komutların sözdizimini bilmek ve bunun yanında dediğim gibi sözdiziminden de önce bazı kavramları bilmek gerekiyor. Bu kavramları açıklayarak devam ediyorum.

Tick: Oyunun içindeki bir zaman birimidir. Saniyenin 1/20'sine karşılık gelir.
(Bu tanım oyun tick'i içindir. Redstone tick'leri 1/10 saniye yani 2 oyun tick'i sürer. Redstone ile çalışılmadığı sürece tick her zaman oyun tick'ini kast eder.)
Entity
Entity varlık diye çevrilebilir. Entity ne olur onu açıklamaya gelince oyunda bloklar ve partiküller dışında görebileceğiniz her şey demek biraz eksik de olsa basit bir açıklama olur.
1. görselde pek çok entity var ve
2. görselde F3+B basılarak bu entity'lerin hitbox'ları gösteriliyor.

Hitbox: Entity'lerin kapladığı hacmi gösteren geometrik şekiller. Vurarak zarar verebildiğimiz entity'ler aslında hitbox'larının herhangi bir yerine vurarak zarar alırlar.




Yukarıda gösterilen entity harita değil eşya çerçevesi.
2752


2753


2754


Son 3 ekran görüntüsünde görüldüğü gibi; yerde duran eşyalar, atıldığı hallerinde (daha bloğa çarpıp patlamamış olan) olan Splash Potion'lar da Lingering Potion'lar da entity'dir. Ayrıca Lingering Potion'lar patlayınca bir iksir bulutu oluşturur (hitbox'u ve kapladığı alan zamanla daralıyor ve iksir etkisini o buluta girerek alıyorsun) ve bu bulut da entity'dir.

Koordinatlar
Komutlardaki koordinatlar genel kavramdan pek de farklı değil. Belirli bir konumun başka bir konuma göre gösterimi oluyor.
Oyunda koordinat gösteriminde kullanılan 3 doğrultu var, X, Y ve Z doğrultuları. X doğrultusu doğu-batı, Y doğrultusu yukarı-aşağı, Z doğrultusu kuzey-güney yönlerindedir.
2699


Yün blokları X doğrultusunu, glazed terracota blokları Y doğrultusunu, terracota blokları Z doğrultusunu gösteriyor.
Mavi bloklar pozitif yönü, kırmızı bloklar negatif yönü gösteriyor.
2700


Örneğin, burada farklı bir açıdan bakmam bu yönleri değiştirmiyor. Yönleri F3 basarak görebiliyorsunuz.

2702

Towards positive X diyor yani baktığım yönde gidersem X artar
Yün blokları X doğrultusunu
Mavi bloklar pozitif yönü
2704


Öncekinde X 5.51 idi ancak pozitif yönde ilerleyince 6.3 oldu, yani beklediğimiz gibi arttı.

2705


Oyuncuyu üst üste 2 ayrı blok olarak düşünürsek oyuncunun koordinatlarını veren kısım oyuncuyu temsil eden alttaki blok olacaktır o da oyuncunun ayaklarının olduğu yer.
Yeşil terracota bloğundaki ilk konum (8.314, 10, -13.527)

2706



Magenta terracota bloğundaki son konum (10.286, 12, -15.561)

yer değiştirmemizi göstermek için koordinatları yazıyorum
ilk (8.314, 10, -13.527)
son (10.286, 12, -15.561)
yer değiştirmede her doğrultudaki değerlerin farkı kendi arasında olacak ve son konumdan ilk konum çıkarılacak
yer değiştirme (1.972, 2, -2.034)
yani oyuncu X doğrultusunda pozitif gitmiş, Y doğrultusunda da pozitif gitmiş ama Z doğrultusunda negatif gitmiş oluyor

2707



2 blok arasındaki gidişi göstermek için arkadaki gibi blokları yerleştirdim
yani bu da +X +Y ve -Z yönlerinde gittiğimizi doğruluyor

Şimdi ise blokların koordinatlarının gösterimi

2708


Buradaki koordinatlar hep tam sayı olmuş çünkü bloğun köşesindeyim. Blokların (çoğunun) tüm kenarları 1 birim uzunluktadır. Yani bloğun tam orta noktası küpün yüzlerine 0.5 birim uzaklıkta ve yüzlerdeki karelerin orta nokları da kenarlara 0.5 birim uzaklıkta. O zaman benim bloğun ortasında durmam için X doğrultsunuda 0.5 blok pozitif yönde ve Z doğrultusunda 0.5 birim negatif yönde gitmem gerek(arkaya bakarak yönleri ve doğrultuları bilebilirsin).
2709


Şu anda bloğun tam ortasında duruyorum ve beklediğimiz gibi oldu öncekine göre X değerimiz 0.5 arttı Z değerimiz 0.5 azaldı.
2742

F3 basıp bir bloğa bakarak onun koordinatlarını öğrenebiliriz.
Bu bloğun üzerinde durmam demek onun 1 blok üstünde ayaklarımın olması demek yani üstünde durursam Y değerim 6 olacak. X ve Z değerleri bu bloğun değerleri en küçük olan köşesine ait (yukarıda bahsedildiği gibi) yani o zaman bu bloğun ortasında durursam X değerim 7 değerinden 0.5 fazla olarak 7.5 olmalı. Z değerim ise -14 değerinden 0.5 fazla olarak -13.5 olmalıdır.
2743

Tam olarak ortasında duramasam da beklediğimiz değerlere yakın durdum.

2744

Magenta terracota bloğunun koordinatları (10, 6, -13) önceki görsellerde baktığım yeşil terracota bloğunun koordinatları ise (7, 5, -14) idi.
Son konumun koordinatlarından ilk konumunkini çıkararak ne kadar gidildiğine bakalım.
(10 - 7, 6 - 5, -13 - (-14))
(
3, 1, 1)
2746


2747


Şimdi yeşil terracota bloğunun yerine komut bloğu koyuyorum ve komut bloğunun üstüne de kumtaşı.
2748

Kumtaşının koordinatları (7, 6, -14) komut bloğu da 1 altında olduğundan X ve Z değerleri aynı Y değeri 1 az yani (7, 5, -14).
Şimdi koordinatları kullanarak bir komut örneği göstereceğim bu komutu bilmenize şimdilik gerek yok tek bilmeniz gereken bu komut ile koordinat verip o koordinattaki bloğu istediğiniz bloğa çevirebiliyor olmanız.
Komut bloğundaki komut:
Kod:
setblock 7 6 -14 stone
Komut bloğu çalışınca verdiğimiz koordinattaki blok taş olacak.
2749

Şimdi komut bloğundaki komutu değiştirip koordinatların kullanımının başka bir şeklini göstereceğim.
Değiştirmek istediğimiz bloğun koordinatı (7, 6, -14) komut bloğunun (yani komutun çalıştığı yerin, bunu diyorum çünkü komutlar entity'lerin koordinatlarında da çalıştırılabiliyor) koordinatı (7, 5, -14)
Burada son konum komut ile eylemi (blok değiştirme) gerçekleştireceğimiz konum (yani konulacak bloğun olacak konum). İlk konum ise komutun çalıştığı konum (bu durumda komut bloğunun konumu).
Çıkarma yapılınca sonuç (0, 1, 0)
Bu şu demek: Komut bloğundan X olarak 0 git, Y olarak +1 git, Z olarak 0 git.
Bu sefer komut bloğu prismarine bloğu koyacak koordinatlar ve koyulacak blok için komutun son hali:
setblock ~0 ~+1 ~0 prismarine
Komutun şu anki haliyle ilgili demem gereken iki şey var. Öncelikle 0 yazmak yerine boş bırakabilirisiniz, ikinci olarak da pozitif olarak gidilecekse başına + koymayın (örneğin burada direkt "1" yazın) öyle çalışmaz (işaret sadece negatiflere koyuluyor).
Şimdi komut bloğunu çalıştıralım.
2750


Yine komut bloğu 1 üstündeki bloğu değiştirdi. Koordinat gösterimi 3 şekilde oluyor:
1) Direkt sayıları vererek
2)Komutun çalıştırıldığı konuma göre bağıl olarak (~ işareti ile)
3)Komutun çalıştırıldığı entity'nin baktığı yöne göre (bu da ^ işareti ile oluyor bunu daha entity'lerde komut çalıştırmayı göstermeden anlatamam)

Not: ~ işareti Alt Gr + Ü ile elde edilebilir.

Komut Bloğu Türleri(Ayarlamaları)
Komut blokları aktifleşme şekillerine göre iki, rengine göre üç, çalışma koşullarına göre iki tane türe sahip.
Aktifleşme şekillerine göre türler: needs redstone(redstone ile aktifleştirilmeli), always active.
Always active için açıklama yapmam gerektiğini düşünüyorum yanlış anlaşılmalar olabiliyor. Always active evet her zaman aktif diye çevriliyor ama aktif ile denmek istenen sürekli çalışma değil redstone anlamında aktifleştirilme.
Bu yazının konusu redstone olmasa da bu konuya değinmeden sıkıntı olacağını düşünüyorum kısaca anlatayım.
2779

Bu düğmeye basarsam, purpur bloğu güçlendirilir(direkt olarak redstone sinyali almaya güçlendirme deniliyor) ve redstone mekaniklerine uyacak şekilde yanlarındaki blokları aktifleştirir(güçlendirilmiş bloklar yanlarındaki güçlendirilmemiş blokları aktifleştirebilir). Purpur bloğu da dropper olsaydı düğmeye basmak onu güçlendirecekti ve redstone sinyali aldığı için aktifleşecekti ve çalışacaktı ve yine yanlarındaki blokları aktifleştirecekti böylece 2 dropper da çalışacaktı. Yani; güçlendirilmiş direkt redstone sinyali alan, aktifleştirilmiş ise redstone sinyali alıp almaması önemli olmadan çalışma potansiyeli bulunduran bloklara deniyor.
Güçlendirilmiş bloklarin hepsi aynı zamanda aktifleştirilmiştir ama bir blok güçlendirilmeden aktifleştirilebilir(yanındaki blok güçlendirilmiş olabilir ya da komut bloğunda olduğu gibi always active seçeneği işaretlenmiştir)
Düğmeye basınca purpur bloğu güçlendirilmiş ve aktifleşmiş oluyor ama redstone bu bloğun işine yaramadığından bir şey olmuyor.
Komut bloğundaki always active de bu şekilde: Komut bloğu güçlendirilmiş olmadan aktifleştiriliyor(yani always active ayarındaki bir komut bloğunun yanına redstone ile çalışan bir blok koysanız onları aktifleştirmez).

Evet, konumuza dönelim always active komut bloğunu her zaman aktif tutuyor. Yani her zaman çalışma potansiyeli var.
Renklerine göre türler:
Impulse, Chain, Repeat
Impulse: Aktifleştiğinde sadece 1 kere çalışır. Aktifleşmesinden 1 tick sonra çalışır.
Repeat: Aktif olduğu sürece her tick çalışır. Yani her saniye 20 kere çalışması demek.
Chain: Chain komut blokları adından da anlaşılabileceği gibi zincirleme çalışır. Tek başlarına çalışmazlar. Aktif ise arkasındaki komut bloğunun çalışıp çalışmadığını kontrol eder, eğer arkasındaki komut bloğu çalışmış ise kendisi de çalışır.
Chain komut bloğumuzun arkasında bir impulse komut bloğu olsun. Impulse komut bloğu ve chain komut bloğunun ikisi de aktif ediliyor sonrasında olacak olaylar:
Impulse komut bloğu çalışır
Chain komut bloğu aktif olduğu için arkasındaki bloğun çalışmasını kontrol eder ve çalıştığını görür kendisi de çalışır.

Bu sefer chain komut bloğumuzun arkasında repeat komut bloğu olsun ve ikisi de aktifleşsin. Bu durumda olacak olaylar:
Repeat komut bloğu aktifleşti ve ilk tick'inde çalıştı
Chain komut bloğu aynı tick içinde arkasındaki komut bloğunu kontrol etti ve çalıştığını gördü çalıştı
Repeat komut bloğu hala aktif olduğu için 2. tick'te yine çalışıyor.
Chain komut bloğu bir daha kontrol ediyor yine çalışıyor
...

Yani chain komut bloklarının arkasına repeat komut bloğu koyarsak, chain komut blokları da her tick (saniyede 20 kere) çalışır. Çünkü arkasındaki komut bloğunu hep kontrol ediyor ve o saniyede 20 kere çalışıyor her çalışmasında chain de çalışacağından o da 20 kere çalışmış oluyor.
Çalışma koşullarına göre komut blokları: unconditional, conditional
Conditional: Koşullu demek. Aktifleşmişse arkasındaki komut bloğunu kontrol ettirir. Eğer arkasındaki komut bloğu eyleminde başarılı olmuşsa çalışır, başarısız ise çalışmaz.
Örneğin; arkasındaki komut bloğu (4,3,5) koordinatındaki bloğu taş yapsın. Eğer komut bloğu çalışıp o bloğu taş yapmaya çalıştıysa ama o blok zaten taş idiyse komut bloğu başarısız olmuş olur ve conditional ayardaki komut bloğu çalışmaz. O blok taş olmasaydı, komut bloğu çalışınca başarılı olacaktı ve conditional olan komut bloğumuz çalışabilecekti.

Unconditional: Koşulsuz demek. Çalışmak için arkasındaki komut bloğunun başarısına bakmaz, aktifleşmişse renginin özelliğine göre çalışır.
 

Ekli dosyalar

Son düzenleme:
Üst