Skript Paylaşımı Süreli Uçma Skripti

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

Kaiys

Zombi Geldi, Beni Yedi
Katılım
10 Mayıs 2021
Mesajlar
234
Elmaslar
107
Puan
6.850
Yaş
21

Discord:

kaiys

Selamlar, sizlere kendimi geliştirme amaçlı yapmış olduğum ilk skriptim olan süreli uçma skriptini paylaşacağım
Eğer bir hata bulursanız veya öneriniz olursa lütfen yazınız benim için oldukça önemli.
Umarım işinize yarar :)


:Komutlar:
ucus_bilgi.png

/ucus
ucus_menu.png

/ucus ac
ucus_ac.png


/ucus kapat
ucus_kapat.png


/ucus sure
ucus_sure.png


/ucuscekiyaz <miktar> #Herhangi bir süre kısıtlaması yok, sürelerin hepsi saniye cinsindendir. Oyuncular kendi aralarında satış-takas yapabilir sıkıntı çıkmayacaktır.

ucus_ceki_yaz_komut.png

ucus_ceki_komut_mesaj.png

ucus_ceki_fiziksel.png

ucus_ceki_kullanma_uyarisi.png


/ucus ekle <isim> <miktar> #Admin komutudur sureliucus.admin yetkisi gerekmektedir. Komut kullanıldığında oyuncunun mevcut olan uçuş süresinin üzerine süre ekler.
ucus_ekle_komut.png

ucus_ekle_yetkili_uyari.png

ucus_ekle_oyuncu_uyari.png

/ucus ayarla <isim> <miktar> #Admin komutudur sureliucus.admin yetkisi gerekmektedir. Komut kullanıldığında oyuncunun uçuş süresi miktara eşitlenir.
ucus_ayarla_komut.png

ucus_ayarla_yetkili_uyari.png

ucus_ayarla_oyuncu_uyari.png

:Skript:
Kod:
on join:
        set {ucabilirmi.%player%} to 0
        if player is flying:
                disable flight to event-player
               
on quit:
        set {ucabilirmi.%player%} to 0
        if player is flying:
                disable flight to event-player
               
options:
    cek_adi: &6Süreli Uçuş Çeki #Çek üzerinde uçuş süresi miktarından sonra yazan kısmı buradan değiştirebilirsin. NOT: Eğer kullanım anında değişim kararı alırsanız eski uçuş çekleri bozulur. Örn. Rengi yeşil olan yazıyı turuncu yaparsanız, ismi yeşil olan uçuş çeki çalışmayacaktır.
    cek_aciklama: &6SunucuAdı→ &7Süreli Uçuş Çekini kullanmak için sağ tıklayın. #Çek üzerine geldiğimizde yazan açıklama kısmını buradan değiştirebilirsin. NOT: Eğer kullanım anında değişim kararı alırsanız eski uçuş çekleri bozulur.
    menu_cam_adi: &2SUNUCU ADI #/ucus yazıldığında gelen menüdeki camların adını buradan değiştirebilirsin.
   
variables:
    {ucmasure.%player%} = 0
    {ucabilirmi.%player%} = 0


   
command /ucus [<text>] [<player>] [<integer>]:
        description: Süreli uçma komutunun asıl komutudur.
        trigger:
                if arg 1 is not "ac" or "kapat" or "ekle" or "sure" or "bilgi" or "ayarla":
                        send ""
                        send ""
                        send "&8----------------------------------"
                        send "&6/ucus &eSüreli uçuş genel menüsünü açar."
                        send "&6/ucus ac &eSüreli uçuşu aktif eder."
                        send "&6/ucus kapat &eSüreli uçuşu kapatır."
                        send "&6/ucus sure &eSüreli uçuşu süreni görmeni sağlar."
                        send "&6/ucuscekiyaz <miktar> &eBelirtilen miktarda cek yazar. Sağ tıklayınca bulunan miktar kadar süre eklenir."
                        send "&6/ucus ekle <oyuncuadı> <miktar> &eYetkiye sahipsen ismi girilen kişiye belirtilen miktarda süre verilir."
                        send "&6/ucus ayarla <oyuncuadı> <miktar> &eYetkiye sahipsen ismi girilen kişinin süresi miktara eşitlenir."
                        send "&8----------------------------------"
                        stop
                if arg 1 is "bilgi":
                        send ""
                        send ""
                        send "&8----------------------------------"
                        send "&6/ucus &eSüreli uçuş genel menüsünü açar."
                        send "&6/ucus ac &eSüreli uçuşu aktif eder."
                        send "&6/ucus kapat &eSüreli uçuşu kapatır."
                        send "&6/ucus sure &eSüreli uçuşu süreni görmeni sağlar."
                        send "&6/ucuscekiyaz <miktar> &eBelirtilen miktarda cek yazar. Sağ tıklayınca bulunan miktar kadar süre eklenir."
                        send "&6/ucus ekle <oyuncuadı> <miktar> &eYetkiye sahipsen ismi girilen kişiye belirtilen miktarda süre verilir."
                        send "&6/ucus ayarla <oyuncuadı> <miktar> &eYetkiye sahipsen ismi girilen kişinin süresi miktara eşitlenir."
                        send "&8----------------------------------"
                        stop
                       
                if arg 1 is "ayarla":
                        if player has permission "sureliucus.admin":
                                if arg 2 is set:
                                        if arg 3 is set:
                                                set {ucmasure.%arg-2%} to args 3
                                                send "&a%arg-2% &ekişisinin süresi &a%arg 3% &eolarak ayarlandı."
                                                message "&a%player% &eadlı yetkili süreni &a%arg 3% &eolarak ayarladı." to arg-2
                                        else:
                                                send "Komut doğru kullanımı: &6/ucus ayarla <isim> <miktar>"
                                                stop
                                else:
                                        send "Komut doğru kullanımı: &6/ucus ayarla <isim> <miktar>"
                                        stop
                        else:
                                send "&4Komutu kullanmak için gerekli yetkiye sahip değilsin."
                                stop
                       
                if arg 1 is not set:
                        open chest with 1 rows named "&6Süreli Uçuş Menüsü" to player
                        format slot 2 of player with emerald named "&aUçuşumu Aktif Et" to close then run  [execute player command "/ucus ac"]
                        format slot 6 of player with redstone named "&cUçuşumu Deaktif Et" to close then run [execute player command "/ucus kapat"]
                        format slot 4 of player with feather named "&eUçuş Süren: &a%{ucmasure.%player%}%" to be unstealable
                        format slot 0 of player with light gray stained glass pane named "{@menu_cam_adi}" to be unstealable
                        format slot 1 of player with light gray stained glass pane named "{@menu_cam_adi}" to be unstealable
                        format slot 3 of player with light gray stained glass pane named "{@menu_cam_adi}" to be unstealable
                        format slot 5 of player with light gray stained glass pane named "{@menu_cam_adi}" to be unstealable
                        format slot 7 of player with light gray stained glass pane named "{@menu_cam_adi}" to be unstealable
                        format slot 8 of player with light gray stained glass pane named "{@menu_cam_adi}" to be unstealable
                if arg 1 is "ac":
                        if arg 2 is set:
                                send "&eKomut doğru kullanımı: &6/ucus ac"
                                stop
                        if arg 3 is set:
                                send "&eKomut doğru kullanımı: &6/ucus ac"
                                stop
                        if {ucmasure.%player%} is less than 1:
                                send "&8Uçma süren en az 1 olmalı. Sahip olduğun uçma süresi: &e%{ucmasure.%player%}%"
                                stop
                        if player's flight mode is true:
                                send "&4Zaten uçuyorsun."
                                stop
                        if {ucmasure.%player%} is greater than 0:
                                set {ucabilirmi.%player%} to 1
                                if {ucabilirmi.%player%} is 1:
                                        if player's flight mode is false:
                                                enable flight to event-player
                                                send "&6&l%player% &9Uçuş'un aktif edildi." to player
                                                play raw sound "random.levelup" at player with pitch 1 volume 0.3
                        while {ucabilirmi.%player%} is equal to 1:
                                if {ucabilirmi.%player%} is equal to 1:
                                        while {ucmasure.%player%} is greater than 0:
                                                wait 1 second
                                                remove 1 from {ucmasure.%player%}
                                                if {ucmasure.%player%} is equal to 10:
                                                        send "&6&l%player% &9Uçuş sürenin bitmesine &a10 &9saniye kaldı." to player
                                                if {ucmasure.%player%} is less than 1:
                                                        send "&6&l%player% &9Uçuş süren bitti." to player
                                                        set {ucabilirmi.%player%} to 0
                                                if {ucabilirmi.%player%} is 0:
                                                        disable flight to event-player
                                                        stop
                if arg 1 is "kapat":
                        if arg 2 is set:
                                send "&eKomut doğru kullanımı: &6/ucus kapat"
                                stop
                        if arg 3 is set:
                                send "&eKomut doğru kullanımı: &6/ucus kapat"
                                stop
                        if player's flight mode is false:
                                send "&4Zaten uçamıyorsun."
                        if player's flight mode is true:
                                set {ucabilirmi.%player%} to 0
                                disable flight to event-player
                                send "&6&l%player% &9Uçuş'un deaktif edildi." to player
                                stop
                               
                if arg 1 is "ekle":
                        if player has permission "sureliucus.admin":
                                if args 2 is set:
                                        if args 3 is set:
                                                set {ucmasure.%arg-2%} to {ucmasure.%arg-2%} + args 3
                                                send "&a%arg-2% &ekişisine &a%arg-3% &emiktarında süre eklendi"
                                                message "&a%player% &eadlı yetkili sana &a%arg-3% &emiktarında süre ekledi." to arg-2
                                                stop
                                        else:
                                                send "&eKomut doğru kullanımı: &6/ucus ekle <isim> <miktar>"
                                                stop
                                else:
                                        send "&eKomut doğru kullanımı: &6/ucus ekle <isim> <miktar>"
                                        stop
                        else:
                                send "&4Komutu kullanmak için gerekli yetkiye sahip değilsin."
                                stop
                if arg 1 is "sure":
                        if arg 2 is set:
                                send "&eKomut doğru kullanımı: &6/ucus sure"
                                stop
                        if arg 3 is set:
                                send "&eKomut doğru kullanımı: &6/ucus sure"
                                stop
                        send player title "&6Uçuş Süresi" with subtitle "&eUçuş Süren: &a%{ucmasure.%player%}%" for 5 second
                        stop
                       
command /ucuscekiyaz [<integer>]:
        description: Süreli uçma komutunun çek komutudur.
        trigger:
                if arg 1 is set:
                        if arg-1 is greater than 0:
                                if {ucmasure.%player%} is greater than or equal to arg-1:
                                        send "&e%arg-1% &aSüreli bir Uçuş Çeki yazdınız."
                                        remove arg-1 from {ucmasure.%player%}
                                        give 1 feather named "%arg-1% {@cek_adi}" with lore "{@cek_aciklama}" to player
                                else:
                                        send "&e%arg-1% &cMiktarında süreniz bulunmamaktadır."
                                        stop
                        else:
                                send "&c0'dan daha büyük sayı girmelisin."
                                stop
                else:
                        send "&eKomut kullanımı: &b/ucuscekiyaz <miktar> &eşeklindedir."
                        stop
rightclick with feather:
        if name of player's held item contains "{@cek_adi}":
                if lore of player's held item contains "{@cek_aciklama}":
                        set {ucus_ceki::*} to name of the player's held item split at "{@cek_adi}"
                        replace all " " in {ucus_ceki::1} with ""
                        set {ucus_cek} to "%{ucus_ceki::1}%" parsed as an integer
                        set {ucmasure.%player%} to {ucmasure.%player%} + {ucus_cek}
                        remove held item from player
                        send "&e%{ucus_cek}% &aSüreli bir çek kullandın. Mevcut süren: &e%{ucmasure.%player%}%"
                        stop
                else:
                        send "&4Eğer eşyayı isimlendirmek gibi bir akıllılık denememişsen yetkiliye bildir."
                        send "&4Hata sebebi: Eski açıklaması olan eşyaya sahipsin. Yenisi ile değiştirilmesi lazım."
                        stop

:Ekstra:
Sunucudan çıkınca uçuş otomatik olarak kapatılır ve süre durur.
Eğer çek ismini değiştirmek isterseniz 12. Satırda bulunan kısmı değiştirmeniz yeterlidir.
Aynı şekilde çek açıklamasını değiştirmek isterseniz 13. Satırı değiştirmeniz gerekir.
/ucus yazınca çıkan menüde camlar bulunmakta cam isimlerini 14. Satırdan değiştire bilirsiniz.

 
Bence ilk skripte göre gayet başarılı olmuş, umarım daha güzel yerlere gelirsin.
 
Başarılı bir skript olmuş geliştiilebilir.
 
Güzel ve kullanışlı bir skript olmuş.
Daha iyi yerlerde görme dileğiyle, başarılar <3​
 
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