Ответ

Имя:
E-mail:
Тема:
Иконка:

Вложение:
(Удалить вложение)
(Добавить ещё)
Ограничения: максимум вложений в сообщении — 4, максимальный размер всех файлов — 192 Кбайт, максимальный размер одного файла — 128 Кбайт
Визуальная проверка:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:
О какой игре форум? (три буквы заглавные):
Сколько будет (5*5 + 2) ответ цифрой.:

подсказка: нажмите alt+s для отправки или alt+p для предварительного просмотра сообщения


Сообщения в этой теме

Автор: Shagg_E
« : Апрель 28, 2019, 04:58:52 pm »

Я подумал, типа совета, ведь не обязательно нопить всю функцию, достаточно завершить ее также, как она завершается в конце и все. (Совет Шэггги)
Не знал) Спасибо, надо будет попробовать, как будет время. Но вообще я нуб в подобных операциях и понимании asm кода, так что ничего удивительного, что сделал так колхозно.
Автор: mfisto
« : Апрель 28, 2019, 05:47:37 am »

Я подумал, типа совета, ведь не обязательно нопить всю функцию, достаточно завершить ее также, как она завершается в конце и все. (Совет Шэггги)
Автор: Shagg_E
« : Апрель 21, 2019, 05:56:54 am »

Выключение коллизии для любого 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
Автор: Shagg_E
« : Апрель 17, 2019, 12:35:24 pm »

тоесть если мы будем нажимать кнопку огонь (ЛКМ) то игрок не будет выполнять никаких действий?
Да. Будто и нет такой механики. При этом, в отличии от отключения всех драк(ранее в этой теме) - педы не теряют возможности атаковать. Да и игрок под управлением ИИ сможет атаковать.
Т.е. выключается только сама привязка контроллера к атакам.
Автор: Saint
« : Апрель 17, 2019, 12:25:08 am »

Отключение прицела/атаки у игрока:
Код: 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
« : Апрель 03, 2019, 03:24:48 am »

Отключение прицела/атаки у игрока:
Код: 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 байт в свежесозданный буфер, что скрипт и делает.

Где это может пригодиться? Ну например - в некоторых интерьерах или стелс-миссиях, где игрок не должен будет никого атаковать.
Автор: egor230
« : Март 10, 2019, 02:41:52 pm »

Спасибо большое Shagg_E  теперь  всё  стало понятно.
Автор: Shagg_E
« : Март 10, 2019, 01:59:09 pm »

очень полезные находки, можно подробные объяснения их.
Первые 5 строк отключают свет светофоров и делают так, чтобы машины стали игнорировать эти светофоры.

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


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

Последняя строка отключает все читы в игре.
Автор: egor230
« : Март 10, 2019, 12:57:17 pm »

Недавние находки:
Код: 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
« : Март 09, 2019, 06:11:57 pm »

Недавние находки:
Код: 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
« : Июнь 14, 2018, 12:08:33 am »

Где то еще должен быть пункт который добавляет к источнику lens-flare
Это уже в 2dfx. PointLight - это чисто сам свет от источника. Т.е. то, что освещает педов, авто, катсценовые и динамические объекты.
Так же у источников есть тот самый 2dfx + "тень"(отрисовка текстуры света на горизонтальной поверхности). Это уже в другом массиве(ах).

Это насколько я это всё понимаю(могу ошибаться, но вроде всё верно).
Автор: ilufir
« : Июнь 13, 2018, 10:50:34 pm »

CPointLights:

0x9751B0 - количество PointLights
0x7E4FE0 - начало пула PointLights (максимум - 32 элемента)
каждый PointLight состоит из 44(0x2С) байт.

Структура совпадает с GTA3, я просто добавлю пояснения.

0x00 [float] - x coord
0x04 [float] - y coord
0x08 [float] - z coord
0x0С [float] - x direction
0x10 [float] - y direction
0x14 [float] - z direction
0x18 [float] - дальность света
0x1С [float] - red(0.0-1.0)
0x20 [float] - green(0.0-1.0)
0x24 [float] - blue(0.0-1.0)
0x28 [byte] - тип света(0 - светит во все стороны из центра, 1 - фары, светят строго по вектору, 3-4 - хз, не освещают динамику, скорее всего нужны для источников, которые кроме 2dfx никак не проявляют себя)
0x29 [byte] - тип "дымки" вокруг света(0 - нет "дымки", 1 и 2 - есть)
0x2A [bool] - генерация дополнительной тени авто игрока вблизи тени(0 - нет, 1 - да)
0x2B [byte] - не используется(пустышка)

Продолжаю разбор каждого элемента, пост будет обновляться.


Где то еще должен быть пункт который добавляет к источнику lens-flare
Автор: Shagg_E
« : Июнь 12, 2018, 11:28:30 pm »

CPointLights:

0x9751B0 - количество PointLights
0x7E4FE0 - начало массива PointLights (максимум - 32 элемента)
каждый PointLight состоит из 44(0x2С) байт.

Структура совпадает с GTA3, я просто добавлю пояснения.

0x00 [float] - x coord
0x04 [float] - y coord
0x08 [float] - z coord
0x0С [float] - x direction
0x10 [float] - y direction
0x14 [float] - z direction
0x18 [float] - дальность света
0x1С [float] - red(0.0-1.0)
0x20 [float] - green(0.0-1.0)
0x24 [float] - blue(0.0-1.0)
0x28 [byte] - тип света(0 - светит во все стороны из центра, 1 - directional(фары), светят строго по вектору, 2 - не используется(вроде), становятся слабее, если источников этого типа много, 3-4 - хз, не освещают динамику, скорее всего нужны для источников, которые кроме 2dfx никак не проявляют себя)
0x29 [byte] - тип "дымки" вокруг света(0 - нет "дымки", 1 и 2 - есть)
0x2A [bool] - генерация дополнительной тени авто игрока вблизи источника света(0 - нет, 1 - да), работает только для типа света 0, при параметре LightShd в timecyc.dat больше 0
0x2B [byte] - не используется(пустышка)

Продолжаю разбор каждого элемента, пост будет обновляться.
Автор: DK
« : Май 22, 2018, 02:23:52 pm »

Shagg_E, странно, я сам в упор не видел, что CFire уже есть в sdk для VC.
Ну зато теперь по огням всё разобрано и перепроверено до мелочей.
Автор: Shagg_E
« : Май 22, 2018, 12:11:39 pm »

0x02 можно назвать m_bTargetExists

а 0x2D  _pad2D[3] - это просто пустышка, получается?


UPD: черт.. Оказывается, в марте для вайса уже всё разобрали. Я с лета не обновлял sdk ;D

UPD2: Вау, теперь есть удобный установщик sdk!