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

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

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

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

D36


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

Текущая версия:
30 от 02.09.2024

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

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

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

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

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

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

Htonium

Участник форума
Регистрация
27 Сен 2019
Сообщения
44
Благодарности
1
Баллы
110
У нескольких торговцев в Хоринисе множится оружие. Это особенность неофициального патча? Кроме него у меня установлен Player Kit, Систем пак и пак текстур. На самом деле ничем не мешает, просто решил поделиться наблюдением. 20191009103108979.jpeg20191009103139826.jpeg
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.577
Благодарности
4.171
Баллы
915
Очень странно видеть размножение топового оружия у Хакона и Джоры, для экипировки которым этим торговцам не хватает заданных в их инстанциях значениям силы и ловкости (в функции B_SetAttributesToChapter(var C_Npc slf,var int kap) для главы 2 это по 100 силы и ловкости), а меч убийцы орков и топор палача требуют 130 и 125 силы.
 

Pystosh

Участник форума
Регистрация
5 Окт 2019
Сообщения
82
Благодарности
7
Баллы
110
Возможно ли что-то сделать со свитками на заклинания, которые могут отнимать разное значение маны в зависимости от удержания? Просто странно, что свиток Огненного дождя требует 5 маны, а Огненной бури - как у руны, т.е. овердофига.
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
17.188
Благодарности
7.614
Баллы
1.950
Возможно ли что-то сделать со свитками на заклинания, которые могут отнимать разное значение маны в зависимости от удержания? Просто странно, что свиток Огненного дождя требует 5 маны, а Огненной бури - как у руны, т.е. овердофига.
Это не такой простой вопрос, как кажется на первый взгляд. Если изменить затраты циклических заклинаний (которые усиливаются пропорционально затрачиваемой мане) в сторону уменьшения этих затрат (потому что в рунах дороже), то они могут стать куда более выгодными, чем обычные атакующие заклинания. Также стоит учесть заклинания, наносящие урон в радиусе или по площади.
Думаю, если и править в игре этот момент, то не изменением затрат маны циклических заклинаний, а повышением затрат маны свитка огненного дождя. Но не сильно. В некоторых модах делают затраты в 40 единиц, что делает этот свиток практически бесполезным. 10-15 единиц вполне достаточно, как по мне.
И не стоит забывать, что подобные правки напрямую влияют на баланс игры. А целью неофициального обновления все же является правка ошибок и багов, а не изменение баланса.
 

Pystosh

Участник форума
Регистрация
5 Окт 2019
Сообщения
82
Благодарности
7
Баллы
110
Так все равно 15 маны на Огненный дождь крепко дешевле Огненной бури, которая (боюсь ошибится) забирает от 45 до 75 маны.
Я не говорю, что нужно сделать бурю за 5 маны, но почему бы не за "от 10 до 15/20"?
Насчет того, что свитки станут выгодными - не ясно. Отностително рун? Так магу все равно дешевле восполнить ману напитком, чем купить еще один свиток. Кроме того, их наличие (особенно мощных заклинаний) сильно ограничено. Особенно не поспамишь.
Для наемника огненная буря так и вовсе балласт, потому как ману наскрести можно ближе к середине игры.
То, что меняется баланс - учитывая, что грядут правки длины оружия, это не так важно. Просто на настоящий момент циклические заклинания - это предмет на продажу для всех, кроме может быть паладина в билде на ману.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.224
Благодарности
3.454
Баллы
485
Очень странно видеть размножение топового оружия у Хакона и Джоры, для экипировки которым этим торговцам не хватает заданных в их инстанциях значениям силы и ловкости (в функции B_SetAttributesToChapter(var C_Npc slf,var int kap) для главы 2 это по 100 силы и ловкости), а меч убийцы орков и топор палача требуют 130 и 125 силы.
Проблема может быть в функции разоружения торговца:
Daedalus:
//    разоружение перед началом торговли с ГГ
    if(C_AmIWeaponTrader(slf))
    {
        AI_UnequipWeapons(slf);
        EquipWeap = Npc_GetEquippedMeleeWeapon(slf);
        Npc_RemoveInvItems(slf,Hlp_GetInstanceID(EquipWeap),Npc_HasItems(slf,Hlp_GetInstanceID(EquipWeap)));
        CreateInvItem(slf,Hlp_GetInstanceID(EquipWeap));
        EquipWeap = Npc_GetEquippedRangedWeapon(slf);
        Npc_RemoveInvItems(slf,Hlp_GetInstanceID(EquipWeap),Npc_HasItems(slf,Hlp_GetInstanceID(EquipWeap)));
        CreateInvItem(slf,Hlp_GetInstanceID(EquipWeap));
    };
Действительно ли здесь нужны все эти удаления и создания? И что будут возвращать функции Npc_GetEquippedMeleeWeapon и Npc_GetEquippedRangedWeapon, если перед назначением переменной EquipWeap (текущее экипированное оружие) персонажу дается команда AI_UnequipWeapons (снять с себя всё оружие)?
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
17.188
Благодарности
7.614
Баллы
1.950
То, что меняется баланс - учитывая, что грядут правки длины оружия
А ты какую-то конкретную информацию видел по этому поводу? Может список оружия со старыми и новыми радиусами?
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
17.188
Благодарности
7.614
Баллы
1.950
Там правки минимальные. Они на баланс не повлияют. В принципе и без них можно было обойтись, но раз уж D36 решила что-то править - это ее авторское право.
 

Pystosh

Участник форума
Регистрация
5 Окт 2019
Сообщения
82
Благодарности
7
Баллы
110
1) Для взятия Старых доспехов наемника нужно в т.ч. и найти золото по наводке Горна. Скрипт берет по внимание, что мешочек с золотом уже был найден ДО наводки?
2) Если "нет", сработает ли выкидывание мешка из инвентаря ДО взятия наводки?
3) Стоит ли добавить информацию об этом доспехе в "Полный список доспехов Готики 2 Ночь ворона" хотя бы с пометкой или под спойлером "Неофициальное обновление"?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.224
Благодарности
3.454
Баллы
485
1) Для взятия Старых доспехов наемника нужно в т.ч. и найти золото по наводке Горна. Скрипт берет по внимание, что мешочек с золотом уже был найден ДО наводки?
Мешочек должен быть в инвентаре игрока на момент проверки или быть открытым до проверки.
 

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.410
Благодарности
3.241
Баллы
525
Действительно ли здесь нужны все эти удаления и создания? И что будут возвращать функции Npc_GetEquippedMeleeWeapon и Npc_GetEquippedRangedWeapon, если перед назначением переменной EquipWeap (текущее экипированное оружие) персонажу дается команда AI_UnequipWeapons (снять с себя всё оружие)?
Функция AI_UnequipWeapons здесь действительно не нужна. Если просто деэкипировать оружие, то оно не попадает в торговый инвентарь сразу же после снятия. Нужно завершить диалог и снова его начать. Тогда снятое оружие появится в продаже. Удаление оружия и создание его в инвентаре решает сразу две задачи: во-первых, оно "деэкипируется", во-вторых, созданное в инвентаре оружие сразу попадает в торговый инвентарь.

Однако, тут возможны проблемы. В Г1 сталкивался с тем, что функция Npc_RemoveInvItems может работать неправильно, если у предмета не установлен флаг ITEM_MULTI, и в инвентаре есть другие предметы этой же инстанции. В этом случае функция вообще не удаляет данные предметы. Для правильного удаления предметов без флага ITEM_MULTI нужно использовать функцию Npc_RemoveInvItem, применяя её к каждому такому предмету, имеющемуся в инвентаре. Но это, повторюсь, в Г1. В Г2НВ движок научили складывать предметы в пачки. Как работают функции удаления предметов там на практике, не знаю.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.577
Благодарности
4.171
Баллы
915
ElderGamer, в G2 Classic и Addon проблема с удалением предметов тоже не имеет полноценного решения, например, в случаях разделения на 2 отдельные пачки экипированного и находящегося в инвентаре оружия ближнего или дальнего боя, которое имеет одни и те же инстанции. Также эта проблема осталась у предметов с флагом ITEM_NSPLIT, который запрещает объединять эти предметы в пачки, например, кирки.

D36, зачем в функции, которая должна была заменить движковую функцию AI_UnequipWeapons(var C_Npc npc), были закомментированы вставки в инвентарь предметов, которые запомнены в переменной Weapon, имеющей класс C_Item?
Daedalus:
func void B_UnequipWeapons(var C_Npc slf)
{
    var C_Item Weapon;
    if(Npc_HasEquippedMeleeWeapon(slf))
    {
        Weapon = Npc_GetEquippedMeleeWeapon(slf);
        Npc_RemoveInvItem(slf,Hlp_GetInstanceID(Weapon));
//        CreateInvItem(slf,Hlp_GetInstanceID(Weapon));
    };
    if(Npc_HasEquippedRangedWeapon(slf))
    {
        Weapon = Npc_GetEquippedRangedWeapon(slf);
        Npc_RemoveInvItem(slf,Hlp_GetInstanceID(Weapon));
//        CreateInvItem(slf,Hlp_GetInstanceID(Weapon));
    };
};
Неужели попытка удалить экипированный предмет приводит только к его снятию, а не удалению из инвентаря?:oops:

P.S.: Я помню, что в G2 функция Npc_HasItems(var C_Npc npc, var int instanceItem) возвращает общее количество предметов с инстанцией instanceItem во всех пачках, что приводит к сбоям при подсчёте количества оружия, которое ученик Харада может продать этому персонажу, поэтому приходится уменьшать счётчик продаваемого оружия на количество экипированного игроком - смотри функцию DIA_Harad_SellBlades_Info().
 

Pystosh

Участник форума
Регистрация
5 Окт 2019
Сообщения
82
Благодарности
7
Баллы
110
Полный список изменений и исправлений:
- Бонус акробатики добавляется также и при повышении ловкости молитвами.
Не знаю из-за этого ли, но после молитвы Инносу на Ловкость пропадает Навык акробатики.
Расклад такой:
1) Изначально 83 ловкости + 2 кольца по 5 ловкоксти. Итого статистика = 93 ловкости.
2) Акробатика была взята благодяря кольцам и зелью раньше.
3) По результам прокачки 10 Ловкости у Инноса -> Акробатика исчезла.
Подозреваю, что косяк произошел, когда "родная" ловкость добежала до 90 -> произошла очередная проверка на Акробатику по типу "Bool = !bool". Самое интересное, что кольца я не снимал с тех пор, как получил Акробатику, т.е проверка на Акробатику проводится дважды: один раз, когда целевая Ловкость достигается вместе со шмотками, и второй раз - когда добирается родная Ловкость.
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
6.176
Благодарности
5.697
Баллы
910
Подозреваю, что игрок выбрал прокачку с игнорированием бонусов. Поэтому часть кода на проверку и получения акробатики или забыла, т.к. просмотреть все одним глазам мало представляется возможным.
В оригинале так.
Daedalus:
if(attrib == ATR_DEXTERITY)
    {
        oth.attribute[ATR_DEXTERITY] += points;
        if((oth.attribute[ATR_DEXTERITY] >= 90) && !Npc_GetTalentSkill(oth,NPC_TALENT_ACROBAT))
        {
            Npc_SetTalentSkill(oth,NPC_TALENT_ACROBAT,1);
            PrintScreen(PRINT_Addon_AcrobatBonus,-1,53,FONT_Screen,2);
            Snd_Play("LevelUp");
        };
        concatText = ConcatStrings(PRINT_LearnDEX,IntToString(points));
        PrintScreen(concatText,-1,-1,FONT_Screen,2);
    };
Надо как минимум добавить проверку в это место
Daedalus:
if(IgnoreBonuses == FALSE)
{
    if(attrib == REAL_DEXTERITY)
    {
        oth.attribute[REAL_DEXTERITY] += points;
        if((oth.attribute[REAL_DEXTERITY] >= 90) && !Npc_GetTalentSkill(oth,NPC_TALENT_ACROBAT))
        {
            Npc_SetTalentSkill(oth,NPC_TALENT_ACROBAT,1);
            PrintScreen(PRINT_Addon_AcrobatBonus,-1,53,FONT_Screen,2);
            Snd_Play("LevelUp");
        };
        concatText = ConcatStrings(PRINT_LearnDEX,IntToString(points));
        PrintScreen(concatText,-1,-1,FONT_Screen,2);
    };
}
else
{
    if(attrib == ATR_DEXTERITY)
    {
        oth.attribute[ATR_DEXTERITY] += points;
        if((oth.attribute[ATR_DEXTERITY] >= 90) && !Npc_GetTalentSkill(oth,NPC_TALENT_ACROBAT))
        {
            Npc_SetTalentSkill(oth,NPC_TALENT_ACROBAT,1);
            PrintScreen(PRINT_Addon_AcrobatBonus,-1,53,FONT_Screen,2);
            Snd_Play("LevelUp");
        };
        concatText = ConcatStrings(PRINT_LearnDEX,IntToString(points));
        PrintScreen(concatText,-1,-1,FONT_Screen,2);
    };
}
По моему мнению, все это игнорирование бонусов фигня. *ded*
 

Pystosh

Участник форума
Регистрация
5 Окт 2019
Сообщения
82
Благодарности
7
Баллы
110
В общем, я периграл так:
Убрал шмот на ловкость полностью. Табличками, зельями и молитвами поднял до 89 Ловкости и 90-е очко взял молитвой. Получил Бонус акробатики и навык. Тут сохранился.
Поднял еще два очка Ловкости. Посмотрел в стату - Акробатика исчезла.
Загрузил сейв на 90 очков ловкости и подкачал 2 очка еще раз, проверяя стату на каждом шаге. Акробатика осталась.
Я даже не знаю, что в последний раз сделал по другому. :oops:
Качаю в монастыре. Сохраняюсь перед статуей и, если не выпадает ловкость, загружаюсь и под конец загрузки кликаю мышь, чтобы занять статую раньше Сержио, но получается не всегда, ибо забываю иногда кликать. Соответственно дело может быть:
1) загрузках. Т.е. баг при - давали ли Ловку с первой попытки, или с загрузок
2) Сержио. Т.е. баг в получена ли Ловкость с занятия статуи первым, или после разговора с паладином, чтобы он отошел от статуи.
Попробую еще порандомить. Но похоже, что дело не в кольцах.

EDIT: еще раз подкачал 90+ уровни вместе с одетыми кольцами. Акробатику не сняли. Даже не знаю откуда растут ноги бага. Я примерно понимаю, какие были микро отличия во всех случаях. Но тестировать все возможные варианты у меня терпения не хватит *sorry*
 
Последнее редактирование:

Htonium

Участник форума
Регистрация
27 Сен 2019
Сообщения
44
Благодарности
1
Баллы
110
Неужели попытка удалить экипированный предмет приводит только к его снятию, а не удалению из инвентаря?:oops:
Размножающийся топор и меч торговцы не надевают. Они оба стоят с булавами. Третья глава.
 
Сверху Снизу