Меню сайта


[DS]: Half-Life Server
[DS]: Half-Life Server


[DS]: CS:S GunGame v34 Server
[DS]: CS:S GunGame v34 Server


[DS]: CS:S v34 Server
[DS]: CS:S v34 Server


Поиск

add_newДобавить новость
Последние добавленные

<JAM>
m1-palinka


HL-HEV
hl-hev

DS-Servers
Туториалы
Маппинг
Goldsrc
Портирование карт без декомпиляции


Портирование карт без декомпиляции

Добавил: ProJax
2014-09-21 18:09:11
875 просмотров

       Для портирования карт нам понадобится:

  •  RipEnt. Консольное приложение из набора компиляторов Zoner's Halflife Tools (ZHLT).
  •  Игра Half-Life с настроенным AmxModX и плагин "Weapon Factory", для удобного и быстрого раскидывания предметов по карте.
  •  EntConverter конвертер.
  •  
  •                          Необходимые Утилиты port_tools.zip
  • Процесс портирование -- это раскидывание предметов Half-Life по карте -- оружия, точек спавна, и удаление предметов другой игры. Вся информация об объектах на карте хранится в текстовом виде, нам нужно лишь экспортировать эту информацию в текстовый файл, отредактировать его и импортировать обратно в карту.

    Раскидывать предметы по карте мы будем в самой игре, очень удобно летать по карте и в подходящие места вставлять оружие. Делать это будем с помощью AMX плагина от GordonFreeman'а -- Weapon Factory.
    Переименуйте файл liblist.gam в liblist_backup.gam, он находится в директории valve
  • Теперь скачиваем архив ниже и копируем все содержимое в директорию valve, на все предложения о заменах нажимаем "Да".

    Сам процесс портирования я продемонстрирую на карте для Counter-Strike - fy_kano. Скачал я ее с ds-servers.com, там же можно найти множество интересных карт.

    Заходим в архив, видим там директорию cstrike, заходим в нее и распаковываем все содержимое в директорию valve, она находится в каталоге с игрой Half-Life (Например, D:\Games\Steam\steamapps\common\Half-Life). Распаковывать нужно содержимое, но не саму директорию cstrike.

При первом запуске карты в игре Half-Life я получил ошибку "Mod_NumForName: models/winebottle.mdl not found".

            

Подобные ошибки появляются, когда используемый ресурс (модель, звук, спрайт) не был найден. 
Есть два способа решения этой пробелемы. Первый способ -- скопировать используемые ресурсы карты из игры Counter-Strike в Half-Life.
Второй способ -- удалить или заменить сведения об объектах из ent файла, в этом случае мы удалим объект на карте или просто заменим свойства объекта, и игра не станет его искать, либо загрузит другой файл. С этим способом нужно быть аккуратным и учитывать особенности карты, т.к. некоторые объекты могут быть очень важны. Если на карте есть какой-либо вертолет, дерево, бутылка, человек, то он может пропасть.
Рассмотрим второй способ, т.к. экспортировать сведения об объектах нам все равно придется. Для этого воспользуемся приложением RipEnt.
В архиве, что я дал, имеется два bat файла, необходимо открыть их и исправить имя карты на свое, сохранить и запустить ripent_export.bat



После запуска, у нас появится новый ent файл с названием нашей карты. Открываем этот файл и удаляем ненужные объекты, каждый объект начинается с открывающей фигурной скобки "{", и заканчивается "}", между скобками находятся различные директивы со свойствами. Директива "classname" это название объекта, мы будем работать лишь с некоторыми:

cycler_sprite -- модель или спрайт на карте.
env_sprite -- спрайт на карте (огонь или какой-то эффект).
info_player_deathmatch -- точка спавна игроков в мультиплеере. В Counter-Strike точка спавна террористов.
info_player_start -- точка спавна игрока в одиночном режиме. В Counter-Strike точка спавна спецназовцев.
game_player_equip -- объект позволяет экипировать игрока нужным оружием.
ambient_generic -- звук на карте.



На карте fy_kano я убрал все cycler_sprite, game_player_equip, и оставил по одному info_player_deathmatch и info_player_start, остальные спавны будут расставляться по всей карте. Также я переместил некоторые стандартные файлы из cstrike в valve. После редактирования ent файла, его нужно импортировать обратно, для этого в архиве есть ripent_import.bat. Импортируем свойства объектов, кидаем карту в папку valve/maps и пробуем запустить ее в игре.

После запуска можно заметить отсутствие различного оружия и предметов.


Теперь воспользуемся плагином "Weapon Factory". Вводим в консоли "wp_spawn" и видим появившееся слева меню


Выбираем, какое оружие или предмет будем спавнить. Можно указать угол поворота нашего предмета. До перезагрузки карты все добавленные предметы будут иметь голографический эффект.



Помимо оружия и патронов, не забываем расставить места спавна игроков. В плагине "Weapon Factory" объекта info_player_deathmatch нет, вернее он есть, но не работает. Я обычно использую монтировку в качестве точки спавна, в текстовом файле entity потом можно исправить weapon_crowbar на info_player_deathmatch.

После того, как расставили все предметы и точки спана, перезагружаем карту ("restart" в консоли) и видим уже, что наша карта полна предметами. Но портирование на этом не закончено,
все эти предметы хранятся в базе данных плагина "Weapon Factory", а нам нужно внедрить все предметы в саму карту.


Теперь нужно конвертировать данные "Weapon Factory" в данные, которые можно спокойно импортировать в карту. Переходим в директорию valve\addons\amxmodx\configs\weapon_factory, в ней должен находится ini-файл с названием нашей карты, в моем случае fy_kano.ini. Для конвертации воспользуемся конвертером EntConverter, копируем файл ent_converter.exe в директорию с ini файлами valve\addons\amxmodx\configs\weapon_factory и запускаем его. После этого должен появится ent-файл с названием нашей карты, в моем случае это fy_kano.ent, все содержимое этого файла нужно дописать в ent-файл, который мы экспортировали с помощью RipEnt.


Не забываем про наш костыль. Нужно заменить weapon_crowbar на info_player_deathmatch. В некоторых случаях игроки могут появиться в земле, поэтому нужно увеличить z-координату (высоту) объекта, не забываем, что числа могут быть отрицательными.


  • После сохранения конечного ent-файла, его нужно импортировать в карту, для этого нужно запустить файл "ripent_import.bat"
    Карта успешно портирована из Counter-Strike в Half-Life. Можно проверить, все ли работает. Перед этим не забываем удалить liblist.gam и переименовать liblist_backup.gam обратно в liblist.gam
    этим самым мы отключим AmxModx и плагин "Weapon Factory", если этого не сделать, то все раскиданные нами предметы будут дублироваться.

    Подобным образом можно портировать абсолютно все GoldSource карты. Помимо портирования, можно добавлять какие-то предметы в существующие карты Half-Life, исправить какие-то проблемы карт и т.п.

Поделиться:
Тэги: Портирование карт без декомпиляции