Аргументы командной строки и файл конфигурации

Консольные команды используются для запуска различных систем, которые могут работать как на сервере, так и на клиенте. Вы также можете передавать свои собственные консольные команды для решения своих задач. Для использования консольных команд необходимо сделать следующее:

Создайте ярлык вашего исполняемого файла.

Откройте свойства ярлыка правой клавишей мышки и в разделе Ярлык в свойстве Объект будет указан путь в исполняемому файлу. Сразу после этого пути необходимо указать консольные команды. Если путь к файлу указан в кавычках, то консольные команды необходимо указать сразу после закрывающих кавычек.

Например:

В примере выше показана команда, которая помогает автоматически запускать мастер сервер. Не забывайте указывать значение после параметра. Далее идет IP адрес мастер сервера с указанным значением и последний параметр - это порт, который будет прослушиваться мастер сервером.

Вот и все!

Запустите мастер сервер с помощью созданного ярлыка и в консоли вы увидите указанные вами ранее параметры.

Доступ к значениям

Доступ к аргументам командной строки можно получить через класс Mst.Args. Например:

var port = Mst.Args.AssignedPort;

Mst.Args.Names - содержит точные имена всех аргументов командной строки. Например:

// -mstMasterPort
var portArgName = Mst.Args.Names.MasterPort;

Проверка доступности аргументов

// If master port is provided via cmd arguments
if (Mst.Args.IsProvided(Mst.Args.Names.MasterPort))
{
    serverPort = Mst.Args.MasterPort;
}

// If master IP is provided via cmd arguments and uses default value if arg is not provided
serverIP = Mst.Args.AsString(Mst.Args.Names.MasterIp, serverIP);

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

Как говорилось ранее вы можете использовать собственные аргументы командной строки. Допустим вы создали свой собственный аргумент командной строки с необходимым значением

./Build -myMagicNumber 42

if (Mst.Args.IsProvided("-myMagicNumber"))
{
    // Extract integer value
    var number = Mst.Args.AsInt("-myMagicNumber");

    // Extract string value
    var str = Mst.Args.AsString("-myMagicNumber");

    // Extract bool value
    var b = Mst.Args.AsBool("-myMagicNumber");
}

Ниже представлен список консольных команд, имеющихся в фреймворке. Этот список будет изменяться в зависимости от обновлений.

Команда API(Mst.Args) Default value Description
-mstStartMaster StartMaster true/false Starts master server
-mstStartSpawner StartSpawner true/false Starts spawner server
-mstStartClientConnection StartClientConnection true/false Starts connection to server
-mstMasterPort MasterPort 5000 Use this cmd to setup master server connection port
-mstMasterIp MasterIp 127.0.0.1 Use this cmd to setup master server connection IP address
-mstSpawnTaskId SpawnTaskId Specified by spawner when starting room process Use this cmd to setup spawned process task ID
-mstSpawnTaskUniqueCode SpawnTaskUniqueCode Specified by spawner when starting room process Use this cmd to check if there's no tampering with spawned processes
-mstRoomIp RoomIp 127.0.0.1 Use this cmd to setup IP address of the spawned room server
-mstRoomPort RoomPort 7777 Use this cmd to setup port of the spawned room server
-mstWebPort WebPort 5056 Use this cmd to setup port of the web server
-mstRoomDefaultPort RoomDefaultPort 1500 Use this cmd if you want a spawner to start creating room ports from your own specific value
-mstRoomIsPrivate RoomIsPrivate true/false Use this cmd to setup server room as private or not
-mstRoomName RoomName Created automatically when room starts Use this cmd to setup server room name
-mstRoomPassword RoomPassword empty value "" Use this cmd to setup server room password
-mstRoomMaxConnections RoomMaxConnections 10 Use this cmd to setup the max number of connections of the spawned room server
-mstRoomExe RoomExecutablePath empty value "" Use this cmd to setup the path to room server executable file that you need to spawn
-mstRoomRegion RoomRegion International Use this cmd to setup the region, to which the spawner belongs
-mstUseWebSockets WebGl true/false Use this cmd to setup WebSockets mode on room server if you use WebGL version of client this feature works only is you server supports web sockets
-mstLoadScene LoadScene empty value "" Send this cmd to load room gameplay scene or another one when connected to room server
-mstDbConnectionString DbConnectionString empty value "" Use this cmd if youwant to connect to you database with some connection string
-mstLobbyId LobbyId Created automatically when room starts Id of the lobby, for which the process was spawned
-mstDontSpawnInBatchmode DontSpawnInBatchmode true/false Use this command to override SpawnerBehaviour.spawnInBatchmode check box
-mstMaxProcesses MaxProcesses 0 Use this cmd to setup the max number of processes the spawner can spawn
-mstAppKey ApplicationKey cannot be empty Defines an application key
-mstUseSecure UseSecure true/false Defines whether or not to use secure connection SSL/TLS
-mstCertificatePath CertificatePath empty value "" Defines path to certificate
-mstCertificatePassword CertificatePassword empty value "" Defines password for certificate
-mstUseDevMode UseDevMode true/false Defines whether or not to use development mode. May be useful for debugging
-mstGuestId GuestId empty value "" Use this to set guest user id to signin as guest. User with this id must exist in database. This only works in dev mode

Вы также можете определить все аргументы командной строки в файле application.cfg. Этот файл будет автоматически создан в корневом каталоге при запуске приложения, но вы можете создать его вручную. Чтобы использовать cmd args в этом файле, вам необходимо настроить каждую команду в отдельной строке. Вместо пробела используйте "=" для определения значения каждой команды.

-mstUseSecure=true
-mstCertificatePath=...\MasterServer.pfx
-mstCertificatePassword=qwerty
-mstWebPort=5059