Общие сведения
Консоль позволяет конфигурировать игру "по ходу дела", применять некоторые
читы, получать информацию о игре и т.п. Для того, чтобы разрешить включение
консоли необходимо добавить в конец файла autoexec.cfg строку wirbelwind и
организовать в файле input.cfg привязку на bind-id console. Последнее уже
выполнено патчем, вызов консоли привязан к кнопке "~" (тильда).
Механизм
консольных команд используется во всех конфигурационных файлах игры (*.seq,
*.cfg). Многие команды представляют по сути глобальные переменные, значения
которых используются в разных режимах игры. Ряд переменных (например, cheat_global_xcom)
должны быть выставлены в желаемое значение перед загрузкой игры (в случае cheat_global_xcom
- перед попаданием на глобальную карту), изменение же значений других оказывает
моментальное воздействие (cameramode). Состояние
переменных при выходе из игры не сохраняется. Число доступных команд в разных
режимах игры различно, некоторые можно использовать только после загрузки
сохраненной игры или старта кампании.
Список команд
Команда | Параметры | Описание |
---|---|---|
addmedalpoints | Любой. Необходим. Что значит - бог весть. | Добавляет всей команде по 40mp с последующей проверкой на получение наград (и пересчетов шансов на будующее получение). Результаты выводятся на консоль. Команда доступна только при загруженной игре. |
autoplay | Нет | Автобой, обе команды управляются компьютером. |
autoplay_templates | Идентификатор карты. | Задание карты для autoplay. Внимание! При задании несуществующего идентификатора при выдаче команды autoplay игра зациклится. Здравствуй кнопка reset. |
autoplay_units | Идентификатор юнита. | Задание юнита, из которого будут состоять команды в autoplay. Вероятно, можно задавать несколько идентификаторов, как это сделать - не нашел. |
bind | Команды формирования клавиатурных привязок. Кое-что можно посмотреть в соответствующем разделе | |
bind_update | ||
bindconfigure | ||
bindsection | ||
cameramode | PC, MAYA или FPS | Режим работы камеры. PC - как обычно в игре, MAYA - как обычно в редакторе, FPS - "вид из глаз". |
camerapos | Нет | Показывает текущие координаты камеры. |
chapter | Идентификатор тактической карты (3..28) | Показать тактическую карту. |
cheat_allow_headshot | 0 или 1 | В случае 0 запрещает попадания в голову. По умолчанию 1. |
cheat_ap | ||
cheat_blood | 0 или 1 | В случае 0 пятна крови не показываются. По умолчанию 1. |
cheat_football | ||
cheat_global_xcom | 0 или 1 | Команда меняет вид глобальной карты. При значении 1 игра не функциональна, сделано просто for fun. Рекомендуется выдавать команду перед загрузкой сохраненной игры, т.е. в главном меню игры. В противном случае скорее всего никаких изменений не увидите. |
cheat_golden_shot | 0 или 1 | Каждое попадание приводит к "дизинтеграции" бойца. Внимание! Это касается и Ваших бойцов тоже. (Режим godmode 1 не спасает) |
cheat_heads_off | 0 или 1 | В случае 1 каждое попадание считается попаданием в голову с последующей смертью бойца. Внимание! Это касается и Ваших бойцов тоже. (Режим godmode 1 не спасает) |
cheat_showall | 0 или 1 | В случае 1 показывает всех противников на карте. Включая тех, которых Ваши бойцы не видят. |
cheat_slomo | 0 или 1 | В случае 1 при смерти бойца показывает slomo. Т.е. камера делает оборот вокруг тела. |
cheat_zoneautocomplete | ||
clear | Нет | Очистка текста на консоли. |
console_writelog | 0 или 1 | При значении 1 часть текста, выдаваемого на консоль будет также записываться в файл Console.txt в директории игры. |
credits | Нет | Показывает список авторов игры. Аналогично соответcтвующему пункту в главном меню игры. |
d_animation | ||
d_awt | ||
d_create_animation | ||
d_idle_animation | ||
exec | ||
game_autosaves | ||
game_camera_accelerate_time | ||
game_camerasensivity | ||
game_dblclkmoveinrealtime | ||
game_eq_on_grenades | ||
game_forceturnbased | ||
game_invertscrollx | ||
game_invertscrolly | ||
game_invertturnx | ||
game_invertturny | ||
game_noai | 0 или 1 | В случае 1 отключает AI юнитов, которые находятся под контролем машины. |
game_pathinrealtime | ||
game_profile | ||
game_scrollsensivity | ||
game_selectionsensivity | ||
game_skipvideo | ||
game_tbs_on_enemy_spot | 0 или 1 | В случае 1 при обнаружении противника игра переходит в походовый режим. |
getitem | Идентификатор вещи. Брать тут. | Помещает в инвентарь выбранного бойца желаемую вещь. |
gfx_16bit_mode | ||
gfx_16bit_textures | ||
gfx_anisotropic_filter | ||
gfx_autodetect | ||
gfx_block_buffering | ||
gfx_blur_sun | 0 или 1 | |
gfx_cl | 0 или 1 | |
gfx_cl_blur | 0 или 1 | |
gfx_cl_cube_resolution | ||
gfx_cl_select_pl | ||
gfx_cl_sky_textures | ||
gfx_cl_use_bump | 0 или 1 | |
gfx_cl_use_bump_always | ||
gfx_cl_use_precise_shadows | ||
gfx_decals | 0 или 1 | |
gfx_depth_tex_resolution | ||
gfx_fastest | 0 или 1 | |
gfx_fill_2d | ||
gfx_fill_transp | ||
gxf_fix_ban_np2 | ||
gfx_fix_nv_np2_hack | ||
gfx_fog | 0, 1 или 2 | |
gfx_fsaa | ||
gfx_fullscreen | ||
gfx_gamma | ||
gfx_hqshot_mag | ||
gfx_hsr | ||
gfx_hw_hsr | 0 или 1 | |
gfx_low_ram | ||
gfx_maxlag | ||
gfx_nopixelshaders | 0 или 1 | |
gfx_notexture | ||
gfx_particles | 0 или 1 | |
gfx_point_specular | 0 или 1 | |
gfx_recreate | ||
gfx_register_resolution | ||
gfx_resolution | ||
gfx_shadows | 0 или 1 | |
gfx_showcache_2d | ||
gfx_showcache_linear | ||
gfx_showcache_transp | ||
gfx_showcache_transplm | ||
gfx_specular | 0 или 1 | |
gfx_static_nooverwrite | ||
gfx_stats | ||
gfx_stencil_shadows | 0 или 1 | |
gfx_swvertexprocess | 0 или 1 | |
gfx_terrain_565 | ||
gfx_texture_mip | ||
gfx_texture_usedxt | ||
gfx_tnl_mode | -1, 0 или 1 | |
gfx_update | ||
gfx_validate | ||
global | Идентификатор глобальной карты (1, 3..6) | Начинает новую кампанию за выбранную сторону. Идентификатор берется из таблицы GlobalMaps. На настоящий момент 3 - Axis, 4 - Allies, 6 - DemoAxis, 1 и 5 - тест. К сожалению, поиграть в демо-кампанию не получится - разработчики убрали с первой ее зоны улики, что приводит к завершению кампании секунд через пять после начала :) |
godmode | 0 или 1 | В случае 1 Вашим бойцам опасаться нечего. Если не задействованы другие читы (см. cheat_golden_shot и cheat_heads_off) |
help | Нет | Выдает на консоль список консольных команд, доступных в данном режиме. Навигация по списку - клавишами PgUp и PgDn. |
i_am_an_alien | 0 или 1 | В случае 1 меняет текстуры бойцов на нечто полупрозрачное a'la "Хищник". Рекомендуется выдавать команду перед загрузкой сохраненной игры, т.е. в главном меню игры. В противном случае скорее всего никаких изменений не увидите. |
load | имя игры | Загрузить игру с указанным именем. |
lua_showlog | 0 или 1 | В случае 1 выдает на консоль имена и диагностику отрабатываемых скриптов. |
mainmenu | Нет | Показывает главное меню игры. |
map | [идентификатор варианта карты] [идентификатор 1 юнита] [идентификатор 2 юнита]...[идентификатор N юнита] vs [идентификатор 1 юнита] [идентификатор 2 юнита]...[идентификатор К юнита] | Очень похоже на команду template. В отличие от последней вместо идентификатора карты используется идентификатор варианта карты. |
mission_camera_attenuation | ||
mission_camera_limits | ||
mission_camera_minheight | ||
mission_camera_pitch_speed | ||
mission_camera_scroll_acceleration | ||
mission_camera_scroll_speed | ||
mission_camera_softattenuation | ||
mission_camera_softlimits | ||
mission_camera_yaw_acceleration | ||
mission_camera_yaw_speed | ||
mission_camera_zoom_acceleration | ||
mission_camera_zoom_speed | ||
multiplayer | Нет | Включает режим hot-sit, выдает к заполнению форму, в которой надо сформировать команды и указать идентификатор карты, на которой будет происходить сия глобальная битва. Специально под данную команду оформлены карты с номерами 4412, 4413, 4414. Однако на картах, не заточенных под multiplayer, будете иметь проблемы с расстановкой команд. |
open_zone | ||
phoutput | Нет | Вывести на консоль параметры физической модели. |
phaddrestrict | Нет | Включает/выключает параметр физической модели Additional restrictions |
phfriction | Число | Устанавливает параметр физической модели friction. |
phstiffness | Число | Устанавливает параметр физической модели Stiffness. |
phstoprule | Изменяет параметр физической модели. (?) | |
phtimestep | Число | Устанавливает параметр физической модели Time step. |
phvis | Нет | Включает/выключает параметр физической модели Visualization. |
phdefault | Нет | Устанавливает параметры физической модели по умолчанию. |
profile | ||
save | имя игры | Сохранить игру с указанным именем. |
scenario | LIST, DRAW или [имя сценария] | LIST выводит список всех допустимых сценариев. Выполнение команды с именем сценария в качестве параметра случайным (?) образом открывает одну игровую зону сценария. Выполнение команды с параметром DRAW приводит к вылету игры, если текущей зоной на настоящий момент не является зона с базой. В противном случае генерируется файл scenario.dot, содержащий граф текущего сценария. |
scenetemplate | Идентификатор карты. | Грузит указанную карту с видом сверху. Скроллировать карту нельзя, для чего сделали команду - непонятно. |
script_rnd | ||
script_run | имя скрипта | Выполнить указанный скрипт на Lua. Файл должен лежать в директории scripts. |
script_show | ||
scripterror | ||
seeall | ||
sequence | zone [scenario] [zone] [clue1] [clue2]...[pers1] [pers2]... | |
setvar | имя переменной = значение | Альтернативный способ задания глобальных переменных, которыми, по сути, являются большинство описанных тут команд. К примеру последовательности setvar cheat_global_xcom=1 и cheat_global_xcom 1 делают одно и тоже. В случае, если значение переменной строка, его надо заключать в кавычки. |
setxplevel | Номер уровня | Устанавливает выбранному бойцу желаемый уровень. Скиллы и перки будут так же скорректированы. |
showbind | bind-id | Посмотреть на консоли клавиатурную привязку. Список bind-id's смотреть в соответствующем разделе |
sound_autodetect | ||
sound_mode | ||
sound_musicvolume | ||
sound_outputmode | ||
sound_sfxvolume | ||
sound_update | ||
summonunit | Идентификатор юнита. | Поиметь под свою команду указанный юнит. После можно передать его противнику, или сделать нейтральным, но уже с помощью Lua. |
teleport | ||
template | [идентификатор карты] [идентификатор 1 юнита] [идентификатор 2 юнита]...[идентификатор N юнита] vs [идентификатор 1 юнита] [идентификатор 2 юнита]...[идентификатор К юнита] | "Облегченная" версия команды multiplayer. В отличие от последней идентификатор карты и команды игроков формируются в командной строке. Если опущены идентификаторы юнитов после "vs" сформированная команда просто перемещается в указанную карту. Если опущены все идентификаторы юнитов, команда формируется из отладочных немецких "трех мушкетеров". Идентификатор карты обязателен. |
ui_charresponses | ||
ui_charresponsessubtitles | ||
ui_followcamera | ||
ui_germanversion | ||
ui_hwcursor | ||
ui_messages | ||
ui_showhints | ||
ui_showicons | ||
ui_showtooltips | ||
ui_tooltipdelay | ||
unbind | bind-id | Убрать указанную клавиатурную привязку. Список bind-id's смотреть в соответствующем разделе. |
unbindall | Нет | Убрать все клавиатурные привязки. |
unsummonunit | Идентификатор юнита. | Убрать указанный юнит с карты. |
wirbelwind | Нет | Шаманство, которое нужно прописать в конце autoexec.cfg чтобы получить возможность включить консоль. |
zone | zone [scenario] [zone] [clue1] [clue2]...[pers1] [pers2]... |
Взаимодействие с Lua
Во первых строках настоятельно рекомендую ознакомиться с Reference manual for Lua
5.0. Впрочем, если Вы не собираетесь писать головоломные скрипты, а просто
хотите немного поэксперементировать, этого не требуется - синтаксис языка
интуитивно понятен.
Несколько общих положений.
- В отличие от консольных команд регистр при вызове методов Lua играет роль.
- Вызов метода из консоли должен начинаться с символа @.
- Следует помнить, что это - функции, и не забывать расставлять скобки вокруг параметров.
- Можно использовать только вызов одиночных методов
- Можно использовать только вызов методов которые
- Не имеют параметров
- Принимают в качестве параметров константы
- Принимают в качестве параметров переменные, обьявленные в скрипте текущей зоны
- Принимают в качестве параметров результаты других функции (стандартных, или реализованных в скрипте текущей зоны)
- Принимают в качестве параметров обьекты, которые можно получить из комбинации клавиатурной привязки obj_under_cur и переменной ouc. (Подробнее см. в соответствующем разделе)
Несколько примеров использования Lua из консоли:
@Difficulty(3)Сменить уровень сложности текущей игры на "невозможный". Для прочих уровней сложности нужно использовать константы 1 и 2 соответственно.
@UnitAIMode( ouc, false )Отключить AI юнита, предварительно помещенного с помощью obj_under_cur в переменную ouc. Чтобы включить, второй параметр нужно поставить в true. Вообще удобный способ борьбы с "подвисами" игры на ходе союзников/противников.
@UnitApplyCritical( ouc, 21 )Причинить юниту, предварительно помещенному с помощью в переменную ouc, критическое повреждение. В данном случае - 21 - смерть. Табличку критических повреждений смотреть тут.
@UnitGiveRandomPerks( ouc )Выдать юниту в ouc полный набор рандомных перков. Чтобы перки действительно выдались, необходимо, чтобы место под перки уже имелось, т.е. предварительно надо повысить уровень юнита с помощью UnitSetXPLevel например. А вот такой вызов
@UnitTakePerk( ouc, 8 )Места под перк не требует. Более того, не требует вообще наличия дерева перков у юнита. Идентификаторы перков смотреть тут. Конкретно для данного случая - 8 - это повышенное уклонение при снижении VP.
@UnitRegenerateVP( ouc, 1000 )Вылечить 1000 VP у юнита в ouc.
@UnitHealCriticals( ouc )Вылечить критические повреждения у юнита в ouc.
@UnitRemove(ouc)Удалить юнит в ouc с карты.
@UnitSetPlayer( ouс, 0 )Определить контроль над юнитом. Вторым параметром указывается номер игрока, которому передается юнит. 0 - это Вы. Наличие прочих номеров зависит от того, сколько игроков в текущей игровой зоне и определяется создателем зоны. Например, в random encounter 1 - это противник. Четкой фиксации типа "1 - axis; 2 - allies; 3 - neitral" нет. Обычно данный вызов используется после summonunit. Кроме того при передаче юнита под контроль машины можно выставить ему поведение, например
@UnitSetFearLogic( ouc ) @UnitSetPanicLogic( ouc ) @UnitSetNormalLogic( ouc )
@UnitSetSkillMaxValue( ouc, ST_SNIPE, 70 )Установить скилл снайперской стрельбы для юнита в ouc в 70. Полный список того, что можно менять данным методом можно найти в файле scripts\Constants.l. Перечислю:
- ST_MELEE - рукопашный бой
- ST_SHOOTING - стрельба
- ST_THROWING - броски
- ST_BURST - стрельба очередью
- ST_SNIPE - снайперская стрельба
- ST_STEALTH - скрытность
- ST_SPOT - наблюдательность
- ST_MEDICINE - медицина
- ST_ENGINEERING - инженерия;
- ST_VP - количество VP
- ST_AP - количество AP
- ST_IC - уклонение
- ST_INTERRUPT - перехват
- ST_STR - сила
- ST_DEX - ловкость
- ST_INT - интеллект
- ST_LEVEL - уровень
Для установки уровня юнита можно использовать еще одну функцию:
@UnitSetXPLevel( ouc, 4 )Установить уровень юнита, предварительно помещенного с помощью в переменную ouc в 4. В отличие от UnitSetSkillMaxValue( ouc, ST_LEVEL, 4 ) данный вызов приведет к увеличению значений атрибутов и скиллов, т.е. эмулируется выдача юниту большого куска экспы.
@KillEmAll()Думаю, комментарии не требуются :)
К оглавлению