Catatan
Mod loader sekarang terintegrasi ke dalam game sehingga proyek ini tidak lagi diperlukan. Untuk versi "resmi" yang memiliki kode fitur baru/berbeda lihat fowkr berikut https://github.com/jakobharder/anno1800-mod-loader
Satu-satunya pemuat mod untuk Anno 1800, mendukung pemuatan file RDA yang belum dibongkar, penggabungan otomatis XML, dan mod berbasis DLL.
Tidak ada batasan ukuran file. Tidak perlu lagi mengemas ulang. Kecil kemungkinannya untuk rusak setelah pembaruan (secara umum, mod akan terus berfungsi setelah setiap pembaruan, YMMV).
Ini mengubah file XML game menggunakan XPath, ini membuatnya mudah dan memungkinkan untuk hanya melakukan perubahan pada mod yang benar-benar Anda perlukan daripada menangani file XML berukuran megabita.
Video pendek jelek untuk menunjukkan betapa mudahnya menginstal loader.
Mod harus diinstal secara terpisah.
Buka halaman rilis dan unduh loader.zip dari rilis terbaru.
Buka zip konten ke lokasi di mana Anno1800.exe berada
Jalur default Uplay adalah
C:Program Files (x86)UbisoftUbisoft Game LaunchergamesAnno 1800BinWin64
Anda akan diminta untuk menimpa python35.dll, terima saja.
Anda mungkin juga memerlukan Redist VS 2019 https://aka.ms/vs/16/release/VC_redist.x64.exe
Dan pada dasarnya itulah masalahnya.
Mod akan selalu dimuat dalam urutan abjad. Mod dapat diambil dari:
C:Program Files (x86)UbisoftUbisoft Game LaunchergamesAnno 1800mods
dengan asumsi jalur Uplay default. Ini tergantung lokasi yang Anda pilih saat menginstal Anno 1800mods
. Anda dapat mengaksesnya menggunakan Win + R dan memasukkan shell:PersonalAnno 1800
mods
di Dokumen lebih diutamakan daripada direktori pemasangan game, artinya jika Anda memiliki foldermods
di lokasi dokumen, mods tidak akan lagi dimuat dari direktori game.
Untuk pengguna yang lebih berpengalaman, symlink yang dibuat dengan
mklink
akan diikuti (menghasilkan cara yang lebih mudah untuk mengelola repositori mod yang berbeda).
Pengenalan singkat untuk pembuatan mod dengan mod loader diberikan di bawah ini. Untuk contoh zoom extend mod lihat direktori examples
.
Di game anno sebelumnya, ada cara untuk memberi tahu game agar memuat file yang diambil dari disk alih-alih memuatnya
dari wadah RDA. Meskipun itu membuatnya lebih mudah, ini masih bukan cara yang bagus untuk menangani modding file XML berukuran besar.
Pemuat mod Anno 1800 ini mendukung beberapa 'perintah' sederhana untuk menambal XML dengan mudah guna mencapai apa pun yang Anda inginkan.
Langkah 1) Siapkan direktori untuk mod Anda di dalam Anno 1800/mods. Pada langkah-langkah berikut, diasumsikan bahwa Anda telah memberi judul direktori Anda "myMod"
Langkah 2) di dalam myMod, Anda membuat ulang struktur file persis seperti yang digunakan game dasar. File assets.xml yang ditambal harus berada di jalur berikut: Anno 1800/mods/myMod/data/config/export/main/asset/assets.xml
Langkah 3) Dokumen XML Anda diharapkan memiliki struktur berikut:
< ModOps >
< ModOp >
<!-- Whatever Change you want to do -->
</ ModOp >
</ ModOps >
Anda dapat memberikan
<ModOp>
sebanyak yang Anda inginkan dan memiliki beberapa file patch untuk file asli yang berbeda dalam satu mod.
Langkah 1) Cari dan pilih node XML yang ingin Anda edit dengan XPath menggunakan argumen Path.
Contoh:
< ModOp Path = " /Templates/Group[Name = 'Objects']/Template[Name = 'Residence7']/Properties " >
Untuk file aset, Anda juga dapat menggunakan argumen GUID. Ini memilih semua node anak dari aset dengan GUID yang diberikan sebagai akar baru untuk xPath Anda untuk kode yang lebih bersih dan juga jauh lebih cepat, dari segi kinerja.
Contoh:
Standard way: < ModOp Path = " //Asset[Values/Standard/GUID = '1137']/Values/Standard/Name " >
Better, with GUID arg: < ModOp GUID = ' 1337 ' Path = " /Values/Standard/Name " >
Langkah 2) Berikan tipe untuk ModOp, untuk mengubah node yang dipilih.
Jenis yang didukung saat ini:
- Merge Replaces all given child nodes or Arguments
- Remove Removes the selected Node
- Add Adds inside the selected Node
- Replace Replaces the selected Node
- AddNextSibling Adds a sibling directly after the selected node
- AddPrevSibling Adds a sibling directly in front of the selected node
Ini hanyalah implementasi awal yang cepat (~3 jam), sangat terbuka untuk diskusi tentang cara menjadikannya lebih baik atau melakukan sesuatu yang sama sekali berbeda
Langkah 3) Tambahkan kode XML yang ingin Anda tambahkan, gabungkan, atau sebagai pengganti di dalam ModOp. contoh:
< ModOp Type = " replace " GUID = ' 1337 ' Path = " /Values/Standard/Name " >
< Name >ThisIsATestNameForGUID1337</ Name >
</ ModOp >
ModOp ini akan menggantikan node di bawah /Values/Standard/Name aset dengan GUID 1337 dengan: "
<Name>ThisIsATestNameForGUID1337</Name>
"
Anda dapat membagi patch XML Anda menjadi beberapa file dengan menggunakan instruksi Include
.
< ModOps >
<!-- ModOps applied before the include -->
< Include File = " even-more-modops.include.xml " />
<!-- ModOps applied after the include -->
</ ModOps >
File
mengambil jalur file relatif terhadap file XML yang disertakan.
File XML tanpa rekanan dalam game biasanya merupakan kesalahan dan menyebabkan kesalahan pada log. Gunakan ekstensi *.include.xml
untuk mencegahnya.
Jika tidak, patch XML yang disertakan akan ditangani dengan cara yang sama seperti patch XML biasa. Penyertaan bersarang didukung.
Letakkan ini di folder mod dengan jalur permainan sehingga ini akan berada di mods/new-zoom-level/data/config/game/camera.xml
Folder mods dalam instalasi uPlay default harus ditempatkan di
C:Program Files (x86)UbisoftUbisoft Game LaunchergamesAnno 1800mods
< ModOp Type = " add " Path = " /Normal/Presets " >
< Preset ID = " 15 " Height = " 140 " Pitch = " 0.875 " MinPitch = " -0.375 " MaxPitch = " 1.40 " Fov = " 0.56 " />
</ ModOp >
< ModOp Type = " merge " Path = " /Normal/Settings " >
< Settings MaxZoomPreset = " 15 " ></ Settings >
</ ModOp >
Anda dapat menemukan lebih banyak contoh di direktori examples
.
Debugging tidak dapat dilakukan, game ini menggunakan Denuvo dan VMProtect, saya memiliki alat sendiri yang memungkinkan saya untuk men-debugnya, tetapi saya tidak akan membagikannya secara publik.
Anda dapat membaca printf alias log debug tentang kesalahan apa pun yang disebabkan oleh node yang hilang, jalur yang salah, atau pengujian node yang tidak dikenal di
Anno 1800/logs/mod-loader.log
Untuk menguji pengaruh 'patch' yang Anda tulis pada file game asli, Anda juga dapat menggunakan xml-test
, yang akan menyimulasikan apa yang akan dimuat game tersebut.
xml-test game_camera.xml patch.xml
Ini menambal game_camera.xml dengan patch.xml dan menulis hasilnya sebagai file patched.xml di direktori saat ini
Spasi asli seharusnya hampir sama, jadi Anda dapat menggunakan beberapa alat diff untuk melihat apa yang berubah.
Jenis file lain jelas tidak dapat 'digabung', jadi di sana kami hanya memuat versi mod terakhir yang memiliki file tersebut. (Mod dimuat berdasarkan abjad). Untuk resource sangat disarankan menggunakan folder Anno 1800/data.
Anda memerlukan Bazel, Visual Studio 2022 dan itu saja .
Anda dapat memeriksa azure-pipelines.yml
dan melihat cara melakukannya di sana.
langkah mudah menuju sukses:
set BAZEL_VC=C:Program Files (x86)Microsoft Visual Studio2022BuildToolsVC
bazel build //libs/python35:python35.dll
untuk membuat .dllJika Anda ingin mengerjakan fitur baru untuk operasi XML, Anda bisa menggunakan xmltest untuk pengujian. Karena itu menggunakan kode yang sama dengan pemuat file sebenarnya.