Skript Paylaşımı Aether Spawner | En iddialı ücretsiz ChestSpawner!

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

airbender

Odunlara Vur Vur Vur!
Katılım
29 Nisan 2020
Mesajlar
29
Elmaslar
25
Puan
610
Yaş
26
Minecraft
Tereyagli

Discord:

airbender#2917

Herkese selam. Bugün sizler için hazırladığım chest spawnerı skriptimi tanıtacağım. ChestSpawner eklentisi için çok geniş bir konfigürasyon havuzu bulunmaktadır. Kendi spawnerınızı oluşturabilirsiniz. Kendi hazırlamış olduğum örnek konfigürasyon bu şekildedir;
YAML:
# TR: Bu bölümde istediğiniz gibi spawnerları ekleyebilirsiniz. Spawner ismi koyulacak eşya adıdır. spawner açıklaması kısmı loredur. Lore kısmı çok önemli değildir.
# Spawnerın bir seferde daha fazla eşya düşürmesini istiyorsanız spawner eşya kısmına örneğin 3 diamond block(s) yazabilirsiniz.
# Spawnerı vermek için kaydettiğiniz adı kullanmalısınız. Örneğin Alttaki elmas blok spawnerı almak için /aethersp <oyuncu adı> Elmas Blok <miktar> yazmalısınız.
Spawners:
  Elmas Blok:
    spawner ismi: '&bElmas Blok Spawner'
    spawner açıklaması:
    - '&eTest'
    - '&6İçin'
    - '&bYapıldı'
    spawner eşya: 'diamond block'
  Zümrüt Blok:
    spawner ismi: '&bZümrüt Blok Spawner'
    spawner açıklaması:
    - '&eTest'
    - '&6İçin'
    - '&bYapıldı'
    spawner eşya: '5 emerald blocks'
  kardasspawner:
    spawner ismi: '&bKardasSpawner'
    spawner açıklaması:
    - '&eKardasLand Özel'
    - '&eSpawner'
    - '&cSadece KardasLandlar alabilir!'
    spawner eşya: '128 nether star'



6KUoCAhnfe.gif

ÖZELLİKLER
  1. Tamamıyla konfigüre edilebilir​
  2. Sınırsız spawner koyabilme.​
  3. Sınırsız spawner ekleyebilme.​
  4. Spawnerın ismini ve açıklamasını ayarlayabilme.​
  5. Bütün mesajları ayarlayabilme.​
  6. Lagg yapmayacak şekilde optimize edildi.​


GEREKLİ ADDONLAR



  • Skript
  • SkRayFall
  • skript-yaml

7wghmi1kcr.gif

TyrDD4CbtE.gif

Kod:
options: #Mesaj konfigürasyonu vesaire bu bölümden yapılacaktır. Yamlyi boşuna kirletip kodu uzatmak istemedik :)
    prefix: &eAetherSP >
    sure: 5 seconds #Timespan desteği vardır, <sayı> <minute,seconds,hours,day> şeklinde kullanılabilir. Tüm spawnerlar aynı süre içinde eşya atacaktır.
    kendi spawnerını kırabilirsin: &cSadece kendi spawnerlarını kırabilirsin. #Oyuncular başka bir oyuncunun spawnerını kırmaya çalıştıkları zaman gönderilecek mesajdır.
    yetkili spawner kırma mesajı: &cYetkili olduğun için spawnerı kırdın. #Yetkililer spawnerı kırdıklarında bilgilendirme ve uyarı amaçlı gözükecek mesajdır.
    spawner koyma mesajı: &bBaşarıyla %{_name}% &c&lkoydun. #Oyuncular spawner koydukları zaman gözükecek mesajdır. %{_name}% spawner ismini verir.
    spawner kırma mesajı: &c&lSpawnerını kırdın. #Oyuncular spawnerlarını kırdıkları zaman gözükecek mesajdır.
    spawner verme mesajı: &c&l%arg-1% adlı oyuncuya &a%arg-2% adlı spawnerdan &a%arg-3% adet verdin. #aethersp komutuyla oyunculara spawner verileceği zaman gösterilecek mesajdır. %arg-1% oyuncu adını %arg-2% spawner ismini %arg-3% adeti döndürür.
    spawner bulunamadı: %{prefix}% Verilmeye çalışan spawner &a(%arg-2%&a) bulunamadı. #aethersp komutuyla olmayan bir spawner verilmeye çalışıldığı zaman gösterilecek mesajdır. %arg-1% oyuncu adını %arg-2% spawner ismini %arg-3% spawner adetini döndürür.
    aethersp kullanım: &cYanlış komut kullanımı. Doğrusu: /aethersp <oyuncu adı> <spawner ismi> <sayı>
    #prefix eklemek için %{prefix}% yazmanız yeterlidir.
on load:
    load "plugins/ChestSpawner/config.yml" as "chestconfig"
    set {spawners::*} to yaml node keys "Spawners" from "chestconfig"
    set {prefix} to "{@prefix}"
    wait {@sure}
    itemSpawnHandler()
command /aethersp <player> <text> <integer>:
    permission: op
    usage: {@prefix} {@aethersp kullanım}
    permission message: &cYetkin yok
    trigger:
        if arg 1,arg 2 and arg 3 is set:
            set {_amount} to arg-3
            set {_item} to "%{_amount}% chest" parsed as itemtype
            if yaml value "Spawners.%arg-2%.spawner ismi" from "chestconfig" is set:
                give arg-1 {_item} named getSpawnerName(arg-2) with lore getSpawnerLore(arg-2)   
                send "{@spawner verme mesajı}"
            else:
                send "{@spawner bulunamadı}"
function getSpawnerName(text: string) :: String:
    return yaml value "Spawners.%{_text}%.spawner ismi" from "chestconfig"
function getSpawnerLore(text: string) :: Strings:
    return coloured yaml list "Spawners.%{_text}%.spawner açıklaması" from "chestconfig"
function getSpawnerItem(text: string) :: itemtype:
    return yaml value "Spawners.%{_text}%.spawner eşya" from "chestconfig" parsed as item
function getSpawnerConfigItem(text: string) :: itemtype:
    loop {spawners::*}:
        set {_i} to getSpawnerName(loop-value)
        if {_i} is "%{_text}%":
            return getSpawnerItem(loop-value)
on place of chest:
    set {_name} to name of player's tool
    loop {spawners::*}:
        if getSpawnerName(loop-value) is "%{_name}%":   
            send "{@spawner koyma mesajı}"
            set {_loc} to location of block
            add {_loc} to {Kardassp::%player%::*}
            set {Kardasspawners::%{_loc}%} to {_name}
on break of chest:
    set {_loc} to location of block
    if {Kardassp::%player%::*} contains {_loc}:
        remove {_loc} from {Kardassp::%player%::*}
        delete {Kardasspawners::%{_loc}%}
        send "{@spawner kırma mesajı}"
    else if {Kardassp::%players%::*} contains {_loc}:
            if player is not op:
                cancel event
                send "{@kendi spawnerını kırabilirsin}"
            else:
                remove {_loc} from {Kardassp::%players%::*}
                delete {Kardasspawners::%{_loc}%}
                send "{@yetkili spawner kırma mesajı}"
function itemSpawnHandler():
    loop {Kardassp::%players%::*}:
        set {_item} to getSpawnerConfigItem("%{Kardasspawners::%loop-value%}%")
        add {_item} to inventory of block at loop-value
    wait {@sure}
    itemSpawnHandler()

Ve son olarak Skript hakkında öneri/destek için discordum: Airbender#2917
Söylemeyi unutmayalım burdan Anıla (KardasLand) katkılarından dolayı teşekkürlerimi iletiyorum.​
 
Son düzenleme:

Konu başlığında yazdığı gibi sahiden iddialı bir yapım olmuş ki şahsen çok beğendim. Ayrıca bunu ücretsiz paylaşmanız da hoş olmuş ;) <3
 
Başarılı bir çalışma olmuş, çok beğendim.Kullanmak isteyen arkadaşlar açısından baya iyi proje olmuş.Bu yolda sana başarılar diliyorum. <3​
 
Başarılı bir çalışma olmuş, çok beğendim.Kullanmak isteyen arkadaşlar açısından baya iyi proje olmuş.Bu yolda sana başarılar diliyorum. <3​
Güzel yorumun için çok teşekkür ederim kral <3
 
Güzel bir skript olmuş.
 
şunu söyliyebilirimki skript laglı her 5 saniyede 3 loop yapıyor
(bir değişik hali while ile olabilir fakat sunucu kapanınca etkisi yeticekdir yine bazı denemelerle belki yapılabilir)
böyle şeylerde plugin kullanmak çok daha sağlıklıdır(veya while ile düzgün birşey çıkarılırsa skriptlede olabilir)
 
Kod:
every {@sure}:
    loop {spawners::*}:
        loop all players:
            loop {Kardassp::%loop-value-1%::%loop-value-2%::*}:
                set {_item} to getSpawnerItem("%loop-value-1%")
                add {_item} to inventory of block at loop-value-3

Kardeş tamam her şey güzelde bu kod herşeyi çöp ediyor
 
while kullanabilirsin, süper bişeydir tadından yenmez. loop players a hiç gerek yok
 
Kod:
every {@sure}:
    loop {spawners::*}:
        loop all players:
            loop {Kardassp::%loop-value-1%::%loop-value-2%::*}:
                set {_item} to getSpawnerItem("%loop-value-1%")
                add {_item} to inventory of block at loop-value-3

Kardeş tamam her şey güzelde bu kod herşeyi çöp ediyor
while kullanabilirsin, süper bişeydir tadından yenmez. loop players a hiç gerek yok
şunu söyliyebilirimki skript laglı her 5 saniyede 3 loop yapıyor
(bir değişik hali while ile olabilir fakat sunucu kapanınca etkisi yeticekdir yine bazı denemelerle belki yapılabilir)
böyle şeylerde plugin kullanmak çok daha sağlıklıdır(veya while ile düzgün birşey çıkarılırsa skriptlede olabilir)
Kendi yaptığım testler sonucu 1 milyon variable yazma işlemini kendi bilgisayarımda (6700HQ işlemci ile test ettim) 3 saniyede halletti. (while döngüsü ile) Sunucularda daha az etkileyeceğini düşünüyorum ancak kafanızda soru işareti kalmaması için 2. maddeyi kaldırıyorum. Kodu kendiniz de test edebilirsiniz. Loopa karşı biraz ön yargınız var gibi.
 
Kendi yaptığım testler sonucu 1 milyon variable yazma işlemini kendi bilgisayarımda (6700HQ işlemci ile test ettim) 3 saniyede halletti. (while döngüsü ile) Sunucularda daha az etkileyeceğini düşünüyorum ancak kafanızda soru işareti kalmaması için 2. maddeyi kaldırıyorum. Kodu kendiniz de test edebilirsiniz. Loopa karşı biraz ön yargınız var gibi.
loopa ön yargımız yok her 5 saniyede 3 loop işlemi yapıyorsun biride loop all players
30 40 kişi olan bir sunucuda dene fakat spawner koysun oyuncular 2 3 tane+
 
Döngüleri bende kullanıyorum fakat alternatifi varken kullanmak saçma olur.
 
Döngüleri bende kullanıyorum fakat alternatifi varken kullanmak saçma olur.
Kod yapısı değiştirildi. Tekrar inceleyip görüş bildirirsen sevinirim <3
Gönderi otomatik olarak birleştirildi:

Kod:
every {@sure}:
    loop {spawners::*}:
        loop all players:
            loop {Kardassp::%loop-value-1%::%loop-value-2%::*}:
                set {_item} to getSpawnerItem("%loop-value-1%")
                add {_item} to inventory of block at loop-value-3

Kardeş tamam her şey güzelde bu kod herşeyi çöp ediyor
Kod yapısı değiştirildi. Tekrar inceleyip görüş bildirirsen sevinirim <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