Tampilkan postingan dengan label hercules. Tampilkan semua postingan
Tampilkan postingan dengan label hercules. Tampilkan semua postingan

25 Januari 2019

Mengatur GM Command dan Player Command Ragnarok Online Private Server

Dalam bermain Ragnarok private server, ga lengkap rasanya kalo ga ada fitur custom command atau yang biasa orang sebut @command. Biasanya beda rate server, beda pula command yang disediakan, seperti misalnya pada low rate server, hanya disediakan @showtime dan pada high rate server biasanya pasti tersedia @go dan @autoloot
"Enak ya jadi GM bisa semua command"
Pasti sering juga kalian mendengar keluhan seperti itu (atau kamu pasti begitu), sayang nya, GM pun juga manusia, dewa didalam game tapi tetap inferior di real life. Tergantung dari jabatannya juga, ada GM yang cuma bisa hide dan memantau (kepoin) para player, ada GM yang yang cuma ngejawab keluhan player, dan lain-lain. Sayangnya seorang GM belum tentu punya akses server penuh. Dimana biasanya database hanya bisa diakses melalui address khusus dan kita harus tau ID dan Passwordnya.

Nha, kalau kasusnya ada GM yang suka bagi-bagiin item dan zeny, terus ngerubah All Stats jadi 65K, biasanya sih itu karena management server nya buruk, yah bisa dibilang pengetahuannya kurang untuk masalah player command ini.

Jadi, disini kita akan membahas bagaimana caranya untuk mengatur settingan untuk command GM tersebut. Pada tutorial sebelumnya (Baca disini : https://adani-game.blogspot.com/2018/09/membuat-akun-gm-ragnarok-online-private.html), saya sudah mengajarkan bagaimana cara mengatur level GM, dan mengatur agar GM (bukan owner) tidak curang. Disini saya akan menjelaskan untuk menambahkan command yang bisa dipakai untuk player juga.

Sebelum memulai, perlu diingat bahwa Player selalu memiliki Level GM 0 (nol), GM Level 1 sudah dianggap "Super Player" pada configurasi server. dan Level GM lebih tinggi biasanya bisa menggunakan perintah Level GM yang lebih rendah, jadi perlu diperhatikan nanti agar tidak ada duplikasi command. Duplikasi command tidak menyebabkan error, tapi agar lebih rapih, usahakan tidak ada duplikasi command yg sama berulang-ulang.

Buka folder conf lalu buka file groups.conf

 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
{
 id: 0 /* group 0 is the default group for every new account */
 name: "Player"
 level: 0
 inherit: ( /*empty list*/ )
 commands: {
  changedress: true
 }
 permissions: {
  /* without this basic permissions regular players could not 
  trade or party */
  can_trade: true
  can_party: true
  command_enable: true
  attendance: true
 }
},
{
 id: 1
 name: "Super Player"
 inherit: ( "Player" ) /* can do everything Players can and more */
 level: 0
 commands: {
  /* informational commands */
  commands: true
  charcommands: true
  help: true
  rates: true
  uptime: true
  showdelay: true
  exp: true
  mobinfo: true
  iteminfo: true
  whodrops: true
  time: true
  jailtime: true
  hominfo: true
  homstats: true
  showexp: true
  showzeny: true
  whereis: true
  /* feature commands */
  refresh: true
  noask: true
  noks: true
  autoloot: true
  alootid: true
  autoloottype: true
  autotrade: true
  request: true
  go: true
  breakguild: true
  channel: true
  langtype: true
 }
 permissions: {
  attendance: false
 }
},

Sesuai penjelasan diatas, id 0 adalah grup (level GM) default untuk semua akun, dan Command GM yang biasanya dipakai di Ragnarok private server diambil dari grup id 1 (Super Player). Jadi untuk menambahkannya, kamu cukup mengcopy paste command yang ingin kamu tambahkan ke id 0 (player). Seperti misalnya, saya ingin player bisa menggunakan @go, @autoloot, dan @alootid. Contohnya seperti berikut :


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
 id: 0 /* group 0 is the default group for every new account */
 name: "Player"
 level: 0
 inherit: ( /*empty list*/ )
 commands: {
  go: true
  autoloot: true
  alootid: true
 }
 permissions: {
  /* without this basic permissions regular players could not 
  trade or party */
  can_trade: true
  can_party: true
  command_enable: true
  attendance: true
 }
},

Berbeda dengan script NPC, kamu tidak perlu menambahkan tanda titik koma ( ; ) pada akhir perintah. True adalah tanda bahwa perintah dapat digunakan, jika kamu tidak menginginkan player menggunakan perintah tersebut, maka kamu tinggal mengganti nya menjadi false.

Begitu pula untuk GM, kamu bisa membuat group ID baru, dengan mengambil salah satu dari contoh yang sudah ada. Lalu memberikan command seperlunya saja. Yang paling penting adalah bagaimana caranya agar GM tersebut tidak curang. Misalnya kalau kamu memberikan perintah @zeny, kamu harus membuat GM tersebut tidak bisa menggunakan #zeny kepada player.
NOTE : Command menggunakan @ digunakan untuk diri sendiri, sedangkan # digunakan untuk memberikan efek command kepada player karakter lain, misalnya #zeny Namaplayer 10000, maka zeny player dengan nama Namaplayer akan bertambah 10.000.


 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
{
 id: 4
 name: "Event Manager"
 inherit: ( "Support" )
 level: 1
 commands: {
  monster: true
  monstersmall: true
  monsterbig: true
  killmonster2: true
  cleanarea: true
  cleanmap: true
  item: [true, false]
  zeny: [true, false]
  disguise: [true, true]
  undisguise: [true, true]
  size: [true, true]
  raise: true
  raisemap: true
 }
 log_commands: true
 permissions: {
  can_trade: false
  any_warp: true
 }
},
Pada contoh diatas, Perhatikan :
baris 13 dan 14, sebelah kiri true dan sebelah kanan false, artinya GM dengan group ID tersebut dapat menggunakan @zeny dan @item untuk dirinya sendiri, tapi tidak bisa menggunakan #zeny dan #item untuk karakter lain.
baris 15 dan 16, adalah contoh format bahwa GM dengan group ID tersebut dapat menggunakan command disguise dan undisguise kepada dirinya dan juga karakter lain.

Perhatikan pula baris ke 5, yaitu pada line level. Level disini adalah GM Level pada versi eAthena terdahulu. Kamu harus mencari revisi eAthena atau rAthena lama untuk melihat list command masing-masing GM level untuk merubah settingan ini. Kalau kamu tidak mengerti, rubah menjadi 1 seperti diatas.

Pada baris ke 23, penggunaan permission can_trade: false berarti karakter dengan group ID tersebut tidak akan bisa trade antar player, juga tidak bisa menaruh item di Cart dan Storage.

Sampai disini tutorial mengatur Command untuk player dan GM pada Ragnarok Online Private Server. Kecurangan ada saja terjadi pada Ragnarok private server (bahkan mungkin pada Official server), semua tergantung dari management server tersebut. Well, penulis pernah ketahuan, dan akhirnya servernya harus tutup. Jadi, jika kamu ingin membangun sebuah server yang baik, berusalahan untuk membuat management yang baik pula.

19 Januari 2019

Membuat NPC Ragnarok Online Private Server

Setelah membuat Ragnarok Online mu sendiri, dan selesai implementasi beberapa NPC, kamu biasanya akan merasa kurang puas, apalagi jika pernah bermain PSRO buatan orang lain. Kamu ingin meniru fitur yang ada pada private server lain, atau ingin membuat fitur sendiri.

Script NPC pada Ragnarok private server biasanya menggunakan bahasa pemrograman C. dan variable nya dapat kamu cek folder doc di dalam file script_commands.txt pada masing-masing emulator. Atau kamu bisa mencontek dari script yang sudah ada dan memofikasi sendiri script tersebut. Seperti misalnya NPC healer di Inn, biasanya hanya memberikan HP full setelah kamu membayar sejumlah zeny, kamu bisa menambah efeknya, selain membuat HP karakter penuh, karakter akan mendapatkan buff seperti Increase AGI dan Blessing.

Membuat NPC tergantung pada kebutuhan kamu, untuk membuat npc seperti Warper kamu bisa mencontek NPC Kafra dan mengcopy paste untuk area tambahan yang kamu inginkan, namun untuk membuat NPC Buffer, kamu harus melihat command script skill yang akan digunakan. Intinya membuat NPC itu bisa saja sederhana, tapi bisa jadi sulit, tergantung dari basic pemrograman yang kamu pelajari.

Dalam membuat NPC, yang biasanya kita cari pertama kali adalah kordinat lokasi NPC nya akan dipasang dengan menggunakan /where pada kotak chat, lalu kemudian mencari Sprite nya. Lalu menggunakan format seperti diberikut :

mapname,x,y,z[tab]script[tab]NPCname[tab]NPC_ID,{

Note:
Mapname = nama map
x,y = koordinat x dan y npc
z = arah npc menghadap, menggunakan angka dari 0 - 8 tidak searah jam
[tab] = tabulasi/break, harus menggunakan tombol Tab pada keyboard.
script = variable yang menunjukan kalau ini adalah script
NPCname = nama NPC (Bebas)
NPC_ID = ID Sprite NPC yang akan digunakan, tidak bisa menggunakan sprite Job, dan tidak disarankan menggunakan ID Sprite monster.

tanda } dan { digunakan sebagai pembuka dan penutup script (maaf saya tidak tahu istilah bener nya di pemrograman)

Untuk mencari sprite NPC yang kamu ingin pakai, kamu bisa melihat web http://nn.ai4rei.net/dev/npclist/?qq=8
NOTE: jika NPC yang kamu mau tidak muncul pada saat reloadscript, artinya GRF yang kamu pakai tidak support NPC tersebut.

Berikut akan saya ajakarkan membuat beberapa NPC sederhana, yaitu NPC Warper, NPC Buffer, dan NPC Quest. Untuk mempermudah pekerjaan mu. Gunakan Notepad++ dan rubah Languages menjadi C.



A) NPC Warper
Kebanyakan Ragnarok private server di Indonesia, membuat ruang khusus seperti Vending Room atau Zeny Room untuk memudahkan playernya bermain. berikut kita akan buat npc yang mirip dengan situasi tersebut. yang pertama kali kamu butuhkan adalah

1. Catat kordinat NPC Warper
2. Tentukan NPC yang akan dipakai
3. Tentukan Nama NPC
4. Catat kordinat target map yang dituju saat karakter diwarp.

Disini saya akan menggunakan map prontera untuk lokasi NPC, map morroc sebagai map tujuan warp, dan menggunakan npc Kafra (117).


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
prontera,162,191,5 script NPC Warper 117,{
 mes "[Warper NPC]";
 mes "Halo, Apakah kamu mau pindah ke ruang khusus?"
 next;
 menu "Pindah",pindahmap,"Tidak, terima kasih",Notmove;

 pindahmap:
  warp "morocc",159,91;
  end;
 Notmove:
  mes "[Warper NPC]";
  mes "Silahkan kembali lagi jika kamu ingin menggunakan service kami";
  close;
}

NOTE : Urutan angka disebelah kiri hanya berfungsi sebagai urutan, tidak perlu diketik!

Pada contoh script diatas, saat kamu mengklik NPC tersebut, maka akan keluar dialog box yang menanyakan apakah kamu akan menggunakan fitur NPC ini. Penggunaan next berfungsi agar dialog NPC tidak memanjang kebawah, sehingga mudah untuk dibaca. Next didalam game berupa tombol bertuliskan next (atau lanjut di idRO) yang dapat player klik.

Menu berfungsi untuk memunculkan opsi yang dapat di pilih oleh player. Pada bahasa pemrograman ini merupakan suatu logic yang biasa, dimana setelah kamu mengklik salah satu opsi, biasanya akan jump atau lompat ke tag option tersebut, pada case diatas, jika kamu memilih Pindah, maka script akan mencari tag pindahmap kemudian memproses script selanjutnya yaitu warp ke map morroc. Menu adalah bentuk sederhana untuk membuat opsi pilihan, selain menggunakan menu, biasanya bisa menggunakan switch, akan saya beri contoh pada script selanjutnya.

Untuk menutup dialog NPC, biasanya kita akan mengklik tombol close, untuk itu diperlukan perintah close. namun jika kamu menggunakannya pada saat warp, tentu akan tidak nyaman jika player yang berpindah tempat harus mengklik tombol close terlebih dahulu, maka itu digunakan perintah end. Perintah end akan otomatis menutup/mengakhiri percakapan dengan NPC.

Simpan dengan nama file misalnya testwarper.txt

B) NPC Buffer
Tidak lengkap rasanya jika sebuah private server tidak ada NPC Buffer yang memudahkan player dalam bermain, walau banyak juga server yang meniadakan fitur ini dengan alasan membunuh job Healer/Buffer seperti Priest.

Berbeda dengan NPC Warper yang bisa kamu contek dari Portal dan Kafra, Buffer tidak dapat ditemukan di official server, tapi mari kita lihat NPC healer di dalam Inn pada folder npc/merchants.txt, karena prontera agak ribet pake function, kita ambil contoh Lighthalzen.


 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
40
41
42
43
lhz_in02,230,284,4 script Hotel Employee#01 4_M_04,{
 mes "[Hotel Employee]";
 mes "Welcome to";
 mes "the Royal Dragon,";
 mes "where you can find the";
 mes "finest accomodations";
 mes "and the best service.";
 next;
 switch(select("Save Point", "Rest - 5,000 zeny", "Cancel")) {
 case 1:
  savepoint "lhz_in02",209,275;
  mes "[Hotel Employee]";
  mes "Thank you, your";
  mes "Respawn Point has";
  mes "been saved here in";
  mes "the Royal Dragon.";
  close;
 case 2:
  if(Zeny < 5000) {
   mes "[Hotel Employee]";
   mes "I'm sorry, but";
   mes "you need 5,000 zeny";
   mes "in order to check in.";
   close;
  }
  Zeny -= 5000;
  mes "[Hotel Employee]";
  mes "Thank you~";
  mes "I hope you enjoy";
  mes "your stay in the";
  mes "Royal Dragon.";
  close2;
  warp "lhz_in02",219,150;
  percentheal 100,100;
  npcskill "AL_BLESSING",10,99,99;
  end;
 case 3:
  mes "[Hotel Employee]";
  mes "Thank you and";
  mes "have a nice day.";
  close;
 }
}

Pada baris 34, terdapat fungsi percentheal 100,100 yang berarti memulihkan HP dan SP player sebanyak 100%, lalu pada baris 35, ada perintah npcskill AL_BLESSING, walau hanya berfungsi sebagai efek, tapi dari sini kita tahu kalau skill karakter bisa di aplikasikan ke script. Ada dua perintah yang biasa digunakan pada NPC buffer selain percentheal yaitu sc_start dan sc_end. sc_start digunakan untuk buff seperti Increase Agi dan Blessing, sc_end digunakan untuk debuff seperti poison dan silence.

Sebagai acuan untuk mencari nama skill yang ingin digunakan, kamu bisa membuka constants.conf pada folder db. Perintah yang bisa digunakan menggunakan awalan SC_.

Disini saya menggunakan map prontera dan kode NPC 919, dan membuat NPC buffer yang memberikan Increase AGI dan Blessing, dan menghilangkan efek poison, silence, dan hallucination.
efek buff dari Increase AGI dan Blessing akan aktif selama 10 menit.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
prontera,159,191,5 script Healer 919,{
 mes "[Healer]";
 mes "Halo, apakah kamu ingin menggunakan fasilitas ini ?";
 next;
 switch(select("Berikan Buff!","Tidak jadi.")) {
  case 1:
   mes "[Healer]";
   mes "Terima kasih sudah menggunakan fasilitas ini";
   next;
   percentheal 100,100;
   sc_end SC_Poison;
   sc_end SC_Silence;
   sc_end SC_Hallucination;
   sc_start SC_BLESSING,600000,10;
   sc_start SC_INCREASEAGI,600000,10;
   //sc_start SC_IMPOSITIO,360000,5;
   skilleffect 34,0;
   end;
  case 2:
   mes "[Healer]";
   mes "Baik, sampai jumpa lagi";
   close;
 }
}

Disini saya menggunakan perintah switch sebagai pengganti menu, dimana cara ini lebih simpel, namun terkadang jika optionnya terlalu banyak, kamu akan sedikit kesulitan saat mencari masing-masing relasi antar opsi. Tapi tidak ada salah nya dipelajari, karena perintah switch banyak ditemui di bahasa pemrograman lain.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
switch(select("opsi1","opsi2","opsi3") {
 case 1:
  mes "Hello World !";
  close;
 case 2:
  mes "Hello World !";
  close;
 case 3:
  mes "Hello World !";
  close;
}

Cara menggunakan switch, perhatikan contoh diatas, setelah masuk perintah switch, terdapat perintah select untuk membuat opsi, lalu didalam kurung sebelah kanan adalah pilihan opsi nya. Berbeda dengan menggunakan menu, kita tidak perlu lagi mengetik jump tag nya. Sebagai pengganti jump tag, digunakan case sebagai cabang dari switch select yang digunakan, urutan case bedasarkan urutan opsi yang ada didalam kurung. seperti pada contoh diatas saya menggunakan dua opsi, jadi saya menggunakan dua case. Perhatikan tag }{, jangan lupa ditutup.

Oke kembali pada script buff, saya menggunakan sc_end untuk menghapus negative status poison, silence, dan hallucination. dan menggunakan sc_start untuk memberikan positif buff yaitu Blessing dan Increase AGI, dan tentu saja HP dan SP penuh kembali.

Pada sc_start, value ke dua setelah skill, adalah durasi efek dari status yang diberikan (dalam milisekon) karena saya ingin mengaktifkannya selama 10 menit, maka value yang saya masukan adalah 600.000 milisekon, dan value terakhir adalah LV skill. Klo ga salah inget, level skill yang melebihi level yang seharusnya, nanti akan muncul error di map-server. Biasanya sering terjadi ketika kita mengcopy paste perintah yang sama, namun hanya merubah nama skillnya, jadi lebih baik masukan level yang sesuai agar tidak repot bolak balik merevisi script tersebut.

Perhatikan pula baris 16, saya menggunakan tanda garis miring 2x, tanda ini digunakan, agar sistem mengabaikan perintah tersebut (disable). Pada baris tersebut saya menambahkan skill Imposito Magnus, namun, saya tidak ingin menggunakannya, jadi saya disable. tanda garis miring 2x berguna agar kita bisa mengedit dengan mudah tanpa harus bolak balik mengetik dan menghapus perintah.
NOTE : Perintah ini juga ditemukan pada configurasi script custom.

Simpan file ini dengan nama misalnya testbuffer.txt

C) NPC Quest
Pada Ragnarok Online, terdapat NPC Quest untuk membuat headgear. Biasanya pada private server, quest nya dibuat lebih mudah, atau headgear yang digunakan tidak ada di official server (custom headgear). Untuk membuat headgear, biasanya player diharuskan membawa beberapa item, kadang zeny, dan setelah terkumpul, NPC akan memberikan headgear tersebut.

Pada script quest seperti ini, biasanya akan menggunakan perintah countitem yang dibutuhkan dan deleteitem untuk menghapus item yang dikumpulkan agar tidak terjadi looping/abuse.

Disini saya akan membuat contoh untuk membuat sebuah Pipe dengan menggunakan 10 Jellopy, 20 Scell, dan zeny sejumlah 10.000.


 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
40
41
42
43
geffen,40,125,6 script Pipe Maker 951,{
 mes "[Maker]";
 mes "Halo, saya bisa membuatkan kamu Pipe, apakah kamu tertarik ?";
 next;
 switch(select("Bahan yang diperlukan?","Sudah punya bahannya","Lain kali.")){
  case 1:
   mes "[Maker]";
   mes "Bawakan barang-barang ini :";
   mes "10 Jellopy";
   mes "20 Scell";
   mes "dan 10.000 Zeny";
   close;
  case 2:
   mes "[Maker]";
   mes "Sebentar, dicek terlebih dahulu";
   next;
   if (countitem(909)&lt;10 || countitem(911)&lt;20 || zeny&lt;10000) {
    mes "[Maker]";
    mes "Maaf, kamu belum memenuhi syarat";
    next;
    mes "[Maker]";
    mes "Bawakan barang-barang ini :";
    mes "10 Jellopy";
    mes "20 Scell";
    mes "dan 10.000 Zeny";
    close;
   }
   delitem 909,10; //Jellopy
   delitem 911,20; //Scell
   set zeny,zeny-10000;
   mes "[Maker]";
   mes "Sudah kuperiksa, kamu memenuhi syarat.";
   next;
   mes "[Maker]";
   mes "Silahkan datang kembali jika kamu ingin membuatnya lagi.";
   getitem 2268,1; // Pipe
   close;
  case 3:
   mes "[Maker]";
   mes "Oke, bicaralah kepadaku lagi jika kamu berubah pikiran";
   close;
 }
}

NOTE : Tanda || pada pembatas countitem (mirip huruf I besar) berada diatas tombol enter sambil menekan tombol SHIFT.

Agar quest ini tidak bolak balik, kita buat menjadi tiga opsi/case, yaitu :
Pada option 1, kamu cukup membuat percakapan untuk menjelaskan bahan-bahan yang diperlukan untuk membuat item yang diinginkan.

Pada option 2, NPC memproses bahan yang dibawa player, dimulai dengan pengecekan menggunakan perintah if dan countitem(kodeitem) dan memberikan statement jikalau barang yang diperlukan kurang. Setelah bahan yang dikumpulkan sesuai, maka NPC harus menghapus bahan-bahan tersebut dengan menggunakan delitem, jumlahitem.
Untuk pengecekan zeny cukup gunakan zeny < jumlahzeny, dan untuk mengurangi zeny pada player, gunakan perintah set zeny, zeny -jumlahzeny (jangan lupa tanda minus/kurang). Setelah itu, NPC harus memberikan Item yang dijanjikan, dengan menggunakan perintah getitem (kodeitem),jumlah item.

NOTE : tanda garis miring 2x digunakan sebagai reminder dan pengecekan, karena jumlah item sangat banyak. Kamu bisa menggunakan nama item, tapi lebih baik menggunakan kode ID nya saja.

Pada option 3, digunakan untuk opsi player yang ingin menghentikan dialog dengan NPC.

Sampai disini, simpan dengan file misalnya testquest.txt


Sekarang kamu punya tiga file npc yaitu, testwarper, testbuffer, dan testquest, jangan lupa untuk menambahkannya kedalam config script mu. Buka folder npc dan buka file script_custom.conf dengan Notepad++. Formatnya adalah npc: folder/tempat/file/namafile seperti contoh dibawah, saya menyimpan file nya pada folder npc/custom/

1
2
3
npc: npc/custom/testwarper.txt
npc: npc/custom/testbuffer.txt
npc: npc/custom/testquest.txt

Setelah disimpan, ketiga script tersebut akan diload setiap kali map-server distart. Untuk memunculkan langsung npc tersebut, kamu bisa menggunakan perintah @loadnpc, misalnya :
@loadnpc npc/custom/testwarper.txt

untuk mematikannya, kamu harus mendisable script tersebut dengan menggunakan garis miring 2x pada script_custom.conf dan kemudian gunakan @reloadscript. atau kamu bisa langsung menuju NPC tersebut, Klik kanan lalu Kill NPC (harus menggunakan ID GM yang tersimpan di clientinfo.xml didalam folder data). atau kamu juga bisa menggunakan perintah @unloadnpcfile, misalnya : 
@unloadnpcfile npc/custom/testwarper.txt

NOTE : Command bisa berbeda pada masing-masing emulator.

Sampai disini, selesai tutorial membuat NPC sederhana, jika kamu ingin mencoba untuk membuat script lain, kamu bisa melihat-lihat script yang sudah ada dan mempelajari cara kerjanya. Semoga Berhasil !

18 September 2018

Cara Memunculkan NPC pada Ragnarok Online Private Server

Setelah berhasil membuat server mu sendiri dan sudah berkeliling sedikit didalam dunia Ragnarok Online, kamu akan sadar kalau ada yang kurang. Kemana kah NPC-NPC yang biasanya ada di PSRO, seperti misalnya buffer, job changer, dan warper ?

NPC seperti Buffer, Job Changer, dan Warper yang biasa kamu pakai di PSRO pada umumnya merupakan Custom NPC yang dikembangkan dari NPC yang sudah ada. misal, pada prontera Inn, tempat untuk PvP kamu akan menemukan NPC yang menyembuhkan HP dengan membayar sejumlah uang, dengan menambahkan efek buff seperti Agi dan Blessing, dan dihapus requirment membayar sejumlah uang, maka jadilah sebuah NPC buffer.

Lalu bagaimana cara untuk memunculkan NPC-NPC tersebut ? caranya cukup mudah : 

  • buka folder npc pada emulator mu
  • buka file script_custom.conf dengan Notepad++
  • kamu akan melihat deretan list npc yang ada didalam emulator, kamu bisa melihat dimana letak masing-masing npc. Biasanya npc custom seperti warper ada didalam folder npc/custom 
  • Untuk memunculkan NPC yang kamu inginkan, kamu cukup menghapus tanda // (double slash) pada list npc, misal kamu ingin mengaktifkan npc Warper dan Healer, maka kamu cukup menghapus tanda // pada script menjadi seperti gambar dibawah 
  • Kamu tidak perlu menutup server untuk memunculkan npc tersebut, cukup gunakan command @reloadscript (NOTE: @reloadscript baiknya hanya digunakan pada saat test server, karena bukan hanya NPC yang direset, Monster seperti MVP, dan beberapa Instances juga akan ikut reload/reset)
  • Kalau kamu tidak ingin NPC tersebut muncul, kamu bisa men-disable npc tersebut dengan kembali menambahkan tanda //

Mudah bukan, harus diingat, format dari load script adalah

npc: nama/folder/namascript.txt

Kalau salah, npc tersebut tidak akan muncul (ada pesan error pada map-server), kamu juga bisa memanggil NPC tersebut (temporary) dengan menggunakan command @loadnpc  dari dalam game misal :

@loadnpc npc/custom/jobmaster.txt

Karena @loadnpc bersifat temporer, jangan lupa aktifkan / tambahkan npc yang kamu load didalam game pada script_custom.conf agar NPC tersebut akan muncul kembali saat server dihidupkan.

NOTE : ada sedikit perbedaan pada emulator Hercules terbaru, yaitu ditambahkannya tanda quotes dan koma, namun cara nya tidak jauh berbeda, hanya perlu mengurangi tanda // untuk mengaktifkan NPC.

07 September 2018

Menjalankan dan Test Play Private Server Ragnarok Online

Setelah selesai setup server, client, dan hexing ragexe, sekarang kamu sudah dapat mencoba bermain private server  buatan mu sendiri. Tapi sebelumnya, kamu harus mendownload kRO terlebih dahulu. Kenapa harus kRO ? karena base dari emulator ragnarok menggunakan acuan dari kRO. Bukan berarti kamu tidak bisa menggunakan idRO untuk bermain private server, tapi akan lebih baik jika kamu menggunakan kRO.

Yang perlu kamu siapkan untuk memulai private server mu adalah :
1. kRO Installer
2. Custom Setup.exe by Ai4rei (pilih sesuai versi kRO mu : http://nn.ai4rei.net/dev/rel/opensetup/old/
3. Buat DATA.ini
  • Buka folder Ragnarok mu (kRO atau idRO atau private server)
  • cari DATA.ini dan copy paste ke folder private server mu.
  • Buka dan tambahkan nama file custom GRF mu pada urutan paling atas (no. 1) seperti gambar dibawah, lalu save. (NOTE: huruf besar kecil harus sama)
  • Jika kamu menggunakan GRF tambahan seperti misalnya pallete.grf, jangan lupa tambahkan juga.
Optional :
4. Custom kRO Patcher by Ai4rei :http://nn.ai4rei.net/dev/rsu/#download

Setelah kamu mendownload dan menginstall (mengekstrak) client kRO terbaru, pindahkan custom grf, custom client dan data.ini (yang sudah dimodif). Lalu jalankan rAsql, Setelah itu, jalankan server rAthena / Herculesmu, yaitu dengan menjalankan run-server.bat atau secara berurutan, login-server.exe, char-server.exe, dan map-server.exe.

Setelah server online, buka folder private server ragnarok mu, dan jalankan Ragexe.exe yang sudah kamu buat. Karena kamu belum mempunyai ID, daftarkan dengan menggunakan _M / _F, misalnya admin_M dan isikan passwordmu. Masuk dan buatlah karaktermu. Setelah itu, masuklah kedalam dunia Ragnarok mu

Untuk bermain LAN, ubah IP Address dengan IP LAN mu pada clientinfo.xml. Untuk mendapatkan IP LAN mu, buka CMD.exe (klik Start - Run atau Klik Start, ketik pada kolom search cmd) ketik ipconfig lalu tekan Enter. Lihat IP mu pada IPv4 Address, misal 192.168.1.12

Trouble-shooting.
Biasanya pada tahap ini, kamu akan mengalami error / crash (Gravity Error) pada saat membuka ragexe.exe buatanmu.

Yang sering terjadi :
Problem : Error: Missing (file)
Solusi : update kRO mu ke paling terbaru, dan juga update Translated Data Foldermu.

Problem : Forced Closed sebelum sempat masuk game.
Solusi : ulangi proses Hexing client (patch), gunakan option yang dipilih oleh Select Recomendation.

Problem : Tombol-tombol / tulisan korea.
Solusi : periksa DATA.ini, apakah kamu sudah mencantumkan custom GRF mu ?

Yang sering terjadi setelah masuk kedalam game :
Problem : Salah satu Item bergambar Apel (Unknown Item)
Solusi :
  • Buka Translated Data Folder yang kamu download
  • cari dan buka file idnum2itemdisplaynametable.txt
  • CTRL+F (find) id item yang Unknown / bergambar apel.
  • Jika tidak ditemukan, update Translated Data Folder mu, atau disable item tersebut pada Database.
  • Jika ada, buka folder Ragnarokmu, lalu buka folder System, cari ItemInfo.Lub, cari kode item yang Unknown / bergambar apel, Jika tidak ada, Update ItemInfo.Lub mu.
NOTE : Tutorial yang saya buat sampai pada artikel ini, defaultnya menggunakan Renewal (karena memang saya tidak belum mengajarkan untuk mengganti sistem Renewal atau Pre-Renewal) dan hanya merubah pengaturan untuk bermain secara Offine atau LAN. Jadi bila ada error diluar yang saya ajarkan, silahkan untuk mencarinya sendiri lewat google atau forum masing-masing emulator, Trims.

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 !

    31 Agustus 2018

    Membangun Server dan Database (Personal Computer/OFFLINE)

    Cara kerja server side dan client side

    Server pada dasarnya adalah sebuah komputer yang menyimpan data-data yang dapat diakses dan diproses oleh game engine pada client side. Pada RO, Server digunakan sebagai akses data player juga menyimpan segala jenis riwayat seperti pick log, chat log, dan lain-lain. Server juga bisa digunakan sebagai Website/Portal.

    Pada Artikel ini, saya akan menjelaskan bagaimana caranya untuk membuat Private Server menggunakan OS WINDOWS untuk bermain sendiri atau bermain bersama dengan LAN (OFFLINE)

    Langkah Pertama

    yang kamu butuhkan adalah, mendownload file Emulator pilihan kamu.

    Pada Windows, biasanya kamu akan membutuhkan program tambahan seperti TortoiseGit, kamu bisa langsung mendownload archive dalam bentuk Zip,


    Men-download langsung dalam bentuk ZIP, tanpa menggunakan TortoiseGit (pada OS Windows) 

    Tapi, lebih disaran untuk mendownload dengan menggunakan TurtoiseGit, langkahnya ikuti pada masing-masing emulator yang kamu pilih :

    • Cara download dan install rAthena dengan TurtoiseGit : Klik Disini
    • Cara download dan install Hercules dengan TurtoiseGit : Klik Disini


    Langkah Kedua, mengatur interkoneksi antar server.

    Ragnarok Online menggunakan server berbasis AEGIS, dimana terdapat tiga server yang saling berhubungan yaitu, 

    • Login Server, memproses data ketika ID dan Password di input.
    • Char Server, memproses data karakter yang ada didalam ID
    • Map Server, memproses karakter dan Script-script seperti NPC, monster, warp portal, dan lain-lain.


    NOTE :

    • Jika Login Server mati, ID yang berhasil login tetap bisa memilih karakter dan melanjutkan permainan seperti biasa didalam dunia game.
    • Jika Char Server mati, ID yang berhasil login, memilih karakter, dan berhasil masuk kedalam game, tetap dapat bermain, namun, segala update seperti naik level, perubahan stat, perubahan skill, dan item yang didapat tidak akan tersimpan (roll back).
    • Jika Map Server mati, ID tetap dapat proses dan bisa memilih karakter, namun, karakter tidak dapat masuk ke dunia game, semua karakter yang berhasil masuk kedalam server akan keluar dari game (Disconnect).

    Pada versi emulator terdahulu, kamu bisa langsung merubah settingan interkoneksi server dengan merubah beberapa file, namun, untuk beberapa versi terbaru, kamu harus melakukan compile terlebih dahulu.

    Pada OS Windows (Hanya support Visual Studio 2013 keatas),

    • Download versi terbaru Visual Studio (pada saat tulisan ini dibuat, Penulis menggunakan Microsoft Visual Studio 2015 Community Edition), setelah selesai men-download, Install. 
    • Pada rAthena, buka rAthena.sln pada folder rAthena mu,
    • Pada Hercules, Buka Hercules-12.sln jika kamu punya MS Visual Studio 2013, buka Hercules-14.sln jika kamu punya MS Visual Studio 2015, buka Hercules-15.sln jika kamu menginstall MS Visual Studio 2017 (Perhatikan versi Visual Studio yang kamu install !)
    • Cari Debug (pada tanda merah), rubah ke Release 

    • Klik kanan Solution Mode (pada tanda biru), pilih Build solution. Jika kamu sudah pernah meng-compile server mu, pilih Rebuild solution (akan berguna nanti jika kamu merubah source file).
    • Tunggu sampai proses compile selesai, kecepatan waktu compile tergantung dari spek komputer kamu.
    • Jika proses compile selesai, periksa folder rAthena / Hercules mu, periksa adakah login-server.exe, char-solution.exe, map-server.exe, dan mapcache.exe. Bila tidak ada, berarti proses compile gagal.

    Untuk Linux, maaf penulis belum pernah mencoba menggunakan OS Linux / Unix pada Personal Computer, silahkan mengecek dokumentasi pada masing-masing emulator yang akan kamu gunakan.

    Istirahat sebentar ya, sampai disini kamu sudah berhasil mempersiapkan server mu, untuk melanjutkan ke tahap selanjutnya, kamu membutuhkan SQL Server sebagai database. Mungkin beberapa dari kamu pernah mendengar TXT Server dan SQL Server untuk versi eAthena. Dimana kamu mendownload TXT Server jika ingin bermain secara lokal / LAN / offline, dan mendownload SQL Server jika ingin benar-benar menjadi sebuah Ragnarok Online dan orang lain bisa bermain dari kejauhan.

    Sejak rAthena mulai berkembang (sebelum beberapa staff terpecah dan membangun saingannya Hercules), pada update revisi r15503, rAthena berhenti mensupport TXT Server. Sebagai gantinya, rAthena merilis aplikasi bernama rAsql, dimana para developer tidak perlu repot-repot membangun webserver beserta SQL Server dalam mengembangkan PSRO nya. rAsql hanya berfungsi sebagai mySQL portable, kamu tetap bisa menggunakannya untuk bermain LAN.

    Langkah Ketiga, Membuat Database.

    Oke, masuk ke tahap selanjutnya, yaitu membuat database untuk server kamu. Karena menggunakan mysql server membutuhkan webserver dan membuatnya agak merepotkan, kita hanya perlu mendownload rAsql sebagai database untuk database. rAsql pada dasarnya dibuat oleh tim developer rAthena menggunakan HeidiSQL Portable, namun jika Hercules adalah pilihan emulator mu, kamu tetap dapat menggunakan aplikasi tersebut.

    Menggunakan rAsql.

    • Download rAsql melalui TortoiseGit atau download file ZIP nya langsung
    • Setelah terdownload, buka folder rAsql mu, jalankan start_mysql.bat, tunggu beberapa saat hingga muncul jendela login form.
    • Default Username = ragnarok, password = ragnarok.
    • Isi Username dan password, lalu pilih login, jika ada confirmation form muncul, pilih saja NO (don't save), setelah itu akan muncul jendela baru yang lebih besar (HeidiSQL Portable).

    • Pada kolom kiri, klik kanan pada Unnamed (Kalau kamu tidak merubah apapun saat login), lalu pilih Create New, kemudian Database.
    • Isi nama database yang kamu inginkan (disini penulis menggunakan nama fn2016), tidak perlu menggunakan huruf kapital, agar mudah dihapal.
    • Alternatif lain, kamu bisa menggunakan Database ragnarok yang sudah default ada di dalam SQL.
    • Klik pada Database yang sudah kamu buat, kolom sebelah kanan masih terlihat kosong.
    • Pada kolom sebelah kanan, pastikan label Database: mu sudah terklik, kemudian klik menu Import dan klik Load SQL Files.

    • Cari folder rAthena / Hercules, lalu buka folder sql-files, kamu akan melihat beberapa file seperti dibawah untuk Hercules. Untuk rAthena, memiliki file lebih banyak, yaitu adanya item_shop_db, item_shop_db2, dan Roulette_default_data. Perhatikan pula untuk beberapa file seperti item_db dan mob_db, terdapat file item_db_re dan mob_db_re,.Re disini berarti Renewal, yang artinya, isi file tersebut berisi data-data yang dibutuhkan jika kamu akan menggunakan renewal sebagai mode game (3rd Job).

    • TIdak ada urutan yang spesifik untuk mengimport SQL file tersebut, kamu juga bisa memasukan sekaligus semua file dengan menggunakan CTRL+Klik kiri, namun, akan lebih baik jika kita masukan satu persatu sambil mengerti apa saja isi file tersebut. Berikut adalah urutan yang biasa penulis lakukan saat import data SQL. 
      (NOTE: Setiap kali memilih memilih file, pastikan kamu menekan tombol  Execute SQL (Tombol play berwarna biru pada toolbar, dan tunggu sampai proses selesai sebelum meng-import file lain).
    • main.sql - berisi table untuk data yang berhubungan dengan ID, character, guild, dan lain-lain
    • item_db, item_db_re, dan item_db2 - berisi table data-data item,
    • mob_db, mob_db_re, dan mob_db2 - berisi table data-data monster,
    • mob_skill_db, mob_skill_db_re, dan mob_skill_db2 - berisi table data skill monster
    • logs.db - berisi table untuk riwayat server mu, seperti chat_log, pick_log, dan zeny_log yang akan berguna untuk mencari kecurangan pada GM mu, hehe
    • untuk rAthena, masukan file sisanya yaitu, item_shop_db, item_shop_db2, dan Roulette_default_data
    • Setelah satu persatu file SQL kamu import, klik tombol Refresh pada toolbar, lalu pilih nama Database mu pada kolom sebelah kiri. Sekarang database harusnya sudah terisi table-table database yang kamu perlukan untuk menjalankan Private Server mu.



    • Selanjutnya, cari table login pada kolom sebelah kanan lalu klik 2x pada table tersebut. Lalu klik Label Data seperti gambar dibawah. Dan kamu akan melihat ada data default dengan Account ID 1, nama ID s1, password nya p1, untuk sementara, kamu tidak perlu merubah ini, tapi nanti, jika kamu berniat untuk membuat servermu Online, maka kamu harus merubah ID dan Password tersebut. (NOTE : Sex, S, = Server, M = Male, F = Female). Table login berisi data-data seperti ID, password, email, last login, dan lain-lain (Kamu bisa melihat-lihat sendiri hehe). 

    • Untuk sementara, kita tinggalkan dahulu rAsql terbuka dan pindah ke tahap selanjutnya.

    NOTE : rAsql bisa di duplikasi, namun beda folder, maka beda pula isi database yang akan muncul saat mysql dibuka.


    Langkah Keempat, Menghubungkan Server dan Database.

    Langkah terakhir adalah merubah file config, untuk bermain secara offline kita tidak memerlukan banyak perubahan, pastikan kamu sudah mendownload dan menginstall Notepad++ untuk memudahkan pekerjaanmu. Jika belum, cek kembali artikel Membangun Private Server Ragnarok Online.

    Masuk kedalam rAthena / Hercules, dan buka folder conf, periksa apakah folder import sudah ada atau belum, jika belum buatlah folder bernama import (huruf kecil semua). dengan folder import, kamu tidak perlu bolak balik scroll config yang mau dirubah, karena isi file confignya lumayan penuh dengan deskripsi masing-masing fungsi.

    Buka aplikasi Notepad++, buat file baru melalui menu New (CTRL+N) pada Notepad++

    (NOTE: Jika folder import dan isinya sudah ada sedari awal, kamu cukup membuka file-file dibawah satu persatu ke Notepad++)

    - char_conf

    • Pada char_conf, kamu harus merubah username dan password (Default, username = s1, password = p1), kamu juga bisa merubah nama server, dan menambah huruf, angka, dan simbol yang dapat digunakan pada saat membuat Karakter. Pada file ini kamu juga bisa merubah senjata, armor, dan zeny awal, juga posisi koordinat spawn pertama kali setelah membuat karakter baru.

    • userid dan passid ini harus sama dengan yang ada didatabase, jika kamu tidak merubahnya di database, kamu tidak perlu merubah yang di config.
    • Nama server tidak boleh ada spasi, nama server akan muncul saat kamu memilih server dan saat karakter masuk kedalam game.
    • login_ip dan char_ip default adalah 127.0.0.1 (atau localhost), pada beberapa tutorial mengharuskan kamu untuk menggunakan LAN IP komputer kamu, misalnya 192.169.0.2, tapi server akan tetap berjalan dengan IP default yang disediakan
    • Save, bila kamu belum punya file char_conf pada folder import, buatlah file tersebut dengan file type : All type.


    - map_conf

    • Sama seperti char_conf, userid dan passid harus sama dengan yang ada di database.
    • char_ip disini tetap default 127.0.0.1
    • map_ip diharuskan menggunakan WAN IP pada beberapa tutorial, namun untuk saat ini, biarkan saja default 127.0.0.1
    • Save, bila kamu belum punya file map_conf pada folder import, buatlah file tersebut dengan file type : All type.


    - inter_conf

    • inter_conf berisi pengaturan untuk koneksi login-server, char-server, map-server, dan logs ke database.
    • Pada file ini, kamu cukup masukan username dan password MYSQL pada masing-masing server, dan rubah nama database sesuai dengan nama database mu. (Disini saya menggunakan fn2016 sebagai nama database).

    • Save, bila kamu belum punya file inter_conf pada folder import, buatlah file tersebut dengan file type : All type.

    Selesai

    Sampai disini seharusnya kamu sudah dapat untuk menjalankan servermu. Untuk menjalankan servermu, buka folder rAthena / Hercules, lalu klik run-server.bat, atau klik satu persatu secara berurutan login-server.exe, char-server.exe, terakhir map-server.exe.

    Untuk beberapa OS Windows, biasanya akan ada jendela warning dari Firewall. Pastikan kamu mengizinkan semua network untuk menjalankan server.


    Jika berhasil, kamu akan melihat ketiga server menampilkan Status login / char / map server is ready. Selamat! kamu sudah berhasil dan bisa melanjutkan ke tahap selanjutnya.


    Troubleshooting.

    Problem : Server tidak jalan / auto close 
    Solusi : Periksa pesan error sebelum jendela tertutup, atau periksa apakah mysql sudah jalan atau belum.

    Problem : SQL Error Access Denied
    Solusi : Periksa inter_conf, apakah username dan password sudah benar atau tidak.

    Problem : File login-server.exe, char-server.exe, dan map-server.exe tidak ada
    Solusi : kamu belum benar dalam proses compile, coba ulangi.

    Menghentikan Server.
    Untuk menghentikan server, kamu cukup meng-close satu persatu jendela server. Untuk menghentikan rAsql buka folder rAsql kamu, dan klik mysql-stop.bat.