Исходная схема клавиатуры
Многие из вас возможно задавались подобными вопросами:
- Для чего служат файлы kb_act.lst, kb_def.lst, kb_keys.lst?
- Как производится исходная настройка клавиш "по умолчанию" для мода?
В данном учебнике мы попытаемся раскрыть эти вопросы.
Исходная схема клавиатуры отображаемая в опциях настройки клавиатуры меню Настройка -> Клавиатура
создается связанными коммандами из файла {ИМЯ_МОДА}/cfg/config_default.cfg.
Это означает что НЕ требуется использовать kb_def.lst.
Файл config_default.cfg не содержит всех переменных с архивным флагом которые содержаться в
config.cfg. Файл config_default.cfg может загружаться из source engine.gcf,
вот как он выглядит в оригинале:
// YWB 10/10/03:
// If the user doesn't have a config.cfg when they run, this gets executed the first time they run the engine
// It doesn't execute if they have their own config.cfg saved out.
unbindall
bind "ESCAPE" "cancelselect"
bind "`" "toggleconsole"
bind "w" "+forward"
bind "s" "+back"
bind "a" "+moveleft"
bind "d" "+moveright"
bind "SPACE" "+jump"
bind "CTRL" "+duck"
bind "e" "+use"
bind "c" "impulse 50"
bind "r" "+reload"
bind "ALT" "+walk"
bind "SHIFT" "+speed"
bind "MOUSE1" "+attack"
bind "MOUSE2" "+attack2"
bind "f" "impulse 100"
bind "1" "slot1"
bind "2" "slot2"
bind "3" "slot3"
bind "4" "slot4"
bind "5" "slot5"
bind "6" "slot6"
bind "7" "slot7"
bind "MWHEELUP" "invprev"
bind "MWHEELDOWN" "invnext"
bind "q" "lastinv"
bind "F5" "jpeg"
bind "F6" "save quick"
bind "F9" "load quick"
bind "PAUSE" "pause"
bind "z" "+zoom"
bind "g" "phys_swap"
Комманды клавиатуры
Клавиатурные комманды ссылаются на список комманд и заголовков в файле
scripts/kb_act.lst который отображается в опциях настройки клавиатуры меню Настройка -> Клавиатура.
Для создания заголовка, использется следующий формат в kb_act.lst:
"blank" "=========================="
"blank" "#Tokenized_String"
"blank" "=========================="
Строка Tokenized_String должна присутствовать в файле resource/ИМЯ_МОДА_english.txt и
других языковых скриптах которые используются в вашем моде.
Если вы используете русский язык, следует сохранять файл в кодировке UTF-8.
Оригинальный kb_act.lst из source engine.gcf выглядит следующим образом:
"blank" "=========================="
"blank" "#Valve_Movement_Title"
"blank" "=========================="
"+forward" "#Valve_Move_Forward"
"+back" "#Valve_Move_Back"
"+moveleft" "#Valve_Move_Left"
"+moveright" "#Valve_Move_Right"
"+speed" "#Valve_Sprint"
"+jump" "#Valve_Jump"
"+duck" "#Valve_Duck"
"blank" "=========================="
"blank" "#Valve_Combat_Title"
"blank" "=========================="
"+attack" "#Valve_Primary_Attack"
"+attack2" "#Valve_Secondary_Attack"
"+reload" "#Valve_Reload_Weapon"
"+use" "#Valve_Use_Items"
"phys_swap" "#Valve_Gravity_Gun"
"impulse 100" "#Valve_Flashlight"
"+zoom" "#Valve_Suit_Zoom"
"impulse 50" "#Valve_Commander_Mode"
"slot1" "#Valve_Weapon_Category_1"
"slot2" "#Valve_Weapon_Category_2"
"slot3" "#Valve_Weapon_Category_3"
"slot4" "#Valve_Weapon_Category_4"
"slot5" "#Valve_Weapon_Category_5"
"slot6" "#Valve_Weapon_Category_6"
"invnext" "#Valve_Next_Weapon"
"invprev" "#Valve_Previous_Weapon"
"lastinv" "#Valve_Last_Weapon_Used"
"blank" "=========================="
"blank" "#Valve_Miscellaneous_Title"
"blank" "=========================="
"incrementvar closecaption 0 1 1" "#Valve_CC_Toggle"
"jpeg" "#Valve_Take_Screen_Shot"
"save quick" "#Valve_Quick_Save"
"load quick" "#Valve_Quick_Load"
"pause" "#Valve_Pause_Game"
"quit" "#Valve_Quit_Game"
"blank" "=========================="
"blank" "#Valve_Miscellaneous_Keyboard_Keys_Title"
"blank" "=========================="
"+walk" "#Valve_Walk"
"+left" "#Valve_Turn_Left"
"+right" "#Valve_Turn_Right"
"+moveup" "#Valve_Swim_Up"
"+movedown" "#Valve_Swim_Down"
"+lookup" "#Valve_Look_Up"
"+lookdown" "#Valve_Look_Down"
"+strafe" "#Valve_Strafe_Modifier"
"+klook" "#Valve_Keyboard_Look_Modifier"
Как видно, формат добавления комманд в список довольно прост. Следует
обратить внимание что комманды с "+" автоматически создают "-" комманды
используещиеся при отпускании клавиши. Для примера можно создать,
произвольную комманду "+camera"
и привязать ее к клавише "TAB". Теперь если зпустить игру и нажать TAB,
открыв консоль можно увидеть следующие сообщения:
Unknown command: +camera
Unknown command: -camera
Используйте данную информацию при проектировании собственных клавиатурных комманд.
Источник: www.eveloper.valvesoftware.com
Перевод и дополнения: DarkLight |