Для портирования карт нам знадобиться:
- RipEnt. Консольний додаток з набору компіляторів Zoner's Halflife Tools (ZHLT).
- Гра Half-Life з налаштованим AmxModX і плагін "Weapon Factory". для зручного і швидкого розкидання предметів по карті.
- EntConverter конвертер.
- Необхідні Програми port_tools.zip
- Процес портирование - це розкидання предметів Half-Life по карті - зброї, точок спавна, і видалення предметів іншої гри. Вся інформація про об'єкти на карті зберігається в текстовому вигляді, нам потрібно лише експортувати цю інформацію в текстовий файл, відредагувати його і імпортувати назад в карту.
Перейменуйте файл liblist.gam в liblist_backup.gam. він знаходиться в директорії valve.
Сам процес портування я продемонструю на карті для Counter-Strike - fy_kano. Скачав я її з ds-servers.com, там же можна знайти безліч цікавих карт.
Заходимо в архів, бачимо там директорію cstrike, заходимо в неї і розпаковуємо весь вміст в директорію valve, вона знаходиться в каталозі з грою Half-Life (Наприклад, D: \ Games \ Steam \ steamapps \ common \ Half-Life). Розпаковувати потрібно вміст, але не саму директорію cstrike.![Портирування карт без декомпіляції, goldsrc, ds-servers (goldsrc) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-110f6171.png)
При першому запуску карти в грі Half-Life я отримав помилку "Mod_NumForName: models / winebottle.mdl not found".
![Портирування карт без декомпіляції, goldsrc, ds-servers (goldsrc) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-bc544ab1.png)
Подібні помилки з'являються, коли використовуваний ресурс (модель, звук, спрайт) не був знайдений.
Є два способи вирішення цієї пробелемамі. Перший спосіб - скопіювати використовувані ресурси карти з гри Counter-Strike в Half-Life.
Другий спосіб - видалити або замінити відомості про об'єкти з ent файлу, в цьому випадку ми видалимо об'єкт на карті або просто замінимо властивості об'єкта, і гра не стане його шукати, або завантажить інший файл. З цим способом потрібно бути акуратним і враховувати особливості карти, тому що деякі об'єкти можуть бути дуже важливі. Якщо на карті є якийсь вертоліт, дерево, пляшка, чоловік, то він може пропасти.
Розглянемо другий спосіб, тому що експортувати відомості про об'єкти нам все одно доведеться. Для цього скористаємося додатком RipEnt.
В архіві, що я дав, є два bat файлу, необхідно відкрити їх і виправити ім'я карти на своє, зберегти і запустити ripent_export.bat
![Портирування карт без декомпіляції, goldsrc, ds-servers (портирование) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-d57b13a2.jpg)
Після запуску, у нас з'явиться новий ent файл з назвою нашої карти. Відкриваємо цей файл і видаляємо непотрібні об'єкти, кожен об'єкт починається з відкриває фігурної дужки "", між дужками знаходяться різні директиви з властивостями. Директива "classname" це назва об'єкта, ми будемо працювати лише з деякими:
cycler_sprite - модель або спрайт на карті.
env_sprite - спрайт на карті (вогонь або якийсь ефект).
info_player_deathmatch - точка спавна гравців в мультіплеере. У Counter-Strike точка спавна терористів.
info_player_start - точка спавна гравця в одиночному режимі. У Counter-Strike точка спавна спецназівців.
game_player_equip - об'єкт дозволяє екіпірувати гравця за потрібне зброєю.
ambient_generic - звук на карті.
![Портирування карт без декомпіляції, goldsrc, ds-servers (ds-servers) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-9e5b19c1.png)
На карті fy_kano я прибрав все cycler_sprite. game_player_equip. і залишив по одному info_player_deathmatch і info_player_start. інші спавн будуть розставлятися по всій карті. Також я перемістив деякі стандартні файли з cstrike в valve. Після редагування ent файлу, його потрібно імпортувати назад, для цього в архіві є ripent_import.bat. Імпортуємо властивості об'єктів, кидаємо карту в папку valve / maps і пробуємо запустити її в грі.
Після запуску можна помітити відсутність різної зброї і предметів.
![Портирування карт без декомпіляції, goldsrc, ds-servers (портирование) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-9487e9d1.jpg)
Тепер скористаємося плагіном "Weapon Factory". Вводимо в консолі "wp_spawn" і бачимо з'явилося зліва меню
![Портирування карт без декомпіляції, goldsrc, ds-servers (goldsrc) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-6321a013.jpg)
![Портирування карт без декомпіляції, goldsrc, ds-servers (goldsrc) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-72b81300.jpg)
Вибираємо, яку зброю або предмет будемо спавн. Можна вказати кут повороту нашого предмета. До перезавантаження карти все додані предмети будуть мати голографічний ефект.
![Портирування карт без декомпіляції, goldsrc, ds-servers (ds-servers) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-1dccbe01.png)
![Портирування карт без декомпіляції, goldsrc, ds-servers (goldsrc) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-c6117f08.jpg)
Крім зброї та набоїв, не забуваємо розставити місця спавна гравців. В плагіні "Weapon Factory" об'єкта info_player_deathmatch немає, вірніше він є, але не працює. Я зазвичай використовую монтировку в якості точки спавна, в текстовому файлі entity потім можна виправити weapon_crowbar на info_player_deathmatch.
Після того, як розставили всі предмети і точки СПАНА, перезавантажуємо карту ( "restart" в консолі) і бачимо вже, що наша карта сповнена предметами. Але портирование на цьому не закінчено,
всі ці предмети зберігаються в базі даних плагіна "Weapon Factory". а нам потрібно впровадити всі предмети в саму карту.
![Портирування карт без декомпіляції, goldsrc, ds-servers (ds-servers) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-a36d08ba.jpg)
Тепер потрібно конвертувати дані "Weapon Factory" в дані, які можна спокійно імпортувати в карту. Переходимо в директорію valve \ addons \ amxmodx \ configs \ weapon_factory. в ній повинен знаходиться ini-файл з назвою нашої карти, в моєму випадку fy_kano.in i. Для конвертації скористаємося конвертером EntConverter. копіюємо файл ent_converter.exe в директорію з ini файлами valve \ addons \ amxmodx \ configs \ weapon_factory і запускаємо його. Після цього повинен з'явиться ent-файл з назвою нашої карти, в моєму випадку це fy_kano.ent. весь вміст цього файлу потрібно дописати в ent-файл. який ми експортували за допомогою RipEnt.
![Портирування карт без декомпіляції, goldsrc, ds-servers (карт) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-e373e044.png)
Не забуваємо про наш милицю. Потрібно замінити weapon_crowbar на info_player_deathmatch. У деяких випадках гравці можуть з'явитися в землі, тому потрібно збільшити z-координату (висоту) об'єкта, не забуваємо, що числа можуть бути негативними.
![Портирування карт без декомпіляції, goldsrc, ds-servers (карт) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-70ca4a32.png)
![Портирування карт без декомпіляції, goldsrc, ds-servers (goldsrc) Портирування карт без декомпіляції, goldsrc, ds-servers](https://images-on-off.com/images/124/portirovaniekartbezdekompilyatsiigoldsrc-f95c9fd0.png)
- Після збереження кінцевого ent-файлу, його потрібно імпортувати в карту, для цього потрібно запустити файл "ripent_import.bat".
Карта успішно перенесена з Counter-Strike в Half-Life. Можна перевірити, чи все працює. Перед цим не забуваємо видалити liblist.gam і перейменувати liblist_backup.gam назад в liblist.gam.
цим самим ми відключимо AmxModx і плагін "Weapon Factory". якщо цього не зробити, то все розкидані нами предмети будуть дублюватися.