Класс переменной управления (ConVar)
ConVar - это класс C++, используемый для создания переменных управления (console variable, часто сокращают до "cvar"), которые используются в терминале разработчика.
Описание переменных управления можно найти на странице Категория:Переменные управления. Информацию о создании переменных управления, смотрите статью Управление терминалом разработчика
ConVar использует указанный ниже конструктор:
ConVar( const char *pName, const char *pDefaultValue, int flags, const char *pHelpString, bool bMin, float fMin, bool bMax, float fMax );
Значение, указанное по умолчанию в качестве второго аргумента в конструкторе ConVar, не является конкретным значением. Чтобы его установить, используйте:
pName->SetValue([value]);
Надлежащая практика
- Переменные, которые необходимо сохранить, должны быть помечены признаком FCVAR_ARCHIVE. Они будут сохранены вместе с пользовательскими назначениями клавиш в файле
config.cfg. Обходные (cheat) переменные не должны сохраняться.
- После любых признаков, которые будут добавлены (или 0, если они не нужны), можно задать строку справки. Она будет отображаться, если кто-то введёт переменную без указания значения или если будет введено недопустимое значение. Можно использовать
\nдля создания новой строки и пробелы после неё для отступа. Строки справки можно делать сколь угодно подробными и информативными!
- Используйте признак FCVAR_CHEAT для указания переменной, которая может использоваться только при включенном режиме sv_cheats.
Баг:Некоторые игры игнорируют этот признак в одиночной игре. [нужно проверить в ?]
- Используйте признак FCVAR_REPLICATED для указания серверной переменной, которая будет передана на клиентов. Например, этот признак должен быть установлен у таймеров раундов или игровых правил.
- В многопользовательских играх используйте FCVAR_NOTIFY для отправки сообщения в чат при каждом изменении этой переменной. Используйте этот признак для переменных, которые меняют игровую механику.
Дополнительные советы об использовании признаков переменых приведены на этой странице.
Примеры
Следующий код определяет переменную управления с именем cl_test:
ConVar cl_test("cl_test", 0, 0, "Пример ConVar");
Здесь написано следующее: сначала объявлена переменная класса ConVar, затем задано имя переменной, которое будет использоваться в игровом терминале, далее указаны значение по умолчанию, признаки и текст справки для вывода в терминал.
Можно использовать эти переменные для инициализации других переменных, например, если необходимо создать целочисленную переменную с именем test:
int test = cl_test.GetInt();
Или создать вещественную переменную, вызвав метод GetFloat()