Вступление Консоль — это основной инструмент для отладки кода игры и настройки параметров. Консоль — это текстовый интерфейс ввода/вывода, который позволяет изменять глобальные переменные игры во время выполнения. Для включения консоли откройте «Options»-> «Keyboard» -> «Advanced…» и выберите «Enable developer console». По-умолчанию консоль открывается кнопкой «~» (тильда).

Чтобы сделать консоль доступной при старте игры, необходимо дописать ключи «-dev» или «-console» в параметры запуска (разработчики должны всегда использовать -dev). Если HL запущена в режиме встроенного отладчика, то консоль будет являться вашим окном отладки. Запустите игру с параметром «-condebug», чтобы записывать полный Log консоли в файл «console.log», находящийся в папке игры.
После того, как вы ввели команду, она должна быть выполнена, для этого нажмите ENTER или нажмите на кнопку ‘Submit’. Команда имеет уникальное имя и может иметь несколько параметров, которые отделяются пробелами (синтаксис: команда <параметр1> [<параметр2>] ). В имени команды не может быть пробелов, если параметр команды содержит пробелы, то он заключается в кавычки:

Ошибка «Консоль разработчика» [TLauncher]

]bind h «say hello world»
]name «Gordon Freeman»

DevMsg (char const* pMsg, . ) — только в режиме разработчика
Msg(char const* pMsg, . ) — всегда, белый текст
Warning(char const *pMsg, . ) — всегда, красный текст

Для обратной совместимости с HL1 сохранены команды Con_Printf() и Con_DPrintf().
Исполнение команд Движок использует интерфейс сервера и клиента, чтобы исполнять команды (строки). Сервер использует интерфейс IVEngineServer::ServerCommand():

engine->ServerCommand(«changelevel de_dust»);

Клиент использует интерфейс IVEngineClient и выбирает между двумя командами, от этого зависит, будет ли команда исполняться сначала на клиенте или посылаться непосредственно серверу:

engine->ServerCmd( «say hello» ); // послать команду на сервер

engine->ClientCmd( «say hello» ); // выполнить команду на клиенте

Добавление новых команд и переменных Консоль разработчика — это подсистема движка Source, которая дает доступ к различным модулям, это осуществляется через интерфейс ICvar ( см. publicicvar.h). Этот интерфейс регистрирует новые команды и ищет существующие. Этот интрефейс доступен через глобальную переменную cvar в клиент-серверном коде.

Добавление новых команд и переменных довольно просто и дуступно для использования и для серверных и для клиентских модулей. Конструктор этих классов автоматически регистрирует новую команду/переменную в системе консоли. Этот короткий пример кода добавляет новую функцию my_function и новую переменную my_variable:

КАК УБРАТЬ КОНСОЛЬ РАЗРАБОТЧИКА?? В 2022

#include <convar.h>
ConVar my_variable( «my_variable», «42», FCVAR_ARCHIVE, «My favorite number» );
void MyFunction_f( void )
Msg(«This is my functionn»);
>
ConCommand my_function( «my_function», MyFunction_f, «Shows a message.», FCVAR_CHEAT );

Использование класса ConVar Для начала рассмотрим конструктор класса ConVar:

ConVar( char const *pName,
  char const *pDefaultValue,
  int flags,
  char const *pHelpString )

Первый аргумент pName — это имя переменной (без пробелов), следующий: pDefaultValue, всегда является строковым, даже для числовых значений. Flags определяет специальные характеристики переменной, все флаги начинаются с FCVAR_*, но об этом позже. Очень хорошо использовать pHelpString, этот аргумент содержит справку о переменной. Это значение может быть любым, на ваше усмотрение.

if ( my_variable.GetInt() == 42 ) DoSomething();
if ( my_variable.GetFloat() == 42.0f ) DoSomething();
if ( strcmp(my_variable.GetString(), «42»)==0 ) DoSomething();

Для установки значения ConVar используется функция SetValue(), использующая любые типы данных:

Читайте также:  Пещера зомби Лего Майнкрафт инструкция

my_variable.SetValue( 42 );
my_variable.SetValue( 42.0f );
my_variable.SetValue( «42» );

Чтобы вернуть значение ConVar назад на значение по-умолчанию, необходимо использовать функцию Revert(). Если ConVar создан в разных модулях, то в интерфейсе ICvar функция FindVar() используется для получения указателя на объект, если имя переменной установлено. Вот простой пример, который проверяет установлена ли ConVar sv_cheats в модуле движка:

Массив правильных значений ConVars определяет числами и использует разные конструкторы. Если введенное значение выходит за границы массива, то оно уравнивается до следующего правильного значения. Установление правильного массива от 1 до 100:

ConVar my_variable( «my_variable», «42», 0, «helptext», true, 1, true, 100 );

Вы получите уведомление, если какая-либо из подсистем изменит значение ConVar, это потребует установленной функции обратного вызова:

static void OnChangeMyVariable ( ConVar *var, char const *pOldString )
DevMsg( «ConVar %s was changed from %s to %sn», var->GetName(), pOldString, var->GetString() );
>

ConVar my_variable( «my_variable», «42», 0, «My favorite number», OnChangeMyVariable );

Использование класса ConCommand class ConCommand использует простой как и ConVar один конструктор:

ConCommand( char const *pName,
FnCommandCallback callback,
char const *pHelpString = 0,
int flags = 0,
FnCommandCompletionCallback completionFunc = 0 );

Как и у ConVar pName — это имя команды (без пробелов!). callback — это функция, которая выполняется, если пользователь выполнил команду, pHelpString — имеет то же значение, что и у ConVar. ConCommands поддерживает автозавершение для первого параметра и может использовать файлы.

Например, вы используете команду loadtext lt;textfilegt; команде потребуется .txt файл для ввода, консоль будет искать все доступные .txt файлы и предложит выбрать нужный из списка. До тех пор, пока функция callback выполняется, параметр, веденный в консоли не считается за аргумент функции. Функция callback подает запрос движку на поиск аргументов через функцию Cmd_Argc(). Аргументы всегда возвращаются строкового типа.

void MySay_f ( void )
if ( engine->Cmd_Argc() > 1 )
Msg(«»Usage: my_say textn»);
return;
>

Msg(«I say: %sn», engine->Cmd_Argv(1) );
>

ConCommand my_say( «my_say», MySay_f, «say something», 0);

Здесь приведен пример построения списка с автозавершением:

static int MySayAutoComplete ( char const *partial,
char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] )
strcpy( commands[0], «hello» );
strcpy( commands[1], «goodbye» );
return 2; // number of entries
>

ConCommand my_say( «my_say», MySay_f, «say something», 0, MySayAutoComplete);

FCVAR_ флаги Консольные команды/переменные используют флаги, которые обладают определенными характеристиками. Эти флаги используются конструктором и редактируются через ConCommandBase::AddFlags().
FCVAR_LAUNCHER, FCVAR_GAMEDLL, FCVAR_CLIENTDLL, FCVAR_MATERIAL_SYSTEM, FCVAR_STUDIORENDER Эти флаги отвечают за процесс создания команд в различных модулях.
FCVAR_CHEAT Используются при отладке, не удаляются из релиза по причине того, что могут потребоваться разработчикам модов и карт.
FCVAR_USERINFO Используются для передачи информации о пользователе, как правило эта информация передается по сети.
FCVAR_REPLICATED Сервер и клиент используют общий код, и при сетевой игре обязаны выполнять все действия одновременно, для этого и служит этот флаг.
FCVAR_ARCHIVE Некоторые консольные переменные имеют специфические параметры, которые используются только при старте игры ( такие, как name или network_rate). Этот флаг отвечает за возможность сохранения значений таких переменных в файле config.cfg.
FCVAR_NOTIFY Дает возможность серверу посылать уведомления всем клиентам.
FCVAR_PROTECTED Отвечает за конфиденциальность значений некоторых переменных.
FCVAR_SPONLY Отвечает за возможность выполнения команд ТОЛЬКО в режиме одиночной игры.
FCVAR_DEMO Обеспечивает контроль за записью и просмотром демо-роликов.
FCVAR_DONTRECORD Команда, обратная по значению предыдущей.

Читайте также:  Чем можно чинить лук в Майнкрафте

Источник: www.akksimo.net

# Usage

To run the client you need to type the following command in your terminal emulator:

./MinecraftClient

If you want to keep it running in the background you can use screen (Linux only)

# Start the screen screen -S mcc # Run it ./MinecraftClient # Detach from the screen by pressing CTRL + A + D # Re-attach if you want to have accces again screen -r mcc

Learn more on how to use the screen command: YouTube

# Docker

# Command-line usage

Minecraft Console Client has a plethora of useful command line parameters, here you can learn about them.

# For people not familiar with the command line

For people who are not familiar with the usage of programs in the command line (terminal emulators), here we will explain what every single thing means, if you’re already experienced you can skip this.

In command line (terminal emulators) you can run programs by specifying their name and hitting enter, usually programs have additional way of being configured, started or provided some additional data in a different manner, this is achieved by using command line parameters.

Command line parameters are written after the name of the program, they’re separated by spaces and they can have a few different formats, examples:

  • someparameter
  • -some-parameter
  • —some-other-parameter
  • —some-setting=»some value»
  • -a=5

Parameters with a single dash ( — ) are usually used for a single letter (short-hand) parameters, while the ones with a double dash ( — ) are being used for parameters with a longer/full name.

When you are reading examples, you will often see something like this: , this means that this is a place holder and it should be changed with some value, excluding the < and the >.

For example you need to change to an username of your liking, example: notch ( < and >should not be included).

[ and ] mean that a parameter is an optional one.

They also can hold some values, example from the MCC:

MinecraftClient.exe —debugmessages=false

When a parameter has a textual value that includes one more spaces, you will need to wrap it the value in double quotes ( » ), example: —some-parameter=»some text here with spaces in it»

Here is an example for using a —help command line parameter for MCC that will print out a page on how to use MCC from the command line:

MinecraftClient.exe —help

# Quick usage of MCC with examples

On Linux and macOS, you need to type: ./MinecraftClient instead of MinecraftClient.exe

MinecraftClient.exe —help MinecraftClient.exe MinecraftClient.exe «/mycommand» MinecraftClient.exe —setting=value [—other settings] MinecraftClient.exe —section.setting=value [—other settings] MinecraftClient.exe [—other settings]

Источник: mccteam.github.io

Консоль разработчика

Код уязвим для ошибок. И вы, скорее всего, будете делать ошибки в коде… Впрочем, давайте будем откровенны: вы точно будете совершать ошибки в коде. В конце концов, вы человек, а не робот.

Читайте также:  Как пройти Майнкрафт без ничего

Но по умолчанию в браузере ошибки не видны. То есть, если что-то пойдёт не так, мы не увидим, что именно сломалось, и не сможем это починить.

Для решения задач такого рода в браузер встроены так называемые «Инструменты разработки» (Developer tools или сокращённо — devtools).

Chrome и Firefox снискали любовь подавляющего большинства программистов во многом благодаря своим отменным инструментам разработчика. Остальные браузеры, хотя и оснащены подобными инструментами, но всё же зачастую находятся в роли догоняющих и по качеству, и по количеству свойств и особенностей. В общем, почти у всех программистов есть свой «любимый» браузер. Другие используются только для отлова и исправления специфичных «браузерозависимых» ошибок.

Для начала знакомства с этими мощными инструментами давайте выясним, как их открывать, смотреть ошибки и запускать команды JavaScript.

Google Chrome

В её JavaScript-коде закралась ошибка. Она не видна обычному посетителю, поэтому давайте найдём её при помощи инструментов разработки.

Нажмите F12 или, если вы используете Mac, Cmd + Opt + J .

По умолчанию в инструментах разработчика откроется вкладка Console (консоль).

Она выглядит приблизительно следующим образом:

Точный внешний вид инструментов разработки зависит от используемой версии Chrome. Время от времени некоторые детали изменяются, но в целом внешний вид остаётся примерно похожим на предыдущие версии.

  • В консоли мы можем увидеть сообщение об ошибке, отрисованное красным цветом. В нашем случае скрипт содержит неизвестную команду «lalala».
  • Справа присутствует ссылка на исходный код bug.html:12 с номером строки кода, в которой эта ошибка и произошла.

Под сообщением об ошибке находится синий символ > . Он обозначает командную строку, в ней мы можем редактировать и запускать JavaScript-команды. Для их запуска нажмите Enter .

Многострочный ввод

Обычно при нажатии Enter введённая строка кода сразу выполняется.

Чтобы перенести строку, нажмите Shift + Enter . Так можно вводить более длинный JS-код.

Теперь мы явно видим ошибки, для начала этого вполне достаточно. Мы ещё вернёмся к инструментам разработчика позже и более подробно рассмотрим отладку кода в главе Отладка в браузере.

Firefox, Edge и другие

Инструменты разработчика в большинстве браузеров открываются при нажатии на F12 .

Их внешний вид и принципы работы мало чем отличаются. Разобравшись с инструментами в одном браузере, вы без труда сможете работать с ними и в другом.

Safari

Safari (браузер для Mac, не поддерживается в системах Windows/Linux) всё же имеет небольшое отличие. Для начала работы нам нужно включить «Меню разработки» («Developer menu»).

Откройте Настройки (Preferences) и перейдите к панели «Продвинутые» (Advanced). В самом низу вы найдёте чекбокс:

Теперь консоль можно активировать нажатием клавиш Cmd + Opt + C . Также обратите внимание на новый элемент меню «Разработка» («Develop»). В нем содержится большое количество команд и настроек.

Итого

  • Инструменты разработчика позволяют нам смотреть ошибки, выполнять команды, проверять значение переменных и ещё много всего полезного.
  • В большинстве браузеров, работающих под Windows, инструменты разработчика можно открыть, нажав F12 . В Chrome для Mac используйте комбинацию Cmd + Opt + J , Safari: Cmd + Opt + C (необходимо предварительное включение «Меню разработчика»).

Теперь наше окружение полностью настроено. В следующем разделе мы перейдём непосредственно к JavaScript.

Источник: learn.javascript.ru