Çözüldü GriefPrevention piston sınırı

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

YusufStrafee

Koydum Çalışma Masasını
Katılım
13 Aralık 2022
Mesajlar
50
Elmaslar
2
Puan
2.245
Yaş
26
Konum
türkiye
Minecraft
Yusuf_Strafe

Discord:

SadeceYusuf#9710

arkadaşlar chatgptye bir skript yazdırdım. oyuncu claime 6 piston koyabiliyor. piston kırarsa hakkı veriliyor. piston koyarsa hakkı gidiyor. oyuncu claime 6 piston koyup claimi silip tekrar alırsa claiminde 12 piston oluyor. pistonları kırınca 12 piston koyma hakkı oluyor. istediğim şey. oyuncunun claim aldıgı bölgede 6 piston varsa daha piston koyamasın. onları kırınca 6 piston koyma hakkı olsun. kod bu​

Kod:
# Piston yerleştirildiğinde piston sayısını sınırlama
on place of piston:
    set {_claim} to GriefPrevention.instance.dataStore.getClaimAt(event-location, false, null)
    if {_claim} is not set:
        cancel event
        send "<##fb15f2>&lB<##fb15f2>&li<##fb15f2>&ll<##fb15f2>&lg<##fb15f2>&li<##fb15f2>&ln<##fb15f2>&lC<##fb15f2>&lraft <##4b4b49>⇴ <##f3f3a0>Sadece claimine <##e8e850>piston <##f3f3a0>koyabilirsin!" to player
        stop

    # Claimin ID'sini alıyoruz
    set {_claimID} to {_claim}.getID()

    # Claimdeki piston sayısını kontrol et
    if {piston_count::%{_claimID}%} is not set:
        set {piston_count::%{_claimID}%} to 0

    # Eğer claimdeki piston sayısı 100'ü geçiyorsa, işlemi engelle
    if {piston_count::%{_claimID}%} >= 6:
        cancel event
        send "<##ff0000>Bu claimde zaten 100 piston var! Daha fazla piston yerleştiremezsin." to player
        stop

    # Piston sayısını arttırıyoruz
    add 1 to {piston_count::%{_claimID}%}

    # Kalan hakkı bildiriyoruz
    set {_remainingPistons} to 6 - {piston_count::%{_claimID}%}
    send "<##f3f3a0>Claimde %{_remainingPistons}% piston yerleştirme hakkınız kaldı." to player

# Piston kırıldığında pistonu sayadan düşür
on break of piston:
    set {_claim} to GriefPrevention.instance.dataStore.getClaimAt(event-location, false, null)
    if {_claim} is not set:
        stop

    # Claimin ID'sini alıyoruz
    set {_claimID} to {_claim}.getID()

    # Piston sayısını 1 azaltıyoruz
    subtract 1 from {piston_count::%{_claimID}%}

    # Kalan hakkı bildiriyoruz
    set {_remainingPistons} to 6 - {piston_count::%{_claimID}%}
    send "<##f3f3a0>Claimde %{_remainingPistons}% piston yerleştirme hakkınız kaldı." to player
 
Skript'te küçük bir değişiklik yaptım hocam. Skripte on claim delete olayını ekledim, bunun sayesinde oyuncu claimini sildiğinde tüm verileri sıfırlayacak ve tekrardan skript içerisinde bir kaç claim gibi alt sınırları düzenleyerek yaşanabilecek sorunlarında önüne geçtim. Bu şekilde direk skriptinizi güncelleyerek kullanmaya devam edebilirsiniz.

JavaScript:
on place of piston:
    set {_claim} to GriefPrevention.instance.dataStore.getClaimAt(event-location, false, null)
    if {_claim} is not set:
        cancel event
        send "<##fb15f2>&lB<##fb15f2>&li<##fb15f2>&ll<##fb15f2>&lg<##fb15f2>&li<##fb15f2>&ln<##fb15f2>&lC<##fb15f2>&lraft <##4b4b49>⇴ <##f3f3a0>Sadece claimine <##e8e850>piston <##f3f3a0>koyabilirsin!" to player
        stop

    set {_claimID} to {_claim}.getID()

    if {piston_count::%{_claimID}%} is not set:
        set {piston_count::%{_claimID}%} to 0

    if {piston_count::%{_claimID}%} >= 6:
        cancel event
        send "<##ff0000>Bu claimde zaten 6 piston var! Daha fazla piston yerleştiremezsin." to player
        stop

    add 1 to {piston_count::%{_claimID}%}

    set {_remainingPistons} to 6 - {piston_count::%{_claimID}%}
    send "<##f3f3a0>Claimde %{_remainingPistons}% piston yerleştirme hakkınız kaldı." to player

on break of piston:
    set {_claim} to GriefPrevention.instance.dataStore.getClaimAt(event-location, false, null)
    if {_claim} is not set:
        stop

    set {_claimID} to {_claim}.getID()

    if {piston_count::%{_claimID}%} is not set or {piston_count::%{_claimID}%} <= 0:
        stop

    subtract 1 from {piston_count::%{_claimID}%}

    set {_remainingPistons} to 6 - {piston_count::%{_claimID}%}
    send "<##f3f3a0>Claimde %{_remainingPistons}% piston yerleştirme hakkınız kaldı." to player

on claim delete:
    set {_claimID} to event.getClaim().getID()
    delete {piston_count::%{_claimID}%}
 
On claim delete diye bir modül yok hata veriyor.
 
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