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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!
  • Друзья, доброго времени суток! Спешите принять участие в конкурсе "Таинственные миры" 2024!
    Ждем именно вас!

    Ссылка на конкурсную тему - тык

Готика 2: НВ Неофициальное обновление для Г2 НВ

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.125
Благодарности
3.218
Баллы
485
  • Первое сообщение
  • #1
Неофициальное обновление для игры "Готика 2: Ночь Ворона" представляет собой модификацию, направленную на исправление многочисленных ошибок и недоработок игры различной степени критичности. Данное обновление не включает новые квесты или глобальные изменения баланса и рекомендуется всем, кто хочет играть в Г2НВ без багов.
Разработка обновления ведется с 2005 года и по сегодняшний день. Камрад Efectivo (aka Нефариус) русифицировал патч от Fizzban и внес несколько дополнительных исправлений (так что получилась не русификация, а самостоятельный продукт на его основе).
В неофициальном обновлении камрад Dimus значительно расширил список исправлений и добавил некоторые улучшения. Дальнейшая работа над обновлением продолжена силами D36.
Также в данную сборку включены исправленные миры от Kvincius (Рудниковая долина, Яркендар, Хоринис и Ирдорат), исправленные шрифты от N1kX, неофициальное исправление русской озвучки от Dimus и полезные плагины для Union от Slavemaster (zBugFixes, zMiscUtils, zPicklockAnis, zTorchControl и другие).

Текущая версия:
29 от 14.08.2023

Ссылки:
Установщик модификации (76.5 МБ);
Версия для Мастерской Steam;
Исходники скриптов и архив релизов.

Установка:
Запустить установщик обновления, указать каталог с установленной игрой и выбрать набор устанавливаемых компонентов.
Внимание: Для того, чтобы все изменения вступили в силу, после установки обновления нужно начать новую игру!

Загрузка текста...

Удаление:
Удалить данное обновление можно через раздел "Программы и компоненты" в панели управления или запустив исполняемый файл G2a_NR_ScriptPatch_v29_uninstall.exe в каталоге с установленной игрой.

Примечания:
1. Для предотвращения возможных конфликтов с различными модами обновление устанавливается в формате модификации, поэтому для её работы необходимо наличие мод-стартера Player Kit. Также настоятельно рекомендуется установить последнюю версию Union;
2. Каждая версия неофициального обновления запускается через GothicStarter.exe отдельно и использует собственные папки сохранений. Удаление разных версий из панели управления также происходит раздельно;
3. Начало новой игры обязательно. Не поддерживаются сохранения, сделанные в оригинале, в любом другом моде или в любой предшествующей версии неофициального обновления.
Игнорирование данного предупреждения может привести к непредсказуемым последствиям: от невозможности продвижения по сюжету до вылетов.
Для тестирования доступна предварительная сборка 30 версии неофициального обновления. Подробности здесь.
 
Последнее редактирование:

OddDoc

Участник форума
Регистрация
12 Сен 2017
Сообщения
19
Благодарности
7
Баллы
170
Приветствую.
Игра вылетает спустя некоторое время (примерно 10-15 секунд) после диалога с Мо в портовом квартале в 1-й главе, до присоединения к фракциям, если игрок отказался платить золото.
Вылет происходит вне зависимости от того, победил ли игрок Мо, убежал от него или был избит.
Лечится только "Марвином", после чего необходимо сразу "улететь" из города. После этого, вылет сохраняется при приближении к дистанции реакции Мо на игрока, но только до того момента, как Мо перестаёт проявлять агрессию по отношению к ГГ.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Лог вылета (Gothic.RPT) и сэйв перед общением с Мо - в студию.
 

OddDoc

Участник форума
Регистрация
12 Сен 2017
Сообщения
19
Благодарности
7
Баллы
170
Лог вылета (Gothic.RPT) и сэйв перед общением с Мо - в студию.
Лог предоставлю чуть позже. Сейв, к сожалению, уже затёр. Однако, могу попробовать воспроизвести баг.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.125
Благодарности
3.218
Баллы
485
1.Загружаюсь и через некоторое время вылетает ошибка.
Игра вылетает спустя некоторое время (примерно 10-15 секунд) после диалога с Мо в портовом квартале в 1-й главе
Это похоже на одну и ту же ошибку UseItemToState, о которой мне периодически сообщают, и которую у меня никак не получается отследить или хотя бы воспроизвести, даже имея на руках сохранения.

Однако, могу попробовать воспроизвести баг.
Если получится, то попробуй повторить, снизив дистанцию обзора и дистанцию объектов до минимальных 20% и обойдя город. Так можно будет найти точное место или NPC, вызывающие эту проблему.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.336
Благодарности
3.181
Баллы
525
у меня никак не получается отследить
Не пренебргай возможностями zSpy. Эта штуковина помогает выловить массу ошибок, в том числе и в скриптах.

Вот навскидку парочка ошибок:
1. В функции C_PlayerHasFakeGuild нет проверки валидности переменной itm класса C_Item. В результате, если на ГГ нет одетого доспеха, переменная не инициализируется, и массово генерируются сообщения:
Daedalus:
[w] 00:13 Warn:  0 C:     SCRIPT: Hlp_IsItem(): illegal param: "C_PLAYERHASFAKEGUILD.ITM" is NULL. .... <oGameExternal.cpp,#252>

2. В условии диалога с Ларесом неправильно указан аргумент:
Daedalus:
if(Hlp_StrCmp(Npc_GetNearestWP(self),"NW_FOREST_PATH_62") && (LaresGuide_OrnamentForest == 2) && Npc_IsDead(Stoneguardian_Ornament))
Нужна ссылка класса C_Npc, а не инстанция Stoneguardian_Ornament. Сообщение об ошибке:
Daedalus:
[w] 00:49 Warn:  0 C:     SCRIPT: Npc_IsDead(): illegal param: "STONEGUARDIAN_ORNAMENT" is NULL. .... <oGameExternal.cpp,#252>
 

OddDoc

Участник форума
Регистрация
12 Сен 2017
Сообщения
19
Благодарности
7
Баллы
170
Приветствую.
Игра вылетает спустя некоторое время (примерно 10-15 секунд) после диалога с Мо в портовом квартале в 1-й главе, до присоединения к фракциям, если игрок отказался платить золото.
Вылет происходит вне зависимости от того, победил ли игрок Мо, убежал от него или был избит.
Лечится только "Марвином", после чего необходимо сразу "улететь" из города. После этого, вылет сохраняется при приближении к дистанции реакции Мо на игрока, но только до того момента, как Мо перестаёт проявлять агрессию по отношению к ГГ.

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

Это похоже на одну и ту же ошибку UseItemToState, о которой мне периодически сообщают, и которую у меня никак не получается отследить или хотя бы воспроизвести, даже имея на руках сохранения.
Ну, судя по первым строкам в логе, так оно и есть. *sorry*
 

Вложения

  • Gothic.txt
    102,9 KB · Просмотры: 261
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Это похоже на одну и ту же ошибку UseItemToState, о которой мне периодически сообщают, и которую у меня никак не получается отследить или хотя бы воспроизвести, даже имея на руках сохранения.
Попробуй сузить круг подозреваемых, т.е. определить, где в скриптах используется функция AI_UseItemToState. Я насчитал 14 скриптов, причём из них можно исключить 2 диалога с охранниками, где ГГ показывает им голову Бладвина, предназначенные для группы InExtremo состояния ZS_Concert и ZS_Spit_Fire плюс чтение ложных свитков. В итоге под подозрением остались анонсы глашатая, ZS состояния игры на лютне, работы с мотыгой, курения косяка, употребления еды и питья, сухой и влажной уборки полов и чтения книжных стоек.
 

OddDoc

Участник форума
Регистрация
12 Сен 2017
Сообщения
19
Благодарности
7
Баллы
170
Попробуй сузить круг подозреваемых, т.е. определить, где в скриптах используется функция AI_UseItemToState. Я насчитал 14 скриптов, причём из них можно исключить 2 диалога с охранниками, где ГГ показывает им голову Бладвина, предназначенные для группы InExtremo состояния ZS_Concert и ZS_Spit_Fire плюс чтение ложных свитков. В итоге под подозрением остались анонсы глашатая, ZS состояния игры на лютне, работы с мотыгой, курения косяка, употребления еды и питья, сухой и влажной уборки полов и чтения книжных стоек.

Хочется добавить в копилочку один момент. Возможно, приблизит авторов к решению проблемы.
Несмотря на то, что ошибка, по сообщениям, кажется случайной, возникающей в разных местах и в разное время. Но лично для себя выяснил закономерность, что эта ошибка может встречаться и при переходах (загрузке) между локациями. Например, из Колонии в Хоринис и наоборот, если не пользоваться проходом заброшенной шахты. Чем дольше времени проходит с запуска игры, тем больше вероятность рано или поздно поймать ошибку.
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
В релизной версии игры за информацию (об орках в Рудниковой долине, миссии паладинов в Хоринисе и орке-разведчике у стен города) он дает динамическое количество опыта в зависимости от текущей главы, что, на мой взгляд, совсем неправильно. Почему поощряется откладывание сообщений на поздние этапы сюжета, если Гарвелл спешит закончить свой корабль и убраться с острова как можно скорее, а добывать эту информацию сложно как раз в начале игры? Мне кажется, что здесь следует наоборот давать больше опыта, если игрок поторопится, и меньше - с ходом сюжета. Эдакий XP_Ambient наоборот: 150 - 100 - 75 - 50 - 25.
про миссия палов ГГ узнаёт в самом конце 1 главы, а сдаёт соотв. в начале 2 главы.
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
Замечу, что через неделю в новой 21 версии произойдут некоторые связанные с этим изменения:
- Диалог с Джеспером о закрытой комнате доступен не с третьей главы, а после принятия в гильдию воров;
после выполнения квеста про кольцо Констанитно или до?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.125
Благодарности
3.218
Баллы
485
про миссия палов ГГ узнаёт в самом конце 1 главы, а сдаёт соотв. в начале 2 главы.
Узнать об этом можно из трех источников:
- от Андрэ после вступления в ополчение (глава 1);
- от Хагена перед уходом в Рудниковую долину (глава 2);
- от Гаронда после получения доказательства (глава 3);
Максимальное количество опыта от Гарвелла ГГ получит до ухода в Рудниковую долину, даже если уже наступила вторая глава.

после выполнения квеста про кольцо Констанитно или до?
После того, как ГГ скажет Кассии "Хорошо, я в деле" - тогда же становится доступно обучение у воров, Джеспер рассказывает об украденном луке Боспера, а Рамирез желает успехов. После добычи кольца Константино доверие воров к ГГ повышается: Кассия показывает тайный знак воров и начинает квест по поиску кровавых кубков, а Рамирез дает наводку на Вамбо.
Я не вижу смысла задерживать диалог о комнате с сундуком Фингерса до третьей главы, потому что выполнить все квесты Кассии и получить полное доверие гильдии можно уже в первой. Также мне непонятна задержка до второй главы диалога Рамиреза о поиске секстанта, поэтому в 21 версии обновления он будет доступен раньше, как и диалог с Джеспером:
- Диалог с Рамирезом о секстанте доступен не со второй главы, а после принятия в гильдию воров;
 
Последнее редактирование:

heckler

Участник форума
Регистрация
25 Апр 2017
Сообщения
413
Благодарности
109
Баллы
210
Я не вижу смысла задерживать диалог о комнате с сундуком Фингерса
Также мне непонятна задержка до второй главы диалога Рамиреза
Видимо, разрабочики расчитывали поддерживать интерес игрока к посещению воров на протяжении всей игры. Здесь же всё удовольствие от неожиданного квеста - как такое можно удалять?
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
- Джеспер не скажет 'Вот ключ от этой комнаты', если у него уже нет этого ключа;
Каким образом живой Джеспер может лишиться этого ключа? Ведь его нельзя просто побить (aivar[AIV_DropDeadAndKill] = TRUE) и забрать ключ, а карманная кража отбирает только золото.
у Джаспера можно тырануть ключ?
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Видимо, разрабочики расчитывали поддерживать интерес игрока к посещению воров на протяжении всей игры.
Это вполне возможно. Например, в оригинальной G2 секстант находится только в сокровищнице одного из драконов в Минентале. В аддоне проще стырить второй секстант из хижины Грега в Яркендаре.
у Джаспера можно тырануть ключ?
Нет. Я же сказал, что карманная кража отбирает у него только золото (ГГ получает 180 монет, необходимая для кражи ловкость 80).
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
16.700
Благодарности
7.111
Баллы
1.950
Видимо, разрабочики расчитывали поддерживать интерес игрока к посещению воров на протяжении всей игры.
Да, это так. Хотели, но не получилось. Чтобы поддержать интерес на протяжении всей игры, контента у воров должно было быть куда больше. По крайней мере я всегда хотел, чтобы квест, выдаваемый в 3 главе, имел куда большие масштабы.
Награда за сундук Фингерса к 3 главе теряет свою актуальность. В 1-2 главе она куда нужнее.
Поэтому я поддерживаю решение D36 сделать диалоги о секстанте и закрытой комнате раньше 2-3 главы соответственно. Кстати, этот момент правился таким образом во многих известных модах, так что этот опыт не новый :)
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.125
Благодарности
3.218
Баллы
485
Каким образом живой Джеспер может лишиться этого ключа? Ведь его нельзя просто побить (aivar[AIV_DropDeadAndKill] = TRUE) и забрать ключ, а карманная кража отбирает только золото.
Действительно, не учла флаг Джеспера AIV_DropDeadAndKill, поэтому это исправление бессмысленно и будет убрано из списка изменений.

Видимо, разрабочики расчитывали поддерживать интерес игрока к посещению воров на протяжении всей игры. Здесь же всё удовольствие от неожиданного квеста - как такое можно удалять?
Ну как сказать. Я могу согласиться с этим только в части квеста с секстантом, потому что его действительно можно найти только со второй главы (если не пытаться нелегально проникнуть в Яркендар или Рудниковую долину раньше сюжета). Но если получить квест только во второй главе или позже, то у игрока уже вполне может быть секстант, который он нашел случайно, и который тут же отдаст Рамирезу. В таком случае теряется всякий интерес к поиску этого предмета: по сути, квест пропадет. Сундук Фингерса квестом вообще не является (это, скорее, дополнительный вызов для игрока и/или стимул наконец изучить взлом замков), а попасть в закрытую комнату можно когда захочется: убить Джеспера или использовать баги (применить свиток превращения или просто протиснуться через дверь).
 

heckler

Участник форума
Регистрация
25 Апр 2017
Сообщения
413
Благодарности
109
Баллы
210

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
а попасть в закрытую комнату можно когда захочется: убить Джеспера или
или сдать гильдию воров Лорду Андре и поднять ключ с трупа :)

вот кстати есть интересный момент в игре: если рассказать про гильдию воров Лорду Андре и дождаться когда милиция зачистит гильдию, то с Ханной будет вот такая замечательная история
Daedalus:
    CreateInvItem(self,ItSc_IceCube);
    CreateInvItem(self,ItSc_Firestorm);
    AI_Output(self,other,"DIA_Hanna_Add_17_32");    //Здесь было ополчение... Кто-то предал наше убежище!
    AI_Output(self,other,"DIA_Hanna_Add_17_33");    //Мне они ничего не смогли предъявить, но Кассия и ее люди мертвы!
    AI_Output(self,other,"DIA_Hanna_Add_17_34");    //Я уверена, что это ТЫ...
    B_SelectSpell(self,other);
    AI_Output(self,other,"DIA_Hanna_Add_17_35");    //Я купила это специально для тебя.
    AI_Output(self,other,"DIA_Hanna_Add_17_36");    //Это обошлось мне в кругленькую сумму. Но для тебя ничего не жалко, свинья...
    self.aivar[AIV_DropDeadAndKill] = TRUE;
    AI_StopProcessInfos(self);
    B_Attack(self,other,AR_NONE,1);

а вот если вырезать гильдию самостоятельно то Ханна до конца игры будет твердить одно и то же
Daedalus:
    AI_Output(other,self,"DIA_Hanna_Add_15_37");    //В логове все в порядке?
    AI_Output(self,other,"DIA_Hanna_Add_17_39");    //Я давно уже не видела их.
    AI_Output(self,other,"DIA_Hanna_Add_17_40");    //Я, пожалуй, схожу туда, когда у меня будет время и проверю, как у них дела.
    AI_Output(self,other,"DIA_Hanna_Add_17_38");    //Да. Но тебе лучше не говорить об этом...
может быть сделать что бы при повторном вопросе, если прошло пару дней, Ханна всё таки заметила что Кассия мертва и заподозрила ГГ? :)
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
Проблема в том, что в существующей озвучке Ханны нет подходящих фраз для случая, когда ГГ сам уничтожит руководство гильдии воров. Следовательно, эти фразы придётся создать из существующих, например:
Daedalus:
    AI_Output(self,other,"DIA_Hanna_Add_17_32a");    //Кто-то предал наше убежище!
    AI_Output(self,other,"DIA_Hanna_Add_17_33a");    //Кассия и ее люди мертвы!
    AI_Output(self,other,"DIA_Hanna_Add_17_34");    //Я уверена, что это ТЫ...
Разумеется, что для них придётся создать и новую озвучку (пробный вариант во вложении).

Кстати, а почему в функции карманной кражи долговой книги Лемара не используются стабильно работающие функции C_StealItem(var int TheftDex,var int Itm) и B_StealItem(var int TheftDex,var int Itm)? Или же у Ханны будет двойная кража: сначала золото (45 ловкости), а затем книга (35 ловкости)? Тогда это решение нарушает логику игры: ГГ даётся только один шанс обчистить карманы у NPC. Поэтому придётся выбирать: что именно ГГ может стащить у хозяйки отеля: золото или долговую книгу.
 

Вложения

  • DIA_HANNA_ADD_17_3Xa.rar
    78,1 KB · Просмотры: 19
Последнее редактирование:

Test Level

Участник форума
Регистрация
1 Ноя 2011
Сообщения
1.771
Благодарности
557
Баллы
275
Вообще, логика утеряна напрочь. С чего эта глупая баба взяла, что предал именно ГГ? Да все ополчение их ловит. О разговоре с лордом Андре, она знать не могла, да и торгаши не враги себе. Не додумали рыбки.
 
Сверху Снизу