Saya sedang membuat peta dan akan ada banyak peledakan yang terjadi dan saya tidak ingin itu merusak blok.
Saya sudah melakukan /gamerule mobGriefing false tetapi masih akan ada kerusakan blok TNT.
Apakah ada cara untuk mematikannya juga?
Jadi ini rumit, tetapi tidak jauh lebih buruk daripada mencegah pemain membuat pedang berlian. Perbedaan terbesar di sini adalah bahwa semuanya harus terjadi pada tick yang sama, dan itu harus terjadi setiap tick. Ini menghalangi strategi yang saya gunakan dalam jawaban yang ditautkan; jam pengisian 20hz adalah suatu keharusan, sedangkan saya bisa menggunakan jam yang lebih lambat dan lebih sederhana dalam jawaban lain itu. Agar ini berhasil, Anda masih ingin menonaktifkan mob griefing, karena saya menggunakan bola api ghast untuk menciptakan ledakan yang sebenarnya. Mungkin juga memiliki efek, tetapi menyebabkan 0 kerusakan pada pemain atau entitas lain, dan saya akan menambahkan perintah untuk itu di bagian akhir.
Langkah pertama adalah menyiapkan tujuan papan skor untuk melacak TNT yang akan meledak:
/scoreboard objectives add TNTGoBoom dummy
Selanjutnya, kita perlu mengatur jam isi
. Anda akan membutuhkan dua blok perintah dalam satu kolom dengan blok udara yang memisahkannya. Di bagian bawah, masukkan perintah berikut:
fill ~ ~1 ~ ~3 ~1 ~ air
dan di bagian atas, masukkan perintah ini:
fill ~ ~-1 ~ ~3 ~-1 ~ redstone_block
Letakkan blok redstone di antara keduanya, dan Anda memiliki fill clock. Idealnya, ini tidak akan berada di dekat batas chunk, tetapi milik saya dan masih berfungsi dengan baik. Hal-hal lucu dapat mulai terjadi jika bagian dari fill clock dibongkar dari memori, tetapi jika itu adalah spawn chunk atau Anda selalu berada di dekat clock, Anda tidak perlu khawatir.
Anda akan melihat tiga blok redstone lagi di satu sisi. Anda akan meletakkan tiga blok perintah lagi yang berdekatan dengan blok redstone (sebaiknya di atas atau di bawah). Dalam urutan yang paling dekat dengan dua blok perintah pertama, perintah yang ingin Anda gunakan adalah:
scoreboard players set @e[type=PrimedTnt] TNTGoBoom 1 {Fuse:0b}
execute @e[type=PrimedTnt,score_TNTGoBoom=1] ~ ~ ~ summon Fireball ~ ~ ~ {direction:[0.0,-1.0,0.0],ExplosionPower:4,Fuse:0,Time:-1,TileEntityData:{CustomName:"TNT"},ActiveEffects:[{Id:14,Duration:10,Amplifier:10,Ambient:1}]}
kill @e[type=PrimedTnt,score_TNTGoBoom=1]
Oke, mari kita bahas ketiga perintah tersebut. Perintah pertama menetapkan nilai papan skor untuk objektif TNTGoBoom menjadi 1 untuk setiap TNT yang siap meledak pada tick berikutnya. Ini adalah cara kita melacak TNT. Perintah berikutnya memanggil bola api tak terlihat di lokasi yang tepat dari TNT, bergerak langsung ke bawah, dan dengan daya ledak yang sama dengan sepotong TNT. Inilah yang sebenarnya akan menyebabkan efek ledakan dan kerusakan pada pemain/entitas, tetapi karena mob griefing dimatikan, hal itu tidak akan merusak terrain. Akhirnya, kita membunuh
(secara efektif menghapus) TNT yang akan meledak sehingga tidak akan merusak medan.
Sekarang jika Anda ingin tetap memiliki efek ledakan tanpa menyebabkan kerusakan, maka Anda perlu mengganti perintah pemanggilan bola api dengan 2 blok perintah (dan oleh karena itu memperpanjang waktu pengisian Anda dengan satu blok lagi):
execute @e[type=PrimedTnt,score_TNTGoBoom=1] ~ ~ ~ particle hugeexplosion ~ ~ ~ 0 0 0 1
execute @e[type=PrimedTnt,score_TNTGoBoom=1] ~ ~ ~ playsound random.explode @a ~ ~ ~
Kedua perintah ini menciptakan efek partikel dan suara ledakan TNT, tetapi hanya itu saja. Tidak ada kerusakan pada dunia, pemain, atau entitas jika Anda menggunakan ini sebagai pengganti metode bola api.
Tambahan: Jadi ini benar-benar akan mengacaukan hal-hal seperti meriam TNT. Saya menjalankan ini di dunia kreatif saya di mana saya sebelumnya menguji meriam TNT tak terbatas, dan sementara itu agak berhasil (proyektil TNT masih menembak sedikit), ia memiliki kecenderungan untuk mengirim bola api ke langit. Selain itu, menggunakan ini berarti setiap blok TNT harus dinyalakan satu per satu, karena dengan mob-griefing off, bola api tidak akan menyalakan yang lain di dekatnya. Saya yakin ada cara untuk mengatasi hal ini dengan sedikit lebih banyak perintah-blok-fu. Sebenarnya, saya tahu ada cara untuk melakukan ini, saya hanya belum 100% mengetahui detailnya.
Tidak di Vanilla Minecraft, tidak.
Anda memerlukan plugin server atau mod (sebaiknya WorldGuard) untuk melakukan ini.
Ada pertanyaan yang bagus di sini yang menunjukkan bagaimana Anda dapat melakukan ini dengan World Guard.
Buatlah sebuah alat yang membuat blok perintah menjadi hidup dan mati dan hidup dan mati dan mati dan mati, dst, dst, dst. sekarang, ketik /kill @e[type=PrimedTnt] di blok perintah. Ini akan menghancurkan tnt segera setelah disetel. SEDERHANA!