Sol Reklam
Sağ Reklam

Skript Paylaşımı ID'ye sahip çantalar

Skript sizce lagg yapar mı?

  • Tüm sunucularda lagg yapar

  • Yanlızca Whitelist sunucularında lagg yapmaz

  • Bazen lagg yapar

  • Lagg yapmaz


Sonuçlar yalnızca oylamadan sonra görülebilir.
Durum
Mesaj gönderimine kapalı.
M

mmuhammedeemin

Ziyaretçi
Merhaba MC-TR!
Geçen günlerde kendi 1.16 sunucum için yeni bir skript yapmaya karar vermiştim ve bu skript çok hoşuma gittiği için sizler ile paylaşmak istedim. İnternette araştırdığım ve bulduğum sonuçlarda "Backpack" Yani "Çanta" skriptleri genelde ender chest veya oyuncunun adı üzerine yapılmış bulunmaktadır. Ama buradaki Çanta skripti her çanta craft edişimizde çantalara özel id veriyor ve bu id sayesinde başka oyuncular da bu çantayı kullanabiliyor. Peki Bu skript nasıl çalışıyor?

Öncelikle skripti paylaşayım (Not: 3 slot ile sınırlandırılmış halidir ve benim kullandığım halidir!)
Kod:
on load:
    register new shaped recipe for chest named "&eÇanta" with lore "&800000" using string, string, string, leather, leather, leather, lead, leather, lead

on rightclick with a chest:
    if tool's name is "&eÇanta":
        cancel event
        if lore of player's tool contains "&800000":
            if {rightclick::%player%} isn't set:
                set {rightclick::%player%} to true
                send "&7&l» &eÇantanız aktif ediliyor..."
                set {_code} to a random number between 10000 and 99999
                while {backpack::*} contains {_code}:
                    set {_code} to a random number between 10000 and 99999
                add {_code} to {backpack::*}
                wait 10 ticks
                remove chest named "&eÇanta" with lore "&800000" from player's inventory
                add chest named "&eÇanta" with lore "&8%{_code}%" to player's inventory
                send "&7&l» &eÇantanızı aktif edildi."
                delete {rightclick::%player%}
        else:
            if {rightclick::%player%} isn't set:
                if player isn't sneaking:
                    set {backpackopen::%player%} to "%lore of player's tool%"
                    open chest with 1 row named "&eÇanta" to player
                    format slot 0 of player with black stained glass pane named " " to act unstealable
                    format slot 1 of player with black stained glass pane named " " to act unstealable
                    format slot 2 of player with black stained glass pane named " " to act unstealable 
                    format slot 6 of player with black stained glass pane named " " to act unstealable 
                    format slot 7 of player with black stained glass pane named " " to act unstealable 
                    format slot 8 of player with black stained glass pane named " " to act unstealable
                    set {c.c.%player%} to true
                    play sound "entity_horse_armor" with volume 100 and pitch 1 at player for player
                    wait 1 tick
                    loop {backpack::%lore of player's tool%::*}:
                        add loop-value to slot loop-index parsed as integer of current inventory of player
                else:
                    if {bagontheback::%player%} isn't set:
                        set {bagontheback::%player%} to "%lore of player's tool%"
                        remove chest named "&eÇanta" with lore "%lore of player's tool%" from player's inventory
                        send "&7&l» &eÇantayı sırtına taktın"
                    else:
                        send "&7&l» &eZaten sırtında çanta var!"
                    
on rightclick with air:
    if player is sneaking:
        if {bagontheback::%player%} is set:
            add chest named "&eÇanta" with lore "%{bagontheback::%player%}%" to player's inventory
            delete {bagontheback::%player%}
            send "&7&l» &eÇantayı sırtından çıkarttın"

on inventory close:
    if {c.c.%player%} is true:
        set {c.c.%player%} to false
        clear {backpack::%lore of player's tool%::*}
        play sound "entity_horse_armor" with volume 100 and pitch 2 at player for player
        set {backpack::%{backpackopen::%player%}%::3} to slot "3" parsed as an integer of current inventory of player 
        set {backpack::%{backpackopen::%player%}%::4} to slot "4" parsed as an integer of current inventory of player 
        set {backpack::%{backpackopen::%player%}%::5} to slot "5" parsed as an integer of current inventory of player
        wait 1 tick
        loop {backpack::%{backpackopen::%player%}%::*}:
            if loop-value is chest or shulker box:
                add loop-value to player's inventory
                remove loop-value from {backpack::%{backpackopen::%player%}%::*}
        delete {backpackopen::%player%}
    
command /backpack reset:
    permission: op
    permission message: "&7&l» &4Bu komutu kullanamazsın!"
    trigger:
        send "&7&l» &eTüm temizleniyor!"
        send "&7&l» &eTemizlenen Backpack idleri&8: &4%{backpack::*}%"
        send "&7&l» &eSilinen itemler&8: &4%{backpack::%{backpackopen::%player%}%::*}%"
        delete {backpack::%{backpack::*}%::*}
        delete {backpack::*}
        send "&7&l» &eTüm çanta idleri ve eşyaları silindi!"


Peki bu skript nasıl çalışıyor hemen onu anlatayım. Öncelikle fotoğrafta da görüldüğü gibi 3 ip + 4 deri + 2 kayış ile Bir adet sandık oluşturuyoruz ve idsini 00000 yapıyoruz çünkü idsini oyuncu oluşturacak.
resim_2020-10-28_165343.png

Sandığı oluşturduktan sonra sandığa sağ tıklıyoruz!

resim_2020-10-28_170109.png

resim_2020-10-28_173045.png


Ve böylece çantaya bir kod vermiş oluyoruz! Hiç merak etmeyin sandık stacklı olsa bile yalnızca 1 adet sandığa bu id'yi verecektir. Sandık hemen kullaınma hazır hale gelecektir. Sandık ile sağ tıkladığınız yer neresi olursa eventi iptal edip önünüze 1 satırlık (3 slot ile sınırlı olan skriptte) bir sandık gelecektir buraya istediğiniz itemi koyup alabilirsiniz ve sonrasında ise arkadaşlarınıza bu sandığı atabilirsiniz! Şu anda bu yazıyı okurken "Eğer çantanın içine çantayı koyarsak çanta sonsuza kadar yok olur." dediğinizi duyar gibiyim. Bu çantaya sandık ve shulker kutusu koyduğunuzda ve çantayı kapattığınızda bu eşyalar envanterinize tekrardan gelir. Shulker konulabilir olsaydı oyuncular sonsuz slot yapabilecek olurlardı! Sandık koyulmamasının sebebi ise eşyanın Minecraft id'si sandık olduğu için.

resim_2020-10-28_171250.png


2020-10-28_16.07.54.png
resim_2020-10-28_171824.png

Çanta elimizdeyken eğilerek bir yere sağ tıklarsak çanta sırtımızıa(sözde) gelir, envanterimizden çanta silinir ve tekrardan boş elimiz ile eğilerek bir bloğa tıklarsak çantayı envanterimize alırız. Eğer sırtımızda zaten mevcut bir çanta varsa başka bir çantayı sırtımıza alamayız.

Eğer bir bugg veya çok fazla gereksiz, yanmış olan, dünyadan düşmüş olan, silinmiş olan çantalarınız varsa bu skriptteki tek kod olan "/backpack reset" komutunu kullanınız. Bu komutu kullanırsanız tüm çantalar ve içerisindeki itemler silinir. Mevcut olan kodlu çantalar kullanılmaya devam eder ancak çok düşük bir ihtimalle aynı kodda bir çanta oluşturulursa o çantadan 2 adet yani çoklu kullanım mantığı oluşur bu yüzden bu komutu oldukça az kullanmaya çalışın!

Bazı ufak kısımları internetten araştırıp derledim ancak skript tamamı ile benimdir. Bu benim ilk konum. Skript yararlı olduğu için açtığım bir konu eğer eksiklerim olursa lütfen bildirin.
Ve son olarak diğer olası çanta çeşitleri:

Kod:
on load:
    register new shaped recipe for chest named "&eÇanta" with lore "&800000" using string, string, string, leather, leather, leather, lead, leather, lead

on rightclick with a chest:
    if tool's name is "&eÇanta":
        cancel event
        if lore of player's tool contains "&800000":
            if {rightclick::%player%} isn't set:
                set {rightclick::%player%} to true
                send "&7&l» &eÇantanız aktif ediliyor..."
                set {_code} to a random number between 10000 and 99999
                while {backpack::*} contains {_code}:
                    set {_code} to a random number between 10000 and 99999
                add {_code} to {backpack::*}
                wait 10 ticks
                remove chest named "&eÇanta" with lore "&800000" from player's inventory
                add chest named "&eÇanta" with lore "&8%{_code}%" to player's inventory
                send "&7&l» &eÇantanızı aktif edildi."
                delete {rightclick::%player%}
        else:
            if {rightclick::%player%} isn't set:
                if player isn't sneaking:
                    set {backpackopen::%player%} to "%lore of player's tool%"
                    open chest with 1 row named "&eÇanta" to player
                    set {c.c.%player%} to true
                    play sound "entity_horse_armor" with volume 100 and pitch 1 at player for player
                    wait 1 tick
                    loop {backpack::%lore of player's tool%::*}:
                        add loop-value to slot loop-index parsed as integer of current inventory of player
                else:
                    if {bagontheback::%player%} isn't set:
                        set {bagontheback::%player%} to "%lore of player's tool%"
                        remove chest named "&eÇanta" with lore "%lore of player's tool%" from player's inventory
                        send "&7&l» &eÇantayı sırtına taktın"
                    else:
                        send "&7&l» &eZaten sırtında çanta var!"
                    
on rightclick with air:
    if player is sneaking:
        if {bagontheback::%player%} is set:
            add chest named "&eÇanta" with lore "%{bagontheback::%player%}%" to player's inventory
            delete {bagontheback::%player%}
            send "&7&l» &eÇantayı sırtından çıkarttın"

on inventory close:
    if {c.c.%player%} is true:
        set {c.c.%player%} to false
        clear {backpack::%lore of player's tool%::*}
        play sound "entity_horse_armor" with volume 100 and pitch 2 at player for player
        loop 9 times:
            set {backpack::%{backpackopen::%player%}%::%loop-number - 1%} to slot "%loop-number - 1%" parsed as an integer of current inventory of player
        wait 1 tick
        loop {backpack::%{backpackopen::%player%}%::*}:
            if loop-value is chest or shulker box:
                add loop-value to player's inventory
                remove loop-value from {backpack::%{backpackopen::%player%}%::*}
        delete {backpackopen::%player%}
    
command /backpack reset:
    permission: op
    permission message: "&7&l» &4Bu komutu kullanamazsın!"
    trigger:
        send "&7&l» &eTüm temizleniyor!"
        send "&7&l» &eTemizlenen Backpack idleri&8: &4%{backpack::*}%"
        send "&7&l» &eSilinen itemler&8: &4%{backpack::%{backpackopen::%player%}%::*}%"
        delete {backpack::%{backpack::*}%::*}
        delete {backpack::*}
        send "&7&l» &eTüm çanta idleri ve eşyaları silindi!"
Kod:
on load:
    register new shaped recipe for chest named "&eÇanta" with lore "&800000" using string, string, string, leather, leather, leather, lead, leather, lead

on rightclick with a chest:
    if tool's name is "&eÇanta":
        cancel event
        if lore of player's tool contains "&800000":
            if {rightclick::%player%} isn't set:
                set {rightclick::%player%} to true
                send "&7&l» &eÇantanız aktif ediliyor..."
                set {_code} to a random number between 10000 and 99999
                while {backpack::*} contains {_code}:
                    set {_code} to a random number between 10000 and 99999
                add {_code} to {backpack::*}
                wait 10 ticks
                remove chest named "&eÇanta" with lore "&800000" from player's inventory
                add chest named "&eÇanta" with lore "&8%{_code}%" to player's inventory
                send "&7&l» &eÇantanızı aktif edildi."
                delete {rightclick::%player%}
        else:
            if {rightclick::%player%} isn't set:
                if player isn't sneaking:
                    set {backpackopen::%player%} to "%lore of player's tool%"
                    open chest with 3 row named "&eÇanta" to player
                    set {c.c.%player%} to true
                    play sound "entity_horse_armor" with volume 100 and pitch 1 at player for player
                    wait 1 tick
                    loop {backpack::%lore of player's tool%::*}:
                        add loop-value to slot loop-index parsed as integer of current inventory of player
                else:
                    if {bagontheback::%player%} isn't set:
                        set {bagontheback::%player%} to "%lore of player's tool%"
                        remove chest named "&eÇanta" with lore "%lore of player's tool%" from player's inventory
                        send "&7&l» &eÇantayı sırtına taktın"
                    else:
                        send "&7&l» &eZaten sırtında çanta var!"
                    
on rightclick with air:
    if player is sneaking:
        if {bagontheback::%player%} is set:
            add chest named "&eÇanta" with lore "%{bagontheback::%player%}%" to player's inventory
            delete {bagontheback::%player%}
            send "&7&l» &eÇantayı sırtından çıkarttın"

on inventory close:
    if {c.c.%player%} is true:
        set {c.c.%player%} to false
        clear {backpack::%lore of player's tool%::*}
        play sound "entity_horse_armor" with volume 100 and pitch 2 at player for player
        loop 27 times:
            set {backpack::%{backpackopen::%player%}%::%loop-number - 1%} to slot "%loop-number - 1%" parsed as an integer of current inventory of player
        wait 1 tick
        loop {backpack::%{backpackopen::%player%}%::*}:
            if loop-value is chest or shulker box:
                add loop-value to player's inventory
                remove loop-value from {backpack::%{backpackopen::%player%}%::*}
        delete {backpackopen::%player%}
    
command /backpack reset:
    permission: op
    permission message: "&7&l» &4Bu komutu kullanamazsın!"
    trigger:
        send "&7&l» &eTüm temizleniyor!"
        send "&7&l» &eTemizlenen Backpack idleri&8: &4%{backpack::*}%"
        send "&7&l» &eSilinen itemler&8: &4%{backpack::%{backpackopen::%player%}%::*}%"
        delete {backpack::%{backpack::*}%::*}
        delete {backpack::*}
        send "&7&l» &eTüm çanta idleri ve eşyaları silindi!"

Test Edilen:
Minecraft sürümü: 1.16.x
Skript plugininin sürümü: v2.5.1
SkQuery plugininin Sürümü: v1.9.23

DİP NOT: Eğer dilerseniz "isime özel texture" olayını araştırıp "&eÇanta" isimli eşyanın texturesini değiştirebilirsiniz. Bunu sunucunuzda varsa mevcut mevcut resourcepack dosyanıza ilave edebilir yoksa yeni resourcepack olarak ekleyebilirsiniz
 
Z

zSentinus

Ziyaretçi
Ellerine sağlık çok güzel olmuş.
 
M

mmuhammedeemin

Ziyaretçi
S

Silinen üye 79251

Ziyaretçi

Bir yandan yaratıcı, bir yandan da güzel bir Skript olmuş. Daha çok geliştirmeniz dileğiyle elinize, emeğinize ve çabanıza sağlık.
 
M

mmuhammedeemin

Ziyaretçi

EmreCN

Play.McDeyiz.Com

Discord:

zNightLastTR | EmreCan #2763

Katılım
1 Mart 2019
Mesajlar
431
Elmaslar
238
Puanlar
11.070
Yaş
29
Minecraft
zNightLastTR
Update sistemi eklenebilir.

Ek ücret karşılığı veya özel bir item ile birleştirince çantayı slot artışı olabilir.

Başarılar.
 
M

mmuhammedeemin

Ziyaretçi
Update sistemi eklenebilir.

Ek ücret karşılığı veya özel bir item ile birleştirince çantayı slot artışı olabilir.

Başarılar.
Upgrade sistemi çok güzel olabilir. Hatta belki ileride daha iyi bir versiyonunu yayınlayabilirim. Yorumunuz için teşekkürler yeni fikirler geldi aklıma. \(•‿•)/
 

Inxity

Owner @ ᴛʀᴇᴀsᴜʀᴇ
Emektar
Hosting Görevlisi

Discord:

Inxity#3240

Katılım
25 Ocak 2015
Mesajlar
536
Elmaslar
287
Puanlar
14.785
Yer
Treasure Inc.
Minecraft
Inxityy
Güzel düşünülmüş bir skript olmuş çoğu pluginle kapışacak derecede.
 
S

Syex

Ziyaretçi

Lukcraft55

Fırında Isıttığım İlk Taş

Discord:

Hazar#0322

Katılım
2 Şubat 2019
Mesajlar
78
Elmaslar
15
Puanlar
8.905
Minecraft
HazarUcar
Kod:
on rightclick with air:
    if player is sneaking:
        if {bagontheback::%player%} is set:
            add chest named "&eÇanta" with lore "%{bagontheback::%player%}%" to player's inventory
            delete {bagontheback::%player%}
            send "&7&l» &eÇantayı sırtından çıkarttın"
skripti daha denemedim güzel gözüküyor fakat bir sorum olucak skriptin bu kısmında envanter dolu ise çalışıyor mu veya bir hata veriyor mu?
 
C

Citrine Network

Ziyaretçi
NBT ile özel veri girmek varken lore ile veri tutmak artık cidden mağarada kaldı. Ek olarak benim kendi sunucumda yaptığım sistem şu şekilde çalışıyordu içerideki itemleri arada # olacak şekilde yazdırıp base64 şifreleyip NBT üzerine kayıt yapıyor. Daha gelişmiş şeyler yapılabilir.
 
E

elvor0

Ziyaretçi
elinize sağlık çok güzel olmuş.
 

KanedgyBO

SkriptTale

Discord:

TheLudoBile#3485

Katılım
29 Mart 2018
Mesajlar
929
Elmaslar
390
Puanlar
5.565
Yaş
17
Yer
Bursa / Erikli
Minecraft
TheLudoBile
bu arada bu skript lag yapmaz güvenebilirsin bütün skriptler lag yapar diye bi düşünce var millette.

ve lore yeter sırf o lore gözükmesin diye nbt addonu ya da sk-mirror addonu indirmeye gerek yok
 
Son düzenleme:
Durum
Mesaj gönderimine kapalı.
Neden altınlarını Discord sunucumuzda kazmıyorsun? TIKLA VE KATIL!
Yukarı