Membuat Event Input Password

[VXAce] Tutorial Version 1.0


Level : Intermediate
Sesuatu didalam game yg keberadaannya cukup powerful dan bisa membuat alur game bakal berubah total biasanya diproteksi dengan baik oleh developernya. Entah mungkin dengan melawan boss yg kuat, melewati dungeon yg rumit, atau mengharuskan player menginputkan password untuk mengaksesnya. Disini saya akan mengajarkanmu bagaimana cara membuat event yg mengharuskan player untuk menginputkan password untuk mengakses sesuatu.


What Will Be Teached
Cara membuat event yang mengharuskan player untuk menginputkan password

Preparation
Disini saya akan membuat sebuah treasure chest yang ketika ingin dibuka player harus menginputkan password. Alat2 yang harus disiapkan :
- Event chest yang sudah jadi (kalo mau cepat tinggal klik kanan event > quick event creation > treasure chest > isikan apa yang mau dijadikan sbg hadiah di treasure chestnya tar) .
- Sebuah dummy actor (actor yang propertiesnya kosong) yang namanya entar akan digunakan sebagai syarat benar salah passwordnya. Disini saya memakai actor urutan ke 11 di database sebagai dummy actornya.
- Pengetahuan yang cukup tentang event. Kalo belum banyak tau, belajarlah kesini.


Semua persiapan sudah selesai, sekarang saatnya eksekusi.


Execution
Event treasure chest yang tadinya kita buat kita akan edit sedikit dari bagiannya. Sekarang buka event treasure chestmu.
Jadi skenario pengaksesan treasure chest bakalan seperti ini algoritmanya :
1. Player diberikan teks konfirmasi untuk membuka treasure chest dengan password.
2. Player disodorkan sebuah form penginputan password.
3. Cek password. Kalo password benar, pergi ke langkah nomor 4. Kalo password salah, pergi ke langkah nomor 5.
4. Treasure chest terbuka, memberikan player hadiahnya. Pergi ke langkah nomor 6.
5. Player diberikan konfirmasi bahwa password salah.
6. Event selesai.


Oke skenarionya sudah ada, sekarang kita kerjakan berurutan :
1. Player diberikan teks konfirmasi untuk membuka treasure chest dengan password.
Sebelum command "Play SE"  yang sudah ada, kita selipkan command "Show Text" diatasnya yang bertuliskan bahwa player harus menginputkan password untuk membuka treasure chest.

Dibagian command "Play SE" yang sudah terinput, kita selipkan command baru

Kita pilih command "Show Text" untuk menampilkan tulisan konfirmasi

Atur tulisannya. Contohnya seperti ini

Hasilnya setelah diselipkan command "Show Text" yang berisikan tulisan konfirmasi
2. Player disodorkan sebuah form penginputan password.
Kembali lagi kita akan menyelipkan sebuah command yang berguna untuk penginputan password. Command yang akan kita gunakan kali ini adalah command "Name Input Processing". Nama dari actor dummy tadi yang akan kita gunakan sebagai syarat benar salah dari passwordnya. Jadi nama actor (di tutorial ini actor urutan ke 11) adalah passwordnya.
 
Dibagian command "Play SE" yang sudah terinput, kita selipkan command baru


Kita pilih command "Name Input Processing" untuk menampilkan jendela penginputan nama actor. Ini berlaku seolah2 penginput password

Pilih actor dummy tadi (actor urutan ke 11) yang akan dieksekusi di "Name Input Processing". Jangan lupa max characters di set ke maximum (16) agar player bisa leluasa menginput password


Hasilnya setelah diselipkan command "Name Input Processing" untuk input passwordnya
 3. Cek password. Kalo password benar, pergi ke langkah nomor 4. Kalo password salah, pergi ke langkah nomor 5.
Untuk langkah ini kita akan menggunakan command "Conditional Branch" dengan syarat nama aktor dummy tadi sesuai dengan password yang kita inginkan. Contohnya kita ingin password yang sebenarnya adalah "buka saja" (tanpa tanda kutip).

Dibagian command "Play SE" yang sudah terinput, kita selipkan command baru

Kita pilih command "Conditional Branch" untuk mengecek kondisi bercabang apakah passwordnya benar atau salah

Pilih tab kedua, terus bagian "Actor" dipilih actor yang bersangkutan yaiut actor urutan ke 11. Karena kita butuh namanya sebagai password, maka kita syaratkan namanya HARUS "buka saja" (tanpa tanda kutip) agar cek passwordnya benar
Model jadinya seperti ini. Tapi ini sebenarnya belum semuanya seh, karena ketika benar maka command kosong yang bakalan dijalankan karena belum diisikan command.

Karena ketika passwordnya benar maka treasure chest terbuka dan memberikan player hadiahnya, kita cut saja command yang udah jadi tadi.

Terus paste kan dibagian ini

Hasil akhir setelah menambahkan commmand "Conditional Branch"

4. Treasure chest terbuka, memberikan player hadiahnya. Pergi ke langkah nomor 6.
Langkah nomor 4 udah diselesaiin di langkah nomor 3 lewat cutpass command lama. :3


5. Player diberikan konfirmasi bahwa password salah.
Untuk bagian konfirmasi password salah, kita selipkan command "Show Text" dibagian else dari conditional branch yang tadi.
Di bagian else dari conditional branch, kita tambahkan command baru

Kita pilih command "Show Text" untuk menampilkan tulisan konfirmasi bahwa password salah

Atur tulisannya. Contohnya seperti ini

Hasil akhirnya
6. Event selesai
Ya udah kosongin aja, tar selesai ndiri kok. :v ~

Result
Ayo playtest untuk melihat hasilnya

Percoban pertama

Dicoba dengan password salah

Responnya adalah password salah

Percobaan kedua dengan password yang benar

Responnya adalah treasure chest terbuka yang menandakan password benar

Percobaan ketiga. Tapi gimana donk kalo yang tulis itu orang alay kaek gini? Padahal passwordnya benar lho, tapi captionnya ga benar :v ~ lol

Responnya udah jelas password salah karena captionnya beda


Sekarang kita punya sedikit masalah. Saat orang alay ( lol :v ~ ) menulis dengan caption besar kecil seperti itu, passwordnya akan dideteksi sebagai password salah karena kondisi cek nama lewat conditional branch itu case sensitive.
Terus harus gimana donk?
Kita akan rubah kondisi di conditional branchnya. Itu aja yang dirubah, kita akan pake trik regex buat cek nilai kebenaran apakah string nama dengan string pengecekan sama atau tidak.
 Regex itu apaan?
Regex itu singkatan dari Regular Expression, sebuah urutan karakter yang membentuk pola khusus, biasa digunakan dalam pencarian karakter yang disamakan dengan karakter inputtan, dan juga bisa untuk fungsi kaek find replace. Untuk lebih jelas baca disini


Sekarang ayo kita coba trik regex. Edit kembali conditional branchmu.
Edit conditional branchnya
Tadi kan di tab 2 kita pake actor, sekarang kita pake penulisan script buat jadi cek kondisinya

Hasil akhirnya setelah dengan trik regex

Nah dengan trik regex tersebut, maka tulisan alay pun bisa terbaca dengan benar asalkan passwordnya memang benar tapi captionnya beda2.
Ga keliatan jelas, itu yang ada di kolom script apaan?
Itu adalah semacam snippet yang berguna untuk mengecek sama tidaknya sebuah string dengan regex. Di kolom script di conditional branch kita tadi menuliskannya seperti ini :

!($game_actors[11].name =~ /buka saja/i).nil?

Okelah saya kasih penjelasan dikit. Disini kita memakai regex buat mengecek tulisan alay (lol) biar tetap benar passwordnya walau captionnya beda2. $game_actors[11].name itu mengakses data actor ($game_actors) urutan ke 11 ($game_actors[11]). Data yang diakses adalah nama actor ($game_actors[11].name). Tanda =~ digunakan untuk cek kesamaan antara karakter yang dibandingkan. Biasanya memakai tanda sama dengan (=) untuk karakter biasa, nah untuk karakter regex dipakai tanda sama dengan tilde (=~). Tulisan /buka saja/i adalah bentuk regex yang akan dicari nilai kebenarannya saat dibandingkan. Untuk regex biasa diawali dengan slash dan diakhiri dengan slash (//). Di tengah2 slash tersebut kita akan inputkan karakter pembandingnya, dimana disini karakter pembandingnya adalah kata "buka saja". Huruf i diakhir dari regex tersebut adalah sebuah karakter khusus regex yang membolehkan kita untuk mengecek nilai kebenaran dari perbandingan regexnya TANPA memperhatikan besar kecil dari karakternya, dengan kata lain fungsi i di regex dipake untuk case insensitive. Semua tulisan tadi ($game_actors[11].name =~ /buka saja/i) diletakkan di tanda kurung dan diberi fungsi .nil? di akhirnya karena saat regex tidak mendapatkan karakter yang sama perbandingannya (perbandingannya salah), akan mengembalikan nilai nil, bukan nilai false.

Ini pernyataan dari helpfile saat regex tidak menemukan karakter yang sama

Jadi maka itulah kita akan mengecek apakah regexnya nil (salah) atau tidak. Diawal dari semua karakter cek tadi, kita meletakkan tanda seru (!) untuk membalikkan nilai kebenaran yang didapatkan dari argumen didalam kurung. Misalkan kita menginput password salah ke inputtan tadi, maka dengan teknik pengecekan regex seperti tadi, nilai kebenaran nil? akan mengembalikan true sebagai hasilnya karena memang nilai salahnya itu benar adanya. :v #lho
Karena ketika hasil pengecekan salah dan hasil kembalian nilainya adalah true, maka kita harus membalikkan nilai kebenarannya agar hasil pengecekan salah akan mengembalikan nilai false, solusinya gunakan tanda seru (!).

Sekarang kita playtest lagi untuk melihat hasilnya. Kita gunakan tulisan alay (lol) untuk mengecek nilai kebenarannya.

Percobaan keempat. Sekarang kita liat apakah tulisan alay seperti ini bakal ngebuka treasure chestnya atau tidak.

Wah terbuka. Horee berarti tulisan alay work donk. Lololol :v :v ~~~
Phew panjang lagi tutorialnya. Padahal cuman nginput password doank tapi segini gile panjangnya. Maklumlah penjelasan detail bung, kalo ga detail tar ane ga ganteng lagi 8).

Sekian tutorial dari saya, semoga bermanfaat.


3 comments

mungkin bisa di coba, kayanya oke, terimakasih banyak atas infonya...

Reply

nice info
coba di RM2003 ah siapa tahu bisa~

Reply

Hallo gan mohon di jwb kalo blog ini masih aktif .. Saya sudah berhasil dengan tutor abang tapi pas melakukan battle dummy karakter nya terlihat di battle jadi solusi nya gimana bang supaya pass battle dummy gak kliatan

Reply

Post a Comment