• Уважаемые гости и новички, приветствуем Вас на нашем форуме
    Здесь вы можете найти ответы практически на все свои вопросы о серии игр «Готика» (в том числе различных модах на нее), «Ведьмак», «Ризен», «Древние свитки», «Эра дракона» и о многих других играх. Можете также узнать свежие новости о разработке новых проектов, восхититься творчеством наших форумчан, либо самим показать, что вы умеете. Ну и наконец, можете обсудить общие увлечения или просто весело пообщаться с посетителями «Таверны».

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток!
    Стартовал новый литературный конкурс от "Ордена Хранителей" - "Пираты Миртанского моря".
    Каждый может принять в нём участие и снискать славу и уважение, а в случае занятия призового места ещё и получить награду. Дерзайте
  • Дорогие друзья, год подходит к концу, и пришло время подвести его итоги и наградить достойных

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

Gothic ½ Сборник патчей

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320
Сборник патчей
Патч - это текстовый файл с расширением .patch, вносящий изменения в движок игры при использовании с пакетом Union. Для автоматической загрузки патча достаточно, чтобы он находился в папке <Путь до игры>\System\Autorun\.

Патчи-улучшения [Скачать: Google-Диск]

Патчи данной категории предназначены для исправления багов движка
  1. zSpellPropagationFix устраняет ошибки, из-за которых информация об уроне от заклинаний терялась при их распространении после основного удара. В частности, это приводило к тому, что заряжаемые заклинания не могли наносить повышенного урона вторичным целям. Только для Готики 2!
  2. zSpellCollisionFix устраняет ошибки, из-за которых логика работы заклинания зависела не от того объекта, в которого оно попало, а от изначальной цели. Так, можно было использовать заклинание Уничтожение нежити на живых существах, если не брать их в фокус. Только для Готики 2!
  3. zSetWeaponModeFix исправляет ошибку, при которой ускоренная смена боевого режима (например, при использовании карты с оружием в руках) не сопровождалась сменой режимов камеры и выделения интерактивных объектов.
  4. zSetFrameTimeFix исправляет ошибку, из-за которой время кадра не обнулялось корректно, что могло приводить к исчезновению диалоговых окон во время паузы.
  5. zSaveMenuItemLeakFix исправляет утечку памяти при создании элементов меню.
  6. zRemoveWeaponFix устраняет зависание персонажа при убирании оружия на ходу будучи по пояс в воде. К тому же, теперь убирание оружия стоя на месте с использованием цифровой клавиши запускает верную анимацию. Только для Готики 2!
  7. zMenuIgnorePlayerStatus устраняет ситуации, когда при закрытии меню показ внутриигрового интерфейса не восстанавливался.
  8. zExchangeInteractItemFix сбрасывает временные флаги при перемещении предмета из одного слота в другой посредством анимации. Без этого патча, например, используемые предметы исчезали в моде Легенды Ассуна после взаимодействия с печью.
  9. zDontInsertVarInstance блокирует автодополнение названий переменных в консоле разработчика, чтобы было сложней поймать вылет при использовании команды insert.
  10. zDoNotLoadFontName игнорирует названия шрифта, записанное в файл. Таким образом, именем шрифта всегда является имя содержащего его файла и утечек памяти и производительности, которые были при рассогласовании имён, больше не возникает.
  11. zDontEquipBestWeapon меняет проверку на игрока при вставке NPC таким образом, что она проходит и при завершении заклинания трансформации. Т.е. экипированное оружие не сменится на более лучшее.
  12. zDisableNextSpellSetup блокирует инициализацию заклинания, если заклинатель не находится в игровом мире. То есть, при использовании последнего свитка трансформации эффекты следующего заклинания не будут создаваться.
  13. zCloseConversationFix не позволяет находящимся в состоянии второстепенного разговора персонажам закрывать диалоговые окна.
  14. zCEventManager_DoFrameActivity_Fix устраняет две проблемы. Первая, когда персонажи могли поворачиваться во время паузы. Сделано это путём полного игнорирования ИИ в это время. Также устранены ситуации, когда команда ИИ могла быть пропущена. В частности, из-за этого эликсиры в руке могли оставаться после использования.
  15. zAlwaysSetFightAnis принудительно обновляет идентификаторы боевых анимаций при реинициализации контроллера анимаций. Таким образом, контроллер остаётся в согласованном состоянии даже если оверлеи применяются во время боевого режима.
  16. zInterruptInteractionItemDupeFix исправляет дублирование интерактивного предмета при прерывании взаимодействия с объектом. Например, когда NPC деспаунится при выполнении ремонта молотком.
  17. zFailedRunJumpFix принуждает движок обработать клавиши управления в случае, когда прыжок с разбега был отменён из-за наличия препятствия перед игроком. Без патча управление блокируется пока зажата клавиша прыжка.
  18. zEmitParticlesInstantly устанавливает внутренний таймер эффектов так, чтобы они излучали частицы сразу же. Благодаря этому, предотвращаются неудачные попытки запустить эффект при высоких значениях ФПС. Особенно актуально для эффектов горения, неудачный старт которых влияет на нанесение периодического урона.
  19. zDontDeleteMonsters исправляет баг с исчезновением монстров при первом входе в локацию, если при переходе менялось игровое время. Монстры навсегда удалялись в пределах SPAWN_INSERTRANGE.
  20. zNightMusicFix исправляет баг, когда дневная музыкальная тема не начинает воспроизводиться при загрузке ночного сохранения после игры днём (или после первой загрузки). Такое происходило, если ночная тема для загруженной локации отсутствовала (Башня Ксардаса как пример). Только для Готики 2!
  21. zRoughTurnings останавливает поворот персонажа, если его цель находится в двухградусном секторе. Таким образом, убираются подёргивания персонажей при их попытке повернуться к целям, которые уже перед ними.
  22. zWmodeInitFix исправляет ошибку в инициализации контроллера анимаций, в результате которой персонажи могли проигрывать неверную анимацию после загрузки. Например, после загрузки сидящие на земле NPC при первом диалоге могли резко вставать.
  23. zFallenTorchModeFix убирает отключение режима ношения факела после падения.
  24. zStartFlyDamageFix исправляет баг, когда получая по лицу от тролля персонаж иногда летел лицом вниз.
  25. zFreezeInterruptedCombo останавливает прогрессию анимации прерванной комбо-атаки, благодаря чему не будут выполнены события непроигранных кадров. К тому же, высокие значения blendOut не приведут к тому, что прерванная анимация комбо-атаки перейдёт в фазу следующего удара, вызывая неестественные подёргивания персонажа (в оригинальной Готике I не поможет из-за ошибок в скриптах анимаций).
  26. zComboExtraHitFix блокирует возможность после полной серии ударов "вперёд" нанести ещё один невидимый удар.
  27. zUseItemDissapearanceFix исправляет баг, когда модель используемого предмета исчезает из руки. Только для Готики 1!
  28. zStandOnSpellCast даёт приказ остановиться персонажу, кастующему заклинание, благодаря чему маги не будут зависать в режиме бега.
  29. zMagicMessageNameFix исправляет названия некоторых ИИ-сообщений, относящихся к атаке магией. Эти названия выводятся только в режиме Марвина. Только для Готики 1!
  30. zCheckWaterLevelFix заставляет одноимённую функцию движка задавать режим ходьбы при смене режима действия. В игре баг проявлялся как зависание персонажа при обнажении оружия после резкого выхода на сушу (youtube).
  31. zDisableMapHotkeyInDialogs блокирует возможность открывать карту во время диалога.
  32. zUniqueSoundHandle исправляет алгоритм назначения идентификаторов звуков, предотвращая вылеты из-за утечки дескрипторов. Только для Готики 1!
  33. zDontSetUninitializedBodyState устраняет предупреждения zSpy при проигрывании анимаций с неинициализированным параметром состояния тела.
  34. zStackMobItems позволяет новосозданным предметам (например, с помощью Mob_CreateItems) стакаться внутри сундуков и других контейнеров.
  35. zLocalizedHoursMinutes меняет формат времени (8h 42min) в меню сохранения/загрузки в зависимости от языка. Изменения применяются для русского (8ч 42мин), польского (8g 42min), румынского и итальянского (8o 42min) языков. Надеюсь, всё правильно перевёл.
  36. zPreserveShowVisual устраняет сброс свойства showVisual (эффект невидимости) у NPC при сохранении игры.
  37. zEndTransformPreserveHeading задаёт правильную ориентацию персонажа после выхода из трансформы. Только для Готики 1!
  38. zStopWorldOnSave немедленно обнуляет время кадра при открытии внутриигрового главного меню с активированной возможностью сохраниться и при отрисовке игры, когда создаётся мини-скриншот. В совокупности с патчем zCEventManager_DoFrameActivity_Fix устраняет критический баг при сохранении прямо перед диалогом, в результате которого диалоговая камера записывалась в сейв, делая его непригодным для нормальной игры.
  39. zCutBinSafeHash позволяет загружать большие сохранения с более чем 65535 переменными.
  40. zRefuseTalkG2ControlFix устраняет неограниченную отправку команд при попытке заговорить с персонажем не желающим разговора через зажимание кнопки действия. Только для Готики 1 Классической! Только с опцией SystemPack->PARAMETERS->Gothic2_Control = 1
  41. zInitConversationViewOnce сугубо технический патч, устраняющий перезапись уже инициализированного поля oCMsgConversation::f_yes.
  42. zViewOpenPosFix исправляет баг, когда вьюха (обычно диалоговое окно) при появлении кратковременно отображается в случайном месте на экране.
  43. zDropUnconsciousFix исправляет баг, когда при переходе в бессознательное состояние инвентарь игрока не закрывался (Готика 1). Также немедленно прерывается взаимодействие с интерактивным объектом (все движки).
  44. zFallOnVobFix исправляет баг, когда персонаж переходит в состояние опасного падения несмотря на наличие воба недалеко под ним.
  45. zTrafoHpFix исправляет баг, когда при превращении из персонажа с низким, но не нулевым уровнем здоровья, получается персонаж с нулевым здоровьем. Только для Готики 2!
  46. zBBoxSortFix исправляет баг, когда минимальная и максимальная координаты бибокса нулевого размера могли при сортировке оказаться в обратном порядке. Проявлялось в виде отсутствия музыки из-за неправильного формирования списка активных зон.
  47. zSideAttackHitFix исправляет баг, когда боковая атака игрока не приводит к удару, если была отжата клавиша действия.
  48. zDeadSlideFix запрещает мёртвым персонажам начинать скольжение по наклонной плоскости.
  49. zUnequipSplitSlotFix устраняет критическую ошибку при деэкипировке оружия, которое не находится в инвентаре. Только для Готики 2 Ночь Ворона!
Специальные патчи [Скачать где-то здесь (сильно надо - найдёте): Google-Диск]
Технические патчи. В основном, для модостроителей. Не используйте, если не понимаете зачем.
  1. zSmoothAniTransitions - несколько патчей, составляющих ядро одноимённого плагина.
  2. zStrictEventOrder устанавливает строгий порядок между сообщениями в менеджерах событий: высокоприоритетные оверлеи -> оверлеи -> высокоприоритетные сообщения -> остальные. Внутри каждой группы сообщения располагаются в порядке их добавления.
  3. zChangeParticlesLimit позволяет менять лимит одновременно обрабатываемых игрой частиц (по умолчанию, с 10'000 до 100'000). Каждая единица лимита увеличивает потребляемую память на 960 байт. Только для Готики 2!
  4. zPoleDimsUseWorldBBox заставляет движок для определения низа и верха персонажа в функции обработки коллизий использовать динамический bbox модели вместо статического. При расчёте bbox-а на основе расположения костей (такое внедрено только в плагине zElderGamer) исправляется неправильное позиционирование персонажа во время анимаций типа t_stand_2_sit, когда он мог временно зависнуть в воздухе, а затем резко приземлиться. Также, уменьшает вероятность падения гоблинов при спуске по наклонной поверхности.
  5. zOverlayOrderFix исправляет нарушение порядка применения оверлеев при сохранении (и последующей загрузке) и при удалении оверлея не из конца списка применённых оверлеев. По сути, это патч-улучшение, но требует от мода строгого соблюдения порядка применения оверлеев, ведь сохранение/загрузка с этим патчем не будет исправлять порядок их применения. Как пример, после увеличения навыка владения оружием следует переприменять оверлей акробатики, чтобы боковые перекаты с оружием в руках оставались возможными. Или настроить плагин zMisсUtils для этих целей.
  6. zTextViewPos позволяет задавать внутри себя положение и размер поля для вывода текста (имеется в виду функция Print и аналоги).
  7. zDisableWalkOnCaps блокирует переключение режима ходьбы клавишей Caps Lock.
  8. zDialogChoiceStartKey меняет стартовую клавишу для диалоговых опций с 0 на 1.
  9. zBowRelaxFix блокирует анимацию тетивы при доставании/убирании лука. Только для Готики 2!
  10. zCamOnTickNoTimeScale убирает принудительный сброс скорости мира в циклической функции камеры кат-сцены (то есть, во время диалога). Не для Готики I Сиквел!
  11. zDeadNeverCollide отключает динамические коллизии мёртвого NPC не дожидаясь завершения анимаций. Теперь помирающий враг не станет препятствием для стрел или магии.
  12. zLessWeaponTrails запрещает отрисовку воздушных следов удара, если этот удар уже не может нанести урон.
  13. zNoFadingEvents запрещает генерирование событий для рассеивающихся анимаций. Таким образом, при остановке комбо-атаки не будет слышно "вжухов", предназначавшихся для последующих взмахов.
  14. zMarvinTimeStep позволяет менять шаг времени при использовании клавиши F10 в режиме марвина. Значение в движке - 1.0 / 25.0, в патче - в 2 раза меньше.
  15. zDontRefreshMunition блокирует периодическое создание пятидесяти стрел у NPC.
  16. zRequiredAttributeDamage добавляет к урону от оружия только тот атрибут (сила или ловкость), который требуется для экипировки этого оружия. Если у оружия нет требований к силе/ловкости, то урон не изменится. Только для Готики 2!
  17. zLowHpIsNotThreat отключает переход в режим угрозы (невозможность сохраниться и т.д.) из-за низкого здоровья игрока.
  18. zDeadDoAIState заставляет мёртвых персонажей обрабатывать своё скриптовое состояние постоянно, а не только во время переходных анимаций. Спасает от потери опыта при убийстве монстров, находящихся в воде.
  19. zNoDayDot убирает точку после номера дня в дневнике.
  20. zRussianDaySuffix меняет формат даты в меню сохранения/загрузки для русского языка: вместо 1 - 10:44 будет 1й день, 10:44.
  21. zUnlockMotionFactor разблокирует влияние скорости игры на скорость поворота персонажа и на скорость анимаций интерактивных объектов. Только для Готики 2!
  22. zProgressBarPos позволяет менять положение полосы загрузки.
  23. zCollectFocusDelay позволяет менять переодичность, с которой обновляется фокус персонажа.
  24. zCollectFocusInStrafe включает обновление фокуса во время стрейфа.
  25. zInfinityDialogs не позволяет диалоговым сообщениям закрываться автоматически. Требуется патч zInitConversationViewOnce! Рекомендуется плагин zAllowSkipHeyYou, во избежание невозможности пропустить диалог!
  26. zCustomSubmeshLimit позволяет менять предельное количество подмешей для загружаемых объектовТолько для Готики 2 Ночь Ворона!
  27. zPlunderInState запрещает лутать персонажей, если они не находятся в валидном скриптовом состоянии смерти/бессознательности.
  28. zResetMobStateOnStandup сбрасывает состояние интерактивного объекта, если взаимодействие прерывается из-за недопустимой анимации пользователя. Благодаря этому объект не ломается и может быть использован повторно. Есть побочные эффекты (нельзя закрыть двери и т. д.)!

Данная тема признана лучшей по итогам 2023 года!
 
Последнее редактирование:

Сумрак

Участник форума
Регистрация
25 Окт 2021
Сообщения
1.636
Благодарности
678
Баллы
175
Slavemaster, Это конечно хорошо, патчи полезные, но скачивать по одному такое себе удовольствие, может стоит закинуть их в папки?
 

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.931
Благодарности
560
Баллы
275
Slavemaster, благодарю за очередные улучшения.
Вопрос:
- Можно ли просто закинуть новые патчи поверх старых, не заморачиваясь с удалением последних? Или возможны конфликты и лучше всё переустановить с нуля?
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320

Парниша с горы

Участник форума
Регистрация
14 Дек 2022
Сообщения
121
Благодарности
41
Баллы
75
Красный текст с предупрежденим о г2, он для обеих версии, или только НВ?
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320

Сумрак

Участник форума
Регистрация
25 Окт 2021
Сообщения
1.636
Благодарности
678
Баллы
175

KirTheSeeker

Участник форума
Регистрация
18 Авг 2017
Сообщения
1.931
Благодарности
560
Баллы
275
А что, прямо такая морока с удалением файлов?
Нет, конечно же, просто я не уверен что из установленного стоит удалить, а что оставить, во избежание конфликтов.
Попробую в ближайшее время.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.694
Баллы
910
Не работает только с враппером в Union.
С другими врапперами работает. (Например GRawInput)
Тот патч я не проверял.
 

Парниша с горы

Участник форума
Регистрация
14 Дек 2022
Сообщения
121
Благодарности
41
Баллы
75
zDisableNextSpellSetup хреново работает с г2 классикой, установив архив патчей, пришлось методом тыка узнавать что именно мешает нормальной работе
 

Вложения

  • 1675522191688.png
    1675522191688.png
    18,5 KB · Просмотры: 36

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320
Удалил патч zTrafoInWaterFix, так как аналогичное исправление уже присутствует в Union.

Добавил новый патч-улучшение:
zDontEquipBestWeapon меняет проверку на игрока при вставке NPC таким образом, что она проходит и при завершении заклинания трансформации. Т.е. экипированное оружие не сменится на более лучшее в этом случае.

Добавил новый специальный патч:
zPoleDimsUseWorldBBox заставляет движок для определения низа и верха персонажа в функции обработки коллизий использовать динамический bbox модели вместо статического. При расчёте bbox-а на основе расположения костей (такое внедрено только в плагине zElderGamer) исправляется неправильное позиционирование персонажа во время анимаций типа t_stand_2_sit, когда он мог временно зависнуть в воздухе, а затем резко приземлиться.
 
Последнее редактирование:

Xeдин


Модостроитель
Регистрация
3 Дек 2008
Сообщения
1.469
Благодарности
1.993
Баллы
365
zDontEquipBestWeapon меняет проверку на игрока при вставке NPC таким образом, что она проходит и при завершении заклинания трансформации. Т.е. экипированное оружие не сменится на более лучшее в этом случае.
Хороший патч, спасибо. Только похоже в некоторых модах не будет работать. Проверил оригинал, не сбрасывается. В Одиссее сбрасывается на Уризель. Там интересно, меняется до превращения.
 
Последнее редактирование:

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320
Хороший патч, спасибо. Только похоже в некоторых модах не будет работать. Проверил оригинал, не сбрасывается. В Одиссее сбрасывается на Уризель. Там интересно, меняется до превращения.
Ну, видимо, у них где-то явный вызов функции AI_EquipBestMeleeWeapon в скриптах есть.
 

Slavemaster


Модостроитель
Регистрация
10 Июн 2019
Сообщения
1.086
Благодарности
1.904
Баллы
320
Добавил новый патч-улучшение:
zInterruptInteractionItemDupeFix исправляет дублирование интерактивного предмета при прерывании взаимодействия с объектом. Например, когда NPC деспаунится при выполнении ремонта молотком.
Добавил новый патч-функцию:
zCamOnTickNoTimeScale убирает принудительный сброс скорости мира в циклической функции камеры кат-сцены (то есть, во время диалога). Не для Готики I Сиквел!
 

LikerGothic


Модостроитель
Регистрация
11 Фев 2017
Сообщения
1.661
Благодарности
2.486
Баллы
380
Slavemaster, спасибо за патчики. А патч zInterruptInteractionItemDupeFix заработает в Новом Балансе? У нас эта функция oCMobInter::InterruptInteraction хукнута, поэтому, не думаю.

Если не заработает, то надо добавить фикс, я так понимаю, что:
C++:
if ( npc->GetInteractItem() ) {
            // патч работает так?
            //if ( !npc->IsAPlayer() )
            //    npc->PutInInv( npc->GetInteractItem() ); // <- патч?
            npc->SetInteractItem_Union( NULL );
        }

Нужно просто закомментировать эту строчку? Или что-то еще.
 
Последнее редактирование:
Сверху Снизу