[RT] BattleZoneId

Day 6,039, 22:08 Published in Indonesia Indonesia by beebeam

Artikel ini terlambat 7 hari
Ya, 7 hari!!!

Saat atuk Plato mengumumkan jualan balon untuk bocil-bocil, aku kepikiran kejadian unik yang terjadi saat event yang sama tahun lalu

Tapi ternyata satu, dua, tiga hari, aku menyadari bahwa sebenarnya aku itu amat sangat PEMUALAS.
Untungnya pagi ini aku termotivasi untuk mengetik artikel ini sambil dengerin live stream Monday Morning Malas si Tupai Gila


Jadi gini permulaan ceritanya…
Saat itu (tahun lalu) aku lagi ngeteh malam-malam sambil buka erep setelah setengah harian gak login
ternyata , beberapa jam lalu ada bule kaypang yang tiba-tiba ngasih balon ke battle aku tanpa aku minta dan juga tanpa aku sadari. Kemudian dengan tidak tau malu dia juga menyodorkan struk pembayaran balonnya yang mana tidak aku minta dan juga tanpa aku sadari (ya, ini sengaja aku ulang 2 kali kalimatnya).

Karena penasaran, aku klik lah ya link battlenya dan ternyata udah gak bisa liat siapa aja yang nyerakin balon ke round yang ada akunya (:

Selang beberapa minggu, akhirnya aku menemukan solusi untuk permasalahan di atas yang mana mungkin akan berguna di event lainnya yang memiliki mekanisme sama seperti event bonanza ini.

Jawabannya ada di judul artikel

Yaa…. Battle Zone ID
Apa itu?

Ringkasnya sih Battle Zone ID itu adalah sebuah ID yang digunakan sebagai penanda BattleZone atau yang umumnya kita kenal dengan divisi ketika di battle zone

Misalnya saja ketika kita menuju ground battle maka BattleZoneId yang digunakan adalah IDnya divisi ground (1 sampai 4) sedangkan ketika kita menuju aircraft battle maka BattleZoneId yang digunakan adalah IDnya divisi udara (divisi 11)

BattleZoneId ini juga digunakan oleh game sebagai payload (muatan) ketika request player dikirim ke server sehingga damage kita tidak salah masuk ke divisi lain.

Bagaimana cara mendapatkan dan mengaksesnya?

Cara paling mudah adalah dengan menekan tombol pada halaman war sesuai dengan divisi yang ingin dituju
Misal ikon pesawat untuk menuju battle udara dan ikon tank untuk menuju battle darat. Ketika menekan tombol tank, maka game akan secara otomatis mengarahkan pemain sesuai dengan divisi aslinya.

Misalnya ketika aku menekan ikon pesawat, maka game secara otomatis mengarahkan halaman web ke URL berikut
https://www.erepublik.com/en/military/battlefield/665637/27473145

Looohh… kok URLnya jadi panjang??
Angka 27473145 setelah garis miring adalah AircraftZoneId untuk battle 665637 round 10

Cuma round 10 saja?
Jawabannya adalah IYA
Karena ketika round baru akan dimulai (lebih tepatnya sebelum counter 5 menit dimulai) server akan memberikan ID baru untuk tiap-tiap divisi pada round selanjutnya (jika masih ada)

Hebatnya lagi, dari 1 BattleZoneId, kita bisa menebak semua BattleZoneId pada round tersebut karena ID ini memiliki pola.
Polanya terletak pada digit terakhir dari IDnya

Angka 1 dan 6 untuk divisi 1
Angka 2 dan 7 untuk divisi 2
Angka 3 dan 8 untuk divisi 3
Angka 4 dan 9 untuk divisi 4
Angka 5 dan 0 untuk divisi 11 (pertempuran udara)

Jadi kalau misalnya kita akses URL https://www.erepublik.com/en/military/battlefield/665637/27473144 maka kita akan diarahkan ke battle ground divisi 4
Mungkin karena penggunaan pola BattleZoneId yang seperti inilah yang membuat atuk Plato ragu untuk menambahkan battle lainnya (seperti Naval battle)


Nah, kembali lagi ke permasalahan di awal
Bagaimana cara mendapatkan BattleZoneId battle yang sudah berlalu?
Dari pengalaman aku, ada 4 cara

1. Cara legal
Cara ini adalah satu-satunya cara legal untuk mendapatkan BattleZoneId battle yang sudah berlalu. Namun syaratnya adalah kita harus mendapatkan Battle Hero Medal maupun Sky Hero Medal di round yang kita tuju.
Cara liatnya mudah, cukup pergi ke bagian notifikasi -> system
Di situ akan ada pengumuman bahwa kita mendapatkan medal. Dan ketika kita klik linknya maka kita akan langsung diarahkan ke URL battle tersebut bersama dengan BattleZoneId-nya


2. Cara sedikit legal
Cara ini sedikit butuh effort karena membutuhkan PC/laptop. Di sini kita akan mengakses ‘resource’ dari halaman battle yang ingin kita lihat.
Langkah pertama adalah dengan cara membuka link battle yang ingin kita tuju
Misalnya di sini aku akan pakai link battle ini
https://www.erepublik.com/en/military/battlefield/664787


Klik kanan pada halaman web lalu klik inspect atau inspect element

Masuk ke tab console dan ketikkan perintah ini
SERVER_DATA.rounds



Terus tekan enter dan akan muncul data seperti ini.

Misalnya aku mau liat BattleZoneId untuk round 8 divisi udara
Maka expand datanya dan ambil data id : 27429730

Tinggal tambahkan angka tersebut di belakang URL menjadi
https://www.erepublik.com/en/military/battlefield/664787/27429730

And voila!!
Kita bisa lihat siapa aja yang ngasih balloon di round tersebut


3. Cara rumit
Cara ini kurang lebih sama dengan cara 2 namun lebih susah
Yaitu dengan cara membaca page source dari halaman battle

Setelah terbuka, tinggal cari bagian BATTLE_SERVER_DATA
Dan geser terus sampai capek menemukan object rounds seperti cara ke-2 sebelumnya


4. Cara mungkin sedikit legal
Cara ini sebenarnya legal-legal saja asal tidak dilakukan berlebihan.
Dan sebenarnya walaupun dilakukan secara berlebihan, ini masih dianggap legal dan masih dianggap sedang memainkan game secara normal

Di sini kita akan mengirimkan request ke server

Walaupun bahasanya IT sekali, sebenarnya request ke server ini ya sama saja dengan mengakses gamenya secara normal
Bedanya di sini kita akan melihat balasan dari server guna untuk mengambil data yang kita inginkan tadi (BattleZoneId)

Caranya cukup mudah
Untuk permulaan, sama seperti cara 2 yaitu inspect element.

Bedanya di sini klik pada tab network dan centang atau klik pada fetch/xhr (bisa berbeda tergantung browser yang digunakan)

Kemudian kita cukup bermain secara normal saja untuk membaca data yang dikirim oleh server

Untuk mendapatkan BattleZoneId, kita cukup klik pada fighter statistic saja maka secara otomatis browser akan mengirimkan request statistic ke server dan server akan mengirimkan datanya dalam format JSON


Nah, kembali ke tab network di inspect element tadi, kita bisa membaca datanya dengan klik battle console terlebih dahulu lalu buka tab preview untuk membaca datanya
Tinggal cari round dan divisi yang diinginkan seperti cara ke-2 di atas

Setelah mendapatkan BattleZoneId, tinggal tambahkan ke URL untuk mengakses round yang terkait dengan ID tersebut


Di antara 4 cara di atas, aku lebih senang menggunakan cara ke-2 karena lebih simpel
Minusnya, harus ingat resource apa yang mau dilihat.

Selain untuk mendapatkan BattleZoneId, cara 2 dan 4 bisa digunakan untuk mendapatkan data lainnya
Saran aku sih jangan digunakan untuk abuse aturan di game ini apalagi sampai ngadu ke atuk Plato kalau aku ngajarin caranya

BONUS