01 September 2018

Hexing Unpacked Ragnarok Client


Unpacked Ragnarok Client adalah file exe asli dari kRo yang belum pernah diedit. File exe idRO bukan Unpacked, karena sudah dimodifikasi, seperti misalnya untuk auto-follow karakter lain, kamu bisa menekan SHIFT+klik kanan pada karakter lain, kamu akan berhenti mengikuti karakter lain setelah memukul musuh atau menggunakan skill yg menyerang musuh, dan kamu bisa auto-follow kembali dengan menggunakan SHIFT+Klik Kanan lagi. namun pada idRO (versi Gravindo), setelah kamu memukul musuh atau menggunakan skill untuk menyerang musuh, kamu harus Logout terlebih dahulu dapat menggunakan perintah ini lagi (Auto-follow berguna saat kamu malas mengklik untuk berjalan atau saat kamu sedang menggunakan Dual Client).

Dan untuk dapat bermain, kamu harus menggunakan Ragnarok Client (Ragexe) dari kRO, dan tentu saja menggunakan Full Client dari kRO. Ragexe dari RO official lain biasanya tidak bisa dimainkan bila menggunakan Client dari RO Official lain. Tapi kamu bisa menambah atau merubah konten (dengan format yang sama), misalnya seperti pada Custom GRF, kamu menambahkan pallete untuk warna baju dan warna rambut karaktermu (dan diatur pada saat meng-hexing unpacked client).

Sebelum memulai, penulis akan mengingatkan kamu, kalau tahap ini adalah tahap yang kebanyakan orang gagal, dikarenakan patch untuk hexing yang dishare (oleh orang-orang baik, terima kasih banyak!) terkadang tidak lengkap, bahkan tidak pernah dibuat (tidak stabil).

Jadi, bagaimana caranya biar gampang ?
  • Pertama, pada Hercules, buka folder src/common/ , pada rAthena buka folder src/config
  • Buka file mmo.h pada Hercules, file packets.hpp pada rAthena, menggunakan Notepad++ cari value seperti dibawah :
  • 1
     #define PACKETVER 20141022
    
  • PACKETVER pada emulator saya adalah 20141022, berarti saya menggunakan client 2014-10-22 Ragexe (FORMAT PACKETVER / CLIENT = Tahun / Bulan / Tanggal)
  • Buka forum resmi rAthena dan Hercules (biasanya pada salah satu forum, ada yang share), cari subforum Client Release, lalu cari topic yang berhubungan dengan kode PACKETVER yang ada di emulatormu. Jika tidak ada yang share, berarti kamu harus patch Ragexe mu sendiri.

Default PACKETVER pada Hercules adalah 20141022
Default PACKETVER pada rAthena adalah 20151104
(NOTE: update terakhir pada saat tulisan ini dibuat)

Default packetver pada masing-masing emulator biasanya adalah yang paling stabil, dengan sedikit bug, namun client versi lama tidak akan mendapatkan fitur baru, seperti misalnya, update Max Level Homunculus menjadi 175 hanya bisa digunakan dengan 20170920, yang artinya client sebelum 20170920 tidak akan support Max level Homunculus yang baru.

Dan untuk kamu yang ingin membuat server Pre-Renewal, hal ini bisa menjadi kelebihanmu, kamu cukup memilih beberapa client stabil yang direkomendasikan oleh komunitas, seperti misalnya client 20141022, 20120410 , dan 20100803.

Oke, sekarang lanjut ke cara hexingnya, seperti biasa persipkan terlebih dahulu perabotannya.
1. Client Patcher, pilih salah satu, Secret's Nemo support client 2016 keatas (kedua Patcher ini sudah tidak update / discontinued)
2. Unpacked Ragnarok Client (Ragexe.exe)
3. Hex Client Editor : HxD (Gratis)

Berikut adalah langkah-langkah untuk patch Ragexe, disini saya menggunakan Neo's Nemo, dan menggunakan 20141022bRagexe.exe.
  • Buat folder baru agar mempermudah pekerjaanmu, misalnya Patching
  • Download dan extract Unpacked Client (Ragexe).
  • Download dan save Client Patcher pada folder Patching
  • Jalankan aplikasi Nemo (Run As Administrator)
  • Pada baris Input File Exe, klik browse dan cari Ragexe mu, setelah Ok. kolom Output Patched akan terisi otomatis, kamu bisa mengganti nama Exe dan lokasi penyimpanannya.
  • Klik Load Patches pada Toolbar, lalu akan muncul list patch yang dapat di apply ke Ragexe .
  • Klik Select Recomended pada Toolbar, Nemo secara otomatis akan memberikan patch rekomendasi untuk Ragexe yang akan di patch. Lalu akan muncul beberapa option untuk merubah setelan Ragexe seperti misalnya DATA.INI.
  • Kamu mungkin perlu menambah beberapa patch, seperti misalnya, centang option Use Ragnarok Icon (Option ini akan mengganti Icon Gear pada Ragexe menjadi icon Ragnarok Online pada umumnya),  centang option Increase Headgear ViewID (Defaultnya 2000, cukup rubah menjadi 6000, maksimal 32000), terakhir centang option Read Data Folder First (berguna agar Ragexe membaca folder Data terlebih dahulu kemudian GRF, akan saya jelaskan fungsinya nanti pada artikel lain)
  • Kalau kamu ragu, jangan centang option lain, atau meng-uncheck option yang sudah dipilih oleh Nemo ketika menggunakan toolbar Select Recomended
  • Klik Apply Selected pada toolbar untuk menyimpan perubahan yang sudah kamu buat.
Selamat, kamu sudah selesai mempatch Ragexe.exe mu sendiri !

Membangun Client Side


Untuk dapat memainkan sebuah game MMO, kita membutuhkan game client, biasanya berisi file executable (EXE), file game asset yang ter-enkripsi, dan file-file pendukung seperti dll. BGM, dan patcher. Biasanya disediakan Publisher agar bisa didownload dan dimainkan oleh Player.

Pada Ragnarok Online private server, biasanya kamu membutuhkan custom client sendiri, selain client official, agar dapat bermain. Custom client mendukung private server mu agar memiliki identitas server mu sendiri. Seperti misalnya, pada saat membuka game, player akan logo server mu pada tampilan login screen. Walaupun tanpa Custom client ini kamu tetap dapat bermain dengan menggunakan Hexed Client dan mengedit clientinfo.xml.

Ragnarok Online menggunakan file ekstensi GRF sebagai media enkripsi data-data gamenya, ketika kamu menjalankan Ragnarok.exe, maka game akan membaca file grf tersebut agar game bisa berjalan. Biasanya file grf ini berisi data-data seperti sprite karakter, sprite item, dan Map beserta grafik pendukung seperti thumbnail item, deskripsi item, dan lain-lain. Ragnarok Online menggunakan data.grf sebagai file enkripsi. Pada versi terdahulu ada grf tambahan seperti sdata.grf dan rdata.grf. Dan pada saat event-event khusus berlangsung biasanya terdapat grf tambahan seperti event.grf.

Hal-hal yang dibutuhkan dalam membuat custom client / Custom GRF mu sendiri, yaitu:
1. grf builder : Download dari Ratemyserver
2. Translated Data Folder (Pilih salah satu sesuai konsep private server mu)
3. clientinfo.xml
Template : https://github.com/HerculesWS/Hercules/wiki/Clientinfo.xml


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
 <desc>Ragnarok Client Information</desc>
 <servicetype>korea</servicetype>
 <servertype>sakray</servertype>
 <hideaccountlist />
 <passwordencrypt />
 <passwordencrypt2 />
 <extendedslot />
 <readfolder />
 <connection>
  <display>SERVER NAME HERE</display>
  <desc>Ragnarok Online</desc>
  <balloon>this is a tool tip</balloon>
  <address>SERVER IP HERE</address>
  <port>6900</port>
  <version>20</version>
  <langtype>1</langtype>
  <registrationweb>REGISTRATION URL HERE</registrationweb>
  <yellow>
   <admin>2000001</admin>
   <admin>2000002</admin>
   <admin>2000003</admin>
  </yellow>
  <loading>
   <image>loading00.jpg</image>
   <image>loading01.jpg</image>
   <image>loading02.jpg</image>
   <image>loading03.jpg</image>
   <image>loading04.jpg</image>
   <image>loading05.jpg</image>
   <image>loading06.jpg</image>
   <image>loading07.jpg</image>
   <image>loading08.jpg</image>
   <image>loading09.jpg</image>
   <image>loading10.jpg</image>
  </loading>
 </connection>
</clientinfo>

Kamu hanya perlu membuatnya seperti ini menggunakan Notepad++

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?xml version="1.0" encoding="euc-kr" ?>
<clientinfo>
<servicetype>korea</servicetype>
<servertype>primary</servertype>
   <connection>
      <display>NamaRO</display>
      <balloon></balloon>
      <desc></desc>
      <address>127.0.0.1</address>
      <port>6900</port>
      <version>30</version>
      <langtype>1</langtype>
      <registrationweb></registrationweb>
 <loading>
 <image>Loading00.jpg</image>
 <image>Loading01.jpg</image>
 <image>Loading02.jpg</image>
 <image>Loading03.jpg</image>
 <image>Loading04.jpg</image>
 <image>Loading05.jpg</image>
 <image>Loading06.jpg</image>
 <image>Loading07.jpg</image>
 <image>Loading08.jpg</image>
</loading>
      <aid>
 <admin></admin>
       </aid>
   </connection>
</clientinfo>
Save dengan nama clientinfo.xml pada Notepad++, dan masukan ke dalam folder data yang sudah kamu download.

NOTE : Hapus ID pada (2000001 dan seterusnya) jika kamu tidak menginginkan ID tersebut menggunakan sprite Game Master (GM). Ganti IP pada address sesuai WAN IP atau Nama Domain (misal www.ragnarokku.com) mu jika kamu menggunakan server ini untuk Online, LAN IP jika ingin bermain LAN, dan 127.0.0.1 atau localhost jika kamu ingin bermain sendiri.


Cuma itu saja ? yap, kecuali kamu ingin menambah grafik custom, kamu akan membutuhkan aplikasi untuk mengedit gambar seperti Adobe Photoshop atau GIMP.

Langkah-langkah untuk membuat custom client mu adalah sebagai berikut

  • Download Translated Data Folder (Pilih salah satu), struktur utama folder selalu bernama data, Tapi kamu selalu bisa menggantinya dengan nama lain. Didalam folder data terdapat folder dan file-file yang digunakan didalam GRF.
  • Data folder dengan struktur lengkap

  • Download dan jalankan aplikasi GRF Builder (grfbuilder.exe) 
    Tampilan GRF Builder versi 0.1.30
  • klik New pada toolbar, lalu tentukan lokasi file grf yang akan dibuat, isilah nama file sesuai keinginanmu, misalnya MyData.grf (NOTE: ekstensi .grf harus diketik juga)
  • klik Merge dir pada toolbar, cari dimana kamu menyimpan Translated Data Folder yang sudah kamu download. Klik (sekali) pada nama folder tersebut lalu klik Ok. Tunggu sampai aplikasi selesai membaca.
  • Terakhir, klik Repack pada toolbar. Tunggu sampai proses selesai.

  • Sampai disini, kamu sudah berhasil membuat custom client / custom GRF mu sendiri, Happy RO !