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

    Чтобы получить возможность писать на форуме, оставьте сообщение в этой теме.
    Удачи!

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

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
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.

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

WoOliN

Участник форума
Регистрация
13 Окт 2012
Сообщения
347
Благодарности
196
Баллы
210
Может ли это быть из-за того, что в файле C_CanNpcCollideWithSpell.d у тебя прописано в таком виде?
Код:
if((spellType == SPL_Zap) || (spellType == SPL_ChargeZap) || (spellType == SPL_ConcussionBolt))

    {
        if(C_NpcIsDown(self))
        {
            return COLL_DONOTHING;
        };
        return COLL_APPLYDAMAGE | COLL_DONTKILL;
    };
return COLL_APPLYDAMAGE | COLL_DONTKILL

У меня описано несколько иначе
Код:
if((spellType == SPL_LightningFlash) || (spellType == SPL_ChargeZap))
    {
        if(self.protection[PROT_MAGIC] == IMMUNE)
        {
            if(Npc_IsPlayer(other))
            {
                Print("Заклинание бесполезно!");
                Snd_Play("SWD_FART_A2");
            };
            return COLL_DONOTHING;
        };
        if(C_BodyStateContains(self,BS_SWIM) || C_BodyStateContains(self,BS_DIVE))
        {
            return COLL_APPLYDOUBLEDAMAGE;
        };
        return COLL_DOEVERYTHING;
    };
return COLL_DOEVERYTHING
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
485
Заработало! Удалось прикрутить шок к шаровой молнии. А вот Молния всё же упорно не хочет вызывать реакцию в B_AssessMagic.
Кстати, в твоей измененной функции B_StopShortZapped в строке Npc_SetTarget(self,hero) следует заменить hero на other, потому что монстра может атаковать магией не только игрок. В этом случае обиженный монстр переключится с атакующего на игрока-свидетеля.
 

WoOliN

Участник форума
Регистрация
13 Окт 2012
Сообщения
347
Благодарности
196
Баллы
210
А там у меня специально так прописано, чтобы монстры не отвлекались от "загрызания" героя или наоборот переключались именно на ГГ )
Как раз для Орков-Шаманов, которые у меня атакуют Шаровой молнией и в общей свалке могут попадать по варгам.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Как раз для Орков-Шаманов, которые у меня атакуют Шаровой молнией и в общей свалке могут попадать по варгам.
Ну и пусть себе попадают - веселее будет, когда варг сцепится с шаманом. В крайнем случае прикрути проверку: если агрессор шаман, а жертва варг, то return COLL_DONOTHING.
 

WoOliN

Участник форума
Регистрация
13 Окт 2012
Сообщения
347
Благодарности
196
Баллы
210
На ваше усмотрение )
 

heckler

Участник форума
Регистрация
25 Апр 2017
Сообщения
413
Благодарности
109
Баллы
210
В игре задействован новый баланс для заклинаний магии Огня (спасибо D36).
Вообще логика такая: если у противника защита от огня равна или больше 20, то выставлять её нужно равной защите от магии.
Глазу Инноса защиту от огня 30 надо снизить до защиты от магии 20 по тому же принципу как и у доспехов
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
485
Заклинание Страх, оказывается, совсем сломанное. Его эффект вызывается не из B_AssessMagic и не из C_CanNpcCollideWithSpell, а из Spell_Cast_Fear, где стояла только одна проверка: является ли цель драконом. Более того, заклинание можно было применить даже на драконов, взяв в фокус "разрешенную" цель. Переписала несколько условий и добавила дополнительные проверки, теперь всё должно быть правильно. К сожалению, остается баг в состоянии бегства, когда после загрузки сохранения команда Npc_GetTarget(self) в ZS_Flee_Loop не выбирает игрока в качества цели, от которой нужно убегать, после чего состояние сразу завершается.

Ещё добавила несколько недостающих музыкальных тем:
Код:
instance BOR_DAY_STD(C_MUSICTHEME_STANDARD) //бордель
{
    file = "kh_daystd.sgt";
};

instance BOR_DAY_FGT(C_MUSICTHEME_FIGHT)
{
    file = "kh_dayfgt.sgt";
};

instance OBS_DAY_STD(C_MUSICTHEME_STANDARD) //верхний квартал Хориниса
{
    file = "kh_daystd.sgt";
};

instance OBS_DAY_FGT(C_MUSICTHEME_FIGHT)
{
    file = "kh_dayfgt.sgt";
};

instance NWP_DAY_STD(C_MUSICTHEME_STANDARD) //раскопки магов Воды
{
    file = "may_daystd.sgt";
};

instance NWP_DAY_FGT(C_MUSICTHEME_FIGHT)
{
    file = "may_dayfgt.sgt";
};

instance TRO_DAY_STD(C_MUSICTHEME_STANDARD) //область около черного тролля
{
    file = "dlc_daystd.sgt";
};

instance TRO_DAY_FGT(C_MUSICTHEME_FIGHT)
{
    file = "dlc_dayfgt.sgt";
};

instance HOF_DAY_STD(C_MUSICTHEME_STANDARD) //ферма Онара
{
    file = "lob_daystd.sgt";
};

instance RVE_DAY_STD(C_MUSICTHEME_STANDARD) //храм Равена
{
    file = "bdt_day_std.sgt";
};

instance RVE_DAY_FGT(C_MUSICTHEME_FIGHT)
{
    file = "adw_day_fgt.sgt";
};
Следовало бы ещё прописать музыку TAV (внутри таверн "У веселого поросенка" и "Мертвая гарпия"), но у таверны в Хоринисе музыкальная зона расположена очень неаккуратно, и городская мелодия резко сменялась бы другой на пустом месте. Да и подобрать ничего подходящего не удалось.

Держите новую порцию отсебятины и исходники. Устанавливается поверх версии от 25.01.2018 из шапки темы с заменой файла G2a_NR_ScriptPatch.ini, вся отсебятина от 28.01.2018 включена, файл modvdf/fixes_2801.mod можно удалить. Изменения:

- Восстановлено состояние шока от заклинания Шаровая молния для всех существ (спасибо WoOliN);
- Главный герой правильно выходит из состояния шока от заклинания Шаровая молния (спасибо WoOliN);
- Заклинания электричества (Малая молния, Шаровая молния и Молния) наносят двойной урон по плывущим противникам;
- Заклинание Страх больше не действует на магов Воды, магов Огня, паладинов, големов и драконов, как и было задумано разработчиками;
- Исправлена ошибка, позволявшая применять заклинание Страх на запрещенных противников;
- Исправлено отсутствие музыки в борделе, верхнем квартале Хориниса, около черного тролля, на ферме Онара, в храме Ворона и на раскопках магов Воды;
- Добавлены новые модели для визуалов селедки, мяса моллюска и сорняков;
- Ватрас на Ирдорате принадлежит к гильдии магов Воды;
- Не начисляется опыт за убийство овец, покупаемых у Пепе и Онара;
- Скорректирована защита от огня Глаза Инноса для соответствия оригиналу;
- У помощника по сюжету можно отменить исправление бага с бесконечной сталью и мензурками у торговцев;
 

Вложения

  • fixes_3101.rar
    1,9 MB · Просмотры: 62
  • SolG2a_NR_ScriptPatch_NDR (31.01).rar
    4,1 MB · Просмотры: 182
Последнее редактирование:

ElderGamer


Модостроитель
Регистрация
16 Апр 2008
Сообщения
4.407
Благодарности
3.232
Баллы
525
после загрузки сохранения команда Npc_GetTarget(self) в ZS_Flee_Loop не выбирает игрока в качества цели, от которой нужно убегать, после чего состояние сразу завершается
Запомнить того, от кого непись убегает, можно в аиварине при входе в состояние бегства. Там же можно восстановить ссылки после загрузки сохранения. Но работать это будет, только в случае уникальной инстанции напугавшего. Если убегание происходит от одного из клонов, запоминание не принесёт пользы.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.574
Благодарности
4.168
Баллы
915
Наконец-то у меня закончилась рабочая неделя и появились вопросы по сборке от 31.01.2018:
1. Почему вызванные големы, все каменные стражи и вся нежить стали уязвимыми к заклинанию "Страх"? И почему в список исключений внесён только Ватрас в Хоринисе? Ведь в нём также должен быть и вернувшийся в город Миксир. Поэтому я предлагаю внести следующие изменения:
Код:
func void Spell_Cast_Fear()
{
    //if(other.guild != GIL_DRAGON)
    /*if((other.guild != GIL_DRAGON) && (other.guild != GIL_KDF) && (other.guild != GIL_PAL) && (other.guild != GIL_KDW) && (Hlp_GetInstanceID(other) != Hlp_GetInstanceID(Vatras))
    {
        //AI_SetNpcsToState(self,ZS_MagicFlee,1000);
        AI_SetNpcsToState(other,ZS_MagicFlee,1000);
    };*/
    //Npc_ClearAIQueue(self);
    //B_ClearPerceptions(self);
    //Npc_SetTarget(self,other);
    if((other.guild < GIL_SEPERATOR_HUM) && (other.guild != GIL_KDF) && (other.guild != GIL_PAL) && (other.guild != GIL_KDW) && (Hlp_GetInstanceID(other) != Hlp_GetInstanceID(Vatras)) && (Hlp_GetInstanceID(self) != Hlp_GetInstanceID(Myxir_CITY)))
    {
        //AI_StartState(other,ZS_MagicFlee,0,"");
        AI_SetNpcsToState(self,ZS_MagicFlee,1000);
        //return;
    }
    else if((other.guild > GIL_SEPERATOR_HUM) && (other.guild != GIL_DRAGON) && (other.guild != GIL_TROLL) && !C_NpcIsGolem(other) && !C_NpcIsUndead(other))
    {
        //AI_StartState(other,ZS_MM_Flee,0,"");
        AI_SetNpcsToState(self,ZS_MM_Flee,1000);
        //return;
    };
    if(Npc_GetActiveSpellIsScroll(self))
    {
        self.attribute[ATR_MANA] -= SPL_Cost_Scroll;
    }
    else
    {
        self.attribute[ATR_MANA] -= SPL_Cost_Fear;
    };
    self.aivar[AIV_SelectSpell] += 1;
};
2. Почему в функции C_CanNpcCollideWithSpell(var int spellType) для того, чтобы заклинания "Шаровая молния" и "Разряд молнии" не наносили урона, используется странный набор условий: у жертвы иммунитет к магии и она лежит на земле (т.е. находится в нокауте/магическом сне/мертва)? Ведь для обычной молнии для этого вполне хватает проверки на C_NpcIsDown(self).
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
485
Почему вызванные големы, все каменные стражи и вся нежить стали уязвимыми к заклинанию "Страх"?
Да, следует добавить их. Но они не "стали" уязвимыми, а были ими ещё в версии от 25.01.2018. Уязвимы были вообще все кроме драконов, а при должной сноровке и сами драконы.

И почему в список исключений внесён только Ватрас в Хоринисе? Ведь в нём также должен быть и вернувшийся в город Миксир.
Да, правильно.
Дополнительные исключения нужно также прописать в zs_magicflee.

странный набор условий: у жертвы иммунитет к магии и она лежит на земле
Хм, да. Тут нужно ((self.protection[PROT_MAGIC] == IMMUNE) || C_NpcIsDown(self)). Проверка на иммунитет нужна, чтобы к противникам с иммунитетом не применялся эффект шока.


- В функции завершения диалога с Лютеро нет команды B_EquipTrader. После торговли он не экипирует свое оружие.

- У моделей меда, жира крысокрота и топора Краш Агаш сломана текстурная развертка:
swd.png

Исправленные модели:
 

Вложения

  • мед, жир, топор.rar
    27,2 KB · Просмотры: 57
Последнее редактирование:

Paladdin

Участник форума
Регистрация
20 Дек 2017
Сообщения
172
Благодарности
66
Баллы
175
Стоит ли ждать включения этих исправлений в Gothic 2 Steam Fix?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
485
Стоит ли ждать включения этих исправлений в Gothic 2 Steam Fix?
1 февраля уже включены мои исправления от 28.01 и от 31.01. Если не потребуется исправление чего-либо критического, то дальнейших обновлений в ближайшие месяц-два-три ждать не стоит.
 

Paladdin

Участник форума
Регистрация
20 Дек 2017
Сообщения
172
Благодарности
66
Баллы
175
1 февраля уже включены мои исправления от 28.01 и от 31.01. Если не потребуется исправление чего-либо критического, то дальнейших обновлений в ближайшие месяц-два-три ждать не стоит.
Ну а в виде какого-нибудь отдельного хотфикса нельзя?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
485

Saturas


Модостроитель
Регистрация
11 Фев 2009
Сообщения
2.512
Благодарности
1.334
Баллы
315
А что за параша с вызваными скелетами какого черта у них 0 навыков и защиты?
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.189
Благодарности
3.373
Баллы
485
А что за параша с вызваными скелетами какого черта у них 0 навыков и защиты?
Т.е. "почему у Summoned_Skeleton закомментированы все attribute и protection"? Потому что они наследуются от prototype Mst_Default_Skeleton(C_Npc) с теми же значениями.
 

DenZanuda


Архивариус
Регистрация
4 Ноя 2011
Сообщения
941
Благодарности
476
Баллы
245
Файл G2a_NR_ScriptPatch_NDR_test_v15w_MOD, скаченный из шапки, при распаковке пишет: Архив поврежден или имеет неизвестный формат.
Проверьте пожалуйста.
 

badgy

Участник форума
Регистрация
18 Фев 2018
Сообщения
3
Благодарности
0
Баллы
150
Почему у Мартина при первом разговоре (и всех последующих) порезан торговый инвентарь - нет шпаги мастера? Это сильно меняет баланс игры.
 
Сверху Снизу