You are not logged in.
Адрес вроде таков: 0x4686A0
Это не адрес памяти, а оффсет от начала файла. Если нужно просто посмотреть код exe, не редактируя его, то удобнее всего воспользоваться базой для IDA. Значение оффсета от начала файла и адрес памяти в этом случае отображаются одновременно:
В 0A8C всегда нужно подставлять адрес памяти, а не оффсет.
Ничего не происходит...если поставить virtual_protect 0, то игра вылетает...
С адресов типов rdata и text при чтении или записи надо снимать защиту (virtual protect 1).
Offline
спасибо большое, при помощи IDA определил таки адрес памяти....при чтении всё нормально, читается именно то что мне нужно, однако если записать что-то своё, то в игре ничего не меняется...причём если после записи, считать то что записал, то окажется, что запись прошла успешно....однако, может ли такое быть? ведь в игре ничего не поменялось...а должна была воспроизводиться другая анимация, во время висения...когда редактируешь exe она действительно меняется...как быть?
Offline
Значение оффсета от начала файла и адрес памяти в этом случае отображаются одновременно:
А еще в IDA можно воспользоваться командой Jump -> Jump to file offset...
Offline
а должна была воспроизводиться другая анимация
Не факт, ведь неизвестно точное предназначение этих адресов. Странно то, что на данные адреса не ссылается ни одна процедура (может они вообще не используются?).
Last edited by Den_spb (12-03-2011 00:51)
Offline
Offline
Скажите пожалуйста,из-за чего вылетает игра с опкодом?
0137: car 0@ model == #модель
Спасибо.
Offline
Спасибо за ответ,но я уже сделал по другому)
Теперь меня интересует вопрос,есть ли подходящий опкод для сохранения скорости авто? Ну или что бы предел максимальной можно было ограничить.
00AD: set_car 36@ max_speed_to 10.0
Работает только когда авто на автопилоте,а когда сам рулишь не хочет.
Offline
Если кто знает, скажите какой опкод нужен для случая:
if
---> скорость машины 0@, равна или меньше (опеределенного значения) <---
jump @1234
Last edited by Ty6ePkYJIe3 (17-03-2011 19:09)
Offline
02E3: 1@ <= car 0@ speed
Попробуй этот.
Last edited by Mr.Nick (17-03-2011 19:31)
Offline
@Ty6ePkYJIe3 -
Opcode search tool открываешь и таких вопросов больше не возникнет:
... 02E3: 1@ = car 0@ speed if 002B: VALUE >= 1@ then //00A6: destroy_car 0@ end ...
02E3: 1@ <= car 0@ speed
Попробуй этот.
Last edited by Sergey81 (17-03-2011 19:52)
Offline
Спасибо всем, очень помогли
Offline
Можно ли эмулировать нажатие клавиш? Кажется, где-то подобное видел, но не могу найти
Offline
Можно. Записать по адресу клавиши, значение 255 (нажата).
Список клавиш и примеры проверки нажатия есть в хелпе к санни билдеру.
Offline
t]Можно. Записать по адресу клавиши, значение 255 (нажата).
Список клавиш и примеры проверки нажатия есть в хелпе к санни билдеру.
Это действительно сработает?? Не думал что всё так просто...надо проверить)
Last edited by Voron295 (18-03-2011 21:18)
Offline
Кто знает опкод для того,что бы спустить машине колеса,и наоборот.
Offline
Ещё пара вопросов
Мне нужно, чтобы человек бежал в опр точку, за что отвечает mode? И как заставить его следовать в основном по путям? И то же самое с машиной
Offline
вот попробовал сделать нажатие кнопок, не работает
{$CLEO} 0000: :1 wait 0 if player.Defined($PLAYER_CHAR) jf @1 if 0AB0: key_pressed 106 jf @1 0A8C: write_memory 0x4A572 size 1 value 0x00FF0000 virtual_protect 0 0A8C: write_memory 0x4A599 size 1 value 0x00FF0000 virtual_protect 0 0A8C: write_memory 0x4A59A size 1 value 0xFF virtual_protect 0 0A8C: write_memory 0x4A597 size 1 value 0xFF virtual_protect 0 0A8C: write_memory 0x4A598 size 1 value 0xFF virtual_protect 0 0A8C: write_memory 0x4A5A0 size 1 value 0xFF virtual_protect 0 0A8C: write_memory 0x4A59D size 1 value 0xFF virtual_protect 0 0A8C: write_memory 0x4A56A size 1 value 0x00FF0000 virtual_protect 0 wait 1000 jump @1
Offline
@Airon - здесь есть скрипт Night_Vision.cs с исходником в папке plugins, но приведу код на всякий случай:
{$cleo} wait 0 Model.Load(#NVGOGGLES) 20@ = 17 20@ *= 2 20@ += 0xB73458 while true wait 0 if and // Player.Defined($PLAYER_CHAR) 80DF: not actor $PLAYER_ACTOR driving 8818: not actor $PLAYER_ACTOR in_air 0AB0: key_pressed 50 then 0470: 0@ = actor $PLAYER_ACTOR current_weapon wait 10 if 8611: not actor $PLAYER_ACTOR performing_animation "WEAPON_crouch" then 01B2: give_actor $PLAYER_ACTOR weapon 44 ammo 1 wait 20 0A8C: write_memory 20@ size 2 value 0xFF virtual_protect 0 wait 1100 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0@ end if 0611: actor $PLAYER_ACTOR performing_animation "WEAPON_crouch" then 01B2: give_actor $PLAYER_ACTOR weapon 44 ammo 1 wait 20 0A8C: write_memory 20@ size 2 value 0xFF virtual_protect 0 wait 1100 01B9: set_actor $PLAYER_ACTOR armed_weapon_to 0@ 0A8C: write_memory 0xB7347C size 2 value 0xFF virtual_protect 0 end end // if and //Player.Defined($PLAYER_CHAR) 00DF: actor $PLAYER_ACTOR driving 0AB0: key_pressed 50 then wait 100 0A8D: 1@ = read_memory 0xC402B8 size 4 virtual_protect 0 if 1@ == 0 then 25@ = 5 08B1: enable_night_vision 1 else 25@ = 0 08B1: enable_night_vision 0 end end if and 25@ == 5 00DF: actor $PLAYER_ACTOR driving 00E1: player 0 pressed_key 15 then 08B1: enable_night_vision 0 25@ = 0 end end
Собственно
20@ = 17 20@ *= 2 20@ += 0xB73458 0A8C: write_memory 20@ size 2 value 0xFF virtual_protect 0
Эмулирует нажатие кнопки выстрела. В данном случае игрок надевает очки ночного видения.
Если нужна эмуляция кнопок 0AB0, то у меня так сделать не получилось, так что помочь не могу.
Offline
Кто знает опкод для того,что бы спустить машине колеса,и наоборот.
04FE: deflate_tire 0 on_car 0@ // прокол колеса
0699: set_car 0@ repair_tire 0 // восстановление
0496: tire 0 on_car 0@ deflated // проверка на прокол
053F: set_car 0@ tires_vulnerability 0 // запрещает/разрешает прокол колёс на данном транспорте
Offline
20@ = 17 20@ *= 2 20@ += 0xB73458 0A8C: write_memory 20@ size 2 value 0xFF virtual_protect 0Эмулирует нажатие кнопки выстрела. В данном случае игрок надевает очки ночного видения.
Если нужна эмуляция кнопок 0AB0, то у меня так сделать не получилось, так что помочь не могу.
Я тоже самое пробовал, не получается, по крайней мере в сампе, хотя должно, виртуал протект ставил
Offline
@Airon -
по крайней мере в сампе
Ну так пример то проверенно рабочий, теперь ты знаешь почему не работает.
Offline
Есть предложение, как сделать чтоб в сампе работал тоже?
Offline