Аргументы командной строки и файл конфигурации
Консольные команды используются для запуска различных систем, которые могут работать как на сервере, так и на клиенте. Вы также можете передавать свои собственные консольные команды для решения своих задач. Для использования консольных команд необходимо сделать следующее:
Создайте ярлык вашего исполняемого файла.
Откройте свойства ярлыка правой клавишей мышки и в разделе Ярлык в свойстве Объект будет указан путь в исполняемому файлу. Сразу после этого пути необходимо указать консольные команды. Если путь к файлу указан в кавычках, то консольные команды необходимо указать сразу после закрывающих кавычек.
Например:
В примере выше показана команда, которая помогает автоматически запускать мастер сервер. Не забывайте указывать значение после параметра. Далее идет 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