Saya ingin membuat game mini di Minecraft dan saya membutuhkan generator perintah acak untuk 9 perintah. Saya membutuhkan perintah acak untuk memberikan item acak kepada pemain.
Saya tidak dapat melakukan blok perintah di dispenser lagi karena itu hanya akan keluar dan tidak ditempatkan.
Solusi yang paling sederhana adalah dengan tidak menggunakan generator acak yang sebenarnya, karena itu tidak terlalu dibutuhkan. Keacakan dapat berasal dari masukan pengguna.
Yang saya maksudkan adalah Anda dapat memiliki tujuan papan skor yang berubah dengan cepat, dan mengevaluasi skor pada saat tombol ditekan.
Pertama-tama, atur tujuan keacakan Anda menggunakan
scoreboard objectives add RNG stat.playOneMinute
Menggunakan stat.playOneMinute
akan secara otomatis meningkatkannya sebanyak 1 setiap detak permainan tanpa perlu perintah lain, dan tidak akan sama untuk setiap pemain (jika tidak diinginkan, atur ulang untuk semua orang).
Sekarang buatlah sebuah jam isi/setblock dan jalankan
scoreboard players set @a[score_RNG_min=9] RNG 0
dan Anda sudah selesai. Untuk menggunakan angka acak Anda, buatlah satu blok perintah untuk setiap hasil dan sertakan [score_RNG=X,score_RNG_min=X]
dengan argumen pemilih target Anda, di mana X
adalah nilai yang akan digunakan, mulai dari 0 hingga 8(!). Picu semua ini secara bersamaan. Sebagai contoh
...
/give @a[score_RNG=4,score_RNG_min=4,team=PlayingTheGame] diamond_sword
/give @a[score_RNG=5,score_RNG_min=5,team=PlayingTheGame] dirt
...
Jika perintah Anda tidak menggunakan argumen pemilih target, Anda dapat (ab) menggunakan execute
untuk itu, misalnya
/execute @a[score_RNG=4,score_RNG_min=4] ~ ~ ~ setblock 1 2 3 stone
Ada banyak cara untuk membuat generator angka acak yang berfungsi dengan baik menggunakan algoritma keacakan yang sudah ada di Mojang.
Sebagai contoh, Dispenser memilih item acak untuk dikeluarkan ketika dipicu. Anda dapat mendeteksi stackability dari item tersebut menggunakan komparator - Item yang dapat ditumpuk (yaitu Batu Besar) hanya mengeluarkan sinyal dengan panjang 1 sementara item yang tidak dapat ditumpuk (yaitu Pintu) akan mengeluarkan singal dengan panjang 2. Dengan demikian Anda mendapatkan angka 1 dan 2 secara acak. Anda dapat menggunakan beberapa dari mereka dalam larik untuk menghasilkan angka yang lebih tinggi. Anda bisa mengatur probabilitas hasil tertentu dengan memanipulasi jumlah item di dalam dispenser/penetes.
maaf untuk visualisasi yang buruk ini. Setiap kotak Biru menghasilkan 1 atau 2 dengan peluang 50%.
Atau Anda dapat menggunakan perintah spreadplayers
yang juga menggunakan generator angka acak bawaan java. Munculkan sebuah Entitas seperti seekor domba dan kemudian sebarkan. Domba tersebut akan mendarat pada posisi acak. Posisi ini dapat dicatat oleh pelat tekanan tetapi akan membutuhkan lebih banyak ruang.
Ada beberapa video di YouTube tentang ini. Mungkin Anda ingin menonton salah satunya:
Tergantung pada seberapa sering harus digunakan, metode yang diposting di reddit ini mungkin merupakan metode yang baik.
Pada dasarnya metode ini berkisar pada tujuan papan skor yang diatur ke semua nomor acak Anda (1-9 dalam kasus Anda, mungkin) dengan sinyal berurutan (jadi repeater dalam lingkaran atau kereta tambang yang berputar-putar).
Selama Anda tidak terlalu sering melakukan polling nilai, maka akan muncul secara acak. Ada juga beberapa ide dalam tulisan tentang cara memperbaikinya.