SystemPack 2.0
- Добавлены Ассемблерные вставки, во много раз упрощающие реализацию патчей
- Добавлены API вызовы для реализации каких-либо сложных патчей
- Добавлена возможность переопределять значения SystemPack.ini через слово OVERRIDES_SP. Функционал идентичен одноименной секции ini мода. Переопределения не затрагивают физический SystemPack.ini, но такие значения будут иметь над ним больший приоритет.
- Добавлены приоритеты выполнения патчей. По умолчанию первым запускается Union.patch, остальные по мере нахождения их в файлах игры. Для повышения приоритета, вначале файла должно быть нижнее подчеркивание. Такие патчи будут запускаться до Union.patch. При чем на приоритет непосредственно влияет количество нижних подчеркиваний.
Подробнее см. в теме
https://worldofplayers.ru/threads/42178/
SystemPack - Изменения патчей
- InteractCollisions - теперь фикс отключает не сами коллизии NPC, а выборочный обработчик. Это означает, что с персонажем по прежнему можно сталкиваться, однако сам он будет невосприимчив к окружению. При этом объекты, с которыми происходит взаимодействие, не будут отключать коллизии.
- No_strafe_while_fall - помимо стрейфов, также отключаются и другие состояния, которые способны прерывать падение: parade, attackforward, attackleft, attackright
- Shield - исправлена недоработка, при которой щит не снимался со спины, если адрес предмета находился в отрицательном знаковом диапазоне
- Реализация чтения Bink из VDF полностью перенесена в Shw32.dll
SystemPack - новые патчи
- |G1 G2| Фикс зависания спела при его касте и открытии инвентаря одновременно
- |G1 | Превью предмета в его описании рисуется максимально справа
- |G1 | Фикс падения персонажа с лестницы, когда другой нпс обращается к ней слишком рано
- |G1 G2| Выравнивание нпс относительно кривизны наклона лестницы
- |G1 | Фикс, предотвращающий 'сталкивание' нпс с лестницы, если его подпирает другой нпс
- |G1 | Для предотвращения попадания за барьер, наносится смертельный урон в воде и по монстрам
- |G1 G2| Будучи монстром, фикс возможности возвращения в (живую) человеческую форму в первые секунды смерти
- | G2| Фикс неотображаемых субтитров минидиалога
- | G2| Удаление угрожающей музыкальной темы в 'WALD' зонах (прим. дом Эрола)
- | G2| Фикс возможности стрейфить в состоянии, в котором нельзя ходить
- |G1 | Фикс множественного вызова AI при открытом инвентаре (исправляет летающие над рудокопами факелы, вываливающиеся предметы из рук нпс, прерывающиеся диалоги и тд и тп)
- | G2| Фикс, исключающий возможность пропускать стрейфом диалоги, катсцены и тд
- |G1 G2| Фикс недоработки, при которой нпс не слышит шагов другого нпс в стрейфе, прыжках и обратном шаге
- |G1 G2| Установка состояния (BS_SNEAK, BS_WALK, BS_RUN) при стрейфах
- |G1 G2| Исправление недоработки, при которой не посылалось восприятие на доставание и убирание оружия на бегу
- |G1 G2| Если текстура мультидокумента имеет прозрачную линию по контуру, его изображения будут немного сведены
- |G1 | Исправление недоработки, когда при первом открытии инвентаря отображались не все предметы торговца или их неправильные количества
- |G1 G2| Исправление двойного выныривания после падения персонажа в воду
- |G1 G2| Персонажи не обновляются и не восполняют здоровье в полночь, если находятся в зоне видимости игрока
- |G1 G2| Исправление светового пятна после удаления света от факела или другого источника
- |G1 G2| Исправление возможности открыть инвентарь во время диалога
- |G1 | Закрытие инвентаря, когда NPC обращается к игроку
- |G1 G2| Исправление телепорта через стены при использовании свитка превращения
- | G2| Исправление недоработки, когда пираньи вдали от острова считались по неправильной дистанции
- | G2| Исправление луков и арбалетов на спине, бесконечно проигрывающих анимацию
- |G1 G2| Опция ForceFlip (рекомендуемая при использовании технологий G-sync, FastSync или EnhancedSync) исправляет мерцающие артефакты
- [G1 G2] Опция DisableOcclusionCulling отключает отфильтровку видимых объектов, тем самым исправляет их мерцание или исчезновение, но в ущерб общей производительности
Для Spacer
- [G1 ] В G1 добавлены патчи на Spacer (crc32:6C370582) как в G2 (crc32:B1B45718)
- [G1 G2] Исправление свернутого главного окна
SystemPack - фичи
- |G1 | Оружия, кольца и амулеты складываются в пачку
- |G1 | Предметы в инвентаре всегда отображаются поверх мира
- |G1 G2| Адаптивная дистанция прорисовки согласно частоте кадров (для DirectX 7)
- |G1 G2| Построение графика производительности в реальном времени (для DirectX 7 или DirectX 11 [v17.7-dev17])
- |G1 G2| Коррекция высоты спуска с лестницы, предотвращающая вхождение ног нпс под землю
- |G1 G2| Более адекватный ограничитель частоты кадров для оконного режима
- |G1 G2| Встроен плагин, исправляющий множественный урон VFX с несколькими дочерними частицами
- |G1 G2| Видео больше не зависают в оконном режиме
- |G1 G2| Alt+Enter для переключения между оконным и полноэкранным режимами
- |G1 G2| Загрузка из Data\ModVdf, даже если том используется другим процессом и не может быть перемещен в Data
Union - мышь
- Мышь и клавиатура отключаются, если потерян фокус окна
- Мышь не отваливается, если происходит фриз с потерей фокуса окна или подключен дебаггер
- Очистка ввода нажатых клавиш между загрузками
- Добавлен режим no-DirectX, реализующий управление осями через фактическую дистанцию, пройденную мышкой на экране. Этот режим более отзывчив. Полезен для тех, кто играет с GFA (Gothic Free Aim), имеет низкий FPS, а также для корректной работы таких плагинов, как Расширенный инвентарь от Hedin или Меню крафта в Returning 2.0 AB и NB.
Union - система
- Переработано ядро для наилучшей работы с Windows 7 и (не)эмуляторами под macOS & Linux
- Обновлены паттерны байткодов, улучшающие работу 'безопасных' хуков
- Исправлена недоработка в zip-vdf, теперь многопоточное чтение разрешено не раньше точки входа в движок
- Добавлена полная виртуализация папки System, то есть ей можно давать любые названия, создавать несколько системных папок под разные задачи
- Параметры PluginList и IgnoreList могут переопределять запуск Ninja, поэтому он вынесен в отдельную опцию в SystemPack.ini
- Добавлен 'пассивный' zParserExtender, который будет запущен, если в папке Autorun присутствуют скрипты, либо если включен параметр его принудительного запуска
- Добавлена возможность сборки плагинов со статической run-time библиотекой (libcmt.lib /MT[d]) начиная с SDK 1.0l
Union - SDK
- По умолчанию при создании проекта будет установлена версия платформы v142
- Добавлены варианты сборки со статической run-time библиотекой. Это означает, что пользователю не обязательно будет иметь предустановленный vcredist под ваши плагины. Это достигается тем, что указатель на RTDynamicCast из статической libcmt.lib экспортируется через объект самого плагина (см. Interface.cpp) и передается в Union
- Режим сборки MP разбит на два типа:
А. MP x2 - сборка плагина только для G1 и G2A
Б. MP x4 - сборка плагина для G1, G1A, G2, G2A
- В Gothic API добавлены комментарии с размерами классов, полей и смещениями полей
- Добавлены сниппеты для быстрого создания хуков. Для этого необходимо начать вводить слово hookPatch или hookDetours (в зависимости от необходимого хука) и нажать TAB. Будет создан шаблон, в который необходимо перенести сигнатуру перехватываемой функции. Также сниппет допишет прототип, который можно будет поместить в UserAPI.
Новое в SystemPack.ini
- |G1 | [Parameters] MultislotWeapons - разрешает складывать оружия в пачки [по умолчанию - 1]
- |G1 | [Parameters] MultislotMagic - разрешает складывать кольца и амулеты в пачки [по умолчанию - 1]
- |G1 G2| [Parameters] AdaptiveSightDistance - разрешает подбирать дистанцию прорисовки автоматически [по умолчанию - 0]
- |G1 G2| [Parameters] AdaptiveSightDistance_ShowInfo - разрешает отображение значений адаптивной дистанции прорисовки [по умолчанию - 0]
- |G1 G2| [Parameters] AdaptiveSightDistance_LowerFPS - нижняя граница FPS, который будет считаться комфортным игроку. Если FPS ниже, то дистанция прорисовки уменьшается [по умолчанию - 55]
- |G1 G2| [Parameters] AdaptiveSightDistance_UpperFPS - верхняя граница FPS, который будет считаться комфортным игроку. Если FPS выше, то дистанция прорисовки увеличивается [по умолчанию - 60]
- |G1 G2| [Parameters] VisualizePerfomance - разрешает рисовать график производительности [по умолчанию - 0]
- |G1 G2| [Parameters] HeightCorrectionOnLadder - не позволяет ногам проваливаться под землю при использовании лестницы [по умолчанию - 1]
- |G1 G2| [Parameters] FPS_Limit - ограничивает FPS до заданного [по умолчанию откл - 0]
- |G1 G2| [Parameters] ClearKeyBufferOnLoad - разрешает очищать буфер ввода при загрузках [по умолчанию - 1]
- |G1 G2| [Core] Ninja - разрешает загрузку Ninja.dll [по умолчанию - 1]
- |G1 G2| [Core] ParsetExtenderAlwaysOn - разрешает загрузку zParserExtender.dll не зависимо от наличия скриптов в Autorun [по умолчанию - 0]
- |G1 G2| [Mouse] NoDirectXMode - разрешает отслеживать перемещение мышки не через dinput [по умолчанию - 0]
- |G1 G2| [Debug] GPUName - системный параметр. Указывает последнюю рабочую видеокарту
- |G1 G2| [Debug] ForceFlip - исправляет мерцающие артефакты при игре с G-sync, FastSync или EnhancedSync. Рекомендуется к включению пользователям с данными технологиями. [по умолчанию - 0]
- |G1 G2| [Debug] DisableOcclusionCulling - отключает отфильтровку видимых объектов, тем самым исправляет их мерцание/исчезновение. Снижает производительность. [по умолчанию - 0]
Дополнительно
- Visual C++ 2008 больше не требуется для работы bink фикса
- Особенности нового zParserExtender см. в теме
https://worldofplayers.ru/threads/41999/
- Добавлен прямой деинсталлятор Union в папке Gothic
- Обновлены некоторые ресурсы Первичного патча. А также оставлен только Патч с 4GB патчем
- Менеджер ресурсов самостоятельно скачает и установит Visual C++ 2010 (при согласии пользователя)