Skript Paylaşımı Sandık Satar Skripti | %100 Yaml Destekli | Sağ tıklayarak sandığın içindekileri satın!

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Katılım
5 Şubat 2018
Mesajlar
1.090
Elmaslar
616
Puan
16.230
Yaş
23
Minecraft
Fhalinkz

Discord:

Fhalinkz#6825

yeni_logo (1).png


Selam Millet!

Bugün basit ama işe yarar bir skript ile karşınızdayım. Skriptimiz başlıktan da anlayacağınız üzere sandığın içindeki eşyaları satmaya yarıyor.

Nasıl Çalışır?

Sandıktaki eşyaları satarken /satkit ile alacağınız çubukla eğilerek sandığa sağ tıklamanız gerekmektedir.

Satış yerine yeni bir eşya eklemek istediğimde ne yapmam gerekir?

Öncelikle items: kısmına eklemek istediğiniz eşyanın ingilizcesini ve satış fiyatını yazınız

Kod:
items:
    cactus: 100
    diamond: 100
    emerald: 100

Ardından item_list: kısmına eklediğiniz itemi örnektekiler gibi yapınız.
YAML:
item_list:
-   CACTUS
-   DIAMOND
-   EMERALD

Sonrada skripte reload atın.

Örnek Yaml Dosyası:
YAML:
tool:
    ==: org.bukkit.inventory.ItemStack
    type: BLAZE_ROD

display_name: '&aSatıs Cubugu'

items:
    cactus: 100
    diamond: 100

item_list:
-    Cactus
-    Diamond

Skriptimiz:
Kod:
on load:
    load yaml "plugins/SkyblockSat/config.yml" as "config"
    if yaml "config" is empty:
        set yaml value "tool" from "config" to Blaze Rod
        set yaml value "display_name" from "config" to "&aSatıs Cubugu"
        set yaml value "items.cactus" from "config" to 25
        set yaml value "items.diamond" from "config" to 100
        add "Cactus" to yaml list "item_list" from "config"
        add "Diamond" to yaml list "item_list" from "config"
        save yaml "config"

on right-click:
    if clicked block is a chest:
        set {_n} to yaml value "tool" from "config"
        set {_nn} to yaml value "display_name" from "config"
        if player's tool is {_n} named {_nn}:
            if player is sneaking:
                loop yaml list "item_list" from "config":
                    set {_block} to loop-value-1 parsed as item
                    set {_asd} to amount of loop-value-1 in event-block
                    if {_asd} is greater than 0:
                        set {_balance} to {_asd} * yaml value "items.%loop-value-1%" from "config"
                        add {_balance} to player's balance
                        remove every loop-value-1 from clicked block
                        wait a tick
                        send "&eSandıktaki bütün %loop-value-1% esyaları &f%{_balance}% &ekarsılıgında satıldı" to player
command /satkit:
    trigger:
        set {_n} to yaml value "tool" from "config"
        set {_nn} to yaml value "display_name" from "config"
        give 1 of {_n} named {_nn} to player


Skript işinize yaradıysa konuya elmas vermeyi unutmayın. Ayrıca skriptte bir sıkıntı çıkarsa bana bildirmeyi de unutmayın.

1.PNG

2.PNG
3.PNG
 
Son düzenleme:
Resim yok.n
.
 

Çok güzel ve mantıklı bir skripte benziyor. Ancak resim olmadığı için bir şey anlıyamıyoruz :D
 
buna vip eklesek mesela vipler x2 mvip mvip+ x3 satabilsin öyle yapabilirmisin
 
yaml dan her seferinde çekmek yerine local bi veride tutulması performans açısından daha iyi olucaktır.
 
öncedende vardı skriptten anlamayan arkadaşlar için hem paylaşıp anlatman faydalı
 
buna vip eklesek mesela vipler x2 mvip mvip+ x3 satabilsin öyle yapabilirmisin

Yaparım sıkıntı değil.

yaml dan her seferinde çekmek yerine local bi veride tutulması performans açısından daha iyi olucaktır.

Neye dayanarak söylüyorsun bunu? Yamldan her seferinde çekmek nasıl bir performans düşüklüğüne yol açabilir? Veya neyse siz kullanmayın 3-4 tps düşürür bu aynen.

öncedende vardı skriptten anlamayan arkadaşlar için hem paylaşıp anlatman faydalı

Önceden vardı fakat o var olan skriptlerle kod uzayıp gidiyordu. Ben daha sağlıklı bir yöntemle yaptım. Ayrıca kolayca ayarlanabiliyor.
 
Yaparım sıkıntı değil.



Neye dayanarak söylüyorsun bunu? Yamldan her seferinde çekmek nasıl bir performans düşüklüğüne yol açabilir? Veya neyse siz kullanmayın 3-4 tps düşürür bu aynen.



Önceden vardı fakat o var olan skriptlerle kod uzayıp gidiyordu. Ben daha sağlıklı bir yöntemle yaptım. Ayrıca kolayca ayarlanabiliyor.
ne toxic bi adamsım sen ya, skript kullanıcağımdan değil, sana javadan edindiğim tecrübeye dayanarak tavsiye veriyorum yamldan veri çekmek performans kaybına yol açar sürekli yapılırsa bu işlem o yüzden diyorum ki local value kullanırsan performansı arttırabilirsin ek olarak skript kullanıcak kadar hele ki başkasının skritpini kullanıcak kadar daha düşmedim teşekkürler.
 
ne toxic bi adamsım sen ya, skript kullanıcağımdan değil, sana javadan edindiğim tecrübeye dayanarak tavsiye veriyorum yamldan veri çekmek performans kaybına yol açar sürekli yapılırsa bu işlem o yüzden diyorum ki local value kullanırsan performansı arttırabilirsin ek olarak skript kullanıcak kadar hele ki başkasının skritpini kullanıcak kadar daha düşmedim teşekkürler.

Tamam sen kullanma. Zaten skript çok kötü bir şey sunucuya çok zarar veriyor. Ben dün yaptım bu skripti işte böyle 2-3 tps düştü sunucumda. Teşekkürler..
 
ne zaman yapabilirsin acil lazımda
 
ne zaman yapabilirsin acil lazımda


Kod:
on load:
    load yaml "plugins/SkyblockSat/config.yml" as "config"
    if yaml "config" is empty:
        set yaml value "tool" from "config" to Blaze Rod
        set yaml value "display_name" from "config" to "&aSatıs Cubugu"
        set yaml value "items.cactus" from "config" to 25
        set yaml value "items.diamond" from "config" to 100
        add Cactus to yaml list "item_list" from "config"
        add Diamond to yaml list "item_list" from "config"
        save yaml "config"

on right-click:
    if clicked block is a chest:
        set {_n} to yaml value "tool" from "config"
        set {_nn} to yaml value "display_name" from "config"
        if player's tool is {_n} named {_nn}:
            if player is sneaking:
                loop yaml list "item_list" from "config":
                    set {_asd} to amount of loop-value-1 in event-block
                    if {_asd} is greater than 0:
                        set {_balance} to {_asd} * yaml value "items.%loop-value-1%" from "config"
                        if player doesn't have permission "sat.vip":
                            add {_balance} to player's balance
                        if player has permission "sat.vip":
                            add {_balance} * 2 to player's balance
                        remove every loop-value-1 from clicked block
                        wait a tick
                        send "&eSandıktaki bütün %loop-value-1% esyaları &f%{_balance}% &ekarsılıgında satıldı" to player
command /satkit:
    trigger:
        set {_n} to yaml value "tool" from "config"
        set {_nn} to yaml value "display_name" from "config"
        give 1 of {_n} named {_nn} to player
 
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