0A8C: write_memory 0x6E0A3B size 6 value 0x90 virtual_protect 1]]>
+1300 = [dword] Alternate siren (honking): 0 = off 1 = on Note: Automatically gets reset back to 0. To prevent this just NOP 0x6E0A3B (6 bytes).
(адрес активирует на машине клаксон)
Собственно всё работает, но, чтобы сигнал не прерывался код нужно зацикливать, а мне это не желательно. Объясните как использовать последнюю строчку, чтобы не зацикливать скрипт.
По какому адресу можно узнать активно ли меню настроек звука в GTA III?
Поищи тут.
Даже если конкретно этого нет - возможно, найдешь что-то похожее или сможешь спросить в той теме(тебе нужен адрес Menu ID).
0A8C: write_memory 0xA10B63 size 1 value 0 virtual_protect 1
Применять ПОСЛЕ запуска катсцены, МИНИМУМ через 0ms после оного. После каждого отключения катсцены(а вернее - при каждом новом запуске) значение нужно выставлять заного.
Почему бы не заблочить адрес в этом значении навсегда(или занопить его изменение)?
Ответ: в этом случае катсцены будут некорректно запускаться, так что лучше этого не делать, и менять значение каждый раз после запуска катсцены.
Таким образом, можно спокойно лазить по меню во время проигрывания катсцены(если разморозить(0) мир по адресу 0xA10B36). Скоро это появится в Main Menu Scene
Молодцы! Только virtual_protect наверно должен быть равен 1, ведь это область памяти read-only.
Спс за инфу, но как это вообще узнается(на будущее)? Я просто ставлю virtual_protect 1 только если не работает virtual_protect 0, а в этом случае 0 работает
]]>Shag wrote:как вернуть игроку управление во время катсцены?
Вопрос для Vice City решен(спасибо DK!) - нужно занопить 16 байт по адресу 0x40703E, т.е.
0A8C: write_memory 0x40703E size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x407042 size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x407046 size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x40704A size 4 value 0x90909090 virtual_protect 0
Молодцы! Только virtual_protect наверно должен быть равен 1, ведь это область памяти read-only.
]]>Mr.GeniusZ wrote:А для саньки те же адреса?
Я не смог найти. Дело в том, что в Вайсе игрок блочится в опкоде
02E4: load_cutscene_data 'ololo'да блочится так, что не помогает даже
01B4: set_player $PLAYER_CHAR can_move 1Поэтому-то и пришлось ковырять память. А в СА в структуре опкода я блок игрока не нашел, поэтому хз... Я мало знаю о СА - там действительно, как в Вайсе, разблочить управление не помогает опкод 01B4? Т.е. после запуска катсцены, минимум через 0 мс запустить код:
02A3: enable_widescreen 0 Camera.SetBehindPlayer 015A: restore_camera 01B4: set_player $PLAYER_CHAR can_move 1Т.к. блокировки управления в опкоде 02E4 в СА я не нашел - это должно работать...
Прочекал, блокировка все-таки есть, и адреса с вайса не подходят...
]]>А для саньки те же адреса?
Я не смог найти. Дело в том, что в Вайсе игрок блочится в опкоде
02E4: load_cutscene_data 'ololo'
да блочится так, что не помогает даже
01B4: set_player $PLAYER_CHAR can_move 1
Поэтому-то и пришлось ковырять память. А в СА в структуре опкода я блок игрока не нашел, поэтому хз... Я мало знаю о СА - там действительно, как в Вайсе, разблочить управление не помогает опкод 01B4? Т.е. после запуска катсцены, минимум через 0 мс запустить код:
02A3: enable_widescreen 0 Camera.SetBehindPlayer 015A: restore_camera 01B4: set_player $PLAYER_CHAR can_move 1
Т.к. блокировки управления в опкоде 02E4 в СА я не нашел - это должно работать...
]]>Shag wrote:как вернуть игроку управление во время катсцены?
Вопрос для Vice City решен(спасибо DK!) - нужно занопить 16 байт по адресу 0x40703E, т.е.
0A8C: write_memory 0x40703E size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x407042 size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x407046 size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x40704A size 4 value 0x90909090 virtual_protect 0
А для саньки те же адреса?
]]>как вернуть игроку управление во время катсцены?
Вопрос для Vice City решен(спасибо DK!) - нужно занопить 16 байт по адресу 0x40703E, т.е.
0A8C: write_memory 0x40703E size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x407042 size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x407046 size 4 value 0x90909090 virtual_protect 0 0A8C: write_memory 0x40704A size 4 value 0x90909090 virtual_protect 0]]>