SaBenTurkum
Bir Kömür Göründü Kaptanım!
- Katılım
- 14 Ekim 2023
- Mesajlar
- 139
- Elmaslar
- 12
- Puan
- 2.355
- Konum
- türkiye
- Minecraft
- PancarMotoruu
Discord:
pancarmotoruuu
Herkese merhaba kendi sunucumda da kullandığım bi kredi kağıdı oluşturma skripti yazdım.
Gerekli Pluginler:
Skript
Skript-Yaml
SK-Bee
SkQuery ve SkUtilities de kullanıyorum fakat gerekli mi emin değilim.
Oyuncular tarafından oluşturulamıyor. Yetkililerin vs oluşturup kasalara vs. koyarak oyunculara vermesi gerekiyor.
Sistemi şöyle çalışıyor:
Yetkili bir /krediver (verilecek oyuncu) miktar şeklinde kağıdı oluşturuyor. Oluşturulan kağıdın açıklamasında kağıdın sahip olduğu kredi miktarı yazıyor. Kağıda sağ tıklandığında chate uzun ve tamamen rastgele sayılardan oluşan bir kod gönderiyor. Bu sayıları uzun tutmamın sebebi aynı kağıdın 2 kere oluşmasını mümkün olduğunca azaltmak.
Minecraft içi sistem bu şekilde çalışıyor, şimdi gelelim bu kodların ne olacağına.
Skript dosyasının içinde YAML adlı dosyanın içindeki kredi kodları kısmına gidiyor. Alt kısımdaki fotoğraflarda ekleyeceğim gibi üstte kodlar, altında da kimin oluşturduğuna dair, kaç kredi olduğuna dair ve ne zaman oluşturulduğuna dair bilgiler yer alıyor.
Ekstralar:
Fakat skriptte çözemediğim tek bir sorun var, yapay zekadan yardım aldım fakat yine de çözemedim.YAML dosyasının içinde bulunan kredi bilgileri kaydedilmiyor. <none> olarak geçiyor ve bu da skripti birnevi işlevsiz kılıyor. Bu sorunu bu forumu okuyanlardan birisi çözebilirse çok memnun olurum.
FOTOĞRAFLAR:
KOD:
Skript
Skript-Yaml
SK-Bee
SkQuery ve SkUtilities de kullanıyorum fakat gerekli mi emin değilim.
Oyuncular tarafından oluşturulamıyor. Yetkililerin vs oluşturup kasalara vs. koyarak oyunculara vermesi gerekiyor.
Sistemi şöyle çalışıyor:
Yetkili bir /krediver (verilecek oyuncu) miktar şeklinde kağıdı oluşturuyor. Oluşturulan kağıdın açıklamasında kağıdın sahip olduğu kredi miktarı yazıyor. Kağıda sağ tıklandığında chate uzun ve tamamen rastgele sayılardan oluşan bir kod gönderiyor. Bu sayıları uzun tutmamın sebebi aynı kağıdın 2 kere oluşmasını mümkün olduğunca azaltmak.
Minecraft içi sistem bu şekilde çalışıyor, şimdi gelelim bu kodların ne olacağına.
Skript dosyasının içinde YAML adlı dosyanın içindeki kredi kodları kısmına gidiyor. Alt kısımdaki fotoğraflarda ekleyeceğim gibi üstte kodlar, altında da kimin oluşturduğuna dair, kaç kredi olduğuna dair ve ne zaman oluşturulduğuna dair bilgiler yer alıyor.
Ekstralar:
Fakat skriptte çözemediğim tek bir sorun var, yapay zekadan yardım aldım fakat yine de çözemedim.YAML dosyasının içinde bulunan kredi bilgileri kaydedilmiyor. <none> olarak geçiyor ve bu da skripti birnevi işlevsiz kılıyor. Bu sorunu bu forumu okuyanlardan birisi çözebilirse çok memnun olurum.
FOTOĞRAFLAR:
KOD:
Kod:
on load:
load yaml "plugins/Skript/YAML/kredi-kodlari.yml" as "krediData"
if yaml "krediData" is empty:
set yaml value "codes" from "krediData" to "[]"
command /krediver <offline player> <number>:
permission: admin.krediver
trigger:
set {_target} to argument 1
set {_miktar} to argument 2
give 1 paper named "&bKredi Kağıdı" with lore "&6Kredi Miktarı: &e%{_miktar}%" and "&7Bu bir kredi kağıdıdır. Sağ tıklayarak kullan." to {_target}
send "&a%{_target}% oyuncusuna &e%{_miktar}% &akredi kağıdı verildi."
on rightclick with paper:
if name of player's tool is "&bKredi Kağıdı":
if {kredi.cooldown.%player%} is not set:
set {_lore::*} to lore of player's tool
set {_miktar} to 0
loop {_lore::*}:
if loop-value contains "Kredi Miktarı:":
set {_raw} to loop-value
replace all "&." and "Kredi Miktarı:" and ":" and " " with "" in {_raw}
set {_miktar} to {_raw} parsed as number
if {_miktar} <= 0:
send "&cBu kredi kağıdında geçersiz miktar var." to player
stop
set {_kod} to "%random integer between 10000 and 99999999%-%random integer between 10000 and 99999999%-%random integer between 10000 and 99999999%-%random integer between 10000 and 99999999%"
load yaml "plugins/Skript/YAML/kredi-kodlari.yml" as "krediData"
if {_kod} is in yaml list "codes" from "krediData":
send "&cBu kod daha önce oluşturulmuş. Lütfen tekrar deneyin." to player
stop
add {_kod} to yaml list "codes" from "krediData"
set yaml value "data.%{_kod}%.oyuncu" from "krediData" to "%player%"
set yaml value "data.%{_kod}%.kredi" from "krediData" to "%{_miktar}%"
set yaml value "data.%{_kod}%.tarih" from "krediData" to "%now%"
save yaml "krediData"
# ...
remove 1 of player's tool from player
send "&aKredin başarıyla işlendi!" to player
send "&7Bu kodu SS al, discord üzerinden talep oluştur ve bize gönder!" to player
send "&eKod: %{_kod}%" to player
set {kredi.cooldown.%player%} to true
wait 3 seconds
delete {kredi.cooldown.%player%}
else:
send "&cBu eşyayı çok hızlı kullanıyorsun. Lütfen bekle." to player