Автор Тема: Выкладываем наработки по анализу кода, дизассемблированные базы, адреса  (Прочитано 8037 раз)

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Где то еще должен быть пункт который добавляет к источнику lens-flare
Это уже в 2dfx. PointLight - это чисто сам свет от источника. Т.е. то, что освещает педов, авто, катсценовые и динамические объекты.
Так же у источников есть тот самый 2dfx + "тень"(отрисовка текстуры света на горизонтальной поверхности). Это уже в другом массиве(ах).

Это насколько я это всё понимаю(могу ошибаться, но вроде всё верно).

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Недавние находки:
Код: Text
  1. 0A8C: write_memory 0x488F94 size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  2. 0A8C: write_memory 0x488FCC size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  3. 0A8C: write_memory 0x488FE3 size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  4. 0A8C: write_memory 0x48901C size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  5. 0A8C: write_memory 0xA10ADC size 1 value 1 virtual_protect 1 // Make all traffic lights green
  6.  
  7. 0A8C: write_memory 0x54F429 size 5 value 0x90 virtual_protect 1 // Disable plane trails
  8.  
  9. 0A8C: write_memory 0x4ABD45 size 4617 value 0x90 virtual_protect 1 // Disable cheat codes

Оффлайн egor230

  • Новичек
  • **
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • Mr
Недавние находки:
Код: Text
  1. 0A8C: write_memory 0x488F94 size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  2. 0A8C: write_memory 0x488FCC size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  3. 0A8C: write_memory 0x488FE3 size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  4. 0A8C: write_memory 0x48901C size 5 value 0x90 virtual_protect 1 // Disable traffic lights
  5. 0A8C: write_memory 0xA10ADC size 1 value 1 virtual_protect 1 // Make all traffic lights green
  6.  
  7. 0A8C: write_memory 0x54F429 size 5 value 0x90 virtual_protect 1 // Disable plane trails
  8.  
  9. 0A8C: write_memory 0x4ABD45 size 4617 value 0x90 virtual_protect 1 // Disable cheat codes

очень полезные находки, можно подробные объяснения их.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
очень полезные находки, можно подробные объяснения их.
Первые 5 строк отключают свет светофоров и делают так, чтобы машины стали игнорировать эти светофоры.

Далее строка отключения следов гражданских самолетов в небе(когда сами самолеты(их пути) уже очищены в файлах flight папки data\paths):


Вышеописанные строки полезны, если делать постапокалиптичный мод, где необходимо "убить" всю "жизнь" в городе и над ним.

Последняя строка отключает все читы в игре.
« Последнее редактирование: Март 10, 2019, 02:14:14 pm от Shagg_E »

Оффлайн egor230

  • Новичек
  • **
  • Сообщений: 134
  • Репутация: +5/-0
    • Просмотр профиля
    • Mr
Спасибо большое Shagg_E  теперь  всё  стало понятно.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Отключение прицела/атаки у игрока:
Код: Text
  1. 0AC8: 0@ = allocate_memory_size 1898
  2. 0AB1: call_scm_func @COPY_MEMORY 4 0x53497B 0@ 1898 2 // CopyFrom, CopyTo, Size, Step
  3. wait 0 // IMPORTANT WAIT!!!
  4. 0A8C: write_memory 0x53497B size 1898 value 0x90 virtual_protect 1 // Disable Player Aim and Attack
Включение обратно:
Код: Text
  1. 0AB1: call_scm_func @COPY_MEMORY 4 0@ 0x53497B 1898 2 // CopyFrom, CopyTo, Size, Step
  2. 0AC9: free_allocated_memory 0@
SCM-функция COPY_MEMORY:
Код: Text
  1. :COPY_MEMORY
  2. 0006: 6@ = 0
  3.  
  4. :COPY_MEMORY_CYCLE
  5. 001D:   2@ > 6@
  6. jf @COPY_MEMORY_RETURN
  7. 0085: 4@ = 0@
  8. 005A: 4@ += 6@
  9. 0A8D: 5@ = read_memory 4@ size 3@ virtual_protect 1
  10. 0085: 4@ = 1@
  11. 005A: 4@ += 6@
  12. 0A8C: write_memory 4@ size 3@ value 5@ virtual_protect 1
  13. 005A: 6@ += 3@
  14. jump @COPY_MEMORY_CYCLE
  15.  
  16. :COPY_MEMORY_RETURN
  17. 0AB2: ret 0

Суть в чем: чтобы заблочить возможность целиться и атаковать, нужно занопить по адресу 0x53497B 1898 байт. Но чтобы потом вернуть всё обатно - нужно предварительно скопировать оригинальные 1898 байт в свежесозданный буфер, что скрипт и делает.

Где это может пригодиться? Ну например - в некоторых интерьерах или стелс-миссиях, где игрок не должен будет никого атаковать.

Оффлайн Saint

  • Призрак
  • Сообщений: 39
  • Репутация: +1/-0
  • Saint Games
    • saint36rus
    • Просмотр профиля
Отключение прицела/атаки у игрока:
Код: Text
  1. 0AC8: 0@ = allocate_memory_size 1898
  2. 0AB1: call_scm_func @COPY_MEMORY 4 0x53497B 0@ 1898 2 // CopyFrom, CopyTo, Size, Step
  3. wait 0 // IMPORTANT WAIT!!!
  4. 0A8C: write_memory 0x53497B size 1898 value 0x90 virtual_protect 1 // Disable Player Aim and Attack
Включение обратно:
Код: Text
  1. 0AB1: call_scm_func @COPY_MEMORY 4 0@ 0x53497B 1898 2 // CopyFrom, CopyTo, Size, Step
  2. 0AC9: free_allocated_memory 0@
SCM-функция COPY_MEMORY:
Код: Text
  1. :COPY_MEMORY
  2. 0006: 6@ = 0
  3.  
  4. :COPY_MEMORY_CYCLE
  5. 001D:   2@ > 6@
  6. jf @COPY_MEMORY_RETURN
  7. 0085: 4@ = 0@
  8. 005A: 4@ += 6@
  9. 0A8D: 5@ = read_memory 4@ size 3@ virtual_protect 1
  10. 0085: 4@ = 1@
  11. 005A: 4@ += 6@
  12. 0A8C: write_memory 4@ size 3@ value 5@ virtual_protect 1
  13. 005A: 6@ += 3@
  14. jump @COPY_MEMORY_CYCLE
  15.  
  16. :COPY_MEMORY_RETURN
  17. 0AB2: ret 0

Суть в чем: чтобы заблочить возможность целиться и атаковать, нужно занопить по адресу 0x53497B 1898 байт. Но чтобы потом вернуть всё обатно - нужно предварительно скопировать оригинальные 1898 байт в свежесозданный буфер, что скрипт и делает.

Где это может пригодиться? Ну например - в некоторых интерьерах или стелс-миссиях, где игрок не должен будет никого атаковать.

тоесть если мы будем нажимать кнопку огонь (ЛКМ) то игрок не будет выполнять никаких действий?

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
тоесть если мы будем нажимать кнопку огонь (ЛКМ) то игрок не будет выполнять никаких действий?
Да. Будто и нет такой механики. При этом, в отличии от отключения всех драк(ранее в этой теме) - педы не теряют возможности атаковать. Да и игрок под управлением ИИ сможет атаковать.
Т.е. выключается только сама привязка контроллера к атакам.

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Выключение коллизии для любого entity:

Код: Text
  1. 0A97: 0@ = car 0@ struct // нужна лишь структура, а всё, что ниже будет одинаковым для транспорта, людей и объектов
  2. 000A: 0@ += 0x51
  3. 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 1
  4. 0B17: 1@ AND= 0x80
  5. 0A8C: write_memory 0@ size 1 value 1@ virtual_protect 1

Включение:
Код: Text
  1. 0A8D: 1@ = read_memory 0@ size 1 virtual_protect 1
  2. 0B18: 1@ |= 0x80
  3. 0A8C: write_memory 0@ size 1 value 1@ virtual_protect 1

Оффлайн mfisto

  • Скриптер
  • Главный Модератор
  • Новичек
  • *****
  • Сообщений: 175
  • Репутация: +19/-0
  • Не пью, не курю, за компьютером сижу...
    • mfistof
    • Просмотр профиля
    • Empire of CJ
Я подумал, типа совета, ведь не обязательно нопить всю функцию, достаточно завершить ее также, как она завершается в конце и все. (Совет Шэггги)
I know everything and nothing...

Оффлайн Shagg_E

  • Главный Модератор
  • Постоялец
  • *****
  • Сообщений: 594
  • Репутация: +20/-0
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Я подумал, типа совета, ведь не обязательно нопить всю функцию, достаточно завершить ее также, как она завершается в конце и все. (Совет Шэггги)
Не знал) Спасибо, надо будет попробовать, как будет время. Но вообще я нуб в подобных операциях и понимании asm кода, так что ничего удивительного, что сделал так колхозно.