CLICK HERE to visit the new NS2 Wiki! Please do not rely on any information here as it may be inaccurate and/or out of date! For help with NS2, hop onto the official Discord server!

Modding:ru

From NS2 community wiki
Jump to: navigation, search

Введение

Эта статья посвящена процессу разработки модификаций. Для просмотра списка опубликованных модификаций игры, перейдите по ссылке Мастерская NS2 в Steam.

Игра NS2 достаточно сильно модифицируема. В комплекте с игрой идут все необходимые инструменты для модинга. Вся игровая логика вынесена в скрипты на языке Lua.

Примечание: В этой статье NSROOT используется для обозначения каталога установки NS2 (например C:\Program Files\Steam\SteamApps\Common\Natural Selection 2\.

Инструменты

Инструменты для создания контента поставляться в комплекте с игрой в папке NSROOT:

Пример: Hello World

  1. Создаём новую пустую директорию где либо, например C:\mymod. Эту директорию обозначим как MODDIR. Важно, чтобы путь к директории не содержал кириллические знаки, допустима только латиница.
  2. Создаём поддиректорию MODDIR/lua и копируем туда файл NSROOT/ns2/lua/Client.lua.
  3. Открываем на редактирование скопированный файл MODDIR/lua/Client.lua и добавляем в конец строку:
    Shared.Message('Hello World')
  4. Запустите ns2.exe с параметрами -game "MODDIR" -hotload или ns2.exe -game "c:\mymod" -hotload.
  5. Создайте новый приватный сервер.
  6. После загрузки карты откройте консоль (по умолчанию клавиша ~).
  7. Ожидаемый результат: Вы увидите сообщение "Hello World" в логе консоли.

Структура модификаций

Структура каталогов с файлами модификации точно такая же как и структура файлов в каталоге NSROOT\ns2. Когда работающая игра пытается загрузить определенный файл (такой как Lua/Client.lua), она будет использовать файл из каталога мода, если он существует, в противном случае будет использоваться файл из NSROOT\ns2.

Game_setup.xml

Опциональный файл game_setup.xml (в каталоге мода) задаёт первые Lua файлы для клиента (Lua\Client.lua) и сервера (Lua\Server.lua), которые будут загружаться при старте виртуального сервера (ВС). Файл точки входа для основного меню ВС - Lua\Main.lua. Это самый первый Lua файл, который загружается при запуске игры. Как только вы подключаетесь к любому игровому серверу, виртуальный сервер, отвечающий за меню, уничтожается. При отключения от игрового сервера, ВС для меню создается заново. Game_setup.xml файл также контролирует заголовок окна игры. Если ваш мод не содержит данный файл в своём корневом каталоге, игра будет по умолчанию загружать его из "NSROOT\ns2\game_setup.xml".

По умолчанию game_setup.xml выглядит так:

<game>
  <name>ns2</name>
  <description>Natural Selection 2</description>
  <client>lua/Client.lua</client>
  <server>lua/Server.lua</server>
  <loading>lua/Loading.lua</loading>
  <soundinfo>sound/NS2.soundinfo</soundinfo>
</game>

Поле description определяет название заголовка главного окна игры. Если поля client и server пустые в вашем game_setup.xml, то они будут по умолчанию загружены из "MODDIR\lua\Client.lua" для клиентской ВС (проще говоря для клиента)и "MODDIR\lua\Server.lua" для серверной ВС (или сервера). Если они не существуют, игра загрузит их из "NSROOT\ns2\lua\Client.lua" для клиента и "NSROOT\ns2\lua\Server.lua" для сервера.

Запуск

Запустить модификацию можно через консольную команду или через мастерскую Steam.

Запуск через консольную команду

В инструкции модификация называется "mymod".

  • Переложите папку с модом mymod в каталог "....\steam\steamapps\common\natural selection 2\".
  • Кликаем правой кнопкой мыши на файле ns2.exe и создаём ярлык.
  • Нажимаем правой кнопкой мыши на ярлыке и открываем его свойства.
  • Надите поле target и в конце строки "....\Steam\steamapps\common\natural selection 2\NS2.exe" добавьте: -game mymod -hotload
  • Как пример получиться следующее - "F:\Games\Steam\steamapps\common\natural selection 2\NS2.exe" -game mymod -hotload
  • Нажимаем на вкладку general в свойствах ярлыка и меняем имя "shortcut to ns2" на "mymod".
  • Нажимаем OK.
  • Двойным кликом на ярлыке запускаем мод.

Тег -game в консольной команде означает то, что при запуске игра ищет необходимые файлы в каталоге, указанного поле этого тега. Пример тэга -game mymod задаст игре поиск папки с модом в каталоге NSROOT. Так же можно указать абсолютный путь к папке с модом -game "c:\mystuff\mymod".

Публикация мода

Инструкция по публикации мода в мастерской Steam находиться тут.

Отладка

Если что то с модом происходит не так или игра падает, вы можете просмотреть результат в консоле игры или в файле "%APPDATA%\Natural Selection 2\log-*.txt". Чтобы быстро открыть эту папку, можно использовать Start > Run (или нажать Windows key + R), затем набрать "%APPDATA%\Natural Selection 2\"

Смотрите также