Консольные программы |
Для начала
немного о том, что такое консоль. Консоль -
это окно в мир игры, которое
предусмотрительно оставлено
разработчиками. В процессе создания и
отладки игры она предоставляет возможность
отслеживать происходящее и воздействовать
на игру. Похоже, что впервые в том виде, в
котором она известна сейчас, консоль
появилась в незабвенном Quake: открывающееся
и закрывающееся окно, в котором можно
вводить специальные команды и видеть
результаты их выполнения. Это оказалось
действительно удобным, и с тех пор консоль
встраивается в очень многие игры, причем в
финальной версии игры консоль либо не
отключают вовсе, либо оставляют
возможность включить ее - параметром
командной строки, определенным значением в
файлах данных игры, или иным способом.
В "Проклятых
Землях" консоль доступна сразу,
открываясь и закрываясь при нажатии на
клавишу тильда (~). Однако же по умолчанию
работает лишь незначительная часть
консольных команд - для разрешения
остальных нужно ввести мастер-код thingamabob.
Но и это еще не все: начиная с версии игры 1.02
команды, разрешаемые thingamabob,
отключены в режиме мультиплеера. К счастью,
для их разрешения достаточно установить
мой патч
для имеющейся у вас версии игры.
Здесь я привожу
описания различных консольных команд. Одни
из них вы, возможно, уже знаете, а другие, как
я надеюсь, - еще нет. Если вас интересуют
команды, с которыми я и сам не разобрался, то
вам сюда.
Таким шрифтом в описаниях
выделены обязательные части ключевых слов; вот
так обозначаются параметры команд,
вместо которых следует подставить
требуемое значение. В [квадратных] скобках
записаны необязательные параметры.
Вертикальной | чертой разделены параметры,
из которых нужно выбрать точно один.
- #GetX(GetLeader())
- вывести координату X для главного
персонажа
- #GetDiplomacy(0,6)
- вывести дипломатию от игрока 0 к игроку 6
- $"Hello"
- вывести строку "Hello"
- @script_procedure_call
Производит вызов указанной скрипт-процедуры.
См. также скриптовые
процедуры.
Примеры:
- @SetCP(GetObject(4517),40,135,0)
- переместить юнит с идентификатором 4517 в
точку (40,135)
- @KillUnit(GetObjectByName("NSheriff"))
- убить Ривара
- @FixWorldTime(0)
- установить на карте вечную ночь
- ban
[player_name]
Отключает игрока с
данным именем от сервера и запрещает
ему вход на сервер до конца сеанса игры
(проверка выполняется по IP-адресу). При
задании имени разрешается указать лишь
начальные буквы. Имя игрока можно
заключать в кавычки, чтобы пробелы в
нем корректно обрабатывались. Так
можно исключать игроков с именами,
начинающимися с пробела. Начиная с
версии игры 1.05 можно не указывать имя
игрока. В этом случае после ввода
команды нужно подвести курсор к
портрету игрока и нажать левую кнопку
мыши. Отменить команду можно по клавише
Esc. Применяется только на сервере. См.
также kick.
Примеры:
- ban war -
отключить всех игроков с именами,
начинающимися на war
- ban " noble"
- отключить всех игроков с именами,
начинающимися на noble
(первый символ - пробел)
- ban -
отключить игрока по портрету
- console
position
Изменяет позицию консоли на экране.
Возможные значения position:
- left
- слева
- right
- справа
- top
- наверху (начальное положение консоли)
- bottom
- внизу
- center
- в центре экрана
- fullscreen
- на весь экран
- days
ddmmyyyy DDMMYYYY
Подсчитывает число дней, прошедшее от
первой даты до второй. (Любопытно, с
какой целью Нивал ввел эту команду.)
Пример:
- days 26102000 08032001
- вывести число дней между 26.10.2000 и 08.03.2001
- disconnect
Отключает подсистему клиента на данном
компьютере от сервера, т.е. возможно и
отключение клиента на компьютере
сервера.
- execute
input_file
Выполняет последовательность
консольных команд из текстового файла input_file.
Имя файла может содержать путь.
Примеры:
- exec init -
выполнить файл init из
каталога с игрой
- exec
con\giveallweapons.con -
выполнить файл giveallweapons.con
из подкаталога con
- exit
Немедленно завершает игру. Синоним quit.
- fadeout n_milliseconds
Если n_milliseconds
положительно, то постепенно гасит
изображение на экране, если
отрицательно, то доводит его до
нормальной яркости.
Примеры:
- fadeout 1000 -
погасить экран за одну секунду
- fadeout -1500
- довести экран до нормальной яркости за
полторы секунды
- filter
[type] [off|0|on|1]
Включает (on,1)
или выключает (off,0)
вывод системных сообщений указанного
типа. Если второй параметр опущен, то он
считается равным on.
Параметр type может
принимать следующие значения:
- none:
отключается вывод всех сообщений
- ai:
вероятно, самая полезная группа
сообщений - выводятся идентификаторы
юнитов, их текущие состояния,
наносимые повреждения
- graphics:
выводит 3D-координаты точки назначения
персонажа
- all:
обозначает "все виды сообщений"
Примеры:
- filter none -
отключить вывод всех системных сообщений
- filter all off
- то же самое
- filter ai 1
- разрешить вывод сообщений группы ai
- filter -
показать текущее состояние фильтров
сообщений
- fps
[off|0|on|1]
Включает (on,1)
или выключает (off,0)
режим отображения текущего значения FPS -
оно выводится в правом верхнем углу
экрана. См. также lastfps.
Примеры:
- fps 1 -
включить отображение FPS
- fps 0 -
отключить отображение FPS
- give
0 money|exp amount
give 0 assortment
С модификатором money
дает игроку указанное количество денег.
При использовании exp
дает указанное количество опыта,
причем опыт делится между членами
партии, и к нему применяются бонусы за
разум. Команду следует вводить,
находясь в магазине, причем если в
случае денег указанная сумма
прибавляется немедленно, то в случае
опыта необходимо повысить какой-либо
навык или умение, чтобы изменения стали
заметны. Кроме того, после ввода данной
команды состояние обоза, персонажа и
магазина сбрасывается в то, которое
было при входе в магазин. По этой
причине для получения денег я
рекомендую использовать процедуру GiveMoney().
В форме с assortment помещает
в набор товаров магазина все
неквестовые предметы игры. Учтите, что
они будут помещены именно в магазин, то
есть вам придется их покупать.
Примеры:
- give 0 money
5000000 - получить пять миллионов
наличными
- give 0 exp 1000000
- передать партии один миллион опыта
на распределение
- give 0 assortment
- полки магазина ломятся от товаров
- help
Выводит в консоли список некоторых
команд с их краткими описаниями.
- history lines_count
Устанавливает число запоминаемых строк
консольного вывода, который можно
проскроллировать клавишами PageUp и PageDown.
- kick
[player_name]
Исключает игрока с
данным именем с сервера. При задании
имени разрешается указать лишь
начальные буквы. Имя игрока можно
заключать в кавычки, чтобы пробелы в
нем корректно обрабатывались. Так
можно исключать игроков с именами,
начинающимися с пробела. Начиная с
версии игры 1.05 можно не указывать имя
игрока. В этом случае после ввода
команды нужно подвести курсор к
портрету игрока и нажать левую кнопку
мыши. Отменить команду можно по клавише
Esc. Применяется только на сервере. См.
также ban.
Примеры:
- kick war -
исключить всех игроков с именами,
начинающимися на war
- kick " noble"
- исключить всех игроков с именами,
начинающимися на noble
(первый символ - пробел)
- kick -
исключить игрока по портрету
- lastfps
Выводит в консоли последнее значение FPS.
См. также fps.
- listvar
n_player [output_file]
Выводит в консоли
список переменных и их значений для
игрока n_player. Если указан output_file,
то вывод будет продублирован и в него.
Позднее этот файл можно использовать в
команде loadvar.
Пример:
- listvar 0 plr0
- вывести список переменных для игрока
№0 и продублировать его в файл plr0
- loadvar
n_player input_file
Загружает список переменных и их
значений для игрока n_player
из файла output_file,
созданного предшествовавшей командой listvar.
Пример:
- loadvar 0 plr0 -
загрузить список переменных для игрока
№0 из файла plr0
- lootall
Перемещает весь свободно лежащий лут на
игровой зоне в обоз игрока (сервера).
Применяется только на сервере.
- quit
Немедленно завершает игру. Синоним exit.
- rate bytes_per_second
Устанавливает
максимальную полосу пропускания на
одного клиента в байтах в секунду.
Диапазон значений - 500..10000. По умолчанию
в игре используется rate 2500,
что соответствует одному
подключенному клиенту при скорости
соединения 28,8 Кбит/с. Применяется
только на сервере.
- thingamabob
Мастер-код,
позволяющий использовать расширенный
набор консольных команд. После его
ввода расширенные команды остаются
разрешенными вплоть до перезапуска
игры. См. также разрешение
кодов в мультиплеере.
|
|
|