Последние сообщения

Страницы: 1 ... 4 5 [6] 7 8 ... 10
51
Код: Text
  1. 0A8C: write_memory 0x5B8BF7 size 6 value 0x90 virtual_protect 1 // Отключение выдачи брони игроку, при посадке в Enfrocer
  2. 0A8C: write_memory 0x5B8A9A size 6 value 0x90 virtual_protect 1 // Отключение выдачи дробовика игроку, при посадке в Police Car
  3. 0A8C: write_memory 0x5B8BB6 size 6 value 0x90 virtual_protect 1 // Отключение выдачи здоровья игроку, при посадке в Ambulance
  4. 0A8C: write_memory 0x5B8AB6 size 1 value 0x0 virtual_protect 1 // Отключение выдачи денег игроку, при посадке в Taxi, Kaufman, Zebra, Cabbie
  5. 0A8C: write_memory 0x5B89CD size 1 value 0 virtual_protect 1 // Отключение выдачи клюшки для гольфа игроку, при посадке в Caddy
52
Аналог опкода 0489: set_actor 0@ muted 1 из VC. Позволяет отключить педам речь. Желательно делать в цикле.

Код: Text
  1. 0A96: 7@ = actor 6@ struct
  2. 000A: 7@ += 0x52A // m_nTalkType - Тип разговора
  3. 0A8C: write_memory 7@ size 1 value 0x0 virtual_protect 1 // 0x0 (0) - Ped speech Off/Отключение речи у педа
53
Код: Text
  1. 0A8C: write_memory 0x48C975 size 5 value 0x90 virtual_protect 1 // Отключение повторов (replay) на клавишу F1. Версия игры 1.0
  2.  
  3. 0A8C: write_memory 0x591AE5 size 5 value 0x90 virtual_protect 1 // Отключение смещения времени на 6 часов после сохранения. Версия игры 1.0. 0x591D95 для 1.1 версии
  4.  
54
Сюда можно скидывать ваши работы с кодом игры, адресами памяти и т.д. для GTA 3
55
Общие вопросы / Re: Многополигональные колы или ошибка 0x4df8fa
« Последний ответ от Shagg_E Мая 20, 2025, 02:50:11 pm »
Мне кажется, там нужно будет полностью переписывать функции просчета. Думаю, там дело не только в лимитах, но и мб точности просчетов. У меня были подобные проблемы в некоторых моих задачах (не связанных с гта). Иногда просто пишешь код с расчетом на определенные габариты, хз.
Но это теоретический ответ, по факту я не знаю, что конкретно происходит с коллизиями в гта.
56
Недавние находки:
Код: Text
  1. 0A8C: write_memory 0x61A695 size 5 value 0x90 virtual_protect 1 // Отключение смещения времени на 6 часов после сохранения

Проверка на то, что актёр сидит:
Код: Text
  1. 0A96: 0@ = actor $PLAYER_ACTOR struct
  2. 000A: 0@ += 0x150
  3. 05E0: 1@ = read_memory 0@ size 1 virtual_protect 1
  4. if
  5. 0039:   1@ == 24 // @ == int
  6. jf @1
57
Общие вопросы / Многополигональные колы или ошибка 0x4df8fa
« Последний ответ от aleks926820 Мая 14, 2025, 05:48:41 pm »
Как показала многолетняя практика — большинство вылетов в игре из-за высокодетализированной коллизии (и не менее чаще — скрипты и плагины, кривые дфф, не в них суть).
Наверно еще лет 9 тому назад выявил, что игра вылетит, если что-нибудь (авто или пед) воздействует на высокополигональный кол. Например вылет произойдет 100%, если игрок любым способом воздействует на плейн размером 1х1 с 1000 треугольниками (т.е. на любой высокополигональный, но маленький по размерам кол). И в основном вылет по адресу 0x4df8fa (CMatrix::UpdateRW) и еще реже —  0x4127a7 (CCollision::ProcessLineTriangle).
Напрашивается вопрос — почему происходит вылет? Игра не может понять куда переместить ту или иную сущность? Была мысль касаемо лимита на партиклы, но ошибка по адресу прямо ведет в CMatrix::UpdateRW.
Я не уверен, но (как мне кажется) ответ может быть в функциях CPhysical::PlacePhysicalRelativeToOtherPhysical, CMovingThing::Update.
Решив проблему с вылетом, мы сможем без проблем вставлять в игру многополигональные колы, без проблем сможем кататься по высокодетализированным картам без каких-либо последствий. Не спорю, можно либо оптимизировать колы в максе, либо вообще что-то убрать, но что делать если таких колов сотни и тысячи, причем сложной формы? Думаю, что не только мне интересно решение этой проблемы. Другой вопрос еще касаемо расширения лимита на размер кол файла, но это сейчас не так интересно. Лет 7 тому назад Ilufir на основе сорцов GTA SOL скомпилил плагин, расширяющий размер ColBufferLimit, тем самым подняв размер колов с 64 килобайта до 349 кбайт (хотя в теории ожидали, что игра будет кушать все колы до 512 кбайт, но тут уже скорее всего уперлись в другой непонятный лимит).
58
Общие вопросы / Re: Структура .WFT файла и офсеты в нём (GTA IV)
« Последний ответ от aleks926820 Мая 13, 2025, 12:52:54 am »
Немного доработал скрипт - появилась возможность массовой разблокировки .wdr .wft.
В Input Directory указать входной каталог с моделями, в Output Directory указать выходную папку для разблокированных моделей.
Директории не должны быть одинаковыми! Скрипт не будет перезаписывать исходные модели.
Напомню - zlib.net.dll (есть в постах выше) кладем в папку /*папка с 3dsmax*/Scripts; версия 3dsMax - 2012 и выше (спасибо Starenat за тест на 12м максе).
Скачать можно с либерти: https://libertycity.ru/files/gta-4/193341-maxscript-wdr-wft-unlocker-1-2-beta.html
(старый скрипт удалён)
59
Общие вопросы / Re: Структура .WFT файла и офсеты в нём (GTA IV)
« Последний ответ от aleks926820 Января 26, 2025, 05:20:12 pm »
Проверили на 3dsmax 2012 - скрипт работает без проблем. Можно смело запускать на версиях макса младше 2012.
60
Общие вопросы / Re: Структура .WFT файла и офсеты в нём (GTA IV)
« Последний ответ от aleks926820 Января 25, 2025, 06:13:23 pm »
Поправленный (снова) вариант скрипта. Офсет ZModelerLock для .wdr .wft одинаковый - в коде была ошибка записи. Разблокировка .wdr теперь работает корректно. Разблокированный файл не всегда пригоден для импортирования в ZModeler - либо может импортироваться каша из полигонов или не импортнется вообще (фильтр для импорта .wft .wdr .wdd немного корявый). Лучше использовать для импорта 3dsmax.
Окончательный вариант допишу позже - нужно уладить пару моментов, относящихся к распаковке и запаковке файлов.
(29.07.2025 - старый скрипт удалён)
Страницы: 1 ... 4 5 [6] 7 8 ... 10