Hoş Geldin!

MinecraftTR.COM - Türkiye'nin en büyük minecraft platformu.

MinecraftTR.COM minecraftla alakalı araçları kullanıma sunuyor. Her şey burada; skript, plugin, doku paketleri, shaderlar, modlar, mcpe, minecraft sunucu kurulumu ve sunucularınızla alakalı yaşadığınız sorunları çözmenize yardımcı olabilecek rehberler ve tüm minecraft haberleri.

Sitemize kayıt olarak topluluğumuzun diğer üyeleriyle tartışabilir, paylaşabilir ve özel mesaj gönderebilirsiniz.

Giriş Yap veya Kayıt Ol!
batihost minecraft server kirala
Minecraft Sunucu Kiralama
MinecraftTR Reklam Alanı
MinecraftTR Reklam Alanı
MinecraftTR Reklam Alanı
MinecraftTR Reklam Alanı
Reklam satın al!

Paylaşım TuSKe - Gui Yöneticisi | Gelişmiş Gui - REHBER

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Sevmek sevmekse eğer, sevmek sevmemektir.
Katılım
6 Haziran 2018
Mesajlar
82
Tepki puanı
95
Puanları
1,365
Discord
vicdum#0654
Merhaba, @Blueyescat daha önce bu konu hakkında bir rehber ( ) hazırlamıştı, ancak araştırdığım kadarıyla bulabildiğim gelişmiş gui için bir rehber konusu bulunmamakta, bende orijinal rehber konusunu ( ) Türkçe'ye çevirmek istedim.

Gelişmiş GUI - Daha fazla kaynak ile daha hızlı ve düzgün GUI yaratmanıza izin verir.

Kod kalıpları;

Bash:
virtual %inventorytype% [inventory] [with size %-number%] [(named|with (name|title)) %-string%]
virtual %inventorytype% [inventory] [with %-number% row[s]] [(named|with (name|title)) %-string%]
virtual %inventorytype% [inventory] [(named|with (name|title)) %-string%] with size %-number%
virtual %inventorytype% [inventory] [(named|with (name|title)) %-string%] with %-number% row[s]

create [a] [new] gui [[with id] %-string%] with %inventory% [and shape %-strings%]
(change|edit) %guiinventory%

Kod:
%inventorytype% » Envanter Tipi
%-number% » Sayı
%-string% » Yazı

Bash:
(make|format) next gui [slot] (with|to)
(make|format) gui [slot] %strings/numbers% (with|to) %itemstack%

Kod:
%itemstack% » Eşya
%strings/numbers% » Yazı / Sayı

Bash:
#Gui kapandıktan sonra kod işlemek için kullanılır.
run (when|while) clos(e|ing) [gui]

Bash:
#Gui'nin ayarlarını değiştirir, mesela ismi, büyüklüğü ya da eşyaların yeniden sıralanması.
change gui inventory to name %string% and size %number%
change gui shape [of (items|actions)] to %strings%
change gui properties of inventory to name %string% [with %-number% row[s]] and shape [of (items|actions)] to %strings%

Kod:
%string% » Yazı
%number% » Sayı

Bash:
# Genel İfadeler
last[ly] [created] gui # Son oluşturulan GUI'yi döndürür, sadece event başına çalışır. (Aynı lokal değişkenler gibi ({_x}) )
gui [with id] %string% # Verilen id'ye sahip GUI'yi döndürür.

# GUI İfadeleri
# Tıklanan slot'un sayısını döndürür.
gui-slot

# Her iki envanterin işlenmemiş slot'unu döndürür.
# 0'dan <Üst envanterin büyüklüğü (GUI)> GUI'yi ifade eder.
# <Üst envanterin büyüklüğü (GUI) + 1> ve yukarısı oyuncunun envanterini ifade eder.
# İfadelerde kullanılmaz fakat, sadece bir seçenek.
gui-raw-slot

# Tıklama tipi eğer 'number key' ise hotbar slotunu belirtir.
gui-hotbar-slot

# Bu eylemdeki GUI envanteri.
gui-inventory

# Envanter eylemleri.
gui-inventory-action

# Tıklama tipi.
gui-click-(type|action)

# İmleçtek üzerindeki eşya ve tıklanan slot'daki eşya, bu ifadeler eklenebilir/azaltılabilir/belirlenebilir/temizlenebilir.
gui-cursor
gui-[(clicked|current)-]item

# Slot tipi. Kullanışlı değil, sadece ekstra bir değer.
gui-slot-type

# Slot'a tıklayan oyuncu.
gui-player

# Şuan GUI'yi görüntüleyen oyuncuların tamamı.
gui-players

# Envanterin ismi, basit olarak 'name of event-inventory'
gui-inventory-name

# Slot'un id'si.
gui-slot-id

# Onunla ilgili seçenekleri değiştirebileceğiniz gui nesnesi.
gui

Bash:
gui inventory: GUI enventerini belirtir, sadece önceden oluşturulmuş bir gui'yi düzenleme için kullanılır.

click (type|action): Envanterdeki bir tıklamayı ifade eder. 1.7.4-beta / 1.7.5'ten başlayarak, uyumluluk için Bensku'nun değerlerini de kullanır.
Değerler: left [mouse button], (shift left|left mouse button with shift), right [mouse button], (shift right|right mouse button with shift), middle [mouse button], number key, double click [using mouse], drop [key], (control drop|drop key with control)

inventory action: Envanterdeki bir eylemi ifade eder. 1.7.4-beta / 1.7.5'ten başlayarak, uyumluluk için Bensku'nun değerlerini de kullanır.
Değerler: nothing, pickup all, pickup some, pickup half, pickup one [item], place all, place some, place one, swap with cursor, drop all [from] cursor, drop one [from] cursor, drop all [from] slot, drop one [from] slot, (move to other inventory|instant move), hotbar move and readd, (hotbar swap|swap with hotbar), clone stack, collect to cursor, unknown

slot type: Envater tıklamasındaki slot'un türünü ifade eder.
Değerler: armor, container, crafting, fuel, outside, quickbar, result

GUI Nasıl Oluşturulur ?

İlk olarak bu yeni gui sistemi gui oluşturmak için, farklı bir format kullanıyor. Diğer gui sisteminde bir envanter açarak içine eşyalar konuluyordu, şimdi bir gui oluşturman gerekli;

Bash:
#Kod Kalıbı: create [a] [new] gui [[with id] %-string%] with %inventory% [and shape %-strings%]
create a gui with virtual chest with 6 rows named "&4Sunucu Seçimi"

Daha sonra yeni bir şey bizi karşılıyor: etki içerisinde etki. Basit olarak kod çalıştırabilen etkilerdir. Bu fikir ile öncelikle Make GUI etkisini kullanmamız gerekiyor.

Bash:
create a gui with virtual chest with 6 rows named "&4Sunucu Seçimi":
    #Kod Kalıpları:
    # (make|format) next gui [slot] (with|to) %itemstack%
    # (make|format) gui [slot] %strings/numbers% (with|to) %itemstack%
    make next gui with diamond sword named "&4PvP server" # Boş olan bir sonraki slot'a koyacak.
    make next gui with grass named "&aSkyBlock"

Şimdiye kadar oluşturduğumuz kodlar ile çalınamayacak bir eşya koymaktan fazlasını yapamaz. (Basit gui'deki to do nothing kalıbı gibi). Şimdi fonksiyon ya da komut çalıştırmak yerine doğrudan skript kodunu kullanabileceğiz. Sırada oyuncu tıkladığında çalışması için Make GUI etkisinin altına kodlarımızı ekleyelim.

Bash:
create a gui with virtual chest with 6 rows named "&4Sunucu Seçimi":
    make next gui with diamond sword named "&4PvP server":
        send "Pvp sunucusuna yönlendirileceksiniz"
        execute player command "/server pvp"
    make next gui with grass named "&aSkyBlock":
        send "Skyblock sunucusuna yönlendirileceksiniz"
        execute player command "/server skyblock"

Şimdi tek yapmamız gereken oluşturduğumuz gui'yi oyuncuya göstermemiz, bunun için last[ly] [created] gui ifadesi ile skript'in open inventory efektini birleştireceğiz.

Bash:
open last gui to player

Ve herşey tamam, en basit GUI'yi yaptık. Kodlarınız aşağıdaki gibi olmalı;

Bash:
command /sunucuseç:
    trigger:
        create a gui with virtual chest with 6 rows named "&4Sunucu Seçimi":
            make next gui with diamond sword named "&4PvP server":
                send "Pvp sunucusuna yönlendirileceksiniz"
                execute player command "/server pvp"
            make next gui with grass named "&aSkyBlock":
                send "Skyblock sunucusuna yönlendirileceksiniz"
                execute player command "/server skyblock"
        open last gui to player

Aynı zamanda gui kapatıldıktan sonra da kod yürütebilirsin.

Bash:
create new gui with virtual chest named "Sırt Çantası":
    run when close the gui: #Aşağıdaki kod gui temizlenmeden önce yürütülecek.
        set {Variable::%gui-player%::*} to all items of gui-inventory


Envanter tıklama değerleri

Şimdi uygun bir olay olmasa bile, bunu destekleyen eklentin varsa herhangi bir olay kullanabilirsin.

Bash:
create a gui with virtual chest with 6 rows named "&4Sunucu Seçimi":
    make next gui with diamond sword named "&4PvP server":
        send "%clicked item%" #Umbaska

Fakat onlara bağlı kalmamanız için, TuSKe'nin de onları kapsayan ifadeleri vardır (Bkz: GUI İfadeleri).

Bash:
create a gui with virtual chest with 6 rows:
    make next gui with glass:
        if gui-click-action is left mouse buttom or right mouse buttom:
            set gui-clicked-item to gui-cursor-item
            set gui-cursor-item to air
            # Sadece bu iki ifade değiştirilebilir.


Global GUI'ler

Artık id vererek global guiler oluşturabilirsin.

Bash:
on skript load:
    create a gui with id "HUB" with virtual chest with 6 rows named "&4Sunucu Seçimi":
        make next gui with diamond sword named "&4PvP server":
            send "Pvp sunucusuna yönlendirileceksiniz"
            execute player command "/server pvp"
        make next gui with grass named "&aSkyBlock":
            send "Skyblock sunucusuna yönlendirileceksiniz"
            execute player command "/server skyblock"

command /sunucular:
    trigger:
        open gui "HUB" to player

NOT: Bütün GUI'ler (Global GUI'ler ve Lokal GUI'ler) aynı envanteri paylaşır. Yani bir oyuncu için bir eşyayı değiştirirseniz, bütün oyuncular için değişecektir.

Global GUI'lerin en iyi kullanım alanı statik guilerdir (Sunucu seçimi ya da faction'dan değerler göstermek gibi), bunlar oyuncu başına değişen değerlere sahip değildir. Ancak yinede oyuncular için global guiler oluşturabilirsiniz ama oyuncu çıktığında ve ya artık kullanılmadığında silmeyi unutmayın.


Bash:
on quit:
    delete gui "PlayerStats.%player%"
    #Bir oyuncu için açıksa GUI'yi kapatacak ve onu kaldıracaktır.


GUI Düzenleme

Bir guiyi düzenlemek isterseniz mesela slot'ları yeniden düzenlemek ya da ayarlarını değiştirmek gibi, yeniden oluşturmak yerine düzenleyebilirsiniz.

Bash:
command /edit:
    trigger:
        edit gui "HUB":
            #Bazı oyuncularda açık olması durumunda otomatik olarak değişecektir
            make gui 0 with diamond sword named "PvP sunucusu bakımda."

Yazı Tabanlı Slot ( Şekiller )

Artık guilerinizi basit ve kolay bir şekilde değiştirmek için şekilleri kullanabilirsiniz. Her bir karakter guideki bir slot'u temsil eder. Bununla dinamik guiler oluşturmak daha kullanışlıdır.

Bash:
#Kod kalıbı: create [a] [new] gui [[with id] %string%] with %inventory% [and shape %strings%]
add "xxxxxxxxx" to {_shape::*}
add "x--------x" to {_shape::*}
add "xxxxxxxxx" to {_shape::*}
create a gui with virtual chest and shape {_shape::*}

Yukardaki satırların bir envanteri temsil ettiğini düşünün, Aynı karaktere sahip slotlar aynı eşyaya sahip olacak ve aynı işlemi gerçekleştirecektir.

Bash:
add "xxxxxxxxx" to {_shape::*}
add "x--------x" to {_shape::*}
add "xxxxxxxxx" to {_shape::*}
create a gui with virtual chest and shape {_shape::*}:
    make gui slot "x" with iron ingot
    make gui slot "-" with diamond

.


GUI Ayarlarını Değiştirme

Bu etkiler guinizi daha düzgün hale getirmenize yardımcı olur,

Bash:
change gui inventory to name %string% and size %number%
change gui shape [of (items|actions)] to %strings%
change gui properties of inventory to name %string% [with %-number% row[s]] and shape [of (items|actions)] to %strings%

Birincisi guinin adını ve boyutunu (eğer sandık tipindeyse) düzenler. İkincisi daha karmaşıktır, Eşyaların pozisyonları, eylemleri ya da her ikisini birden düzenlemek için kullanılır. Bir örnek;

Bash:
create new gui with id "Örnek" with virtual hopper and shape "ABCDE": #Şekli bir satırda da belirleyebilirsin.
    loop 9 times:
        make next gui with a random item of all items
open last gui to player

change gui shape of items <…> kullanırken, x slotundan alıp, y slotuna koyacağı bir şekil kullanmalısınız. Örneğin EABCD şeklini kullanırsan, E ilk slota yerleşecek, diğer eşyalar sağa kayacaklar.

Bash:
edit last gui:
    loop 10 times:
        wait 1 second
        change gui shape of items to "EABCD"

change gui shape of actions <…> kullanmak ise sadece eylemlerin yerini değiştirir. Eğer iki slotluk bir guiye sahipsek ve şekli AB ise eylemleri BA olarak değiştirdiğimizde slot 0, slot 1'in eylemlerini gerçekleştirecektir.

change gui shape to <…> ise ikisini beraber değiştirecektir.

Son kod kalıbı ise basit olarak diğer iki kod kalıbının birleşmesidir.



Bilmeniz Gerekenler

  • Oyuncu tıkladığında çalıştırmak için kod içerisinde olay değerlerini kullanamazsınız.
    • Bunu önlemek için, bir değişken ayarlamanız gerekir:
    • Bash:
      command /örnek <text>:
      [CENTER]    trigger:
              set {_arg} to arg
              create new gui with virtual chest:
                  make gui slot 0 with diamond:
                      send "%{_arg}%"
      [/CENTER]
    • Kodun içindeki değişkenler "lokal slot değişkeni" olarak çalışır. Bu ne mi demek? Oyuncu her tıkladığında aynı değişkeni koruyacaktır:
    • Bash:
      create gui with virtual chest:
          make gui slot 0 with diamond:
              add 1 to {_count}
              send "%{_count}%"
    • Değişkenler, aynı id ile belirlenmemişse, slotlar arasında paylaşılmaz.
    • Bash:
      command /örnek2:
          trigger:
              set {_var} to 1
              create new gui with virtual chest:
                  loop integers from 0 to 35:
                      make gui slot loop-integer with diamond:
                          add 1 to {_var}
                          send "%{_var}%"

Bu konu eklentinin 29.07.2018 tarihindeki orijinal dökümasyonu kullanılarak oluşturulmuştur. Konuda yanlış bir çeviri ve ya bir hata görürseniz lütfen belirtin ve düzelteyim.
 
Moderatörün son düzenlenenleri:
Yeni bir Steve doğdu!
Katılım
1 Haziran 2018
Mesajlar
41
Tepki puanı
37
Puanları
0
Discord
RaeLight#1932
Bilmeyenler için faydalı bir konu olmuş
 
Yeni bir Steve doğdu!
Katılım
3 Haziran 2018
Mesajlar
62
Tepki puanı
20
Puanları
0
Discord
Baya Başarılı Bir Rehber Olmuş, Ellerin Dert Görmesin, Benim gibi Bİlmeyenler içinde, yararlı :)
 
Yeni bir Steve doğdu!
Katılım
27 Temmuz 2018
Mesajlar
12
Tepki puanı
6
Puanları
0
Discord
Tebrikler Gayet başarılı
 
Yeni bir Steve doğdu!
Katılım
30 Temmuz 2018
Mesajlar
8
Tepki puanı
6
Puanları
0
Discord
Bilmediğim bir konuydu TuSKe başarılı teşekkürler
 
Seçkin madenci.
Katılım
3 Temmuz 2018
Mesajlar
51
Tepki puanı
40
Puanları
1,025
Discord
Bilmeyenler için çok güzel rehber, başarılar dilerim.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

Üst