Tutorial
Halo semuanya, apa kabar?, semoga selalu sehat dan semangat menjalani hari. Kita akan melanjutkan dari part 1: Hello World, bagi kamu yang belum mengikuti part 1, saya sarankan kamu mengakses disini Skript Minecraft Tutorial: PART 1 - Hello World.
Kita sebelumnya sudah mengetahui cara menampilkan hello world di skript, namun basic rule apa yang harus diketahui saat menggunakan skript?, seperti indentation, function, tata letak, perulangan, dan sebagainya, kita akan bahas di sini.
Adalah susunan kata yang agak menjorok sesuai dengan fungsinya, jadi ketika ada sebuah event seperti berikut
on join:
broadcast "%player% memasuki Server"
%player%merupakan sebuah placeholders yang digunakan untuk mendapatkan nama dari player yang sedang join itu.
Kita perhatikan, on join merupakan sebuah event dimana ketika ada player yang masuk ke server. di akhir on join terdapat : yang menandakan dibawahnya merupakan bagian dari event on join saat teksnya menjorok kedepan, jika kamu familiar dengan bahasa pemrograman python, mungkin kamu dapat memahami sedikit.
Hal ini akan sangat berguna untuk menentukan apakah baris code ini masih kelanjutan dari atasnya, atau berdiri sendiri
Variabel di skript agak unik, dimana kita tidak perlu mendeskripsikan isi tipe data dari variabel, kita bisa lihat disini
on load:
set {global_health} to 100
set {welcome_message} to "Selamat Datang di Server yang paling mantap"
on join:
set player's health to {global_health}
broadcast {welcome_message}
Deskripsi Code:
Ketika Skript di Muat saat menyalakan server:
set variabel global_health menjadi 100.
set variabel welcome_message menjadi "Selamat Datang di Server yang paling mantap"
Ketika ada player yang join:
set health dari player menjadi isi dari variabel global_health
tampilkan chat ke seluruh player dengan isi dari variabel welcome_message
Variabel di skript diawali kurung kurawal buka, dan diakhiri kurung kurawal tutup
Variabel di skript bersifat global, dan tersimpan di file
variables.csvdi folder skript. jika kita ingin menjadikan variabel itu sebagai variabel sementara, gunakan prefix underscore_diikuti dengan nama variabel, contoh_cooldownAttackatau gunakan sesuai kebutuhan
Function dikenalkan pada skript versi 2.2 untuk public function, dan 2.7 untuk local function Sumber.
Function adalah sebuah kumpulan instruksi yang disatukan untuk mendapatkan proses tertentu. semisal fungsi untuk menambahkan angka
1.| function tambahAngka(a: num, b: num) :: num :
2.| return {_a} + {_b}
3.|
4.| on join:
5.| broadcast "%tambahAngka(90, 6)%" // Output: 96, bukan 99 ygy :D
Deskripsi Code
Baris 1: function tambahAngka(a: num, b: num) :: num :
Baris 2: return {_a} + {_b}
Baris 4: on join: Event yang dijalankan ketika ada player masuk
Baris 5: broadcast "%tambahAngka(90, 6)%"
tambahAngka dengan parameter a: 90, b: 6
Dalam keadaan tertentu, Kita bisa memanggil fungsi didalam penulisan string
" ", yaitu diapit oleh tanda persen% %, namun bagaimana kita bisa menuliskan simbol persen?, kita hanya perlu menuliskan persen 2x
set {_progress} to 25
broadcast "Progress %{_progress}%%%" // Output: Progress 25%
Perulangan di Skript hampir sama dengan perulangan pada pemrograman yang lain, biasanya di C++, kita melakukan seperti for (int a = 0; a < 10; a++), di Skript, kalian akan menggunakan keyword loop, berikut adalah contoh menggunakan loop
loop 10 times:
broadcast "Mantap Jiwa!"
Code diatas akan memberikan output ke chat "Mantap Jiwa" 10 kali
Merupakan Sebuah logic yang akan dilalui oleh kode agar bisa menentukan bahwa apakah memenuhi atau tidak, contoh seperti berikut
Declarative conditions:
1.| player's experience is more than 50
2.| broadcast "%player% EXP lebih dari 50!"
If else conditions:
1.| if player's experience is more than 50:
2.| broadcast "%player% EXP lebih dari 50!"
3.| else:
4.| broadcast "%player% EXP kurang dari 50 :("
Kondisi di Skript terbagi menjadi 2
Declarative conditions merupakan kondisi deklaratif yang mana jika memenuhi, maka kode dibawahnya akan dilanjutkan, jika tidak, maka kode dibawahnya tidak dijalankan, namun menurut pendapat saya, jika tidak urgent, jangan menggunakan declarative conditions ini, karena ketika akan memaintenance code, kalian akan mengalami kesulitan, yah mungkin kalau kode kalian tidak terlalu banyak, maka tidak masalah, namun akan menjadi masalah ketika kode sudah terlalu kompleks, hal ini juga akan menjadi PR jika kalian butuh melakukan code tertentu jika kondisinya salah
If Else condition merupakan kondisi yang secara umum dikenal diberbagai macam bahasa pemrograman, seperti contoh diatas, Jika player experience nya lebih dari 50 maka broadcast %player% EXP lebih dari 50, jika tidak maka broadcast %player% EXP kurang dari 50,
Kita telah mengenal Loop dan If Else
Bagaimana kita coba untuk Loop dan IF secara bersamaan? contoh kita akan menggunakan fungsi internal Skript yaitu mod yaitu modulus yang mana kita bisa mendapatkan sisa bagi dari pembagian, kita akan menentukan apakah bilangan ganjil atau genap
loop 10 times:
if mod(loop-value, 2) is 0:
broadcast "%loop-value% adalah bilangan Genap!"
else:
broadcast "%loop-value% adalah bilangan Ganjil!"
loop-valuemerupakan placeholder yang bisa mendapatkan nilai dari loop yang sedang berjalan.
Baiklah, Kita cukupkan Part 2 disini, Jangan lupa mencoba dan membaca dokumentasi Skript di sini https://docs.skriptlang.org/index.html