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