Tutorial
Selamat pagi, siang, sore, dan malam untuk para pembaca, semoga selalu sehat dan mantap menjalani hari.
Hari ini kita akan lanjut Skript, yaitu Implementasi Event dalam kasus ini adalah Lift
Di Minecraft, kita dapat membuat lift secara manual yaitu melalui air seperti pada video video berikut Water Elevator
Setelah melihat video tersebut, sebagai player, agak kerepotan untuk mencari Soul Sand, Magma Block, Kelp dan Bone meal jika hanya membuat lift.
Sebagai Pemilik server pastinya ingin membuat player senang dan mempermudah player dalam mengurangi beban mencari bahan bahan yang diatas.
Itulah kenapa kita akan buat Skript untuk Lift, yuk kita mulai, jika kamu baru melihat postingan ini, alangkah baiknya kamu dapat mampir ke postingan sebelum ini Skript Part 1.
Oke kita akan buat Filenya, Terserah nama filenya, yang penting isinya bertujuan untuk hal yang sama, yaitu buat Lift.

Buat commentnya, biar kita tau ini skript nanti bakal jadi apa.
Oke ada beberapa cara untuk membuat lift, antara pasang Sign yang bertuliskan Lift UP dan Lift Down, atau bisa dengan cara pakai block khusus yang akan dijadikan acuan atau platform untuk naik dan turun misal Obsidian, atau Oak Plank, atau Diamond Block, dsb, Kita akan pakai metode platform untuk naik dan turun sebagai contoh, kamu bisa berkreasi sebagus mungkin untuk mendapatkan pengalaman naik lift yang mengasyikan.
Sebagai contoh, kita menggunakan block Dripstone, dimana kita bisa mendapatkan dengan mudah saat menambang di Goa, dan menurut saya block yang tidak menimbulkan konflik antara block lain (jarang ada yang pasang sebagai dekorasi atau semacamnya).
Kita mekanismenya bisa loncat, atau jongkok, kita asumsikan bahwa loncat itu mau ke atas, dan Jongkok kita asumsikan mau ke bawah.
Kita kerjakan dulu untuk mekanisme Naik Lift nya
on jump:
block under player is dripstone block
block at player is tagged as minecraft tag "wool_carpets"
set {_status} to "notfound"
Oke, dari teks tersebut harusnya sudah agak paham dikit, Ketika Lompat, Kita masuk ke If berbentuk declarative condition, Jika belum paham, yuk baca dlu di Skript Part 2. yang dimana cek apakah block dibawah player berdiri adalah dripstone block, dan cek kedua adalah block di player adalah bagian dari carpet, jadi bisa white wool carpet, green wool carpet, dan sebagainya.
Kita akan buat variabel sementara bernama status yang mana akan diset menjadi notfound terlebih dahulu, karena kita akan melakukan proses looping (perulangan) yang akan kita tulis codenya habis ini
Kita Lanjut codenya
loop blocks between block above player and block 28 meters above the player:
if loop-block is dripstone block:
if block above loop-block is tagged as minecraft tag "wool_carpets":
# safe area
if block 2 meters above loop-block is air:
teleport player to block above loop-block
set {_status} to "found"
stop loop
else:
set {_status} to "notsafe"
stop loop
else:
continue loop
Selanjutnya kita akan melakukan perulangan namun memakai lokasi dari block diatas player ke 28 meters (block, karena 1 block = 1 meter) keatas player, karena kita akan buat Lift Naik.
Kita akan cek setiap blocknya, apakah ada dripstone block diatas kita diantara 28 block, ketika ada kita lanjut ke kode dalamnya
Kita ingat kembali, bahwa platform lift kita terdiri atas Dripstone Block dan Carpet, jadi kita harus cek lagi kalau sudah ketemu dripstone blocknya, jangan jangan kalau lagi mining di goa, ketemu dripstone block yang mana di langit goa juga dripstone block, dikasih carpet, bisa teleport ke atas, ngga bisa dong kaya gitu, jadinya kita lanjut lagi kodenya kalau memenuhi syarat.
Oke setelah ngecek beneran ada platform teleport disitu, kita cek lagi, aman ngga buat naik lift, minimal 2 block diatas dripstone block, jangan jangan ada temen iseng nutupin platform lift pakai lava atau block lain, jadi harus bener bener aman, kalau ngga aman?, variabel status kita akan ganti ke notsafe yang menandakan bahwa naik lift tersebut tidak aman dan stop perulangannya, kalau aman, kita lanjut ke code intinya.
Setelah melalui berbagai macam pengecekan, kita lakukan teleportasi player ke lokasi diatas Dripstone Block yang telah kita lakukan perulangan itu, kita ubah statusnya menjadi found. dan stop looping
if {_status} is "notfound":
send "Can't find Platform Above" to player
else if {_status} is "notsafe":
send "We found platform, but not safe to land" to player
else if {_status} is "found":
send "Elevated Up" to player
Kita pakai variabel sementara bernama status ini untuk menyampaikan ke player bahwa status lift kita gimana, kalau notfound berarti ngga ada atau diluar jangkauan perulangan,
kalau notsafe berarti ada platformnya namun ada yang menghalangi, dan kalau found kita kasih pesan Elevated Up
Oke kita coba sekarang, platform 1 dan 2 identik, dan platform 3 kita halangin pake block





Kita telah berhasil membuat Lift Ke Atas, bagaimana dengan kebawah?, sebenarnya kodenya hampir sama saja, namun yang membedakan adalah arah looping blocknya, dari atas kebawah.
Mekanisme lift kebawah yang saya pakai adalah jongkok dari platform, namun dengan perbedaan event dengan jump, Jongkok di Minecraft memiliki 2 Event, ketika Melakukan Jongkok, dan Selesai melakukan Jongkok, yang mana ditangani oleh event on sneak toggle.
on sneak toggle:
player is not sneaking
block under player is dripstone block
block at player is tagged as minecraft tag "wool_carpets"
set {_status} to "notfound"
Dikarenakan Membaca event pada saat jongkok dan selesai jongkok, maka kita filter ketika diawal tidak jongkok aja yang dibaca, alias player is not sneaking, selebihnya masih sama dengan yang lift naik, yaitu cek platform dan set status notfound terlebih dahulu.
loop blocks between block 2 meters below player and block 28 meters below the player:
if loop-block is dripstone block:
if block above loop-block is tagged as minecraft tag "wool_carpets":
# safe area
if block 2 meters above loop-block is air:
teleport player to block above loop-block
set {_status} to "found"
stop loop
else:
set {_status} to "notsafe"
stop loop
else:
continue loop
if {_status} is "notfound":
send "Can't find Platform Below" to player
else if {_status} is "notsafe":
send "We found platform, but not safe to land" to player
else if {_status} is "found":
send "Elevated Down" to player
Kita lakukan perulangan dari 2 meter (block) dibawah player ke 28 meter (block) dibawah player, selebihnya sama dengan Lift naik, dimana kita mengecek platformnya, aman tidak platform tersebut dan melakukan teleport jika platform tersebut aman. dan setelah perulangan itu kita bisa kirim pesan ke player berdasarkan status yang didapat saat pengecekan dan perulangan tadi.
Sebelumnya kita udah uji coba naik ke atas, kemudian kita akan coba turun kebawah, dan bagaimana Hasilnya, kita ganti yang halangin platformnya di lantai 1






Selamat, kalian sudah berhasil membuat Skript Lift, terlihat mudah? boleh kalian kreasi sendiri, sebenarnya masih ada bug yang belum terselesaikan, yaitu saat teleport, pandangan player kereset, jadi PR kalian adalah bagaimana cara agar tidak kereset pandangannya.
Oke Sekian dulu untuk Postingan ini, semoga bermanfaat Source Code untuk Lift ini bisa kalian dapatkan di GitHub Project Skript saya di Link berikut https://github.com/aden000/Skript-Project