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;
ÖZELLİKLER
GEREKLİ ADDONLAR
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.
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'
- Tamamıyla konfigüre edilebilir
- Sınırsız spawner koyabilme.
- Sınırsız spawner ekleyebilme.
- Spawnerın ismini ve açıklamasını ayarlayabilme.
- Bütün mesajları ayarlayabilme.
- Lagg yapmayacak şekilde optimize edildi.
GEREKLİ ADDONLAR
- Skript
- SkRayFall
- skript-yaml
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:
