Çözüldü World Guard Ayar

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Kodun son hali budur deneyip test edebilirsiniz test etme fırsatım olmadığı için direkt atıyorum.

Kod:
options:
  world: "prisons" #Dünyanın Adı

on break of any block:
  # olayın olduğu dünya, options bölümünde belirlediğimiz dünya ile aynı mı diye kontrol edelim
  event-world is {world} # bu bir satır içi koşuldur
  # oyuncunun kırdığı bloğu bir değişkene ata
  set {_block} to event-block
  # bloğun end taşı veya obsidyen olup olmadığını kontrol et
  if {_block} is end stone or obsidian:
    # bloğu kırmayı engelle
    cancel event
    # oyuncuya bir mesaj göster
    send "&cBu bloğu kıramazsın!" to player
1709661364544.png
Bunu diyor
 
yukarıdaki skript sıkıntılı, oyuncu tarafından koyulmayan bloklar da kırılabiliyor o yüzden atacağım skripti kullanmanızı öneririm, end taşı ve obsidyen kırmayı engelledim

JavaScript:
on place:
    set {data::%event-block's location%} to true

on break:
    player's world = "world"
    if event-block is not end stone or obsidian:
        if {data::%event-block's location%} is set:
            clear {data::%event-block's location%}
        else:
            cancel event
            send "&ckıramazsın!"
    else:
        cancel event
        send "kıramazsın!"

skript sadece "world" dünyasında çalışır ve sadece oyuncular tarafından koyulan bloklar oyuncular tarafından kırılabilir
sadece obsidyen ve end taşı kırılmalı
 
sadece obsidyen ve end taşı kırılmalı
o zaman bu kodu deneyin:

JavaScript:
on place of end stone or obsidian:
    set {data::%event-block's location%} to true

on break:
    event-world = "world"
    if event-block is end stone or obsidian:
        if {data::%event-block's location%} is set:
            clear {data::%event-block's location%}
        else:
            cancel event
            send "&ckıramazsın!"
    else:
        cancel event
        send "kıramazsın!"
 
Deneyin bakalım farklı bir şey yazdım.
Kod:
options:
  world: "prisons" # buraya çalışmasını istediğiniz dünyanın adını yazın

on break:
  event-world is {world} # bu bir satır içi koşuldur
  # oyuncunun kırdığı bloğu bir değişkene ata
  set {_block} to event-block
  # bloğun bir oyuncu tarafından koyulup koyulmadığını kontrol et
  if {_block} is player-placed:
    # bloğu kırmaya devam et
    cancel event
  else:
    # bloğu kırmayı engelle
    cancel event
    # oyuncuya bir mesaj göster
    send "&cBu bloğu kıramazsın!" to player
 
o zaman bu kodu deneyin:

JavaScript:
on place of end stone or obsidian:
    set {data::%event-block's location%} to true

on break:
    event-world = "world"
    if event-block is end stone or obsidian:
        if {data::%event-block's location%} is set:
            clear {data::%event-block's location%}
        else:
            cancel event
            send "&ckıramazsın!"
    else:
        cancel event
        send "kıramazsın!"
çalışıyor sadece end taşı ve obsidyen için olmalı ve kendiside koymamalı yani kendi koysada kıramamalı kısacası end taşı ve obsidyen bloğu hiç birşekilde koyulmayacak veya kırılmayacak sadece bi permission ile yapılabilcek bunlar permission ismi lidas.ejderhaevent
 
Deneyin bakalım farklı bir şey yazdım.
Kod:
options:
  world: "prisons" # buraya çalışmasını istediğiniz dünyanın adını yazın

on break:
  event-world is {world} # bu bir satır içi koşuldur
  # oyuncunun kırdığı bloğu bir değişkene ata
  set {_block} to event-block
  # bloğun bir oyuncu tarafından koyulup koyulmadığını kontrol et
  if {_block} is player-placed:
    # bloğu kırmaya devam et
    cancel event
  else:
    # bloğu kırmayı engelle
    cancel event
    # oyuncuya bir mesaj göster
    send "&cBu bloğu kıramazsın!" to player
1709662151714.png
 
Kendim test edip hataları çözüp hatasız bir şekilde atmayı deneyeceğim hocam.
 
çalışıyor sadece end taşı ve obsidyen için olmalı ve kendiside koymamalı yani kendi koysada kıramamalı kısacası end taşı ve obsidyen bloğu hiç birşekilde koyulmayacak veya kırılmayacak sadece bi permission ile yapılabilcek bunlar permission ismi lidas.ejderhaevent
çok karışık anlattınız ama yine de bunu bi deneyin eksiği varsa söylersiniz

JavaScript:
on place of end stone or obsidian:
    if player has permission "lidas.ejderhaevent":
        set {data::%event-block's location%} to true
    else:
        cancel event
        send "bu blokları koymaya yetkin yok"

on break:
    event-world = "world"
    if event-block is end stone or obsidian:
        if player has permission "lidas.ejderhaevent":
            if {data::%event-block's location%} is set:
                clear {data::%event-block's location%}
            else:
                cancel event
                send "&cbu blok bir oyuncu tarafından koyulmamış!"
        else:
            cancel event
            send "bunu kırabilmek için yetkin yok!"
    else:
        cancel event
        send "end taşı ve obsidyen dışında bir blok kıramazsın!"
 
çok karışık anlattınız ama yine de bunu bi deneyin eksiği varsa söylersiniz

JavaScript:
on place of end stone or obsidian:
    if player has permission "lidas.ejderhaevent":
        set {data::%event-block's location%} to true
    else:
        cancel event
        send "bu blokları koymaya yetkin yok"

on break:
    event-world = "world"
    if event-block is end stone or obsidian:
        if player has permission "lidas.ejderhaevent":
            if {data::%event-block's location%} is set:
                clear {data::%event-block's location%}
            else:
                cancel event
                send "&cbu blok bir oyuncu tarafından koyulmamış!"
        else:
            cancel event
            send "bunu kırabilmek için yetkin yok!"
    else:
        cancel event
        send "end taşı ve obsidyen dışında bir blok kıramazsın!"
yanlış anladınız evet karışık anlattım anlatmak istediğim şey bloğun oyuncu tarafından koyulmasını tamamen unutun oyuncular sadece end taşı ve obsidyeni koyamasın ve kıramasın
 
çok karışık anlattınız ama yine de bunu bi deneyin eksiği varsa söylersiniz

JavaScript:
on place of end stone or obsidian:
    if player has permission "lidas.ejderhaevent":
        set {data::%event-block's location%} to true
    else:
        cancel event
        send "bu blokları koymaya yetkin yok"

on break:
    event-world = "world"
    if event-block is end stone or obsidian:
        if player has permission "lidas.ejderhaevent":
            if {data::%event-block's location%} is set:
                clear {data::%event-block's location%}
            else:
                cancel event
                send "&cbu blok bir oyuncu tarafından koyulmamış!"
        else:
            cancel event
            send "bunu kırabilmek için yetkin yok!"
    else:
        cancel event
        send "end taşı ve obsidyen dışında bir blok kıramazsın!"
çözebildinizmi hocam
 
yanlış anladınız evet karışık anlattım anlatmak istediğim şey bloğun oyuncu tarafından koyulmasını tamamen unutun oyuncular sadece end taşı ve obsidyeni koyamasın ve kıramasın
JavaScript:
on place of end stone or obsidian:
    event-world = "world"
    cancel event
    send "bu bloğu koyamazsın"

on break of end stone or obsidian:
    event-world = "world"
    cancel event
    send "end taşı ve obsidyen kıramazsın!"
 
JavaScript:
on place of end stone or obsidian:
    event-world = "world"
    cancel event
    send "bu bloğu koyamazsın"

on break of end stone or obsidian:
    event-world = "world"
    cancel event
    send "end taşı ve obsidyen kıramazsın!"
yazdığım yetkiyide ekleyebilirmisiniz
 
JavaScript:
on place of end stone or obsidian:
    event-world = "world"
    cancel event
    send "bu bloğu koyamazsın"

on break of end stone or obsidian:
    event-world = "world"
    cancel event
    send "end taşı ve obsidyen kıramazsın!"
yetkiyi ekleyebildinizmi acaba
 
Gördüğüm kadarıyla ejderha etkinliği yapıyorsunuz, bu kadar zahmete girmek yerine oyuncuları End'e ışınlamayı deneyebilirsiniz. Bununla birlikte sadece obsidyen ve end taşı kıracaklardır.
 
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