Tampilkan postingan dengan label ragnarok private server. Tampilkan semua postingan
Tampilkan postingan dengan label ragnarok private server. Tampilkan semua postingan

02 November 2019

Mengatur Spawn Monster, Portal, dan Mapflag Ragnarok Online Private Server



Pada tutorial kali ini kita akan membahas tiga hal, yaitu mengatur spawn monster, portal (warp), dan mapflag pada Ragnarok Online Private Server. Bagi kamu yang sering bermain private server, pasti pernah ketemu dengan server yang membuat map custom dengan spawn monster yang tidak biasa, seperti misalnya Gold Room dan Exp Room, biasanya,kamu harus mengklik NPC tertentu, atau ada portal khusus yang sudah dibuat untuk masuk kedalam map tersebut.  dan kadang di map ini kamu tidak bisa teleport menggunakan fly wing, atau map nya dibuat pvp mode yang diatur menggunakan mapflag.

Terkadang, ketika kamu ingin membuat server, kamu juga ingin me-rebalance server mu, dengan mengatur monster yang spawn, apalagi jika server mu pre-renewal generasi awal, kamu harus membuat banyak perubahan agar monster yang spawn sesuai dengan Episode server yang kamu buat. Dan kamu juga perlu untuk mengedit posisi portal khusus nya pada Morroc dan Sograt Field ke posisi map sebelum Episode Satan Morroc yang menghancurkan kota Morroc dan sekitarnya. Tidak hanya Morroc, biasanya kamu juga perlu mengedit portal pada kota Alberta, Izlude, Payon Old dan Prontera. Tentu saja hal itu berdampak kepada map PVP, kalau kamu ingin menggunakan map lama, maka kamu juga harus mengaktifkan settingan mapflag nya terlebih dahulu.

Tapi tenang, sekarang sudah banyak yang share settingan untuk pre-renewal, dan kamu tidak perlu repot-repot lagi mengatur semuanya, biasanya kamu hanya tinggal membuat mapcache baru dan biasanya mapflag pvp mengikuti map asli (clone dari map asli), kecuali Payon Old.

Namun, tidak ada salahnya jika kita belajar ketiga hal tersebut, karena mungkin saja kedepannya Ragnarok Online akan rombak besar-besaran lagi, atau mungkin kamu ingin membuat fitur yang unik untuk private servermu, dan nantinya kamu tidak perlu pusing lagi.


A. Spawn Monster
format :
map name,x1,y1,x2,y2 %TAB% monster %TAB% monster name %TAB% mob id,amount,delay1,delay2,event{,mob size,mob ai}

%TAB% = spasi dengan menekan tombol TAB
map name = nama map
x1, y1, x2, y2 = koordinat area spawn monster
contoh kalau kamu ingin membuat 10x10 area, masukan 120,150,130,160 (tergantung map), karena terlalu rumit untuk dijelaskan, set saja ke angka 0,0,0,0 agar monster bisa spawn dikordinat manapun.
monster name = nama monster
mob id = ID dari monster
amount = jumlah spawn, harap diperhatikan semakin banyak amount akan menambah beban kinerja server mu.
delay1 = waktu minimal sebelum monster spawn dalam milisekon (biasanya untuk boss)
delay2 = waktu maksimal sebelum monster spawn dalam milisekon (biasanya untuk boss), delay 2 tidak boleh lebih besar dari delay 1
event = digunakan untuk script atau trigger dari script lainnya menggunakan perintah "NPCName::OnEventName", seperti contohnya script fake Lord of Death di Nilfheim dan quest Kiel Hyre.
size = optional, default jika tidak diisi adalah 0 (medium)
ai = optional, 0 = default, 1 = attack/friendly (contoh thief bug), 2 = sphere (contoh marine sphere), 3 = flora, 4 = zanzou ( mob baru ? )

contoh :

pay_fild11,0,0 monster Dragon Tail 1321,50,180000
pay_fild11,0,0,0,0 boss_monster Eddga 1115,1,7200000,600000,1
pay_fild11,241,162,5,5 monster Red Mushroom 1085,3,360000,180000

- Dragon Tail adalah contoh script monster yang spawn normal, jumlahnya 50 dan spawn setiap 3 menit
- Eddga adalah contoh script boss, spawn setiap 120 - 130 menit setelah mati, kurang tau kenapa tag monsternya jadi boss_monster dan event nya 1, karena ga ada di manualnya.
- Red Mushroom adalah contoh monster yang menggunakan fixed coordinates.

Cara pasangnya sama dengan NPC

  • Buka notepad, masukan kode monster yang ingin kamu spawn, kamu dapat mencontek dari yang sudah ada.
  • save lalu beri nama misalnya spawncustom.txt lalu masukkan file tersebut misalnya kedalam folder custom didalam folder npc.
  • lalu buka file script_custom.conf atau file sejenis yang dapat meload NPC pada saat map-server berjalan. 
  • Tambahkan file npc mu, misalnya pada hercules "npc/custom/spawncustom.txt" atau pada rathena npc: npc/custom/spawncustom.txt.
  • Jalankan server mu (atau gunakan @reloadscript jika server sudah jalan) untuk mengecek monster yang sudah kamu spawn.

B. Warp Portal
Bagi sebagian orang Warp Portal adalah hal yang sepele namun pada saat ingin membuatnya malah jadi bingung sendiri. Warp Portal merupakan essensi dari sebuah game linear, dimana untuk pindah ke map lain, dibutuhkan sebuah pintu untuk mentransfer karakter yang dimainkan.

Pada Ragnarok Online, warp portal yang paling banyak orang tahu adalah berbentuk bulat berwarna putih dengan animasi seakan kita akan tersedot kedalamnya, tapi jika kita matikan effect game, hanya bayangannya saja yg bisa kita lihat.

Namun, sebenarnya ada 4 jenis portal didalam Ragnarok Online,
1. Warp ketika disentuh karakter seperti saat pindah antar map
2. Warp menggunakan jasa teleport Kafra atau NPC sejenis
3. Warp dengan interaksi NPC event, seperti misalnya pada saat quest berubah job
4. Warp dengan skill, seperti misalnya Warp Portal dan Emergency Call.

Namun pada intinya, ke 4 jenis tersebut sama-sama menggunakan perintah script "warp". Kecuali untuk warp dengan skill, yang scriptnya ada pada source emulator, bentuk warp yang lain biasanya ada didalam folder NPC. Seperti misalnya global warp untuk pindah antar map ada didalam folder warps. Untuk jasa teleport Kafra atau sejenisnya biasanya ada didalam folder city, dan kita tinggal mencari npc nya per kota. Untuk script NPC events, biasanya tergantung dari jenis NPC nya, misalnya quest berubah job ada didalam folder jobs.


1. Warp Portal untuk pindah antar map
Format :
from mapname,fromX,fromY,facing %TAB% warp %TAB% warp name %TAB% spanx,spany,to mapname,toX,toY

from mapname,fromX,fromY,facing %TAB% warp2 %TAB% warp name %TAB% spanx,spany,to mapname,toX,toY

from mapname = map asal sekaligus lokasi portal
fromX = koordinat x map asal
fromY = koordinat y map asal
facing = arah npc, karena kita tidak peduli portal akan menghadap kemana, biasanya di isi 0
warp name = nama NPC, usahakan jangan sama jika kamu tidak mengerti cara menduplikasi nama
spanx = toleransi jarak X cell dari npc
spany = toleransi jarak Y cell dari npc
to mapname = map tujuan teleportasi
toX = koordinat x map tujuan,
toY = koordinat y map tujuan
kamu bisa menggunakan koordinat 0,0 agar tujuan teleportasi random, biasanya digunakan di map pvp.

ada dua bentuk warp yaitu warp dan warp2 (lihat format), namun warp2 jarang digunakan, fungsi warp2 adalah char yang hidden bisa diwarp tanpa harus muncul terlebih dahulu.

contoh :

prontera,156,22,0 warp prt001 3,2,prt_fild08,170,375
moc_fild01,239,382,0 warp mocf006 12,1,prt_fild08,233,20

Diatas adalah contoh
1. Portal Prontera arah jam 6 yang akan memindahkan pemain ke Prontera Field 08.
2. Portal dari Sograt Field 01 ke Prontera Field 08, spanX nya 12, artinya karakter bisa langsung warp dalam jarak X = 8 tanpa harus mendekati portal.

2. Warp menggunakan jasa NPC
format :

warp "map name",mapX,mapY;
close2;

map name = nama map tujuan (isi didalam tanda quotes)
mapX = koordinat X map tujuan
mapY = koordinat Y map tujuan
close2 = digunakan agar kotak dialog NPC otomatis ditutup tanpa harus memencet tombol (close) saat karakter pindah map.

contoh :

prontera,163,191,4 script NPC Warper 100,{
 mes "[NPC Warper]";
 mes "Halo apakah kamu ingin menggunakan jasa ini?";
 next ;
 switch(select("Oke","Tidak") {
  case 1 : 
   warp "prontera",158,180;
   close2;
  case 2 :
   mes "[NPC Warper]";
   mes "Oke";
   close;
 }
}

agar lebih menarik, kamu juga bisa menambahkan biaya 2000 zeny sekali teleport

prontera,163,191,4 script NPC Warper 100,{
 mes "[NPC Warper]";
 mes "Halo apakah kamu ingin menggunakan jasa ini?";
 mes "Biayanya 2000z sekali pakai";
 next ;
 switch(select("Oke","Tidak") {
  case 1 : 
   if (zeny<2000) {
    mes "[NPC Warper]";
    mes "Maaf, uang kamu kurang";
    close;
   }
   set zeny,zeny-2000;
   warp "prontera",158,180;
   close2;
  case 2 :
   mes "[NPC Warper]";
   mes "Oke";
   close;
 }
}

Dan masih banyak variasi lain yang kamu bisa coba dari NPC teleport, seperti misalnya hanya karakter dengan level tertentu saja yang masuk, atau misalnya hanya GM saja yang bisa menggunakan NPC tersebut. Perlu diperhatikan, pastikan kamu sudah mencoba map dan kordinat sebelum mencantumkan nya didalam script. Karena terkadang, kamu tidak memiliki map yang ada didalam script, dan sering kali tidak ada script error yang muncul pada konsol map-server.

Untuk Warp dengan Event NPC, kamu bisa mencontohnya dari NPC yang sudah ada, karena masing-masing NPC mempunyai logika program yg berbeda-beda walaupun sebenarnya perintah yang digunakan tidak jauh beda.


C. Mapflag
Flag bisa berarti bendera, tapi dalam bahasa inggris flag bisa berarti menandakan sesuatu yang mutlak. Mapflag, berarti menandai map, fitur ini sangat berguna mengkategorikan suatu map untuk satu keperluan. Dalam Ragnarok Online, ada banyak bentuk mapflag, seperti misalnya no save, no memo, no skill, dan lain-lain. Mapflag ini juga bisa digunakan untuk membatasi penggunaan item seperti misalnya kita tidak bisa menggunakan fly wing di map Juno, map PvP, dan map GvG.

Lalu apa gunanya mapflag untuk Ragnarok Online private server? banyak sekali kegunaannya, seperti misalnya untuk kamu yang ingin membuat ruang vending, ruang event, dan lain-lain. Cara penggunaannya pun cukup mudah, sama seperti membuat script warp, kamu hanya perlu menambahkan 1 baris perintah. Tentu saja harus dengan perintah yang sudah terdaftar dengan source.

Format :

map name %TAB% mapflag mapflagtype

map name = nama map
mapflagtype = perintah mapflag yang akan digunakan
terkadang ada option tambahan seperti misalnya di battleground setelah mapflagtype

Contoh :

prontera mapflag nosave
prontera mapflag nomemo
prontera mapflag noreturn
prontera mapflag noteleport

Pada contoh diatas, pada map prontera, berarti ketika player ada didalam map prontera,
- nosave - player akan kembali ke save point jika logout di prontera
- nomemo - tidak bisa menyimpan memo di map prontera
- noreturn - player tidak bisa menggunakan item Butterfly Wing dan sejenisnya
- noteleport  - player tidak bisa menggunakan item Fly Wing dan sejenisnya

Didalam folder npc/mapflag kamu bisa menemukan mapflag standar yang ada didalam server, jika kamu berniat untuk membuat mapflag sendiri, ada baiknya untuk membuat file baru dan diletakkan pada folder baru, lalu didaftarkan pada script_custom.conf

Untuk melihat list dari perintah mapflag dan penjelasannya, kamu bisa membuka folder doc lalu cari file mapflag.txt (di hercules ga ada). Dan perlu diperhatikan, tidak semua perintah sama pada emulator yang berbeda, seperti misalnya di Hercules ada perintah zone, di rAthena ada tapi cara penggunaannya aga berbeda.

Sekian tutorial kali ini, semoga bermanfaat !

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.

11 September 2018

Membuat Akun GM Ragnarok Online Private Server


Ketika kamu masuk game, kamu yang sudah terbiasa bermain private server pasti menyadari bahwa saat kamu tidak dapat menggunakan perintah @ command seperti @go, @autoloot  dan lain-lain, walaupun kamu lah yang membuat server tersebut. Hal ini dikarenakan setiap ID baru yang dibuat menggunakan default level GM 0. Level GM atau yang sekarang disebut Group ID harus di ubah terlebih dahulu pada Account ID yang diinginkan agar dapat menggunakan @ command.

Group ID atau Player Group, pertama kali diperkenalkan pada rAthena sejak TXT Server dihapus, merubah format config atcommand_athena.conf pada eAthena yaitu

command name: level(@),level(#)

level @ berarti perintah yang digunakan sendiri, menggunakan @

level # berarti perintah yang hasilnya dapat di-implementasikan ke ID lain menggunakan #namakarakter (charcommand)

misalnya pada command,

zeny: 60,99

Hanya player dengan level GM 60 yang bisa menggunakan @zeny untuk menambah zeny pada karakter yang sedang dimainkan misal @zeny 1000, maka jumlah zeny akan bertambah 1000. Dan hanya player dengan level GM 99 yang bisa memberikan zeny menggunakan command #zeny namakarakter pada karakter (harus sedang online) yang dituju, misalnya #zeny namakarakter 1000, maka jumlah zeny pada player bernama namakarakter akan bertambah 1000.

Namun tidak semua perintah dapat digunakan dengan command #, seperti misalnya reloadscript, mapexit, snow, dan lain-lain. Dan level GM yang lebih tinggi bisa menggunakan perintah level GM yg lebih rendah, seperti misalnya pada contoh diatas, command zeny hanya bisa digunakan untuk level GM 60 atau lebih.

Pada versi rAthena dan emulator lain yang terbaru, sekarang file atcommand_athena.conf sudah dihapus dan diganti menjadi groups.conf. Pada prinsipnya sama, hanya saja sekarang peng-group-an nya lebih spesifik, kamu bisa membuat grup untuk masing-masing fungsi, seperti misalnya dalam server kamu, ada Event Manager, Enforcer, Supporter, dan Admin. kamu bisa membuat command zeny hanya untuk Event Manager, jail hanya untuk Enforcer, Supporter tidak bisa transfer barang atau zeny, dan tentu saja Admin bisa menggunakan perintah apapun.

Sama seperti pada eAthena, tidak semua command bisa digunakan dengan command #, dan pengaturannya tidak lagi menggunakan angka sebagai value, tapi kamu cukup menggunakan tanda true atau false.

seperti misalnya untuk zeny, pada sebelumnya pengaturannya seperti ini

zeny: 60,60

Namun, pada config baru, ada perubahan seperti ini

zeny: [true, true]

Sama seperti pada config di eAthena, agar player group dengan ID yang dituju tidak dapat menggunakan command #, maka kamu hanya perlu membuatnya seperti ini :

zeny: [true, false]

Untuk menambahkan perintah lain, seperti misalnya untuk agar player (tanpa level GM ) bisa menggunakan perintah yang umum dipakai oleh private server pada umumnya, buka groups.conf dan cari id: 0, dan tambahkan dibawah /*no commands by default*/.

 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: {
  /* no commands by default */
  commands: true
  autoloot: true
  alootid: true
  go: true
 }
 permissions: {
  /* without this basic permissions regular players could not 
  trade or party */
  can_trade: true
  can_party: true
 }
}

Dan kalau kamu perhatikan, ada settingan permission pada beberapa group id. Permission disini berguna untuk mencegah staff kamu korupsi seperti misalnya, kamu bisa menambahkan permission :

can_trade = false

Dengan perintah ini, maka karakter dengan id group tersebut, tidak akan bisa transfer barang dengan trade, mail, bahkan barang yang ada di inventory tidak akan bisa masuk kafra storage.

Oke, semoga kamu mengerti sampai tahap ini. Sekarang kita lanjut untuk membuat akun player mu menjadi GM, atau kalau kamu ingin membuat Akun GM baru.

Setelah kamu berhasil men-setup server dan sudah berhasil sampai masuk game, yang artinya kamu sudah pernah membuat ID dengan format username_m/_f. Sekarang waktunya untuk membuat database kamu. (Jika server emulator mu nyala, kamu tidak perlu mematikan server mu)

  • Nyalakan rAsql (Stop dulu jika kamu sudah memulainya dan menutup form login HeidiSQL)
  • login ke dalam database dan cari database RO mu (disini penulis menggunakan nama database fn2016)
  • cari dan masuk kedalam table login dengan cara klik 2x lalu klik Data pada label dibawah toolbar jendela kanan atau expand klik panah pada nama database mu di sebelah kiri, dan klik table login
  • kamu akan melihat id dan password yang tersimpan didalam database mu.

Akun GM pada database Ragnarok Online Private Server
  • group ID mu ada pada lingkaran merah, klik 2x dan rubah dari 0 menjadi 99 (menjadi admin)
  • tekan Enter atau klik sembarang untuk men-save perubahan.

Sekarang kembali kedalam game, cobalah gunakan command yang biasa kamu pakai, dan Selesai ! Kamu sudah berhasil membuat ID GM mu  pada Ragnarok Online Private Server sendiri !

Lalu bagaimanakah caranya untuk menambah akun baru ?

  1. Cara paling simple adalah manual register dengan _m/_f didalam game.
  2. Manual register didalam database dengan cara Insert Row, masuk kedalam database dan ke table login sampai kamu melihat data-data ID server mu, klik kanan Insert Row pada account_id yang paling terakhir (kalau kamu belum membuat ID baru, maka pada akun 2000000, lalu isikan accound_id, username, password, dan email (Account ID harus urut, 2000000, 2000001, dst.)

Kalau kamu mau menghapus salah satu karakter mu, e-mail default ID yang didaftar dengan _m/_f adalah a@a.com. 

NOTE
  1. Jangan hapus manual dari database, karena bakal ribet.
  2. Hati-hati dalam mengedit database, data yang rusak bisa berakibat mengulang penginstalan database (Khususnya untuk kamu-kamu yang masih benar-benar pemula)

Jadi kesimpulannya, untuk game online seperti misalnya Ragnarok Online, biasanya ada beberapa tingkatan level GM, dan Game Master tidak bisa memperbaiki bug atau error yang kamu alami, seperti misalnya, karakter yang nyangkut dan tiap kali login muncul Gravity Error (biasanya ada file map yg rusak), atau ada item error ketika dipakai. Game Master hanya berfungsi sebagai Customer Service didalam game, seperti kalau sinyal provider mu jelek, dan kamu melaporkan apa yang terjadi. Dan kebanyakan untuk urusan teknis, kamu akan mendapatkan jawaban, "Mohon ditunggu ya, nanti teknisi kami akan segera memperbaiki", sudah biasa terjadi.

Well, pengalaman buruk penulis, pernah karakter penulis nyangkut di field bawah Morroc, lalu penulis coba-coba telpon customer service, lucunya customer service pada line telepon bilang, "Mohon ditunggu ya, bug nya lagi dibenerin sama Game Master", lucu ya, kesalahan ditimpalkan ke game master haha.

Dengan management Game Master yang baik, dan menjadi Administrator yang baik pula, kamu akan bisa membangun server mu dengan menjadi yang terbaik, Good Luck !

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 !