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

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

    Ссылка на конкурсную тему - тык
    Ссылка на тему с работами участников- тык

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

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.127
Благодарности
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. При возникновении проблем с запуском встроенных плагинов рекомендуется скачать и установить этот набор vcredist.

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

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
И как это будет выглядеть? "Иннос, даруй мне только силу, а остальное можешь оставить себе...
А почему бы и нет? Единственная проблема в несоответствии русской озвучки ГГ из G2 (Пётр Иващенко) и G3 (Сергей Чонишвили).
 

JiRiK_StRiKeS_AGaIN

Участник форума
Регистрация
3 Мар 2017
Сообщения
300
Благодарности
228
Баллы
200
некорректно сравнивать Г2НВ и Г3
Потому что...?

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

А почему бы и нет? Единственная проблема в несоответствии русской озвучки ГГ из G2 (Пётр Иващенко) и G3 (Сергей Чонишвили).
Я готов стерпеть божественный и каноничный голос Сергея Чонишвили *heart*
 

Коляныч

Участник форума
Регистрация
4 Янв 2018
Сообщения
379
Благодарности
116
Баллы
210
А почему бы и нет? Единственная проблема в несоответствии русской озвучки ГГ из G2 (Пётр Иващенко) и G3 (Сергей Чонишвили).
Мне кажется: "не стоит чинить то, что работает". А вообще, стоило бы вынести такой спорный вопрос на голосование, послушать что народ об этом думает... Проблем с озвучкой не вижу вообще никаких - в игре Торбен, например, половину своих фраз вообще не своим голосом произносит. И вообще она не нужна. Просто во время пожертвования в контекстном меню выбирать понравившийся бонус и всё.

P.S. Dimus, на сколько я знаю, вы спец. в озвучке... Хотелось бы спросить - будут ли когда нибудь поправлены такие фразы.
В проповеди Ватраса: "И человек убил зверя, и "тот" вошёл в царство Белиара".
В выражении Радамеса: "Если обладаешь ты силой, утопи "его" (то есть меч) в глубинах моря!"
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
16.710
Благодарности
7.120
Баллы
1.950
А вообще, стоило бы вынести такой спорный вопрос на голосование, послушать что народ об этом думает...
Прежде, чем выносить вопрос на голосование, неплохо бы узнать мнение D36. Ибо голосование имеет смысл только в том случае, если разработчик решает реализовывать то или иное нововведение на усмотрение игроков.
 

Ксардас 2000

Участник форума
Регистрация
24 Фев 2018
Сообщения
508
Благодарности
205
Баллы
205
Можно сделать статуи как они сделаны в 3 части, подошел, выбрал нужный атрибут, 5-10 раз пожертвовал чтобы Иннос даровал тебе силы/ловкости/интеллекта и все, дело с концами.
Только в Г3 алтари богов не дают бонусы, они работают именно как учителя основных характеристик, полностью их заменяя. Они жрут золото и ЛП, только они учат заклинаниям Белиара и Инноса. Это совсем другие функции.
Сугубо для того, чтобы мне возразить, ты конечно ответишь "нет", но думаю, большинство игроков не взирая на гильдию, то бишь выбранную игровую роль
Опять же. Весь ваш "отыгрышь" сводится к выбору класса, на этом всё мышление и заканчивает. Что мешает быть магом который пошёл в маги из-за силы и власти которая магия даёт, его не особо волнует сам источник? Или паладином который изначально просто решил записаться ополчение чтобы как можно проще и быстрее решить свои цели, а там уже на него самого нацепили доспехи? Или персонажа который понимает мощь такого артефакта как Коготь Белиара и считает что более мудрым будет его использовать, как и наоборот, персонажа который его уничтожает. Если кто-то играет паладина который напялил латы и ни разу к алтарю Инноса не прикоснулся, значит он играет персонажа на которого напялили латы паладина и ему особо по этому поводу нет дела, надо убивать драконов. Даже если игрок своей игрой вообще никакого отыгрыша не подразумевал, со стороны игровой логики и истории было нечто подобное.
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
16.710
Благодарности
7.120
Баллы
1.950
Опять же. Весь ваш "отыгрышь" сводится к выбору класса, на этом всё мышление и заканчивает.
Хамишь...
Что мешает быть магом который пошёл в маги из-за силы и власти которая магия даёт, его не особо волнует сам источник?
В рамках данной игры так мешает считать отсутствие выбора источника магии, т.к. магическая гильдия здесь всего одна.
Или персонажа который понимает мощь такого артефакта как Коготь Белиара и считает что более мудрым будет его использовать, как и наоборот, персонажа который его уничтожает.
Вот только мощь эта сильно преувеличена. Для максимальной прокачки Когтя нужно набрать аж 47-й левел, но даже тогда это оружие не будет топовым по сравнению с другими доступными клинками. Вот и получается, что выбор оставлять Коготь или нет сводится к выбору между ощутимой прибавкой к опыту за сдачу меча Сатурасу и желанием побегать с оружием, которое красиво бьет врагов молнией по голове.
Ты сводишь отыгрыш сугубо к выбору игрока. Но на самом деле отыгрыш должен быть подкреплен еще и игровыми событиями, на которые он влияет. Г2 НВ такой возможности не дает. Мы это уже обсуждали, когда кое-кто утверждал, что в Готике можно отыграть роль злодея. Я же говорил, что такая роль в принципе не предусмотрена игровыми реалиями. Да, игрок может вырезать практически весь Хоринис, только потом его персонаж все равно плывет на Ирдорат, убивает главгада и предстает героем. Но зачем тебе об этом думать верно? Ведь твое мышление ограничено лишь тем, что герой вырезал Хоринис, а значит он злодей. Оставайся при своем мнении и не продолжай этот разговор :cool:
И вообще это уже реально оффтопная дискуссия, которую я еще днем хотел закончить.
 
Последнее редактирование:

JiRiK_StRiKeS_AGaIN

Участник форума
Регистрация
3 Мар 2017
Сообщения
300
Благодарности
228
Баллы
200
Только в Г3 алтари богов не дают бонусы, они работают именно как учителя основных характеристик, полностью их заменяя.
Да что ты говоришь, правда? Наверно мне кажется и это я у алтаря Инноса стою, а не у повстанца иначе именуемого как Норрис.*newspaper*
4Nd9FyeyKUs.jpg
 

N1kX


Модостроитель
Регистрация
13 Ноя 2009
Сообщения
5.855
Благодарности
5.286
Баллы
910
Мне кажется, что в рамках неофф обновления можно сделать отдельный пункт, например в 300 золотых, в котором ГГ сам выбирает себе характеристику.
Например, как-то так, будет выглядеть

Daedalus:
var int PrayDay;
var int PrayDayOne_0;
var int PrayDayOne_10;
var int PrayDayOne_50;
var int PrayDayOne_100;
//новая переменная
var int PrayDayOne_300;

var string concatDonation;

var int Shrine_STR_Bonus;
var int Shrine_DEX_Bonus;
var int Shrine_MANA_Bonus;
var int SpecialBless;
var int ShrineIsObsessed;
var int shrinehealing;
var int ShrinesHealed;
var int ShrineIsObsessed_NW_TROLLAREA_PATH_37;
var int ShrineIsObsessed_NW_FARM1_CONNECT_XARDAS;
var int ShrineIsObsessed_NW_TROLLAREA_PATH_66;
var int ShrineIsObsessed_NW_TROLLAREA_PATH_04;
var int ShrineIsObsessed_SAGITTA;
var int ShrineIsObsessed_NW_BIGMILL_MALAKSVERSTECK_02;
var int ShrineIsObsessed_NW_FARM3_BIGWOOD_02;

func void C_IsShrineObsessed(var C_Npc slf)
{
    if(Hlp_GetInstanceID(slf) == Hlp_GetInstanceID(hero))
    {
        ShrineIsObsessed = TRUE;
        if((Npc_GetDistToWP(hero,"NW_TROLLAREA_PATH_37") < 2000) && (ShrineIsObsessed_NW_TROLLAREA_PATH_37 == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_NW_TROLLAREA_PATH_37 = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else if((Npc_GetDistToWP(hero,"NW_FARM1_CONNECT_XARDAS") < 2000) && (ShrineIsObsessed_NW_FARM1_CONNECT_XARDAS == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_NW_FARM1_CONNECT_XARDAS = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else if((Npc_GetDistToWP(hero,"NW_TROLLAREA_PATH_66") < 2000) && (ShrineIsObsessed_NW_TROLLAREA_PATH_66 == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_NW_TROLLAREA_PATH_66 = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else if((Npc_GetDistToWP(hero,"NW_TROLLAREA_PATH_04") < 2000) && (ShrineIsObsessed_NW_TROLLAREA_PATH_04 == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_NW_TROLLAREA_PATH_04 = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else if((Npc_GetDistToWP(hero,"SAGITTA") < 2000) && (ShrineIsObsessed_SAGITTA == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_SAGITTA = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else if((Npc_GetDistToWP(hero,"NW_BIGMILL_MALAKSVERSTECK_02") < 2000) && (ShrineIsObsessed_NW_BIGMILL_MALAKSVERSTECK_02 == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_NW_BIGMILL_MALAKSVERSTECK_02 = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else if((Npc_GetDistToWP(hero,"NW_FARM3_BIGWOOD_02") < 2000) && (ShrineIsObsessed_NW_FARM3_BIGWOOD_02 == TRUE))
        {
            if(SHRINEHEALING == TRUE)
            {
                ShrineIsObsessed_NW_FARM3_BIGWOOD_02 = FALSE;
                ShrineIsObsessed = FALSE;
            };
        }
        else
        {
            ShrineIsObsessed = FALSE;
        };
    };
};


instance PC_PrayShrine_HEALSHRINE(C_Info)
{
    npc = PC_Hero;
    nr = 1;
    condition = PC_PrayShrine_HEALSHRINE_Condition;
    information = PC_PrayShrine_HEALSHRINE_Info;
    permanent = TRUE;
    description = "Очистить алтарь";
};


func int PC_PrayShrine_HEALSHRINE_Condition()
{
    if((PLAYER_MOBSI_PRODUCTION == MOBSI_PrayShrine) && Npc_HasItems(hero,ItMi_UltharsHolyWater_Mis) && (ShrineIsObsessed == TRUE))
    {
        return TRUE;
    };
};

func void PC_PrayShrine_HEALSHRINE_Info()
{
    var string ShrinesText;
    var string ShrinesLeft;
    Wld_PlayEffect("spellFX_HealShrine",hero,hero,0,0,0,FALSE);
    Snd_Play("MFX_Heal_Cast");
    SHRINEHEALING = TRUE;
    C_IsShrineObsessed(self);
    SHRINEHEALING = FALSE;
    ShrinesHealed += 1;
    if(ShrinesHealed < 7)
    {
        B_Say(self,self,"$HEALSHRINE");
        ShrinesLeft = IntToString(7 - ShrinesHealed);
        ShrinesText = ConcatStrings(PRINT_ShrinesLeft,ShrinesLeft);
        AI_PrintScreen(ShrinesText,-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
    }
    else
    {
        B_Say(self,self,"$HEALLASTSHRINE");
        MIS_Ulthar_HeileSchreine_PAL = LOG_SUCCESS;
        AI_PrintScreen("Все алтари очищены!",-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
    };
    B_GivePlayerXP(XP_Ambient);
    b_endproductiondialog();
};

func void PrayShrine_S1()
{
    var C_Npc her;
    her = Hlp_GetNpc(PC_Hero);
    if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(her))
    {
        C_IsShrineObsessed(self);
        if(ShrineIsObsessed == TRUE)
        {
            Wld_PlayEffect("DEMENTOR_FX",hero,hero,0,0,0,FALSE);
        };
        self.aivar[AIV_INVINCIBLE] = TRUE;
        PLAYER_MOBSI_PRODUCTION = MOBSI_PrayShrine;
        AI_ProcessInfos(her);
    };
};


instance PC_PrayShrine_End(C_Info)
{
    npc = PC_Hero;
    nr = 999;
    condition = PC_PrayShrine_End_Condition;
    information = PC_PrayShrine_End_Info;
    permanent = TRUE;
    description = Dialog_Ende;
};


func int PC_PrayShrine_End_Condition()
{
    if(PLAYER_MOBSI_PRODUCTION == MOBSI_PrayShrine)
    {
        return TRUE;
    };
};

func void PC_PrayShrine_End_Info()
{
    b_endproductiondialog();
};


instance PC_PrayShrine_Paladine(C_Info)
{
    npc = PC_Hero;
    nr = 3;
    condition = PC_PrayShrine_Paladine_Condition;
    information = PC_PrayShrine_Paladine_Info;
    permanent = FALSE;
    description = "Помолиться за паладинов";
};


func int PC_PrayShrine_Paladine_Condition()
{
    if((PLAYER_MOBSI_PRODUCTION == MOBSI_PrayShrine) && (MIS_MardukBeten == LOG_Running) && (Kapitel == 1))
    {
        return TRUE;
    };
};

func void PC_PrayShrine_Paladine_Info()
{
    PrintScreen(Pray_Paladin1,-1,33,FONT_ScreenSmall,3);
    PrintScreen(Pray_Paladin2,-1,36,FONT_ScreenSmall,4);
    PrintScreen(Pray_Paladin3,-1,39,FONT_ScreenSmall,5);
    PrintScreen(Pray_Paladin4,-1,42,FONT_ScreenSmall,6);
};


instance PC_PrayShrine_Pray(C_Info)
{
    npc = PC_Hero;
    nr = 2;
    condition = PC_PrayShrine_Pray_Condition;
    information = PC_PrayShrine_Pray_Info;
    permanent = TRUE;
    description = "Помолиться";
};


func int PC_PrayShrine_Pray_Condition()
{
    if(PLAYER_MOBSI_PRODUCTION == MOBSI_PrayShrine)
    {
        return TRUE;
    };
};

func void PC_PrayShrine_Pray_Info()
{
    if(ShrineIsObsessed == TRUE)
    {
        SC_IsObsessed = TRUE;
        PrintScreen(PRINT_SCIsObsessed,-1,-1,FONT_Screen,2);
        Snd_Play("DEM_Die");
    }
    else
    {
        Info_ClearChoices(PC_PrayShrine_Pray);
        Info_AddChoice(PC_PrayShrine_Pray,Dialog_Back,PC_PrayShrine_Pray_Back);
        Info_AddChoice(PC_PrayShrine_Pray,"Я хочу помолиться и ничего не пожертвовать.",PC_PrayShrine_Pray_NoPay);
        if(Npc_HasItems(hero,ItMi_Gold) >= 10)
        {
            Info_AddChoice(PC_PrayShrine_Pray,"Я хочу помолиться и пожертвовать 10 золотых монет.",PC_PrayShrine_Pray_SmallPay);
        };
        if(Npc_HasItems(hero,ItMi_Gold) >= 50)
        {
            Info_AddChoice(PC_PrayShrine_Pray,"Я хочу помолиться и пожертвовать 50 золотых монет.",PC_PrayShrine_Pray_MediumPay);
        };
        if(Npc_HasItems(hero,ItMi_Gold) >= 100)
        {
            Info_AddChoice(PC_PrayShrine_Pray,"Я хочу помолиться и пожертвовать 100 золотых монет.",PC_PrayShrine_Pray_BigPay);
        };
        //Новый диалог
        if(Npc_HasItems(hero,ItMi_Gold) >= 300)
        {
            Info_AddChoice(PC_PrayShrine_Pray,"Я хочу помолиться и пожертвовать 300 золотых монет.",PC_PrayShrine_Pray_HugePay);
        };
    };
};

func void PC_PrayShrine_Pray_Back()
{
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_NoPay()
{
    var int zufall;
    zufall = Hlp_Random(100);
    if(((PrayDay == Wld_GetDay()) && (PrayDay != 0)) || ((Wld_GetDay() == 0) && ((PrayDayOne_0 == TRUE) || (PrayDayOne_10 == TRUE) || (PrayDayOne_50 == TRUE) || (PrayDayOne_100 == TRUE) || (PrayDayOne_300 == TRUE))))
    {
        PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
    }
    else if(zufall < 5)
    {
        B_BlessAttribute(hero,ATR_HITPOINTS_MAX,1);
    }
    else
    {
        PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
    };
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_0 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_SmallPay()
{
    Npc_RemoveInvItems(hero,ItMi_Gold,10);
    if(((PrayDay == Wld_GetDay()) && (PrayDay != 0)) || ((Wld_GetDay() == 0) && ((PrayDayOne_0 == TRUE) || (PrayDayOne_10 == TRUE) || (PrayDayOne_50 == TRUE) || (PrayDayOne_100 == TRUE) || (PrayDayOne_300 == TRUE))))
    {
        PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
    }
    else
    {
        B_BlessAttribute(hero,ATR_HITPOINTS_MAX,1);
    };
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_10 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_MediumPay()
{
    Npc_RemoveInvItems(hero,ItMi_Gold,50);
    if(((PrayDay == Wld_GetDay()) && (PrayDay != 0)) || ((Wld_GetDay() == 0) && ((PrayDayOne_0 == TRUE) || (PrayDayOne_10 == TRUE) || (PrayDayOne_50 == TRUE) || (PrayDayOne_100 == TRUE) || (PrayDayOne_300 == TRUE))))
    {
        PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
    }
    else
    {
        B_BlessAttribute(hero,ATR_HITPOINTS_MAX,2);
    };
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_50 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_BigPay()
{
    var int zufall;
    zufall = Hlp_Random(100);
    Npc_RemoveInvItems(hero,ItMi_Gold,100);
    if(((PrayDay == Wld_GetDay()) && (PrayDay != 0)) || ((Wld_GetDay() == 0) && ((PrayDayOne_0 == TRUE) || (PrayDayOne_10 == TRUE) || (PrayDayOne_50 == TRUE) || (PrayDayOne_100 == TRUE) || (PrayDayOne_300 == TRUE))))
    {
        PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
    }
    else if((Shrine_STR_Bonus < 10) && (hero.guild != GIL_KDF) && (hero.guild != GIL_NOV) && (zufall < 50))
    {
        B_BlessAttribute(hero,ATR_STRENGTH,1);
        Shrine_STR_Bonus += 1;
    }
    else if((Shrine_DEX_Bonus < 10) && (hero.guild != GIL_KDF) && (hero.guild != GIL_NOV) && (zufall >= 50))
    {
        B_BlessAttribute(hero,ATR_DEXTERITY,1);
        Shrine_DEX_Bonus += 1;
    }
    else if((Shrine_MANA_Bonus < 20) && (hero.guild != GIL_SLD) && (hero.guild != GIL_DJG))
    {
        B_BlessAttribute(hero,ATR_MANA_MAX,1);
        Shrine_MANA_Bonus += 1;
    }
    else
    {
        B_BlessAttribute(hero,ATR_HITPOINTS_MAX,3);
    };
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_100 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

//Новое
func void PC_PrayShrine_Pray_HugePay()
{
    Npc_RemoveInvItems(hero,ItMi_Gold,300);
    if(((PrayDay == Wld_GetDay()) && (PrayDay != 0)) || ((Wld_GetDay() == 0) && ((PrayDayOne_0 == TRUE) || (PrayDayOne_10 == TRUE) || (PrayDayOne_50 == TRUE) || (PrayDayOne_100 == TRUE) || (PrayDayOne_300 == TRUE))))
    {
        PrintScreen(Print_BlessNone,-1,-1,FONT_Screen,2);
    }
    else
    {
        if((hero.guild != GIL_KDF) && (hero.guild != GIL_NOV))
        {
            if(Shrine_STR_Bonus < 10)
            {
                Info_AddChoice(PC_PrayShrine_Pray,"Сила",PC_PrayShrine_Pray_Str);
            };
            if(Shrine_DEX_Bonus < 10)
            {
                Info_AddChoice(PC_PrayShrine_Pray,"Ловкость",PC_PrayShrine_Pray_Dex);
            };
        };
        if((Shrine_MANA_Bonus < 20) && (hero.guild != GIL_SLD) && (hero.guild != GIL_DJG))
        {
            Info_AddChoice(PC_PrayShrine_Pray,"Мана",PC_PrayShrine_Pray_Mana);
        };
        Info_AddChoice(PC_PrayShrine_Pray,"Жизни",PC_PrayShrine_Pray_HP);
    };
};

func void PC_PrayShrine_Pray_Str()
{
    B_BlessAttribute(hero,ATR_STRENGTH,1);
    Shrine_STR_Bonus += 1;
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_300 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_Dex()
{
    B_BlessAttribute(hero,ATR_DEXTERITY,1);
    Shrine_DEX_Bonus += 1;
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_300 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_Mana()
{
    B_BlessAttribute(hero,ATR_MANA_MAX,1);
    Shrine_MANA_Bonus += 1;
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_300 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

func void PC_PrayShrine_Pray_HP()
{
    B_BlessAttribute(hero,ATR_HITPOINTS_MAX,3);
    PrayDay = Wld_GetDay();
    if(PrayDay == 0)
    {
        PrayDayOne_300 = TRUE;
    };
    Info_ClearChoices(PC_PrayShrine_Pray);
};

instance PC_PrayShrine_BlessSword(C_Info)
{
    npc = PC_Hero;
    nr = 2;
    condition = PC_PrayShrine_BlessSword_Condition;
    information = PC_PrayShrine_BlessSword_Info;
    permanent = TRUE;
    description = Bless_Sword;
};


func int PC_PrayShrine_BlessSword_Condition()
{
    if((PLAYER_MOBSI_PRODUCTION == MOBSI_PrayShrine) && (hero.guild == GIL_PAL) && (Npc_GetDistToWP(hero,"NW_MONASTERY_CHAPELL_02") <= 500) && (Npc_HasItems(hero,ItMw_1H_Blessed_01) || Npc_HasItems(hero,ItMw_2H_Blessed_01)))
    {
        return TRUE;
    };
};

func void PC_PrayShrine_BlessSword_Info()
{
    if(ShrineIsObsessed == TRUE)
    {
        SC_IsObsessed = TRUE;
        PrintScreen(PRINT_SCIsObsessed,-1,-1,FONT_Screen,2);
        Snd_Play("DEM_Die");
    }
    else if(Npc_HasItems(hero,ItMi_Gold) >= Gold_BlessSword)
    {
        Npc_RemoveInvItems(hero,ItMi_Gold,Gold_BlessSword);
        concatDonation = ConcatStrings(IntToString(Gold_BlessSword),PRINT_GoldGegeben);
        AI_PrintScreen(concatDonation,-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
        if(Npc_HasItems(hero,ItMw_2H_Blessed_01))
        {
            Npc_RemoveInvItems(hero,ItMw_2H_Blessed_01,1);
            CreateInvItems(hero,ItMw_2H_Blessed_02,1);
            Wld_PlayEffect("spellFX_PalHeal_ORIGIN",hero,hero,0,0,0,FALSE);
            Snd_Play("MFX_Heal_Cast");
            B_GivePlayerXP(XP_SwordBlessed);
        }
        else
        {
            Npc_RemoveInvItems(hero,ItMw_1H_Blessed_01,1);
            CreateInvItems(hero,ItMw_1H_Blessed_02,1);
            Wld_PlayEffect("spellFX_PalHeal_ORIGIN",hero,hero,0,0,0,FALSE);
            Snd_Play("MFX_Heal_Cast");
            B_GivePlayerXP(XP_SwordBlessed);
        };
    }
    else
    {
        AI_PrintScreen(Print_NotEnoughGold,-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
    };
};


instance PC_PrayShrine_BlessSword_Final(C_Info)
{
    npc = PC_Hero;
    nr = 2;
    condition = PC_PrayShrine_BlessSword_Final_Condition;
    information = PC_PrayShrine_BlessSword_Final_Info;
    permanent = TRUE;
    description = Bless_Sword2;
};


func int PC_PrayShrine_BlessSword_Final_Condition()
{
    if((PLAYER_MOBSI_PRODUCTION == MOBSI_PrayShrine) && (hero.guild == GIL_PAL) && (Npc_GetDistToWP(hero,"NW_MONASTERY_CHAPELL_02") <= 500) && (PAL_KnowsAbout_FINAL_BLESSING == TRUE) && (Npc_HasItems(hero,ItMw_1H_Blessed_02) || Npc_HasItems(hero,ItMw_2H_Blessed_02)))
    {
        return TRUE;
    };
};

func void PC_PrayShrine_BlessSword_Final_Info()
{
    if(ShrineIsObsessed == TRUE)
    {
        SC_IsObsessed = TRUE;
        PrintScreen(PRINT_SCIsObsessed,-1,-1,FONT_Screen,2);
        Snd_Play("DEM_Die");
    }
    else if(Npc_HasItems(hero,ItPo_PotionOfDeath_01_Mis) || Npc_HasItems(hero,ItPo_PotionOfDeath_02_Mis))
    {
        Npc_RemoveInvItems(hero,ItPo_PotionOfDeath_01_Mis,1);
        Npc_RemoveInvItems(hero,ItPo_PotionOfDeath_02_Mis,1);
        if(Npc_HasItems(hero,ItMw_2H_Blessed_02))
        {
            Npc_RemoveInvItems(hero,ItMw_2H_Blessed_02,1);
            CreateInvItems(hero,ItMw_2H_Blessed_03,1);
            Wld_PlayEffect("spellFX_PalHeal_ORIGIN",hero,hero,0,0,0,FALSE);
            Snd_Play("MFX_Heal_Cast");
            B_GivePlayerXP(XP_SwordBlessed2);
        }
        else
        {
            Npc_RemoveInvItems(hero,ItMw_1H_Blessed_02,1);
            CreateInvItems(hero,ItMw_1H_Blessed_03,1);
            Wld_PlayEffect("spellFX_PalHeal_ORIGIN",hero,hero,0,0,0,FALSE);
            Snd_Play("MFX_Heal_Cast");
            B_GivePlayerXP(XP_SwordBlessed2);
        };
    }
    else
    {
        AI_PrintScreen(PRINT_NoInnosTears,-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
    };
};
 
Последнее редактирование:

Ксардас 2000

Участник форума
Регистрация
24 Фев 2018
Сообщения
508
Благодарности
205
Баллы
205
Да что ты говоришь, правда? Наверно мне кажется и это я у алтаря Инноса стою, а не у повстанца иначе именуемого как Норрис.*newspaper*
4Nd9FyeyKUs.jpg
С статами ошибся. В остальном - нет. В Г3 алтари - просто очередной учитель.
 

wordfes

Участник форума
Регистрация
14 Фев 2019
Сообщения
109
Благодарности
29
Баллы
190
А что возможность забраться в город по цепям ворот убрали?
 

wordfes

Участник форума
Регистрация
14 Фев 2019
Сообщения
109
Благодарности
29
Баллы
190
Разблокирована возможность кражи у наемников на ферме Акила Альвареса и Эндарго, но как выучить кражу если для того чтобы её выучить нужно отнести посылку, которую дают только после смерти этих наемников?
 

Vengeful_Blade

Участник форума
Регистрация
1 Фев 2015
Сообщения
13
Благодарности
1
Баллы
150
Приветствую уважаемые форумчане!
Я бы хотел уточнить один вопрос, что на счет перманентных бонусов от предметов (зелий, скрижалей, яблок, похлебок ...) ? Они добавляются к реальным значениям характеристик, или уже можно юзать их без потери драгоценных LP ?
 

Коляныч

Участник форума
Регистрация
4 Янв 2018
Сообщения
379
Благодарности
116
Баллы
210
Разблокирована возможность кражи у наемников на ферме Акила Альвареса и Эндарго, но как выучить кражу если для того чтобы её выучить нужно отнести посылку, которую дают только после смерти этих наемников?
Сдай ополчению кого нибудь из
Ренгару, Халвора, Нагура
Достаточно кого нибудь одного, чтобы у Атиллы появилось желание убить тебя.
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
Я бы хотел уточнить один вопрос, что на счет перманентных бонусов от предметов (зелий, скрижалей, яблок, похлебок ...) ? Они добавляются к реальным значениям характеристик, или уже можно юзать их без потери драгоценных LP ?
это опция включается через помошника

Разблокирована возможность кражи у наемников на ферме Акила Альвареса и Эндарго, но как выучить кражу если для того чтобы её выучить нужно отнести посылку, которую дают только после смерти этих наемников?
Сдай ополчению кого нибудь из
Ренгару, Халвора, Нагура
Достаточно кого нибудь одного, чтобы у Атиллы появилось желание убить тебя.
или выучи воровство в Ярике
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.127
Благодарности
3.218
Баллы
485
Разблокирована возможность кражи у наемников на ферме Акила Альвареса и Эндарго, но как выучить кражу если для того чтобы её выучить нужно отнести посылку, которую дают только после смерти этих наемников?
Выполнение квеста Нагура не требуется для получения доступа к гильдии воров. К тому же, карманную кражу можно изучить у пирата Билла.

Я бы хотел уточнить один вопрос, что на счет перманентных бонусов от предметов (зелий, скрижалей, яблок, похлебок ...) ? Они добавляются к реальным значениям характеристик, или уже можно юзать их без потери драгоценных LP ?
По умолчанию - как в оригинале, но это можно изменить в настройках мода у помощника по сюжету, используя читы (bmarvinb - F2 - insert sh). Толком не тестировалось, правда.
bon.jpg

Напоминаю, что мне всё ещё требуются добровольцы для тестирования новой версии, готовые начать новую игру на тестовой сборке.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.562
Благодарности
4.154
Баллы
915
В проповеди Ватраса: "И человек убил зверя, и "тот" вошёл в царство Белиара".
В упор не слышу в звуковом файле DIA_VATRAS_PREACH_05_15.WAV слова "тот". Следовательно, здесь нечего исправлять.
В выражении Радамеса: "Если обладаешь ты силой, утопи "его" (то есть меч) в глубинах моря!"
И снова ложная информация, потому что в звуковом файле DIA_ADDON_RHADEMES_PERM_03_00.WAV Радемес произносит "утопи её", а не "утопи его". В G2 MDK эта фраза звучит так: "Wenn du die Kraft dazu hast ... versenke es ... in den Tiefen des Meeres ...".
Не позорься, морра, потому что настоящее имя этого наёмника Энгардо (Engardo), а в Эндарго его превратили криворукие локализаторы из "Акеллы". Также они исказили имена и других персонажей, например, Аттила (Attila) потерял гласную в конце имени, а Сагитта (Sagitta) стала "Саггита".
 
Последнее редактирование:

Коляныч

Участник форума
Регистрация
4 Янв 2018
Сообщения
379
Благодарности
116
Баллы
210
Dimus, ну в правдоподобности первой фразы я не уверен, так как брал инфу
Отрезок на минуте 11.55 глянь, если интересно. А если дословно переводить вторую фразу, которую ты цитировал, то там коротко и не понятно - "её" или "его". Но спорить не хочу...
 

wordfes

Участник форума
Регистрация
14 Фев 2019
Сообщения
109
Благодарности
29
Баллы
190
Вроде как баг нашел, почему-то рыцарь охраняющий дом Хагена не бессмертен(тот что слева от входа)
 

WoOliN

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