Definisi (DEF) ETS2 #1 : Country Data (Negara)
Diperbarui pada : Januari 2023
Alasan : Revisi
Salam!
Postingan ini akan menjelaskan khusus bagian, fungsi, dan deskripsi masing-masing teks/script yang tertulis di setiap file yang
berformat .sii pada folder “def”. Sekarang saatnya pengenalan!
Hal yang akan saya bahas disini ialah definisi data country (nama negara). Bagi yang
ingin membuat negara baru (pun dengan nama baru atau file terpisah, seperti data negara Indonesia), perlu memperhatikan script atau definisi(def) baru ini.
File
yang diperlukan dalam menambah negara baru ialah country.sii dan semua file
yang terdapat pada folder “country”.
Oh
iya, kalau masih belum menemukan atau bingung dimana file script yang satu ini,
kalian harus meng-ekstrak file def.sii yang ada di dalam folder
lokasi game ETS2 masing-masing. Silahkan baca Map Editor Tutorial ETS2 (Part2).
Oh iya, ka simbol atau syntax seperti @, #, [], {}, dll. mengingatkan kita yang sedang belajar pemrograman (seperti saya). Fungsinya kurang lebih sama. Jadi script def ini seakan-akan merupakan salah satu kode dalam suatu program.
File country.sii
Sekarang
buka file country.sii yang berada langsung dalam folder ‘def’. Boleh
menggunakan Notepad, Notepad++, atau WordPad.
Bagian
atas selalu diawali dengan tulisan SiiNunit sebagai teks pembuka suatu
file.
Di bawahnya tertera tulisan dalam bahasa Inggris yang selalu diawali dengan karakter # di setiap baris. Intinya hanya memberi penjelasan terkait pemberian imbuhan pada nama file .sii tersebut. Jangan pakai nama yang sama persis dengan yang sudah ada di bawaan (ori) game.
Misal kalau ingin nambah data country tidak boleh langsung di file country.sii melainkan bikin file baru dengan nama beda (misal : country.map_jowo.sii)
Di
bawahnya lagi, tertulis lengkap daftar script
negara yang tersedia atau dipakai di game atau mod map/peta. Setiap daftar
tersebut tertulis sebagai berikut.
@include “country/<nama_negara>.sii”
Maksudnya,
setiap negara (country) yang akan dimasukan (include) akan memuat definisi lain
yang tertulis pada file country/<nama_negara>.sii
Contoh
: @include “country/uk.sii”
(maknanya
ada file “uk.sii” yang juga dimuat
dalam folder “country”)
Lalu,
apa maksud dari daftar negara lain beserta angkanya di paling bawah? Nah, ternyata
sudah dijelaskan kalimat di sana yang tertulis.
“Recommended
country identifiers for currently unused countries. Using those indices is not
required however it improves compatibility with future DLCs or with other mods
utilizing indices from this table.”
Intinya,
semua itu adalah daftar Country ID (Identifiers) yang disarankan dari
SCS untuk negara lain yang tidak tersedia atau dibuat di game atau peta/map
DLC. Ini dipakai khusus untuk modder atau mapper yang ingin membuat negara baru,
seperti Indonesia. Dengan begitu, diharapkan masing-masing mod map/peta
menggunakan kode/angka Country ID yang sama sesuai yang tertulis dalam daftar
tersebut.
Terus kalau untuk mod map/peta imajinasi (fantasy map)
bagaimana?
Membuat negara baru dengan nama sesuka hati, lalu country ID-nya
ditulis angka berapa?
Sebenarnya terserah mau ditulis berapa angka. Kalau
terakhir angkanya tertulis sampai 202, maka selebihnya (203, 204, 300, dst.)
juga boleh. Tetapi kalau kalian membuatnya pada standalone map, masalah country
ID tersebut diabaikan saja.
Folder / "country" / <nama_negara>.sii /
Sekarang
masuk ke folder ‘country’ itu sendiri. Di dalamnya ada berbagai folder dan file
.sii (atau .sui kalau di ETS2 versi baru) yang tertulis nama negara yang ada di game.
Jadi jika ingin buat map/peta
Indonesia, maka di dalam folder country ini isinya adalah satu folder bernama
‘indonesia’ dan satu file script atau
definisi berformat .sii juga dengan nama indonesia.sii atau indonesia.sui.
Misalnya
saya buka file script (definisi) uk.sii.
|
Catatan : Dari ETS2 versi 1.33, 1.36, 1.40 keatas |
Bedanya,
disini tidak diawali dengan SiiNunit. Kalau ditulis ulang di bawah ini maksud
script tersebut adalah sebagai berikut.
country_data: country.data.<nama_negara>
{
country_id: <nomor_ID_negara>
name: "@@<nama_negara>@@"
country_code: "<kode_negara>"
pos:(<sumbu x; 0; sumbu y>)
fuel_price: <harga_BBM(Bensin)_dalam_angka> #
dalam mata uang Euro
lights_mandatory: <true/false> # pilih salah satu
imperial_units: <true/false> # pilih salah satu
leftside_traffic: <true/false> # pilih salah satu
trailer_standalone: <true/false> # pilih salah satu
driving_tired_offence: <true/false> # pilih salah satu
time_zone: <angka_dalam_menit> # <+/-angka> jam dlm satuan menit
time_zone_name: "<kode_zona_waktu_internsional>"
}
Berikut
rincian dan fungsi setiap script diatas.
- country_data:
country.data.<nama_negara> : Data script negara (country) pada suatu file
.sii. ‘Nama_negara’ yang tertulis pada kalimat tersebut harus sesuai dengan
judul/nama file .sii.
- country_id: <nomor_ID> : Kode Country ID (country identifiers) untuk nama_negara
yang telah ditulis, seperti yang saya
jelaskan tadi di atas.
- name: "@@<nama_negara>@@" : Nama negara yang akan dibuat.
- country_code: "<kode_negara>" : Kode negara yang akan dibuat. (catatan
: kode tersebut harus sesuai dengan kode negara Internasional resmi)
- pos: (<sumbu
x, 0, sumbu y>) : Posisi judul atau nama negara yang akan muncul/dimuat
di UI Map (saat membuka Quick Job atau Freight Market). Karena bentuknya dua
dimensi (bangun datar), maka yang bisa diubah hanya sumbu x dan sumbu y. Angka
atau jumlah kedua sumbu ini hanya bisa dilihat pada Map Editor.
- fuel_price: <harga_BBM> : Rata-rata harga
Bahan Bakar Minyak (BBM) atau bensin untuk suatu negara. Terkadang setiap daerah dalam satu negara memiliki harga BBM yang berbeda. Karena kendaraan utama di game ini adalah truk (Truck Simulator), maka gunakan harga BBM jenis diesel (umumnya di Indonesia memakai BBM jenis Solar). Harga tersebut harus ditulis dalam mata uang Euro. Jadi kalau mata uangnya Rupiah, maka harus di-konversi dulu ke mata uang Euro.
“Nasib baik negara
kita memiliki bensin/BBM harga (lumayan...) murah. Kalau dilihat dari script country disini,
di Eropa harganya cukup selangit untuk satu liter. Eh….”
- lights_mandatory: <true/false> : Menentukan apakah di negara tersebut wajib
atau selalu menyalakan lampu di jalanan baik siang atau malam. Untuk negara
Indonesia, lights_mandatory harus aktif (true).
- imperial_units: <true/false> : Menentukan apakah di negara tersebut
menggunakan satuan imperial (mil per jam). Untuk negara Indonesia, imperial_units
harus non-aktif (false) atau bisa menghapus script tersebut (karena negara kita
memakai satuan km/jam).
- trailer_standalone:<true/false> : Menentukan
apakah negara tersebut memperbolehkan / memunculkan jenis trailer standalone/terpisah
(saya kurang paham, mungkin tidak terlalu
penting).
- leftside_traffic: <true/false> : Menentukan apakah di negara tersebut
berlalu-lintas (traffic) lajur kiri jalan atau setir kanan. Untuk negara
Indonesia tentu saja harus aktif (true).
- driving_tired_offence: <true/false> : Menentukan apakah ada sanksi/denda akibat berkendara dalam kondisi
mengantuk. (kalau salah tolong dikoreksi)
- time_zone: <angka_dalam_menit> : Menentukan lingkup/zona waktu negara tersebut. Untuk time_zone, zona
waktu GMT ditulis angka 60 (dengan satuan menit, karena 1 jam = 60 menit), waktu UTC+1 ditulis angka 120,
waktu UTC+2 ditulis angka 180, dan seterusnya (kelipatan 60). Kalau Indonesia berapa? Umm... yang WIB (UTC+7) jadinya 7 x 60 = 420 menit (?)
- time_zone_name: "<kode_zona_waktu_internsional>" : Menentukan nama dari time_zone tersebut
(BST, CEST, EEST, dll.). Untuk Indonesia bisa menggunakan WIB, WITA, atau WIT (kalau
dalam versi bahasa Inggris saya kurang tahu xD). “Hmm… apa bisa membagi tiga zona waktu dalam satu negara?
Entahlah…”
Tambahan (1)
Sejak ETS2 versi 1.32, ada tambahan script sebagai berikut:
mass_limit_per_axle_count[]:
18000 # 2-axle vehicle
mass_limit_per_axle_count[]:
44000 # 6 and more-axle vehicle
Maksudnya yang
satu ini mendefinisikan batas massa GWV (gross vehicle weight) maksimum
yang diizinkan (dalam kilogram)
dari seluruh set (truk + trailer + kargo) dengan jumlah axle yang diberikan (total truk
+ trailer) di suatu negara. Bila kosong berarti nilainya tak terbatas.
Baris atau entri pertama
mengatur batas massa (beban?) kendaraan dengan 2 axles/gandar, 3 axles, dll. Jika memiliki lebih dari batas massa yang ditentukan, baris atau entri terakhir yang akan digunakan.
Tambahan (2)
Sejak versi 1.33 ada perubahan script sebagai berikut:
name: "<nama_negara>"
name_localized:
"@@<kode_negara>@@"
country_code:
"<kode_negara>"
Script ini disusun demikian sejak mod diperbolehkan
untuk di-lokalisasi (diterjemahkan dalam bahasa negara yang tersedia pada
ETS2). Untuk kode negara tersebut masih harus sesuai dengan kode negara
Internasional resmi sesuai penjelasan diatas.
Tambahan (3)
Sejak versi 1.44 ada tambahan script sebagai berikut:
iso_country_code: "<kode_ISO_negara>"
Yang jelas menentukan kode ISO dari suatu negara, versi huruf bukan yang angka. Kurang paham kenapa ada pembedaan negara berdasarkan kode ISO. Kalau Indonesia kode ISO nya... IDN.
Masih ada lagi.
secondary_time_zone_area[]: (<titik 1>, <titik 2>, <titik 3>, <titik 4>)
secondary_time_zone[]: <angka> # jam dalam satuan menit
secondary_time_zone_name[]: "@@<nama_zona_waktu>@@"
Ini diperlukan jika suatu negara punya dua zona waktu yang berbeda. Contoh di Rusia yang pasti luas dan terbagi dalam zona waktu yang beda-beda. Satu kasusnya ialah kota Kaliningrad yang lokasinya paling mencar sendiri dari wilayah utamanya, pun masuk zona waktu yang beda. Sebab itu diperlukan definisi "secondary_time_zone" berarti zona waktu sekunder/kedua.
Bentar, kalau Indonesia gimana yang punya 3 zona waktu? Pertama (primer) pasti WIB, Secondary (sekunder)... hmm... WITA (mungkin). Kalau yang WIT berarti ketiga--eh, bahasa Inggrisnya apa jadinya... tertiery atau tersier(?) Terus kalau keempat, kelima, keenam...?
Udah bang... udah.... jangan bang...
......
Sekarang masuk ke folder nama negara yang tersedia, misalnya saya buka folder ‘uk’.
Ternyata di dalam folder tersebut ada tiga file .sii lainnya, yaitu license_plate, speed_limit, dan traffic.
Folder / country / <nama_negara> / license_plate.sii /
File
license_plate
memuat script tentang plat nomor kendaraan beserta susunan huruf, nomor, maupun
gambar. Masing-masing negara memiliki script yang berbeda. Berikut contoh yang
bisa dibandingkan setiap negara.
Secara umum bentuk script
tersebut adalah sebagai berikut.
license_plate_data : .lp.<jenis_kendaraan>
{
type: <jenis_kendaraan>
templates[]:"<susunan_def<angka>>"
def<angka> []:"<huruf/angka/gambar>"
def<angka> []:"<huruf/angka/gambar>"
def<angka> []:"<huruf/angka/gambar>"
def<angka> []:"<huruf/angka/gambar>"
def<angka> []:"<huruf/angka/gambar>"
def<angka> []:"<huruf/angka/gambar>"
}
- license_plate_data : .lp.<jenis_kendaraan>
: data jenis kendaraan yang akan dibuat pada suatu plat kendaraan.
Jenis tersebut hanya meliputi car
(mobil), trailer (muatan barang/kontainer), truck (truk), police (mobil
polisi), dan bus (bis).
- type: <jenis_kendaraan> : jenis kendaraan yang akan dibuat pada suatu plat
kendaraan. Jenis tersebut hanya meliputi car
(mobil), trailer (muatan barang/kontainer), truck (truk), police (mobil
polisi), dan bus (bis).
- templates[]:"<susunan_def<angka>>" : Bentuk atau variasi susunan kode huruf, angka, maupun gambar pada suatu
plat. Setiap negara pasti memiliki kode plat kendaraan yang berbeda-beda.
Susunan tersebut akan disesuaikan dengan def<angka> di
bawahnya.
- def<angka>
[]:"<huruf/angka/gambar>" : Kode huruf, angka, maupun gambar yang dimuat secara acak pada setiap def<angka>. Hal ini disesuaikan
dengan susunan templates[]:"<susunan_def<angka>>"
diatas.
Cara kerjanya gimana? Simak di bawah ini (mari kita belajar program matematika, duh...)
Dibuatkan sebuah template[] (anggap aja itu isinya slot kotak kosong yang akan diisi lagi berupa huruf dan angka).
Misalkan ada 4 buat slot kotak dalam setiap template tadi dan diberi label atau kode menjadi : template[] : 0 1 2 3 (slot pertama kodenya 0, slot kedua kodenya 1, slot ketiga kodenya 2, slot keempat kodenya 4)
Lantas, tiap slot diisi huruf dan angka apa saja?
- Slot 0 inginnya berupa huruf dari A sampai Z, jadi didefinisikan dulu (buatkan kelompok) huruf A sampai Z agar hanya masuk di slot 0 (pertama). Caranya tiap baris diketik def0 [] : (huruf). Artinya pada slot (def) kode-0 dimasukkan sebuah huruf.
Contoh :
def0[] : A
def0[] : B
def0[] : C
dst.
- Slot 1 inginnya berupa angka satuan dari 0, 1 sampai 9, jadi didefinisikan lagi (buatkan kelompok) angka 0 - 9 itu agar hanya masuk di slot 1 (kedua). Caranya tiap baris diketik def1 [] : (angka). Artinya pada slot (def) kode-1 dimasukkan sebuah angka.
Contoh :
def1[] : 0
def1[] : 1
def1[] : 2
dst.
- Slot 2 inginnya berupa angka lagi satuan dari 0, 1 sampai 9, jadi didefinisikan lagi (buatkan kelompok) angka 0 - 9 itu agar hanya masuk di slot 2 (ketiga). Caranya tiap baris diketik def2 [] : (angka). Artinya pada slot (def) kode-2 dimasukkan sebuah angka. Contoh sama diatas.
- Slot 3 inginnya berupa huruf dari A sampai Z lagi, jadi didefinisikan lagi (buatkan kelompok) huruf A sampai Z agar hanya masuk di slot 3 (keempat). Caranya tiap baris diketik def4 [] : (huruf). Artinya pada slot (def) kode-3 dimasukkan sebuah huruf. Contoh seperti yang pertama diatas tadi.
- Dan .... seterusnya.
Folder / country / <nama_negara> / speed_limit.sii /
Berikutnya adalah speed_limit.
Sesuai namanya, script ini memuat tentang data batas kecepatan rata-rata untuk
setiap jenis kendaraan. Pastinya setiap negara memuat batas kecepatan yang
berbeda-beda, tergantung pada kondisi infrasturktur jalan, jenis kendaraan
tersebut, maupun kebijakan masing-masing negara.
Berikut contoh file
speed_limit.sii untuk negara Inggris (UK).
Secara umum bentuk script
tersebut adalah sebagai berikut.
country_speed_limit : .speed_limit.<jenis_kendaraan>
{
vehicle_speed_class: <jenis_kendaraan>
lane_speed_class[]: local_road
limit[]: <angka>
urban_limit[]: <angka>
lane_speed_class[]: expressway
limit[]: <angka>
urban_limit[]: <angka>
lane_speed_class[]: motorway
limit[]: <angka>
urban_limit[]: <angka>
}
- country_speed_limit
: .speed_limit.<jenis_kendaraan> : batas kendaraan suatu negara untuk jenis kendaraan tertentu. Kendaraan tersebut
adalah mobil (car), truk (truck), dan bis (bus).
- vehicle_speed_class:
<jenis_kendaraan> : jenis
kendaraan yang akan diterapkan. Harus sama dengan jenis kendaraan yang tertulis
diatasnya.
- lane_speed_class[]:
<jenis jalan> : jenis/tipe
jalanan yang akan diatur batas kecepatannya. Tipe tersebut meliputi local_road
(jalan biasa atau jalan kecil), expressway (jalan raya utama, lebih dikenal
sebagai jalur Arteri atau jalan penghubung antar kota/kabupaten), dan motorway
(jalan bebas hambatan atau jalan tol)
- limit[]: <angka> : batas kecepatan maksimal
di semua jalan secara umum.
- urban_limit[]: <angka> : batas kecepatan maksimal
di jalan perkotaan/pedesaan.
Saya kurang tahu
pasti berapa batas kecepatan maksimal untuk negara Indonesia sendiri. Kalau sering lihat rambu-rambu di jalan tol. Biasanya kecepatan maksimal 100-120 km/jam. Kalau di perkotaan dominan 40 km/jam.
Kalau dilihat di
speed_limit.sii pada masing-masing negara, ternyata orang-orang disana suka
ngebut (dengan kecepatan tinggi). Lihat saja untuk jenis motorway (jalan bebas
hambatan/tol) batas kecepatannya saja bisa 130 km/jam. Bahkan di jalan biasa
(local road) rata-rata bisa 80-90 km/jam untuk mobil. Mungkin karena disana
masih sepi penduduk, atau karena mulusnya jalan raya disana, atau justru mental
dan nyali mereka yang kuat.
Folder / country / <nama_negara> / traffic.sii /
Terakhir adalah traffic.sii. Isinya memuat script
berbagai jenis AI Traffic (Lalu-lintas kendaraan AI) yang akan muncul di
jalanan. Mungkin, dalam satu negara hanya dilewati beberapa mobil yang
bentuknya itu-itu saja. Pastinya jenis/merek mobil yang sering terlihat dan
melintas di jalanan Indonesia tidak selalu sama dengan mobil yang kerap
dilintasi di negara lain. Karena semua itu diatur dalam file ini.
Berikut contoh file
traffic.sii untuk negara Inggris (UK).
Secara
umum bentuk script tersebut adalah sebagai berikut.
country_traffic_info : .country.info.<jenis_kendaraan> {
object:
<jenis_kendaraan>
spawn_frequency:
<angka>
}
- country_traffic_info
: .country.info.<jenis_kendaraan> : kode informasi kendaraan AI pada suatu negara.
- object: <jenis_kendaraan> : jenis/merek
kendaraan yang akan dimunculkan dengan nama harus sama sesuai script country
info diatas.
- spawn_frequency: <angka> : frekuensi jumlah
kendaraan yang akan dimunculkan di jalanan suatu negara. Untuk membuat suatu
kendaraan tidak dimunculkan di jalan, tulis angka 0.00
Untuk definisi atau script ini hanya berfungsi untuk
kendaraan mobil (car) dan mobil polisi (police). Untuk kendaraan lain seperti
bus dan truk ada script tersendiri di folder def/vehicle.
Terkadang setiap pembaruan versi ETS2, script/definisi yang ada pun bisa berubah sewaktu-waktu. Jadi post/artikel ini akan terus diperbarui setiap waktu.
Itu
saja untuk saat ini. Masih banyak
hal yang harus dipelajari pada folder def yang ada sekian banyak file .sii. Semoga
ini bisa bermanfaat dan bisa menjadi panduan yang
baik, sehingga dapat memperkecil error yang sering
mengganggu saat membuat mod. Tunggu
kelanjutannya di Pejindo Blogs!
Sekian
dari saya, Wassalam!