Общие сведения

События о клавиатуры и мыши привязываются к конкретным действиям в игре посредством файла input.cfg, который располагается в директории cfg. Структура файла достаточно проста. Операторы bindsection [имя секции] разделяют его на части, определяя, в какой части игры будет действовать привязка. Имя секции может быть: menu, game, mapeditor, dummy. Те привязки, которые не попадают ни в одну секцию (т.е. находятся до первого оператора bindsection) действуют везде.
Как не трудно заметить, если Вы расположите привязку в секции dummy (т.е. в конце файла) она не будет действовать нигде. Отсюда правило - пиво должно быть правильное, добавляйте новые строчки после оператора bindsection game, или, если ломает его искать - в начале файла. (Далее я не буду расматривать содержимое секций mapeditor, редактор на настоящий момент меня мало интересует).
Основным инструментом работы является оператор bind. Его формат:

   bind [+,-,!]'bind-id' 'KEY1' + 'KEY2' + ...
где bind-id - идентификатор действия, KEY - событие от клавиатуры либо мыши. Знак "!" перед bind-id означает, что действие будет производиться при прекращении события (т.е. при отпускании клавиши, например) "+" и "-" используются для указания направления действия, в случае, когда действие может этим направлением обладать (+camera_zoom,-camera_zoom и т.п.).
Немного про формат KEY. Кроме собственно алфавитно-цифровых клавиш он может быть одним из приведенного ниже списка.

Кнопки мыши: MOUSE_BUTTON0...MOUSE_BUTTON7
Колесо мыши: MOUSE_AXIS_Z
Движение мыши: MOUSE_AXIS_Y, MOUSE_AXIS_X
Разнообразная экзотика: MEDIA_SELECT, MAIL, MYCOMPUTER, WEB_BACK, WEB_FORWARD,WEB_STOP, WEB_REFRESH, WEB_FAVOR, WEB_SEARCH, WAKE, SLEEP, POWER, APP_MENU, WEB_HOME, VOL_UP, VOL_DOWN, MEDIA_STOP, PLAY, CALCULATOR, MUTE, NEXT_TRACK, UNLABELED, STOP, KANJI, PREV_TRACK, ABNT_C2, YEN, NOCONVERT, CONVERT, ABNT_C1, KANA, OEM_102, NUM.
Прочие клавиши:RWIN, LWIN, DELETE, INSERT, PG_DOWN, DOWN, END, RIGHT, LEFT, PG_UP, HOME, PAUSE, RALT, SYSRQ, NUM_DIVIDE, NUM_COMMA, RCTRL, NUM_ENTER, UNDERLINE, COLON, NUM_EQUALS, F1...F15, NUM_PERIOD, NUM_0...NUM_9, SCROLL, CAPITAL, SPACE, LALT, NUM_MULTIPLY, RSHIFT, LSHIFT, LCTRL, ENTER, TAB, BACKSPACE, ESC.

Используя bind-id "modificator" в команде bind, можно указать системе, что данная кнопка будет использоваться не сама по себе, а в качестве модификатора для других. Так, например, в стандартном input.cfg оформлены клавиши LSHIFT, LCTRL, RSHIFT, и RCTRL.
Ну вот, с базовыми определениями разобрались, самое время посмотреть, какие, собственно, бывают bind-id's.

Читы

Bind-id Действие Кнопка
cheat_teleport Перебрасывает выбранного бойца в место, на которое указывает курсор мыши.  
click_of_death Уничтожает обьект, на который указывает курсор мыши.  
explosion Производит взрыв по месту, на который указывает курсор мыши.  
hideinterface Гасит различные части интерфейса. Полезно для снятия скриншотов, например.  
hideinterface_special  
hideinterface_trailer  
obj_under_cur Помещает идентификатор обьекта, на который указывает мышь, в переменную Lua ouc. После чего эту переменную можно использовать при вызове методов Lua.  
rpg_stats Выдает статистику бойцов на консоль.  
rpg_vision Показывает область видимости для выбранного бойца. В интерпретации цветовых обозначений затрудняюсь.  
rpg_visibility Показывает, насколько виден выбранный боец (в окружности нескольких метров от текущего положения курсора мыши).  
showfps Показывает fps, количество памяти, занятой под текстуры и прочие данные. SCROLL
console Включает/выключает консоль ~

Забавные эффекты

Bind-id Действие
toggle_lightmaps Делает карту темнее/светлее.
toggle_transparent Перебор слоев (?). Затрудняюсь обьяснить.
test_snow Включает снег. Забавно. Но выключить никак :) Можно только...
test_rain ...сменить на дождь.
switch_timeofday Меняет время суток на противоположное.
switch_lighting Переключает освещенность. Выводит диогностику на консоль. Похоже на switch_timeofday, но по другому.
test_intersect Рисует нечто странное.
erase_part Удаляет часть обьекта, на которую указывает курсор мыши. Можно, например, снять с бойца каску. Занятно.
wireframe Как и обещали, анимация скелетная. Убирает часть текстур и кажет эти самые скелеты.
explode Эффект взрыва на выбранном бойце. Ущерба бойцу не наносит. Вспоминается визуализация заклинаний в NeverWinter Nights.
switch_particles Включает/выключает листву на деревьях. Кстати, данный shortcat разработчики забыли включить в input.cfg, поставляющийся с патчем - до патча он там присутствовал и работал по Ctrl-K.

Не знаю что.

Bind-id Действие
memorystats ?
toggle_fog ?
toggle_hsr ?
showrad ?

Быстрые клавиши

Bind-id Действие Кнопка
Ниже перечислено то, что включает в себя стандартный файл input.cfg после патча.
camera_forward Сдвинуть камеру вперед/назад UP; DOWN
camera_fps_pitch   MOUSE_AXIS_Y
camera_fps_rotate   MOUSE_AXIS_X
camera_pitch Наклонить камеру CTRL+UP; CTRL+DOWN
camera_rotate Вращать камеру CTRL+RIGHT; CTRL+LEFT
camera_strafe Сдвинуть камеру влево/вправо RIGHT; LEFT
camera_zoom Приблизить/отодвинуть камеру PG_UP; PG_DOWN
cancel   ESC
character Вывести/скрыть окно параметров персонажа U
clues Показать журнал J
confirm   ENTER
cursor_x   MOUSE_AXIS_X
cursor_y   MOUSE_AXIS_Y
endofturn Конец хода ENTER
exitgame Выход из игры CTRL+C; CTRL+Q
floor_slider Перключение этажей CTRL+MOUSE_AXIS_Z
focus_unit Центрировать камеру на выбранном персонаже HOME
gamemenu Игровое меню F10
hero_next Выбрать следующего персонажа TAB
hero_prev Выбрать предыдущего персонажа SHIFT+TAB
hqscreenshot Сделать скриншот в высоком качестве SHIFT+SYSRQ
inventory Вывести/скрыть окно предметов I
leftbutton_down   MOUSE_BUTTON0
leftbutton_up   MOUSE_BUTTON0
load Загрузка быстрой записи F8
loadmenu Загрузка игры F7
modifier Указывает, что указанные кнопки будут рассматриваться как модификаторык другим клавишам SHIFT; CTRL
next   SPACE
next_floor Показать уровень (этаж) выше NUM_PLUS
objectives Показать задание O
pause Пауза PAUSE
prev_floor Показать уровень (этаж) ниже NUM_MINUS
rightbutton_down   MOUSE_BUTTON1
rightbutton_up   MOUSE_BUTTON1
save Быстрая запись игры F5
savemenu Запись игры F6
screenshot Сделать скриншот SYSRQ
scroll Скроллировать карту MOUSE_AXIS_Z
showitems Вывести названия всех лежащих предметов ALT
skipScript Пропустить все фразы и завершить диалог ESC
skipScriptPart Перейти к следующей фразе SPACE
slot_next Сделать активным следующий оружейный слот B
startofturn Перейти в пошаговый режим ENTER
hero_1 Выбрать 1го персонажа 1
hero_2 Выбрать 2го персонажа 2
hero_3 Выбрать 3го персонажа 3
hero_4 Выбрать 4го персонажа 4
hero_5 Выбрать 5го персонажа 5
hero_6 Выбрать 6го персонажа 6
hero_7 Выбрать 7го персонажа 7
select_all_units Выбрать всех персонажей =
hitlocation_body Целиться в тело NUM_5
hitlocation_head Целиться в голову NUM_8
hitlocation_larm Целиться в левую руку NUM_4
hitlocation_lleg Целиться в левую ногу NUM_1
hitlocation_rarm Целиться в правую руку NUM_6
hitlocation_rleg Целиться в правую ногу NUM_3
move Двигаться M
attack Атаковать A
firstaid Первая помощь A
usetool Использовать инструмент A
setmine Установить мину A
dropcorpse Бросить тело A
unit_rotate Осмотреться L
weapon_reload Перезарядить оружие R
hide Замаскироваться H
pose_run Встать/бежать Z
pose_normal Встать/идти X
pose_crouch Присесть/красться C
pose_crawl Лечь/ползти V
pose_strafe Держать ориентацию D
continue Продолжить движение M
weapon_snapshot Выстрел навскидку Q
weapon_aimedshot Прицельный выстрел W
weapon_carefulshot Меткий выстрел E
weapon_shortburst Короткая очередь F
weapon_longburst Длинная очередь G
weapon_snipeshot Режим снайперской стрельбы T
weapon_prevmode Переключиться в предыдущий режим [
weapon_nextmode Переключиться в следующий режим ]
nextenemy В таком виде не работает. Ошибка разработчиков. Должно быть - next_enemy. Переключиться на следующего видимого врага. N
А это - то, что не включает.
endmission Закончить миссию  
arrange    
unload Разрядить оружие  
exitpk Выйти из ПК  
next_enemy Переключиться на следующего видимого врага  
slot_prev Сделать активным предыдущий оружейный слот  
snipe_attack Произвести снайперский выстрел  
grenade_settrap Установить растяжку  
grenade_throw Бросить гранату  
collectap_all Перенести выстрел на следующий ход  
collectap_max Задействовать все AP на прицеливание  
collectap_10ap Задействовать на прицеливание еще 10 AP  
collectap_1ap Задействовать на прицеливание еще 1 AP  
submenu_grenademode Подменю гранат  
submenu_weaponmode Подменю стрелкового оружия  
submenu_poseselect Подменю выбора положения тела  
settrap    
cancelaction    

К оглавлению
Hosted by uCoz