Mengenal Script Map Definition (DEF) ETS2 : Ferry Data

Definisi (DEF) ETS2 #4 : Ferry Data (Nama Pelabuhan Penyeberangan di Game)

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/.sui pada folder “def”. Sekarang saatnya pengenalan!

Setelah menjelaskan ketiga bagian pokok dalam suatu script data DEF (country, company, dan city), sekarang saya akan membahas data DEF berikutnya yaitu ferry. Kita mungkin sudah tahu istilah 'ferry' yang berarti pelabuhan penyeberangan. Siapa lagi yang tidak mengenal pelabuhan Merak, Bakauheni, Ketapang, atau Gilimanuk? Semua itulah salah satu dari yang namanya ferry.

File ferry.sii

Daripada menjelaskan hal yang tidak-tidak, sekarang buka file ferry.sii yang berada langsung dalam folder ‘def’. Boleh menggunakan Notepad, Notepad++, atau WordPad.

Ketika yang di buka berupa file format SII, maka baris paling atas selalu diawali dengan tulisan SiiNunit sebagai teks pembuka suatu file.

Baris di bawahnya ada semacam peringatan yang diawali dengan tanda . Itu tandanya baris script tersebut sengaja tidak dibaca sama sistem atau game (tapi mata dan otak kalian tetap harus baca karena itu menunjukkan peringatan). Beberapa bahasa pemrograman juga begitu, seperti membuat kata-kata komentar. Untuk isi yang ada tanda # dijelaskan terkait pemberian judul (title) tambahan pada file .sii.

Baris di bawahnya lagi, tertulis lengkap daftar script 'ferry' yang tersedia atau dipakai di game atau mod map/peta. Setiap daftar tersebut tertulis sebagai berikut.

@include “ferry/<nama_ferry>.sii”

Maksudnya, setiap ferry yang akan dimasukkan (include) akan memuat definisi lain yang tertulis pada file ferry/<nama_ferry>.sii

Contoh : @include “ferry/dover.sii” (maknanya ada file “dover.sii” yang juga dimasukkan atau dimuat dari folder 'ferry')

Folder / "ferry" / <nama_pelabuhan>.sii atau .sui /

Sekarang masuk ke folder ‘ferry’ itu sendiri. Di dalamnya ada satu folder “connection” dan banyak file .sii (atau .sui) yang tertulis nama pelabuhan/ferry yang ada di game. Misalnya saya buka file script (definisi) dover.sii.

Kiri = ETS2 versi lama (1.30 ke bawah)

Kanan = ETS2 versi baru (1.33, 1.35, 1.36, 1.40, dst.)

ferry_data: ferry.<nama_tempat>
{
     ferry_name: "<nama_tempat>"
     ferry_name_localized: "@@<nama_tempat>@@"
}

  • ferry_data: ferry.<nama_ ferry> : parameter informasi awal untuk nama pelabuhan penyeberangan atau ferry.
  • ferry_name: "<nama_ ferry>" : nama pelabuhan penyeberangan atau ferry yang harus sesuai dengan parameter informasi diatas.
  • ferry_name_localized: "@@<nama_ ferry>@@: nama pelabuhan penyeberangan atau ferry sebagai 'token' untuk diterjemahkan dalam berbagai bahasa yang disediakan di game (tersambung sama folder 'locale')

Omong-omong, ada sedikit pengecualian untuk penyeberangan menggunakan kereta (train). Ini karena adanya jalur penyeberangan Euro Tunnel atau Channel Tunnel, dimana merupakan terowongan kereta bawah laut yang menghubungkan antara Calais (Perancis) dengan Folkestone (Inggris), yang jelas sesuai di dunia nyata (serius loh...).

Misalnya saya buka file script def untuk tunnel_d.sii.

Kurang lebih sama seperti diatas, hanya beda tambahan script berikut.

transport_type: "train"

  • transport_type: “train” : berfungsi sebagai penyeberangan kereta. Ikon Ferry akan berubah menjadi “terowongan” dari sebelumnya yang bergambar “jangkar”.

Folder / "ferry" / connection / <ruteA_ruteB>.sii /

Sekarang kita buka folder connection. Isinya ada berbagai file .sii yang berfungsi membuat jalur penghubung setiap titik ferry beserta deskripsi tambahan (jarak, lama waktu, dan ongkos perjalanan).

Misalnya ada dua titik ferry yang akan dihubungkan, yaitu “Calais” dan “Dover”. Ketika ingin menghubungkan keduanya, maka harus terdapat dua file .sii yaitu calais-dover.sii dan dover-calais.sii

Ini dimaksudkan ketika pemain ingin menyeberang dari Calais ke Dover (menggunakan file calais-dover.sii), atau dari Dover ke Calais (menggunakan file  dover-calais.sii). Meski begitu, dua file berbeda tersebut HARUS memiliki isi script yang sama.

Nggak percaya?? silahkan buka seperti ini

Kalau ditulis ulang di bawah ini maksud script tersebut adalah sebagai berikut.

SiiNunit
{
ferry_connection : conn.<nama_tempatA>.<nama_tempatB> {
   price: <angka>
   time: <angka>
   distance: <angka>
}
}

  • ferry_connection : conn.<nama_tempatA>.<nama_tempatB> : kode informasi jalur penghubung antar-ferry. Nama Tempat ke-A dan ke-B harus sesuai dengan judul(title) file .sii.
  • price: <angka> : harga/ongkos penyebrangan yang digunakan. Dalam satuan mata uang  Euro.
  • time: <angka> : lama perjalanan selama penyebrangan. Dalam satuan Menit.
  • distance: <angka> : jarak penyebrangan yang digunakan (sekadar tampil di menu). Dalam satuan kilometer(?) (barangkali di-konversi kedalam skala 1.19 ?).

Ada Script tambahan (opsional) untuk membuat variasi garis jalur penyeberangan hingga terlihat melengkung dan berkelok-kelok pada World Map (UI Map). Sudah diterapkan sejak DLC Scandinavia dan Italia.

  • connection_positions[<ke-n>]: (<sumbu_X * 256>, 0, <sumbu_Y * 256>) : Titik (point) posisi yang ingin ditambahkan dengan menentukan koordinat sumbu X dan sumbu Y. Jumlahnya [ke-n] bebas dan harus dimulai dari 0 (sesuai bahasa program). Jumlah maksimal bisa sesuai selera, mau buat dua atau lima titik juga bisa. 
  • connection_directions[<ke-n>]: (<-sin(sudut X)>, 0, <-cos(sudut Y)>) : Arah garis tiap titik (point) posisi yang ingin diatur sesuai sudut putar sumbu X dan sumbu Y. Jumlahnya [ke-n] bebas dan harus dimulai dari 0 (sesuai bahasa program). Jumlah maksimal bisa sesuai selera, mau buat dua atau lima titik juga bisa.

Terus... semua angka-angka itu dapatnya dari mana? 

Ternyata ini pakai RUMUS Matematika (lah...kok disuruh belajar matematika sih...?)

Nggak usah protes, salah sendiri gak mau belajar. Mau bikin program atau bikin game pun harus bisa Matematika. Paham?!

  • Untuk posisi koordinat (sumbu X & sumbu Y) hanya bisa dilihat pada editor pada baris bawah. Karena bentuknya dua dimensi (bangun datar), maka yang bisa diubah hanya sumbu x dan sumbu y. 
  • Rumus mencari connection_positions = (256 x sumbu X ; 0 ; 256 x sumbu Y) - intinya sumbu x maupun y dikalikan 256. Itu aja
  • Untuk sudut putar dari garis agar bisa melengkung. maka tentukan dengan perhitungan "Trigonometri"
  • Rumus mencari connection_directions = -sin(sudut putar) ; 0 ; -cos(sudut putar)

Terus arah garis nya bakal kemana setelah hitung connection_directions

  • Utara = 0 atau 360 derajat = Garis lurus ke ATAS = connection_directions [n] : (0, 0, -1)
  • Timur = 270 derajat = Garis lurus ke KANAN = connection_directions [n] : (1, 0, 0)
  • Selatan = 180 derajat = Garis lurus ke BAWAH= connection_directions [n] : (0, 0, 1)
  • Barat = 90 derajat = Garis lurus ke KIRI = connection_directions [n] : (-1, 0, 0)
Kalau mau buat garis miring tinggal kira-kira sendiri asal mendekati 4 ketentuan diatas.

Udah bang... udah... gak kuat bang...

Terkadang setiap pembaruan versi ETS2, script/definisi yang ada pun bisa berubah sewaktu-waktu. Jadi post/artikel ini akan terus diperbarui setiap waktu.

Masih ada banyak lagi yang harus dipelajari pada folder def yang ada sekian banyak file .sii atau .sui. Semoga ini bisa bermanfaat dan bisa menjadi panduan yang baik, sehingga dapat memperkecil error yang sering mengganggu saat membuat mod. Tunggu kelanjutannya di Pejindo Blog!

Sekian dari saya, Wassalam!

0 Komentar:

Post a Comment