Skript Paylaşımı Manalı Asa Skripti (Geliştirebilirsiniz)

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

#Güncelleme 30.06.2021
Alev Asası eklendi
Asa bekleme süresi lag yapmayacak şekilde düzenlendi
Asa bekleme süresi mesajı action bar olarak değiştirildi.
Can Asası kullanınca partikül çıkması ayarlandı
Mana İksiri eklendi
Zamanla mana gelmesi kaldırıldı


Selamlar, bu gün Mana tabanlı bir Asa skripti yaptım.
Peki bu asamızın olayı tam olarak ne?
Alev Asasına sağ tıklandığında oyuncunun önüdeki 3x3 alanı yakıyor ve oyuncuyu 1 saniyeliğine yürüyemez hale getiriyor. Kısa süreli ateş direnci kazanıyor.
Can Asasına sağ tıklandığında 5 blok yakınındaki TÜM oyunculara ve kendisine 5 saniyeliğine Yenilenme 2 etkisi veriyor.
Asayı kullandıktan sonra belirli bir bekleme süresi bulunmakta bu süre içerisinde tekrar kullanılamıyor. Bekleme süresi dolduktan sonra tekrar kullanılabilir
Ayrıca yine belirli bir miktarda mana harcıyor, eğer yetersiz mana varsa kullanılamıyor.
Görseller
can asası.png

can asa chat.png

etkilenen oyuncu mesaj.png

reg.png

Can partikul efekt.png

Can asası kullanıldığında çok kısa süreliğine yukarıdaki partikul efekti gözükür.
Alev Asası.png

Alev Asası Mesaj.png

alev kullanım efektleri.png

3x3 alev.png


Mana iksiri.png

Max mana miktarı sahipsin.png

Skript
Kod:
#Çalışması için gereken tüm pluginler.
#skDragon,SkQuery,skRayFall,Skript




#Oyun içerisindeki tüm ayarlamaları options: bölümünden yapabilirsin.
#Asa almak için /asaver komutu kullanılmalıdır yalnızca op yetkisi olanlar alabilir.
#Asayı herkes kullanabilir nasıl elde edileceği tamamıyla size kalmıştır.
#Manaiksiri almak için /manaiksiriver komutu kullanılmalıdır yalnızca op yetkisi olanlar alabilir.
#Manaiksirini herkes kullanabilir nasıl elde edileceği tamamıyla size kalmıştır.
#Okuduğunuz için teşekkürler.
variables:
    {suanki_mana::%player%} = 100
options:
    mana: 100 #Maksimum mana miktarı
    mana_iksiri_miktar: 50
    mana_iksiri_isim: &b&lMana İksiri
    mana_iksiri_aciklama: &7Sağ tıklayarak &bMANA &7yenileyebilirsin.
    mana_yuksek: &bMax mana miktarına sahipsin.
    alev_asasi_mana_bedeli: 10 #Alev asası kullanınca eksilecek mana miktarı
    alev_asasi_bekleme_suresi: 3 #Alev asasını kullanması için gereken bekleme süresi (1 den fazla asa aynı anda kullanılamaz hepsinin bekleme süresi aynı)
    alev_asasi: &6Alev Asası #Asa adı eğer değişicekseniz önceden ayarlayın, sonradan değişim yaparsanız asası olanların asaları çalışmaz hale gelir.
    alev_asasi_aciklama: ||&6Sağ tıklayarak önündeki 3x3 alanı yakarsın.||&7Kullanırken &b10 Mana &7harcarsın.||||&6Önündeki her şeyin kül olmasına hazırmısın? #Asanın altında bulunan açıklama değişicekseniz önceden ayarlayın, sonradan yaparsanız asası olanların asası çalışmaz hale gelir.
    alev_asasi_bekleme_suren_var: &aKalan bekleme süresi: &c&l%{_alev}% #Asa bekleme süresi mesajı Envanterin üstünde gözükür.
    alev_asasi_mana_yeterli_degil: &aMana miktarın yeterli değil. &aMevcut mana miktarı: &b%{suanki_mana::%player%}%
    alev_asasi_kullanan_mesaj: &cAman dikkat! birileri &6Alev &cile oynuyor.
    can_asasi_mana_bedeli: 30 #Can asası kullanınca eksilecek mana miktarı
    can_asasi_bekleme_suresi: 15 #Can asasını kullanması için gereken bekleme süresi (1 den fazla asa aynı anda kullanılamaz hepsinin bekleme süresi aynı)
    can_asasi: &aCan Asası #Asa adı eğer değişicekseniz önceden ayarlayın, sonradan değişim yaparsanız asası olanların asaları çalışmaz hale gelir.
    can_asasi_aciklama: ||&aSağ tıklayarak bulunduğun noktadaki HERKESIN canını yenileyebilirsin.||&7Kullanırken &b30 Mana &7harcarsın.||||&aİnsanların sana ihtiyacı var, çabuk onlara yetiş! #Asanın altında bulunan açıklama değişicekseniz önceden ayarlayın, sonradan yaparsanız asası olanların asası çalışmaz hale gelir.
    can_asasi_bekleme_suren_var: &aKalan bekleme süresi: &c&l%{_can}% #Asa bekleme süresi mesajı Envanterin üstünde gözükür.
    can_asasi_mana_yeterli_degil: &aMana miktarın yeterli değil. &aMevcut mana miktarı: &b%{suanki_mana::%player%}% #Asa mana yetersiz mesajı
    can_asasi_hedef_kisiler_mesaj: &9%player% &aCan asasını kullandı ve bundan sende etkilendin. #Asayı kullanan kişinin yanındakilere gidecek mesaj
    can_asasi_kullanan_mesaj: &aCan asanı kullandın, sana yakın olanlar ve sen yenilenme etkisi kazandınız. #Asayı kullanan kişiye gidecek olan mesaj
    
command /asaver:
    permission: op
    permission message: &cBunu yalnızca OP yetkisine sahip kişiler kullanabilir.
    trigger:
        give 1 stick of unbreaking 1 named "{@can_asasi}" with lore "{@can_asasi_aciklama}" to player
        give 1 stick of unbreaking 1 named "{@alev_asasi}" with lore "{@alev_asasi_aciklama}" to player


command /manaiksiriver:
    permission: op
    permission message: &cBunu yalnızca OP yetkisine sahip kişiler kullanabilir.
    trigger:
        give 1 exp bottle of unbreaking 1 named "{@mana_iksiri_isim}" with lore "{@mana_iksiri_aciklama}" to player


rightclick with exp bottle of unbreaking 1:
    cancel event
    if name of player's held item contains "{@mana_iksiri_isim}":
        if lore of player's held item contains "{@mana_iksiri_aciklama}":
            if {suanki_mana::%player%} is less than {@mana}:
                remove 1 of tool from tool
                add {@mana_iksiri_miktar} to {suanki_mana::%player%}
                if {suanki_mana::%player%} is greater than {@mana}:
                    set {suanki_mana::%player%} to {@mana}
            else:
                send "{@mana_yuksek}"


rightclick with stick of unbreaking 1:
    if name of player's held item contains "{@can_asasi}":
        if lore of player's held item contains "{@can_asasi_aciklama}":
            if {can_bekleme::%player%} isn't set:
                set {can_bekleme::%player%} to now
            if difference between {can_bekleme::%player%} and now > {@can_asasi_bekleme_suresi} seconds:
                if {suanki_mana::%player%} is greater than or equal to {@can_asasi_mana_bedeli}:
                    loop all players in radius 5 around the player:
                        send "{@can_asasi_hedef_kisiler_mesaj}" to loop-player
                        apply regeneration 2 to loop-player for 5 second
                        stop loop
                    apply regeneration 2 to player for 5 second
                    play raw sound "game.potion.smash" at player with pitch 1 volume 2
                    send "{@can_asasi_kullanan_mesaj}" to player
                    set {can_bekleme::%player%} to now
                    remove {@can_asasi_mana_bedeli} from {suanki_mana::%player%}
                    drawWarpRings style 1, particle "redstone", RGB 0, 255, 0, center location of block at player, id "%player%-canalan", rainbowMode false, scan false, height 10, radius 5, ringCount 12, ringDensity 20, visibleRange 32, pulseDelay 0
                    wait 0.7 second
                    stopeffect id "%player%-canalan"
                else:
                    send "{@can_asasi_mana_yeterli_degil}"
            else:
                set {_can} to "%difference between {@can_asasi_bekleme_suresi} seconds and (difference between {can_bekleme::%player%} and now)%"
                replace all "seconds" with "&asaniye" in {_can}  #SANİYE RENGİNİ BURADAN DEĞİŞTİREBİLİRSİNİZ! TAM MESAJ OPTIONSDA
                set action bar of player to "{@can_asasi_bekleme_suren_var}"
                
    if name of player's held item contains "{@alev_asasi}":
        if lore of player's held item contains "{@alev_asasi_aciklama}":
            if {alev_bekleme::%player%} isn't set:
                set {alev_bekleme::%player%} to now
            if difference between {alev_bekleme::%player%} and now > {@alev_asasi_bekleme_suresi} seconds:
                if {suanki_mana::%player%} is greater than or equal to {@alev_asasi_mana_bedeli}:
                    set {_Block} to 0
                    Set {_Cone} to 0
                    loop 1 times:
                        add 2 to {_Block}
                        add 2 to {_Cone}
                        set {_GetBlock} to block {_Block} blocks infront of player
                        loop all blocks in radius {_Cone} around {_GetBlock}:
                            if loop-block is air:
                                set {_konum} to location of block at loop-block
                                set block at {_konum} to fire
                        stop loop
                    apply slowness 250 to player for 1 second
                    remove fire resistance from the player
                    apply fire resistance 250 to player for 3 second
                    play raw sound "item.fireCharge.use" at player with pitch 1 volume 2
                    send "{@alev_asasi_kullanan_mesaj}" to player
                    set {alev_bekleme::%player%} to now
                    remove {@alev_asasi_mana_bedeli} from {suanki_mana::%player%}
                    wait 2 second
                    extinguish the player
                else:
                    send "{@alev_asasi_mana_yeterli_degil}"
            else:
                set {_alev} to "%difference between {@alev_asasi_bekleme_suresi} seconds and (difference between {alev_bekleme::%player%} and now)%"
                replace all "seconds" with "&asaniye" in {_alev}  #SANİYE RENGİNİ BURADAN DEĞİŞTİREBİLİRSİNİZ! TAM MESAJ OPTIONSDA
                set action bar of player to "{@alev_asasi_bekleme_suren_var}"


command /manamiktarım:
    trigger:
        send "&aMevcut mana miktarın: &b%{suanki_mana::%player%}%"


Skript içerisinde 3 adet komut bulunmaktadır bunlar
/asaver (Yalnızca OP yetkisi olanlar kullanabilir)
/manaiksiriver(Yalnızca OP yetkisi olanlar kullanabilir)
/manamiktarım (Mevcut mana miktarını gösterir)

 
Son düzenleme:
Güzele benziyor mmo tarzı sunucu açacaklar kullanmalı.Elinize sağlık
 
Sunuculara farklılık getirebilecek bir skript olduğunu düşünüyorum. Ellerine sağlık. Başarılar dilerim. <3
 
Eline sağlık güzel bir skript olmuş. Başka tarzlarda yapacağın çalışmalarını dört gözle bekliyorum.
 
Birkaç öneri yapmak istiyorum. Bekleme süresini every 2 seconds ile yaptığını gördüm. Bu gerçekten çok büyük bir performans kaybı oluyor. Bazen skript yazarken performans anlamında düşünerek yazmak gerekiyor. Mesela every secondsu tamamen kaldırıp bekleme süresini sistemini başka şekilde yapabilirsin. Mana kazanma yolu olarak da sürekli 2 saniyede bir mana vermesi yerine mana iksiri, mana veren yiyecekler ya da sağ tıklandığı anda sana bir miktar mana kazandıran eşyalar yapıp every secondstan kurtulabilirsin.

Eğer bu konuda kendini geliştirmek istersen yazdığın skriptin en verimli halini seninle beraber discord üzerinden yapabiliriz. Hem kendini geliştirmiş olursun hem de kullanmak isteyenler için daha stabil çalışan bir skript yapmış olursun.
 
Birkaç öneri yapmak istiyorum. Bekleme süresini every 2 seconds ile yaptığını gördüm. Bu gerçekten çok büyük bir performans kaybı oluyor. Bazen skript yazarken performans anlamında düşünerek yazmak gerekiyor. Mesela every secondsu tamamen kaldırıp bekleme süresini sistemini başka şekilde yapabilirsin. Mana kazanma yolu olarak da sürekli 2 saniyede bir mana vermesi yerine mana iksiri, mana veren yiyecekler ya da sağ tıklandığı anda sana bir miktar mana kazandıran eşyalar yapıp every secondstan kurtulabilirsin.

Eğer bu konuda kendini geliştirmek istersen yazdığın skriptin en verimli halini seninle beraber discord üzerinden yapabiliriz. Hem kendini geliştirmiş olursun hem de kullanmak isteyenler için daha stabil çalışan bir skript yapmış olursun.
Aslında skriptin döngü yerinde alternatif aradım ama gerçek anlamda çözüm bulamadım yani kesinlikle size katılıyorum, daha önce birisiyle beraber bir skript yazımı denemedim açıkcası, nasıl olacağından bile emin değilim ancak bunu denemek isterim.

Ayrıca mana konusundaki fikrin hoşuma gitti kesinlikle uygulayabilirim

Yorumların için teşekkürler.
 
Gerçekten başarılı skript, Ellerine sağlık hocam.
 
Gayet güzel gözüküyor. Güzel düşünülmüş bir şey ve daha da farklı güzel şeyler çıkartılabilir. Şahsen benim kulağıma hoş geldi. Bu arada paylaşım için teşekkürler. (:
 
Gayet güzel gözüküyor. Güzel düşünülmüş bir şey ve daha da farklı güzel şeyler çıkartılabilir. Şahsen benim kulağıma hoş geldi. Bu arada paylaşım için teşekkürler. (:
Güzel yorumun için teşekkürler
 
Çok güzel bir skript bence İtemsAdder ile birleştirilebilirse ortaya Harry Potter'ın asası gibi şeyler çıkabilir. Özel Asa textureları falan filan
 
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