Автор Тема: Многополигональные колы или ошибка 0x4df8fa  (Прочитано 4124 раз)

Оффлайн aleks926820

  • Прохожий
  • *
  • Сообщений: 50
  • Репутация: +15/-0
    • Просмотр профиля
Как показала многолетняя практика — большинство вылетов в игре из-за высокодетализированной коллизии (и не менее чаще — скрипты и плагины, кривые дфф, не в них суть).
Наверно еще лет 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 кбайт, но тут уже скорее всего уперлись в другой непонятный лимит).

Оффлайн Shagg_E

  • Администратор
  • Постоялец
  • *****
  • Сообщений: 720
  • Репутация: +24/-4
  • Изобретательный Рукожопъ
    • Просмотр профиля
    • NewRockstar
Re: Многополигональные колы или ошибка 0x4df8fa
« Ответ #1 : Мая 20, 2025, 02:50:11 pm »
Мне кажется, там нужно будет полностью переписывать функции просчета. Думаю, там дело не только в лимитах, но и мб точности просчетов. У меня были подобные проблемы в некоторых моих задачах (не связанных с гта). Иногда просто пишешь код с расчетом на определенные габариты, хз.
Но это теоретический ответ, по факту я не знаю, что конкретно происходит с коллизиями в гта.