Sandık Mağaza Skripti — Oyuncular Arası Ticaret
Oyuncuların sandık üzerine sign koyarak birbirlerine ürün satabildiği klasik ChestShop benzeri bir sistem.
Tam Skript Kodu
# sandik-magaza.sk
# Sandık Mağaza Sistemi — Ücretsiz
options:
prefix: "&8[&6&lMağaza&8] &r"
komisyon: 0.05
on rightclick on sign:
if line 2 of clicked sign is "SATILIK" or line 2 of clicked sign is "ALISVERIS":
set {_fiyat} to line 3 of clicked sign parsed as number
if {_fiyat} is not set:
stop
set {_sahip} to line 4 of clicked sign
if {_sahip} is player's name:
send "{@prefix}&7Bu sizin mağazanız." to player
stop
if balance of player < {_fiyat}:
send "{@prefix}&cYetersiz bakiye! Gerekli: &e%{_fiyat}%₺" to player
stop
# Sandığı bul
set {_sandik} to chest below clicked sign
if {_sandik} is not set:
set {_sandik} to chest above clicked sign
if {_sandik} is not set:
send "{@prefix}&cMağaza sandığı bulunamadı!" to player
stop
set {_urun} to first item in {_sandik}
if {_urun} is air or {_urun} is not set:
send "{@prefix}&cMağaza stoğu tükendi!" to player
stop
remove {_fiyat} from balance of player
set {_komisyon-tutar} to {_fiyat} * {@komisyon}
set {_net} to {_fiyat} - {_komisyon-tutar}
add {_net} to balance of {_sahip} parsed as offline player
give player {_urun}
remove {_urun} from {_sandik}
send "{@prefix}&aSatın alındı: &f%{_urun}% &8| &e%{_fiyat}%₺" to player
set {_sahip-p} to {_sahip} parsed as offline player
if {_sahip-p} is online:
send "{@prefix}&f%player% &7mağazanızdan satın aldı: &e+%{_net}%₺" to {_sahip-p}
command /satilik <number>:
trigger:
set {_fiyat} to arg-1
if {_fiyat} <= 0:
send "{@prefix}&cGeçersiz fiyat!" to player
stop
set {_item} to player's tool
if {_item} is air:
send "{@prefix}&cElinizdeki itemi teslim edin!" to player
stop
send "{@prefix}&7Satış levhası yerleştirin (önünüzdeki bloğun üstüne)." to player
send "{@prefix}&7Fiyat: &e%{_fiyat}%₺ | Item: &f%{_item}%" to player
set {magaza.bekleyen::%player's uuid%.fiyat} to {_fiyat}
set {magaza.bekleyen::%player's uuid%.item} to {_item}
on rightclick on block:
if {magaza.bekleyen::%player's uuid%.fiyat} is set:
set {_b} to clicked block
set {_fiyat} to {magaza.bekleyen::%player's uuid%.fiyat}
set {_item} to {magaza.bekleyen::%player's uuid%.item}
delete {magaza.bekleyen::%player's uuid%.fiyat}
delete {magaza.bekleyen::%player's uuid%.item}
# Levha oluştur
set block at location above {_b} to oak_sign
set line 1 of sign at location above {_b} to "&6SATILIK"
set line 2 of sign at location above {_b} to "SATILIK"
set line 3 of sign at location above {_b} to "%{_fiyat}%"
set line 4 of sign at location above {_b} to player's name
send "{@prefix}&aMağaza levhası oluşturuldu! &e%{_fiyat}%₺" to player
Önemli Notlar
Bu skript bazı event'ler için SkBee veya ProtocolLib gerektirebilir. Özellikle `set block` komutu için WorldEdit API gerekebilir.
Daha basit alternatif — sadece /satis komutu:
command /satis <player> <number> <text>:
trigger:
# Direkt oyuncudan oyuncuya satış
if balance of player < arg-2:
send "&cYetersiz bakiye!" to player
stop
# GUI ile onay sistemi eklenebilir
remove arg-2 from balance of player
add arg-2 to balance of arg-1
send "&aSatış tamamlandı." to player
Sorularınız için bu konuya yazın!
💡 Etkileşim için giriş yap.