Разработка и ромхакинг > Ромхакинг и программирование
[PC] Alien Shooter - Начало Вторжения - изменение управления
(1/1)
-ZigZag-:
Приветствую всех, кто хотя бы зашёл посмотреть, о чём эта тема. В Alien Shooter и других играх от Sigma Team есть одна мелочь, которая меня жутко раздражает. Это нелогичный выбор оружия. В игре все доступные средства выживания расположены на экране сверху вниз. Но когда я только начал в него играть (в начале этого года, как ни удивительно) и стал выбирать оружие мышкой, у меня случился когнитивный диссонанс: как это возможно, чтобы прокруткой вверх (от себя) выбиралась пушка, которая на экране находится ниже? Бред же. Управление в игре можно поменять, отредактировав конфиг в корневом каталоге игры. Но за смену оружия там отвечают другие кнопки - Q (предыдущее) и E (следующее), пользоваться которыми неудобно, так как все пальцы левой руки заняты передвижением. Их можно отключить вовсе, удалив строки из конфига, но выбор мышью всё равно функционирует. То есть, надо искать глубже.

Можно было бы сказать, что это дело привычки, но я дважды прошёл Alien Shooter, по одному разу дополнения The Experiment, Fight for Life, мод Rubilovo, Zombie Shooter 1 и 2. Привыкнуть к этому, по-моему, невозможно. Тем не менее, на форумах не видел ни одного комментария по этому поводу.

Вопрос - что сломать в игре, чтобы убрать эту инверсию при выборе? В ромхакинге не силён, сам сделать не могу. Посему, прошу помощи того, кто знает, что искать, или подсказки, как это можно сделать. Хотя бы костыль.

Решениe
Установить AutoHotKey, создать файл *.ahk с текстом

--- Код: ---WheelDown::WheelUp
WheelUp::WheelDown

--- Конец кода ---
Запустить скрипт, затем игру.
white_power:
Я тут не по делу, но черт дери разрабов сделавших управление через пень колоду, ну и в дополнение скажу , привыкай, а то оружие там инверсия, я вот до сих пор кое где мучаюсь, но проходить не особо мешает, побеждаешь любой криворукий код оформленный в управление, ну за исключением уж совсем садомазохистских игр, в которых при плохом управлении ещё и физика как на луне, короче нутыпонел.
Skay:
Дело как воспринимать.  Просто не курсор двигается по списку оружия, а крутится список  :neznayu:
krocki:
Качаешь прогу CheatEngine -> подрубаешь её к игре -> ищешь адрес этого переключения оружия путём неизвестного значения -> ставишь бряк на тот адрес и смотришь в памяти отладки где и какой код нужно юзать или дальше реверсить по коду и искать. ;)
Yoti:

--- Цитата: -ZigZag- от 28 Ноябрь 2017, 15:56:01 --- В ромхакинге не силён
--- Конец цитаты ---
Да и с терминологией проблемы есть.
-ZigZag-:

--- Цитата: krocki от 29 Ноябрь 2017, 04:23:33 ---Качаешь прогу CheatEngine -> подрубаешь её к игре -> ищешь адрес этого переключения оружия путём неизвестного значения -> ставишь бряк на тот адрес и смотришь в памяти отладки где и какой код нужно юзать или дальше реверсить по коду и искать.
--- Конец цитаты ---
Так, уже хорошо. Спасибо, в выходные попробую отыскать.

Поковырял CE, нашёл, что меняется при смене оружия (35 адресов). Вычислил тот, что отвечает за выбранное. Посмотрел, какие инструкции с ним работают (штук 8), выбрал ту, что управляет одним параметром (id оружия), нажал, кажется, show disassembler, поставил брекйпоинт на выделенную команду. При попытке поменять оружие он, на удивление, срабатывает. Я хоть правильно вас понял? :neznayu: Если да, что дальше искать? Если нет... пойду гайды смотреть. :)

--- Цитата: Yoti от 29 Ноябрь 2017, 13:08:04 ---Да и с терминологией проблемы есть.

--- Конец цитаты ---
Можно конкретнее? Вроде, всего одно сообщение написал, а уже где-то ошибся. :blush:
krocki:
Угу, всё правильно...дальше меняешь инструкции так что бы юзалось так как тебе надо...ааммм...нужно знать понятие работы в DASM...типа что за инструкции и как они робят...для дальнейшего патча\изменения кода. ;)
-ZigZag-:
krocki, тут уже сложнее. :) Ну, попробую разобраться.
krocki:
Найти адрес и брякнуть его, каждый может это сделать, а вот знание ассемблера и написания скрипов...уже не каждый! ^_^
-ZigZag-:
krocki, это понятно. Но найти человека, который сделает это за "спасибо", тоже не так просто. Все с чего-то начинали. :)
Skay:
-ZigZag-, не ковыряй игру, сделай себе глобальный хук, который бы на одно вращение колесика мыши отправлял бы другое. и наоборот. Самый простой вариант. Будешь запускать перед игрой.
-ZigZag-:

--- Цитата: Skay от 02 Декабрь 2017, 09:37:59 ---не ковыряй игру, сделай себе глобальный хук, который бы на одно вращение колесика мыши отправлял бы другое. и наоборот. Самый простой вариант. Будешь запускать перед игрой.

--- Конец цитаты ---
Была мысль сделать подобное, но, всё-таки, приоритет на изменение самой игры. В любом случае, благодарю за совет.
Skay:
-ZigZag-, то же самое и для самой игры можно делать. перехватывать только в ней. А чтоб проще цепляться к игре было , есть уже готовый хук https://github.com/ThirteenAG/Ultimate-ASI-Loader/releases
-ZigZag-:
Установил AutoHotKey и создал файл *.ahk с текстом

--- Код: ---WheelDown::WheelUp
WheelUp::WheelDown

--- Конец кода ---
Запустил скрипт, игру - работает. Только положительных эмоций от результата не получено, так как проблема решена с использованием стороннего софта. Но учить ради этого несколько языков программирования точно не стоит. krocki, Skay, спасибо за советы.
Навигация
Главная страница сообщений

Перейти к полной версии