Basic JavaScript dan ModPE - Red-Eagle-Reborn/ModPE-Wiki GitHub Wiki

Basic JavaScript dan ModPE

Pertama, marilah kita bahas soal basic script syntax, Script biasanya tersusun dari beberapa function komplit.
Function adalah sesuatu yang akan dioperasi atau dijalankan oleh pembaca script, contohnya BlockLauncher untuk MCPE.
Inilah contoh Function :

function newLevel() {
// Konten untuk function
clientMessage("Hay, Selamat Datang di World");
}

Code yang beawal dengan // tidak akan di execute sampai line selanjutnya, dan code yg di awali dengan /* dan diakhiri dengan */ juga tidak akan di execute/dijalankan, kita menyebut ini dengan 'Comments'.

Nama function bisa apa saja yang mau kamu gunakan, tapi ada beberapa function yang akan dijalanakan langsung dari blocklauncher, function itu adalah 'Hook', function yg telah langsung disediakan oleh blocklauncher. Bagaimana jika function tersebut bukan Hook ? akan dijelaskan nanti.

function newLevel() hook yang dijalankan ketika player memasuki world, ataupun membuat world baru, daftar dari function hook ada di wiki ini >

Didalam function, ada tugas, tugas menjalankan sebuah perintah atau aksi, misalnya clientMessage("Selamat Datang"), maka akan keluar kata Selamat Datang, sebuah function hook harus diakhiri dengan titik koma ";", contoh peletakan titik koma di sebuah function : clientMessage("Hay"); atau bsa juga print("Aaa"); Ada beberapa pembaca script yg tidak memerlukan tanda ";" diakhir function, tpi memakai tanda ";" diakhir function sangat disarankan untuk praktik dalam pembelajaran :)


Operator

Operator adalah simbol yang digunakan untuk mempresentasikan sebuah matematika,

  • Player.getX()-1 Mengartikan bahwa mencheck koordinat player -1 pada sisi ke kiri atau kanan.
  • Player.getX()+1 Mengartikan bahwa mencheck koordinat player +1 pada sisi ke kiri atau kanan.
  • Player.getX()*2 Mengartikan bahwa mencheck koordinat player x2 pada sisi ke kiri atau kanan.
  • 1 == 1 Mengartikan bahwa (true/false / benar/salah) apa bila 1 = 1, Note : 1=1 keluarnya error, harus 1==1.
  • 1 != 1 Mengartikan bahwa (true/false / benar/salah) apa bila 1 tidak sama dengan 1.
  • 1 > 1 dan 1 < 1 Mengartikan bahwa apa bila 1 lebih besar dari 1,1 lebih kecil dari 1.
  • 1 < 2 || 1 > 2 Mengartikan bahwa apa bila 1 lebih kecil dari 2 dan '&&' 1 lebih besar dari 2.
  • 1 < 2 || 1 > 2 Mengartikan bahwa apa bila 1 lebih kecil dari 2 dan '&&' 1 lebih besar dari 2.
  • 1 >= 1 dan 1 <= 1 Mengartikan bahwa 1 lebih besar atau sama dengan 1, 1 lebih kecil atau sama dengan 1.

Variable

Selain dari :

if(getCarriedItem()==1||getCarriedItem()==5||getCarriedItem()==12/*etc*/){ //etc. } 

Kamu juga bisa menggunakan sintkatan untuk kata getCarriedItem(), sebagai contohnya :

var item = getCarriedItem();

var menjalankan BlockLauncher untuk membuat variable baru, 'item' adalah nama variablenya, kamu bisa mengubah semau kamu jadi apa saja, mialnya 'barang' atau 'itemYangDipegang', Bagaimanapun juga, nama variable tidak bisa diawali dengan angka, atuapun menggunakan spaci, contoh 'Barang yang Di pegang' maka keluar = error, dan juga, kata seperti "if", "this", "super", "var", "for", "try", "catch", dan lain2, tidak bsa digunakan sebagai variable, jika kamu menggunakan text editor khusus javascript, atau modpe ide, ketika kamu menggunakan variable dengan kata2 diatas, nama variablenya akan berwarna lain dari nama variable biasa, nama variable juga harus diketik dengan benar, jika kami membuat var barangKu = 264 maka kamu juga harus menggunakan 'barangKu' bukan 'barangku' maupun 'BarangKu', kita sebut ini dengan case-sensitive.

Variable terbagi 2 macam, yaitu variable Global dan Local, artinya variable khusus sebuah function dan variable khusus untuk semua function, contoh variable global

var a = 5;
var b = 3;
var c = a + b;

function newLevel() {
clientMessage(c);
}

Nah penjelasanya, akan keluar kata 8, karna variable a kita definisikan dengan 5, variable b kita definisikan dengan 3, variable c kita definisikan dengan a + b, 5+3 = brp? 8 kan :p, maka akan keluar kata 8.

Selanjutnya adalh variable Local,

function newLevel() {
var kataKata = "Selamat Datang Di Duniaku !";
clientMessage(kataKata);
}

function modTick() {
clientMessage(kataKata);
}

Nah penjelasanya, variable tadi, kamu buat didalam function newLevel, nah variable itu cuma di khususkan untuk newLevel saja, tidak bisa digunakan untuk modTick, variable local juga sensitive dalam statement, misalnya if:

var aaa = 1;
function newLevel() {
if(aaa == 1) {
var kata = "bbb";
clientMessage(kata);
}
if(aaa == 0) {
clientMessage(kata)
}
}

Penjelasannya, maka akan keluar error, karna var kata kamu definisikan dalam if untuk aaa, kecuali gini :

var aaa = 1;
var bbb = 1;
function newLevel() {
if(aaa == 1) {
var kata = "bbb";
if(bbb == 1) {
clientMessage(kata);
}
}
if(aaa == 0) {
clientMessage(kata)
}
}

Nah, itu keluarnya ga akan error, karna if bbb berada dalam if aaa, itu artinya jika aaa = 1, dan bbb = 1, maka akan keluar kata bbb.


###Parameters Sekarang, function yang akan kita gunakan adalah ketika player mentap / menetekan sebuah block, dan kamu ingin ketahui block apa yang dia tekan, Bagaimana blocklauncher bisa memberitaumu ? Jawabannya adalah Parameters, atau disebut dengan Params, params adalah sebuah local variable, tidak tergantung apa namanya, yang penting variablenya valid, dan parameters akan benar jika modder mengetahui susunan parameters, contohnya function useItem(itemId,blockId,blockData) sebenarnya itu tidak seperti yang kamu inginkan, padahal parameter pertama itu untuk koordinat x, dan kedua untuk koordinate y, dan ketiga untuk koordinat z, function useItem(x,y,z), kamu boleh juga merubahnya jdi apa saja, tetapi denganlah soal susunan parameter apa Hook / function yang telah disediakan oleh blocklauncher, kecuali kamu bkin function custom sendiri, contohnya function asdasda(asd,asad,dsa),maka itu akan didefinisikan oleh diri kamu sendiri, sesuai apa yang mau kamu set. Dan disini adalah contoh ketika ada ayam spawn :

function entityAddedHook(e){//when an entity is added - the entity is represented by local variable/parameter e
  if(Entity.getEntityTypeId(e)==10){//if the type id of the entity is 10 (i.e. chicken)
    clientMessage("Ada ayam spawn');
  }
}

Custom Function

Sekarang, kamu mau membuat sesuatu yang panjang, jika ada jalan singkat, tentu kamu pilih jalan singkatkan? nah jalan singkat tersebut adalah Custom function. Sebagai Berikutlah contohnya :

function customFunc(a,b,c) {
if(a == 1) {
clientMessage("Message Pertama");
}
if(b == 2) {
clientMessage("Message Ketiga");
}
if(c == 3) {
clientMessage("Message Ketiga");
}
}
// maka kita memanggilnya dengan
customFunc(1,2,3);
}

Keluarnya adalah pesan Message Pertama, Message Kedua, Message Ketiga, Kamu juga bisa membuat custom function sesuka hati kamu, tapi jangan sampai salah code aja :p.


Lampiran

Strings

String adalah KATA, artinya kata yang akan kamu output / keluarkan, coba kamu liat tadi clientMessage yang saya buat, ada clientMessage(kataKata); dan ada clientMessage("Message Pertama"); apa bedanya kedua itu? nah clientMessage(kataKata); itu kataKata telah di definisikan sebagai variable yang menyimpan kata "Selamat Datang Di Duniaku" maka tidak perlu diawali lagi dengan " dan juga tidak perlu diakhiri dengan ", sedangkan Message Pertama itu adalah Strings, nah itu kan ga ada kita definisikan dengan variable, maka diperlukan " dan diakhiri " juga, variable dan string bisa disatukan, sebagai berikut contohnya :

var money = 5;
clientMessage("My money: " + money);

Keluarnya adalah "My Money: 5", karna kata money itu kita definisikan dengan variable, Jika kamu bingung pada money didalam sna, dan bertanya : kok bisa pakai "My money" ? bukanya money udah di definisikan sebagai variable? harusnya kan outputnya My 5, nah itu salah, money kita letakan dalam tipe String, atau lebih mudah biar kamu pahami, kan money itu berada didalam " dan diakhiri ", maka otomatis dia jdi string.

Arrays

Array adalah grup data yang di grupkan dalam 1 variable, cara memanggil datanya adalah sesuai urutannya didalam sebuah variable, nah, di array ini , mulainya dari 0, bukan 1, integer ( angka ), String ( kata ) bisa disatukan dalam array ini, berbeda dengan Java yang hanya 1 golongan. Berikut Contoh Arrays :

var arrKata = ["Selamat ","Datang ","Di ", "Dunia ku !"];
function newLevel() {
clientMessage(arrKata[0] + arrKata[1] + arrKata[2] + arrKata[3]);
}

Maka Keluaranya adalah Selamat Datang Di Dunia ku !, kenaoa mulai dari 0? karna array itu mualai dari 0, kalau kamu setnya dari 1, ntr keluar jdinya Data Di Dunia Ku ! + error :D.

Axis

Arti mudahnya adalah arah, misalnya selatan utara barat timur, ada X - axis, ada Z - Axis, ada Y - Axis, nah X itu untuk ke kiri dan kanan, Z itu kedepan dan kebelakang, Y itu keatas dan kebawah.

Y axis simplenya, kamu turun kebawah atau gali kebawah, maka itu disebut -Y, kalau kamu terbang meninggi, maka +Y.

Yaw dan Pitch

Jadi, jika kamu ingin mendapaatkan block player setelah berjalan di hadapan wajahnya atau 5 meter block ,akmu bisa memakai geometry,

//Dari 500ISE Fly on Mobs .js
var blocks=5;
var x=Player.getX();
var z=Player.getZ();
var yaw=Player.getYaw();
var deltaX=Math.sin(yaw)*blocks;
var deltaZ=Math.cos(yaw)*blocks;
var block=getTile(Math.round(x+deltaX),Math.round(Player.getY()),Math.round(z+deltaZ))); Math.cos(Player.getPitch());
⚠️ **GitHub.com Fallback** ⚠️