Ru/Unlocking chapters in your mod

=Подход от Valve=
Такой подход показывает лучший способ обновления главы вашего мода.
== Переименование ==
Ваши карты должны быть в хронологическом порядке, чтобы вы и движок могли понять что за чем идет.
Обратите внимание, карты в названы в соответствии с этой схемой:
"d#_areaname_##"
где
* "#" название для "дня" внутри игры, так 1 для начала, 2 для середины, и 3 для конца игры
* "##" название части "сегмента" карты
Пример: d1_trainstation_01
Однако, в можно сделать разблокирование главы намного легче:
"c#a$"
где
* # номер главы
* $ Область главы, подчасть карты в общем.
Пример: c1a4 c4a1b
== Обновление ==
In gameinterface.cpp, modify void UpdateChapterRestrictions( const char* mapname ) and the array static TITLECOMMENT gTitleComments[] to conform to your maps' naming format.
Each TITLECOMMENT in gTitleComments contains a char* pBSPName (the map name or part of a map name) and a char* pTitleName (the chapter that map or set of maps is part of). If you want the map e2m4 to be part of Chapter 2 of the mod Doom, add {"e2m4", "#Doom_Chapter2_Title"} to the array (with a trailing comma if it's not last, of course). Replace "e2m4" with simply "e2" and all maps starting with "e2" will be part of Chapter 2.
	
Note the comment right above gTitleComments, which reads "This list gets searched for the first partial match, so some are out of order". Meaning, if e2m9 is part of Chapter 3 and the rest of the "e2" maps are in Chapter 2, then {"e2m9", "#Doom_Chapter3_Title"} must come before {"e2", "#Doom_Chapter2_Title"} in the array.
=== Необходимые исправления ===
UpdateChapterRestrictions has an inherent flaw which only comes to light when Steam runs a Source mod. Steam puts the mod's entire path in the command line; the mod MyMod might be run with hl2.exe -game "C:\Steam\SteamApps\SourceMods\MyMod".
But UpdateChapterRestrictions assumes "-game" to be just "mymod"(Mod name in lowercase), so char chapterNumberPrefix[64] ends up as #C:\Steam\SteamApps\SourceMods\MyMod_chapter, rather than #mymod_chapter as it should be.
You can solve this problem in one of two ways. The first and easiest is to dispense with the "-game" parameter and simply hardcode "#mymod_chapter" as the chapterNumberPrefix. The second, which may be copied and pasted across mods, is to lop off the parent folders one by one, perhaps with strtok, until only the mod folder is left.
=Более простой способ=
Это обучение покажет как разблокировать карты используя триггеры в вашей карте. Если вы не знакомы с добавлением глав ваш мод, почитайте обзор , а после уже принимайтесь читать дальше.
== Создание браша ==	
Создайте браш на вашей второй карте. Он будет использоваться как триггер для разблокирования следующей главы в вашем моде. К примеру вы прошли карту1, и появились на карте 2, сработал триггер и глава связанная с картой 2 разблокировалась, и так далее до самых титров :) Проверьте, что ваш браш называется примерно так Trigger001_UnlockChapter2.
== Создание логической связи ==
Создайте енети . Назовите ее Logic001_UnlockChapter2. Выставите параметр Start Disabled в положение Yes.
Теперь создайте енети , и назовите его UnlockChapter2.
== Добавление outputs для ==
Откройте окно настроек созданного ранее (двойной клик по нему), и выберете - Outputs.		
Теперь добавьте два Outputs используя кнопку "Add":	
My Output	Target Entity 	Target Input	Parameter 	Delay	Only Once
OnTrigger	UnlockChapter2	Command 	incrementvar sv_unlockedchapters 2 100 -1	0.01 	Yes
OnTrigger	UnlockChapter2	Command 	incrementvar sv_unlockedchapters 2 100 1 	0.02 	Yes
	
Цифра '2' после incrementvar sv_unlockedchapters сделает главу доступной. Если в вашем моде больше 100 глав (что маловероятно), сделайте это число больше, чтобы охватить все главы (Число 100 в данном случае показывает общее количество глав в вашем моде, замените его на количество глав в вашем).
===Как это работает===
Команда берет minValue, maxValue и дельту. Используя дельту 0 устанавливает sv_unlockedchapters в maxValue которых можно избежать уменьшая var, то увеличивая его, гарантируя что глава разблокирована, но не устанавливая его если значение больше чем нужно (видимо подразумевается загрузка сохранений их старых глав, в которых при срабатывании триггера без такой защиты главы бы обнулялись на момент где находиться игрок, ее зависимо что он прошел дальше).
== Добавление outputs для ==
Далее открываем окно настроек , если помните вы назвали его как Trigger001_UnlockChapter2 (или как вы его там назвали), и выберите раздел Outputs. Сейчас добавьте Outputs используя кнопку "Add" и заполните все как на картинке...	
== Тестирование ==
Теперь сохраните, скомпилируйте и запустите карту. После загрузки мода пропишете в консоле showtriggers 1. После этого запустите карту и пройдите через триггер . Как только вы это сделайте выйдите в игровое меню (нажмите Esc) и выберите пункт New Game (Новая Игра). Вы должны увидеть что глава 2 разблокирована.	
Выйдя из игры откройте файл cfg/config.cfg который лежит в папке вашего мода и прокрутите его до самого низа. Вы увидите, что текст sv_unlockedchapters "1" изменился на sv_unlockedchapters "2".
Всё готово. Теперь главы вашего мода разблокируются в порядке прохождения.
 Category:Russian