Half-Life 2

Half-Life 2

Not enough ratings
Как создать мод на Half-Life 2 (Source SDK 2013 + Mapbase)
By Lonlox
#1 Введение, Основы. Создание папки мода и кода.
   
Award
Favorite
Favorited
Unfavorite
Инструменты
Для начала зайдем в стим и установим инструменты.
В поиске напишем source и выберем source sdk 2013.
Установим его и в бета версиях выберем upcoming.
А visual studio вы можете скачать с официального сайта Microsoft[visualstudio.microsoft.com]
рекомендую устанавливать 2022 proffesional именно на нем я делаю код и запариваться с старыми версиями не надо. В установщике нажмем Отдельные компоненты и поставил галочку в "MSVC версии 143 — VS 2022 C++ x64/x86 Build Tools (последняя версия)"
Папка игры
Я создал специальный образец с облегченным gameinfo
ТУТ[drive.google.com]
Распакуем архив в папку sourcemods(B:\steam\steamapps\sourcemods) и переименуем его например в ymod.
Если у вас несколько дисков на пк, устанавливайте в диск где у вас установлен стим, иначе мод не будут отображаться в библиотеке.

Про папки
  • bin - папка с библиотеками кодов
  • cfg - конфиги, настройки
  • content - моя папка в которой находится контент mapbase (.vpk)
  • maps - папка с картами
  • materials - текстуры и их свойства
  • media - папка с видео .bik которое воспроизводится при запуске игры (интро valve)
  • models - папка с моделями
  • resource - папка с параметрами текста (клиентская)
  • scripts - скрипты оружия, худа, трансопрта, звуков
  • sound - звуки
Еще папки которых тут нет
  • particles
  • shaders
  • scenes
ну тут все очевидно
Еще есть папки которые создаются сами, они для игрока
  • save
  • downloadlists
  • screenshots
    тут тоже всё понятно

Теперь файл gameinfo
gameinfo - это файл в котром описана вся информация о моде, он есть во всех играх на source
game "название игры в стиме, экзешшника"
title "название игры в самой игре (в главном меню)"

//param - праметры
nodifficulty - отключает вкладку сложности в настройках
hasportals - включает вкладку порталов в настройках (portal)
use_legacy_flashlight - включает старую механику фонарика

//FileSystem
SteamAppId запускает мод на базе source-игры в стиме. 243730 - source sdk 2013 sp (это мы не меняем(если вы конечно не собираетесь выпускать мод как игру в стим))
Дальше идет SearchPaths - движок ищет .vpk файлы (архив valve)
//mod - (не меняем) берет файлы из папки ymod
//mapbase - путь к контенту mapbase
//src - путь к контенту в папке Source sdk 2013 sp (помогает appid)

теперь файлы локализации
заходим в папку resource
и в файлах mod_english.txt и mod_russian.txt заменяем mod на название папки в моем случае это ymod

Изменим название 1 главы "прибытие" на "Тест глава"
открываем файл ymod_russian

"mod_Chapter1_Title" "ПРИБЫТИЕ"
^ ^
текст локализации разшифровка
___________________________________
"mod_Chapter1_Title" "Тест глава" << изм.

И англ версия
"[english]mod_Chapter1_Title" "POINT INSERTION"
------------------------------------------------------------------------------
"[english]mod_Chapter1_Title" "Test chapter" << изм.

в файле ymod_english так же

папка мода готова
Папка с кодом (исходники)
Как я и говорил мы используем mapbase. Исходники mapbase можно скачать тут[github.com] на гитхабе.
Справа вверху нажимаем на зеленую кнопку Code >>> Download ZIP



После того как скачался ZIP-архив распаковываем его в любую папку.
Заходим в source-sdk-2013/sp/src



примерно так выглядит готовая папка с кодом

В mapbase есть поддержка современных версий Visual Studio.
Идем в vpc_scripts и там нам нужны 2 файла:
newer_vs_toolsets.vpc - информация под какую версию VS создавать .sln файл
newer_vs_toolsets_regkey_fix.reg - вкратце файл который помогает создавать .sln файл
Открываем файл newer_vs_toolsets.vpc с помощью текстового редактора. Там мы видим 4 параметра:
$Conditional VS2015 "0" // Toggles Visual Studio 2015 (v140) toolset
$Conditional VS2017 "0" // Toggles Visual Studio 2017 (v141) toolset
$Conditional VS2019 "0" // Toggles Visual Studio 2019 (v142) toolset
$Conditional VS2022 "0" // Toggles Visual Studio 2022 (v143) toolset
Вместо нуля должна стоять еденица. У меня Visual Studio 2022 года. В $Conditional VS2022 я меняю "0" на "1"
$Conditional VS2022 "1" // Toggles Visual Studio 2022 (v143) toolset
Сохраняем файл [ctrl+s] и закрываем.
Дальше запускаем файл newer_vs_toolsets_regkey_fix.reg зачем он нужен я описывал ранее.
Возвращаемся и запускаем createallprojects.bat - начнется создание .sln файла.
Папка с исходниками готова.
Теперь создадим .dll файлы:
Открываем everything.sln и ввидим следующую картину:
Если у вас также то вы все сделали правильно.
Ввреху Слева меняем Debug на Release
А справа в обозревателе решений выбираем server, cient и shaders. Я выбрал episodic. Жмем ПКМ >>> Собрать.
После удачного создания библиотек переходим в \source-sdk-2013\sp\game\mod_episodic\bin (или mod_hl2 если вы выбрали решение hl2), копируем .dll файлы server.dll client.dll game_shader_dx9.dll и вставляем их в папку bin нашего мода \sourcemods\ymod\bin

Готово, теперь у нас есть папка с исходниками и свои .dll файлы. Можете добавить в код что то из вики от valve
Основа мода готова
Поздравляю мы все сделали, зайдем в игру, (если ее нет перезапустите стим и используйте поиск по тому что вы написали в game в файле gameinfo) откроем консоль и зайдем на любую карту командой "map ep2_outland_01"








Надеюсь написав это гайд я помог вам.
Поставьте палец вверх и отправте награду, я пойму что кому-то помог и мне будет приятно.
2 Comments
_minions_enjoyer_ 20 Sep @ 7:41pm 
Спасибо, +rep
Quanglius 20 Sep @ 1:28pm 
Сигмоч мод:dealerrizz: