Bulundu End Portalı Skripti

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

halilbey202

Somon Balığı Selam Vermeye Geldi
Katılım
9 Kasım 2019
Mesajlar
18
Elmaslar
0
Puan
6.190
Yaş
20
Her gün Saat 8'de olacak şekilde end portalının bir yere ışınlayabilir durumda olmasını fakat 10 dakika geçtikten sonra bir daha ki saat 8'e kadar portalın bir yere ışınlamaması gerekiyor böyle bir skripti olan veya yardımcı olacak birisi var mı
 
Yani istediğiniz özellik; günün belirli saatleri end portalının kullanımı ise:

Öncelikle bukkit.yml dosyasında bulunan:
settings:
allow-end: false

ayarı bu şekilde yapın, bu end'e directly olarak gitmeyi engelleyecektir. Yoksa portal kullanımı buga girecektir ve oyuncular istedikleri zaman end'e gidecektir.

Aşağıda Spoiler içinde verdiğim Skript'i ekleyin ve saati opsiyonel olarak ayarlayın. (Varsayılan 20:00 - 20:10)
Not: Saat formatı 2 rakamdan oluşmaktadır. Eğer saat sabah 5 istiyorsanız; 05 yazmalısınız.

Kod:
options:
    saat: 20

command /bölgeEnd:
    permission: op
    trigger:
        send "&aEnd bölgesi seçildi!"
        set {locate::end} to location of player

portal enter:
    wait a ticks
    set {_p} to player
    {player::cooldown::%{_p}%} is not set:
        set {player::cooldown::%{_p}%} to true

        blocksIsEndPortal({_p}) = "true":
            TimeCount() = "true":
                
                teleport {_p} to {locate::end}
                send "&aEnd bölgesine ışınlandın D-D-DOSTUM!"
                play sound "entity.enderman.teleport" at volume 0.3 at pitch 1 to {_p}
                
            else:
                send "&cPortal şuanda açık değil!"
                push the player upwards at speed 0.5
                wait a ticks
                push the player backwards at speed 0.6

        wait 2 seconds
        delete {player::cooldown::%{_p}%}

function blocksIsEndPortal(p: player) :: STRING:
    loop blocks in radius 1 around {_p}:
        add loop-block to {_blocks::*}
    {_blocks::*} contains end portal:
        set {_out} to true
    return "%{_out}%"

function TimeCount() :: STRING:
    set {_hh} to now formatted as "HH" parsed as INTEGER
    set {_mm} to now formatted as "mm" parsed as INTEGER
    
    {_hh} = {@saat}:
        {_mm} = 00 or 01 or 02 or 03 or 04 or 05 or 06 or 07 or 08 or 09 or 10:
            set {_out} to true           
    return "%{_out} ? "false"%"

Skript'i aktif ettikten sonra end dünyasına multi-verse veya bir başka dünya yönetimi eklentisi ile gidin ve daha sonra /bölgeEnd komutunu kullanarak oyunucuların ışınlanacağı bölgeyi seçin.
 
Teşekkürler ilgin için ama yenilediğim zaman skript bu tür bir hata veriyor.
ve belirttiğim saatte girmeye çalışınca bu portal açık değil diyip geri atıyor
 

Ekli dosyalar

  • 2024-08-05_14.15.42.webp
    2024-08-05_14.15.42.webp
    19,4 KB · Görüntüleme: 132
Teşekkürler ilgin için ama yenilediğim zaman skript bu tür bir hata veriyor.
Skript 2.7+ sürümünde kullanmayı deneyin. Skript'i bu sürümde test etmiştim ve gayet düzgün çalışıyordu.

İyi forumlar <3
 
Skript 2.7+ sürümünde kullanmayı deneyin. Skript'i bu sürümde test etmiştim ve gayet düzgün çalışıyordu.

İyi forumlar <3
Bahsettiğiniz versiyonu kurarım ama diğer skriptlerim bozulmaz mı?
 
2.2-dev36 yazıyor
Bu genellikle 1.8 gibi eski sürümler için kullanılan bir sürümdür. Bahsettiğim sürüm 1.13+ üzeri kullanımlar için uygundur.
Sizin taban sürümünüze uygun olarak tekrar düzenlemeler yaptım, aşağıda verdiğim kodu test eder misiniz?

Kod:
options:
    saat: 20

command /bölgeEnd:
    permission: op
    trigger:
        send "&aEnd bölgesi seçildi!"
        set {locate::end} to location of player

portal enter:
    wait a ticks
    set {_p} to player
    {player::cooldown::%{_p}%} is not set:
        set {player::cooldown::%{_p}%} to true

        blocksIsEndPortal({_p}) = "true":
            TimeCount() = "true":
                
                teleport {_p} to {locate::end}
                send "&aEnd bölgesine ışınlandın D-D-DOSTUM!"
                
            else:
                send "&cPortal şuanda açık değil!"
                push the player upwards at speed 0.5
                wait a ticks
                push the player backwards at speed 0.6

        wait 2 seconds
        delete {player::cooldown::%{_p}%}

function blocksIsEndPortal(p: player) :: STRING:
    loop blocks in radius 1 around {_p}:
        add loop-block to {_blocks::*}
    {_blocks::*} contains end portal:
        set {_out} to true
    return "%{_out}%"

function TimeCount() :: STRING:
    set {_hh} to now formatted as "HH" parsed as INTEGER
    set {_mm} to now formatted as "mm" parsed as INTEGER
    
    {_hh} = {@saat}:
        {_mm} = 00 or 01 or 02 or 03 or 04 or 05 or 06 or 07 or 08 or 09 or 10:
            set {_out} to true           
    return "%{_out}%"
 
Kod hataları düzeldi şuanda hata vermiyor ama sattinde girdiğim zaman yinede portal açık değil diyor onu nasıl çözerim
 
Kod hataları düzeldi şuanda hata vermiyor ama sattinde girdiğim zaman yinede portal açık değil diyor onu nasıl çözerim
Saat bölümüne sadece saati yazmayı deneyin. Mesela 20, 20:00 değil. Bunun dışında başka bir sorun yok ama test ettiğimiz sürümlerin farklı çalışma şekilleri olabilir.
 
Saat bölümüne sadece saati yazmayı deneyin. Mesela 20, 20:00 değil. Bunun dışında başka bir sorun yok ama test ettiğimiz sürümlerin farklı çalışma şekilleri olabilir.
Anladım saati 15 olarak ayarladım saati geldiği zaman girecek mi bakayım ona göre durum notu geçerim buraya
 
Saat bölümüne sadece saati yazmayı deneyin. Mesela 20, 20:00 değil. Bunun dışında başka bir sorun yok ama test ettiğimiz sürümlerin farklı çalışma şekilleri olabilir.
Skript hata vermiyor dediğiniz gibi saati sadece 15 yaptım ama yinede portal açık değil dedi ışınlamadı
 
Skript hata vermiyor dediğiniz gibi saati sadece 15 yaptım ama yinede portal açık değil dedi ışınlamadı
Bunu debug ile çözmemiz gerekecek. Lütfen aşağıda verdiğim Skript'i kullanarak portala giriş yapma çalışın ve sohbete düşen mesajları bana görsel olarak iletin.

Kod:
options:
    saat: 20

command /bölgeEnd:
    permission: op
    trigger:
        send "&aEnd bölgesi seçildi!"
        set {locate::end} to location of player

portal enter:
    wait a ticks
    set {_p} to player
    {player::cooldown::%{_p}%} is not set:
        set {player::cooldown::%{_p}%} to true

        blocksIsEndPortal({_p}) = "true":
            TimeCount() = "true":
                
                teleport {_p} to {locate::end}
                send "&aEnd bölgesine ışınlandın D-D-DOSTUM!"
                
            else:
                send "&cPortal şuanda açık değil!"
                push the player upwards at speed 0.5
                wait a ticks
                push the player backwards at speed 0.6
        send "&6End portalı tutucu: %blocksIsEndPortal({_p})%" to {_p}   
        send "&eZaman tutucu: %TimeCount()%" to {_p}   
        wait 2 seconds
        delete {player::cooldown::%{_p}%}

function blocksIsEndPortal(p: player) :: STRING:
    loop blocks in radius 1 around {_p}:
        add loop-block to {_blocks::*}
    {_blocks::*} contains end portal:
        set {_out} to true
    return "%{_out}%"

function TimeCount() :: STRING:
    set {_hh} to now formatted as "HH" parsed as INTEGER
    set {_mm} to now formatted as "mm" parsed as INTEGER
    
    {_hh} = {@saat}:
        {_mm} = 00 or 01 or 02 or 03 or 04 or 05 or 06 or 07 or 08 or 09 or 10:
            set {_out} to true
    send "&bSaat: %{_hh}% ,&dDakika: %{_mm}%" to all players
    return "%{_out}%"
 
Bunu debug ile çözmemiz gerekecek. Lütfen aşağıda verdiğim Skript'i kullanarak portala giriş yapma çalışın ve sohbete düşen mesajları bana görsel olarak iletin.

Kod:
options:
    saat: 20

command /bölgeEnd:
    permission: op
    trigger:
        send "&aEnd bölgesi seçildi!"
        set {locate::end} to location of player

portal enter:
    wait a ticks
    set {_p} to player
    {player::cooldown::%{_p}%} is not set:
        set {player::cooldown::%{_p}%} to true

        blocksIsEndPortal({_p}) = "true":
            TimeCount() = "true":
               
                teleport {_p} to {locate::end}
                send "&aEnd bölgesine ışınlandın D-D-DOSTUM!"
               
            else:
                send "&cPortal şuanda açık değil!"
                push the player upwards at speed 0.5
                wait a ticks
                push the player backwards at speed 0.6
        send "&6End portalı tutucu: %blocksIsEndPortal({_p})%" to {_p}  
        send "&eZaman tutucu: %TimeCount()%" to {_p}  
        wait 2 seconds
        delete {player::cooldown::%{_p}%}

function blocksIsEndPortal(p: player) :: STRING:
    loop blocks in radius 1 around {_p}:
        add loop-block to {_blocks::*}
    {_blocks::*} contains end portal:
        set {_out} to true
    return "%{_out}%"

function TimeCount() :: STRING:
    set {_hh} to now formatted as "HH" parsed as INTEGER
    set {_mm} to now formatted as "mm" parsed as INTEGER
   
    {_hh} = {@saat}:
        {_mm} = 00 or 01 or 02 or 03 or 04 or 05 or 06 or 07 or 08 or 09 or 10:
            set {_out} to true
    send "&bSaat: %{_hh}% ,&dDakika: %{_mm}%" to all players
    return "%{_out}%"
kodu denedim fakat bunu girince artık portal kapalı bile demiyor ışınlamıyorda
 
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