Вчера добрался до мода [
Moddb,
Nexus] Мартина c сайта
Art In Pinkerton, перенастраивающего управление на WASD.
Проблема с набором текста решена добавлением клавиши Alt, которую нужно удерживать во время печати.
Мод оказался текстовым файлом с настройками клавиш DOSBox. Немного потестировав его пришел к двум выводам:
1. Не работает быстрый каст (Shift+C, перевешенный на одну кнопку), заявленный в описании мода.
2. DOSBox начиная с версии 0.74 не цепляет mapper.txt без правки конфы, файл должен называться mapper-0.74.map.
После изучения структуры файла удалось найти и исправить ошибку с быстрым кастом:
Код:
key_c "key 99 mod2" "key 118" (нажатие Alt+C, или V передает в игру C)
key_v "key 118 mod2" (нажатие Alt+V передает в игру V)
key_lshift "key 96" "key 99" "key 32" "key 304" (нажатие ~, C, пробела, или LSHIFT передает в игру LSHIFT)
Видно, что нажатие C передает только LSHIFT, а нужно еще и саму C:
Код:
key_c "key 99 mod2" "key 118" "key 99" (Модификатор здесь нужен для ввода строчных "c" помимо заглавных)
Если же не менять местами C и V (зачем это вообще было нужно?), все выглядит поизящнее:
Код:
key_c "key 99" "key 118"
key_v "key 118 mod2"
key_lshift "key 96" "key 118" "key 32" "key 304"
В общем, решил сделать аналогичный мод под нашу локализацию на базе исходного маппера DOSBox 0.74.
Прежде всего была необходимость заменить модификатор Alt на Ctrl, чтобы ввод заглавных букв не переключал язык.
Также мне показалось логичным вернуть каст на C и переместить фаст тревел на T, а информацию на I. Вот что получилось:
Список новых и дополнительных клавиш:
Ctrl - нажать и удерживать при наборе текста.
Tab - карта местности, в дополнение к M.
WASD и QE - перемещение, было стрелочками и стрейф с ctrl.
T - карта мира (fast travel), в дополнение к Shift+M, или ПК по иконке.
I - информация, было S.
F - достать/убрать оружие, было A.
G - использовать предмет, в дополнение к U.
Z - воровские действия, в дополнение к P.
X - выбросить предмет из инвентаря, было D.
V - повтор последнего заклинания, в дополнение к Shift+C, или ПК по иконке.
Пробел - прыжок вперед, в дополнение к Shift+J.
Создайте файл 'mapper-0.74.map' следующего содержания и поместите его в папку с игрой
Код:
hand_shutdown "key 290 mod1"
hand_capmouse "key 291 mod1"
hand_fullscr "key 13 mod2"
hand_pause "key 19 mod2"
hand_mapper "key 282 mod1"
hand_speedlock "key 293 mod2"
hand_recwave "key 287 mod1"
hand_caprawmidi "key 289 mod1 mod2"
hand_scrshot "key 286 mod1"
hand_video "key 286 mod1 mod2"
hand_decfskip "key 288 mod1"
hand_incfskip "key 289 mod1"
hand_cycledown "key 292 mod1"
hand_cycleup "key 293 mod1"
hand_caprawopl "key 288 mod1 mod2"
hand_swapimg "key 285 mod1"
key_esc "key 27"
key_f1 "key 282"
key_f2 "key 283"
key_f3 "key 284"
key_f4 "key 285"
key_f5 "key 286"
key_f6 "key 287"
key_f7 "key 288"
key_f8 "key 289"
key_f9 "key 290"
key_f10 "key 291"
key_f11 "key 292"
key_f12 "key 293"
key_grave "key 96"
key_1 "key 49"
key_2 "key 50"
key_3 "key 51"
key_4 "key 52"
key_5 "key 53"
key_6 "key 54"
key_7 "key 55"
key_8 "key 56"
key_9 "key 57"
key_0 "key 48"
key_minus "key 45"
key_equals "key 61"
key_bspace "key 8"
key_tab "key 9"
key_q "key 113 mod1"
key_w "key 119 mod1"
key_e "key 101 mod1"
key_r "key 114"
key_t "key 116 mod1"
key_y "key 121"
key_u "key 103" "key 117"
key_i "key 105 mod1"
key_o "key 111"
key_p "key 122" "key 112"
key_lbracket "key 91"
key_rbracket "key 93"
key_enter "key 13"
key_capslock "key 301"
key_a "key 102" "key 97 mod1"
key_s "key 105" "key 115 mod1"
key_d "key 120" "key 100 mod1"
key_f "key 97" "key 102 mod1"
key_g "key 103 mod1"
key_h "key 104"
key_j "key 106" "key 32"
key_k "key 107"
key_l "key 108"
key_semicolon "key 59"
key_quote "key 39"
key_backslash "key 92"
key_lshift "key 116" "key 118" "key 32" "key 304"
key_lessthan "key 60"
key_z "key 122 mod1"
key_x "key 120 mod1"
key_c "key 99" "key 118"
key_v "key 118 mod1"
key_b "key 98"
key_n "key 110"
key_m "key 109" "key 116" "key 9"
key_comma "key 44"
key_period "key 46"
key_slash "key 47"
key_rshift "key 303"
key_lalt "key 308"
key_space "key 32 mod1"
key_ralt "key 307"
key_rctrl "key 305"
key_printscreen "key 316"
key_scrolllock "key 302"
key_pause "key 19"
key_insert "key 277"
key_home "key 278"
key_pageup "key 280"
key_delete "key 127"
key_end "key 279"
key_pagedown "key 281"
key_up "key 273" "key 119"
key_left "key 276" "key 97" "key 113"
key_down "key 274" "key 115"
key_right "key 275" "key 100" "key 101"
key_numlock "key 300"
key_kp_divide "key 267"
key_kp_multiply "key 268"
key_kp_minus "key 269"
key_kp_7 "key 263"
key_kp_8 "key 264"
key_kp_9 "key 265"
key_kp_plus "key 270"
key_kp_4 "key 260"
key_kp_5 "key 261"
key_kp_6 "key 262"
key_kp_1 "key 257"
key_kp_2 "key 258"
key_kp_3 "key 259"
key_kp_enter "key 271"
key_kp_0 "key 256"
key_kp_period "key 266"
jbutton_0_0
jbutton_0_1
jaxis_0_1-
jaxis_0_1+
jaxis_0_0-
jaxis_0_0+
jbutton_0_2
jbutton_0_3
jbutton_1_0
jbutton_1_1
jaxis_0_2-
jaxis_0_2+
jaxis_0_3-
jaxis_0_3+
jaxis_1_0-
jaxis_1_0+
jaxis_1_1-
jaxis_1_1+
jbutton_0_4
jbutton_0_5
jhat_0_0_0
jhat_0_0_3
jhat_0_0_2
jhat_0_0_1
---------------------------------------
key_lctrl "key 306" "key 113" "key 101" -- Поворот A,D
#key_lctrl "key 306" "key 97" "key 100" -- Поворот Q,E
---------------------------------------
mod_1 "key 306" "key 305"
mod_2 "key 308" "key 307"
mod_3
При желании поменять местами клавиши поворота и стрейфа, найдите в конце файла следующие строки и оставьте # перед лишней.
Код:
key_lctrl "key 306" "key 113" "key 101" -- Поворот A,D
#key_lctrl "key 306" "key 97" "key 100" -- Поворот Q,E
Сообщение отредактировал Morendil - 24.09.16 - 17:03