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

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

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

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.114
Благодарности
3.194
Баллы
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 версии неофициального обновления. Подробности здесь.
 
Последнее редактирование:

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
16.658
Благодарности
7.075
Баллы
1.950
Да, вы правы. Здесь менять ничего не нужно
Уф, отлегло :)
Добавляю только добровольный отказ от его помощи.
Отлично *thumbs up*
Кстати, насчет вот этого:
Кстати, если дважды отказаться помочь Грегу, то он говорит, мол, я тебе это припомню и лучше больше не попадайся мне на глаза. Я изменю этот момент: теперь Грег действительно запомнит это и в Яркендаре будет относиться к игроку иначе:
- вместо доспехов пирата (55/55/15/0) он даст одежду пирата (40/40/15/0), которую в оригинале получить было нельзя;
- в этом случае доспехи пирата можно будет купить у Гаретта за 1300 золота;
- за квесты по зачистке пляжа и башни он даст не по 200 золотых, а по 50;
- за информацию о смерти Ворона он не даст 500 золотых.
Я полностью согласен.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.114
Благодарности
3.194
Баллы
485
при каких условиях запускается этот диалог?
Грег убивает всех бандитов, которых видит, но среди них не оказывается Декстера. Застрял где-то или убежал куда-то (за дом или на башню), например. Но при этом Декстер жив. Грег прекращает состояние атаки и обращается к игроку:
Daedalus:
func void DIA_Addon_Greg_NW_CaughtDexter_Info()
{
    AI_Output(self,other,"DIA_Addon_Greg_NW_CaughtDexter_01_00");    //(громко) Ну и где эта свинья?
    AI_Output(other,self,"DIA_Addon_Greg_NW_CaughtDexter_15_01");    //Кто, главарь? Прямо здесь.
    AI_Output(self,other,"DIA_Addon_Greg_NW_CaughtDexter_01_02");    //Тогда прочь с моей дороги!
После чего уходит в дом:
Daedalus:
    Npc_ExchangeRoutine(self,"DexterHouseRun");
};
Если и в доме Декстера не оказывается, то Грег не переходит в состояние атаки и опять может обратиться к игроку:
Daedalus:
func void DIA_Addon_Greg_NW_WodennNu_Info()
{
    AI_Output(self,other,"DIA_Addon_Greg_NW_WodennNu_01_00");    //И куда же он делся?
    AI_Output(other,self,"DIA_Addon_Greg_NW_WodennNu_15_01");    //Был здесь.
    AI_Output(self,other,"DIA_Addon_Greg_NW_WodennNu_01_02");    //Ну так пойди и отыщи его!
    AI_StopProcessInfos(self);
};
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
а вот этот фрагмент закомментированного кода про что?
Daedalus:
func void DIA_Dexter_Kill_ENDE()
{
//    var C_Item itm;
    AI_StopProcessInfos(self);
    B_Attack(self,other,AR_SuddenEnemyInferno,1);
/*    itm = Npc_GetEquippedArmor(Greg_NW);
    if(!Hlp_IsItem(itm,ITAR_PIR_H_Addon))
    {
        AI_EquipArmor(Greg_NW,ITAR_PIR_H_Addon);
    };*/
};
Daedalus:
instance DIA_Dexter_Kill(C_Info)
{
    npc = BDT_1060_Dexter;
    nr = 2;
    condition = DIA_Dexter_Kill_Condition;
    information = DIA_Dexter_Kill_Info;
    permanent = FALSE;
    important = TRUE;
};


func int DIA_Dexter_Kill_Condition()
{
    if(Npc_IsInState(self,ZS_Talk) && ((Dexter_NoMoreSmallTalk == TRUE) || (Knows_Dexter == FALSE)))
    {
        return TRUE;
    };
};

func void DIA_Dexter_Kill_Info()
{
    if(Knows_Dexter == TRUE)
    {
        AI_Output(self,other,"DIA_Addon_Dexter_Add_09_02");    //Ты сам напросился...
    }
    else
    {
        AI_Output(self,other,"DIA_Dexter_Kill_09_01");    //Ох, тебе не стоило показываться здесь. Ты оказался не в то время и не в том месте.
    };
    MIS_Steckbriefe = LOG_OBSOLETE;
    B_CheckLog();
    B_Greg_ComesToDexter();
    Info_ClearChoices(DIA_Dexter_Kill);
    Info_AddChoice(DIA_Dexter_Kill,Dialog_Ende,DIA_Dexter_Kill_ENDE);
};

func void DIA_Dexter_Kill_ENDE()
{
//    var C_Item itm;
    AI_StopProcessInfos(self);
    B_Attack(self,other,AR_SuddenEnemyInferno,1);
/*    itm = Npc_GetEquippedArmor(Greg_NW);
    if(!Hlp_IsItem(itm,ITAR_PIR_H_Addon))
    {
        AI_EquipArmor(Greg_NW,ITAR_PIR_H_Addon);
    };*/
};
 

MaGoth

★★★★★★★★★★★
Администратор
Регистрация
7 Янв 2003
Сообщения
19.371
Благодарности
7.801
Баллы
995
Кстати, если дважды отказаться помочь Грегу, то он говорит, мол, я тебе это припомню и лучше больше не попадайся мне на глаза. Но в оригинале это ни на что не влияло и дальше фразы не заходило. Я изменю этот момент: теперь Грег действительно запомнит эти отказы и в Яркендаре будет относиться к игроку иначе:
Тут правильнее было бы сделать чтобы вместо сокровищ Гг получал от хрена уши..

при каких условиях запускается этот диалог?
Если декстер не мертв и грег находится в районе башен..

а вот этот фрагмент закомментированного кода про что?
Когда декстер мертв, Грег переодевается в свою стандартную пиратскую одежку капитана, из обычной..
 

MEG@VOLT

★★★★★★★★★
ТехАдмин
Регистрация
24 Мар 2006
Сообщения
9.103
Благодарности
6.070
Баллы
1.565
@kor.angar, Ты же вроде разбираешься в скриптах?! От куда такие вопросы?
Или я ошибаюсь?
 

kor.angar

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

Daedalus:
func void DIA_Dexter_Kill_Info()
{
    if(Knows_Dexter == TRUE)
    {
        AI_Output(self,other,"DIA_Addon_Dexter_Add_09_02");    //Ты сам напросился...
    }
    else
    {
        AI_Output(self,other,"DIA_Dexter_Kill_09_01");    //Ох, тебе не стоило показываться здесь. Ты оказался не в то время и не в том месте.
    };
    MIS_Steckbriefe = LOG_OBSOLETE;
    B_CheckLog();
    B_Greg_ComesToDexter();
    Info_ClearChoices(DIA_Dexter_Kill);
    Info_AddChoice(DIA_Dexter_Kill,Dialog_Ende,DIA_Dexter_Kill_ENDE);
};




и почему тут есть B_Greg_ComesToDexter
Daedalus:
instance DIA_Dexter_Kill(C_Info)
{
    npc = BDT_1060_Dexter;
    nr = 2;
    condition = DIA_Dexter_Kill_Condition;
    information = DIA_Dexter_Kill_Info;
    permanent = FALSE;
    important = TRUE;
};


func int DIA_Dexter_Kill_Condition()
{
    if(Npc_IsInState(self,ZS_Talk) && ((Dexter_NoMoreSmallTalk == TRUE) || (Knows_Dexter == FALSE)))
    {
        return TRUE;
    };
};

func void DIA_Dexter_Kill_Info()
{
    if(Knows_Dexter == TRUE)
    {
        AI_Output(self,other,"DIA_Addon_Dexter_Add_09_02");    //Ты сам напросился...
    }
    else
    {
        AI_Output(self,other,"DIA_Dexter_Kill_09_01");    //Ох, тебе не стоило показываться здесь. Ты оказался не в то время и не в том месте.
    };
    MIS_Steckbriefe = LOG_OBSOLETE;
    B_CheckLog();
    B_Greg_ComesToDexter();
    Info_ClearChoices(DIA_Dexter_Kill);
    Info_AddChoice(DIA_Dexter_Kill,Dialog_Ende,DIA_Dexter_Kill_ENDE);
};

func void DIA_Dexter_Kill_ENDE()
{
//    var C_Item itm;
    AI_StopProcessInfos(self);
    B_Attack(self,other,AR_SuddenEnemyInferno,1);
/*    itm = Npc_GetEquippedArmor(Greg_NW);
    if(!Hlp_IsItem(itm,ITAR_PIR_H_Addon))
    {
        AI_EquipArmor(Greg_NW,ITAR_PIR_H_Addon);
    };*/
};
а тут вот тут B_Greg_ComesToDexter нету?
Daedalus:
instance DIA_Dexter_Kopf(C_Info)
{
    npc = BDT_1060_Dexter;
    nr = 5;
    condition = DIA_Dexter_Kopf_Condition;
    information = DIA_Dexter_Kopf_Info;
    permanent = FALSE;
    description = "Тебе нужна моя голова? Что ж, попробуй ее взять!";
};


func int DIA_Dexter_Kopf_Condition()
{
    if(Npc_KnowsInfo(other,DIA_Dexter_Hallo))
    {
        return TRUE;
    };
};

func void DIA_Dexter_Kopf_Info()
{
    AI_Output(other,self,"DIA_Addon_Dexter_Add_15_00");    //Тебе нужна моя голова? Что ж, попробуй ее взять!
    AI_Output(self,other,"DIA_Addon_Dexter_Add_09_01");    //Ну, если ты так хочешь...
    DIA_Dexter_Kill_ENDE();
};

Ты же вроде разбираешься в скриптах?! От куда такие вопросы?
Или я ошибаюсь?
не настолько что бы быть уверенным что правильно "прочитал". нам 10 лет в университете вдалбливали что в нашей специальности надо перепроверить столько раз, сколько это возможно :-D
 
Последнее редактирование:

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
16.658
Благодарности
7.075
Баллы
1.950
@kor.angar, можешь объяснить, зачем ты ищешь сам не зная чего, если D36 уже все решила, как исправить?
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
@kor.angar, можешь объяснить, зачем ты ищешь сам не зная чего, если D36 уже все решила, как исправить?
просто хочу понять логику разработчиков. это возрастное явление. старческое.
В игре есть код, в нем фразы и скрипты. они же с какой то целью были написаны. Фразы в игре я не слышал. пытаюсь понять логику сценария при котором их можно услышать.
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.557
Благодарности
4.138
Баллы
915
Похоже, что вызов B_Greg_ComesToDexter() в функции DIA_Dexter_Kill_Info() явно лишний, т.к. появление Грега в лагере Декстера сейчас происходит в цикле атаки ZS_Attack_Loop(). Непонятно, зачем PB вставили вызов в эту функцию - решили подстраховаться, что ли?:confused:
 
Последнее редактирование:

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
что вызов B_Greg_ComesToDexter() в функции DIA_Dexter_Kill_Info() явно лишний
она вызывает этот код?
Daedalus:
var int B_Greg_ComesToDexter_OneTime;
var C_Item itm;

func void B_Greg_ComesToDexter()
{
    if(Hlp_GetInstanceID(self) == Hlp_GetInstanceID(Dexter))
    {
        itm = Npc_GetEquippedArmor(Greg_NW);
        if(!Hlp_IsItem(itm,ITAR_PIR_H_Addon))
        {
            AI_EquipArmor(Greg_NW,ITAR_PIR_H_Addon);
        };
        if(B_Greg_ComesToDexter_OneTime == FALSE)
        {
            Dexter.aivar[AIV_EnemyOverride] = FALSE;
            Npc_SendPassivePerc(Dexter,PERC_ASSESSFIGHTSOUND,Dexter,hero);
            GregLocation = Greg_Dexter;
            B_StartOtherRoutine(Greg_NW,"Dexter");
            B_StartOtherRoutine(BDT_1064_Bandit_L,"Attack");
            B_Greg_ComesToDexter_OneTime = TRUE;
        };
    };
};
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.114
Благодарности
3.194
Баллы
485
а тут вот тут B_Greg_ComesToDexter нету?
DIA_Dexter_Kill_ENDE -> B_Attack(self,other,AR_SuddenEnemyInferno,1) -> ZS_Attack_Loop -> B_Greg_ComesToDexter.

а вот этот фрагмент закомментированного кода про что?
Переодевание из рабочей одежды в доспехи капитана. Код перенесен в B_Greg_ComesToDexter.

Похоже, что вызов B_Greg_ComesToDexter() в функции DIA_Dexter_Kill_Info() явно лишний, т.к. появление Грега в лагере Декстера сейчас происходит в цикле атаки ZS_Attack_Loop().
Подстраховка, чтобы Грег появился в лагере еще до конца разговора и сагрил бандитов на себя (срабатывает не всегда, слишком тонкие материи). Если дожидаться атаки Декстера, то все бандиты ломануться в дом на помощь боссу, игнорируя пирата.

Вариант в диалогах подразумевает, что игрок находится в помещении и никого еще не атакует, а бандитам на улице нужно агриться на Грега.
Вариант в цикле атаки подразумевает, что игрок уже плюнул на нейтралитет и атаковал одного из бандитов или лично Декстера. В таком случае имеет смысл всем атаковать игрока для самозащиты.
Остальное - вариации от этого. Баги движка и тупость ИИ не учитываем.
 
Последнее редактирование:

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.557
Благодарности
4.138
Баллы
915
Тогда нужно переносить Грега в бандитский лагерь в обоих диалогах с Декстером и убирать вызов в цикле атаки, иначе он придёт туда в случае любой заварушки.
 
Последнее редактирование:

heckler

Участник форума
Регистрация
25 Апр 2017
Сообщения
413
Благодарности
109
Баллы
210
Если ГГ в течение 2 дней не откопал клад в пещере, то квест по поиску кладов Грега отменяется. Вдобавок вернувшийся в лагерь пиратов Грег напомнит ГГ о провале этого квеста.
если дважды отказаться помочь Грегу
Дважды отказаться или просто не брать квесты? Там же нет реплик с отказом, вроде *newspaper*
Не получится ли что не начатые или просто вовремя не законченные (Грег после появления в лагере Декстера не даёт квесты с поиском сокровищ, Грег после первого посещения гг Ирдората исчезает с Хориниса) квесты будут считаться "отказаными"?
 

Diego1987

★★★★★★★★★★★
Администратор
Регистрация
7 Апр 2008
Сообщения
16.658
Благодарности
7.075
Баллы
1.950
Грег после первого посещения гг Ирдората исчезает с Хориниса) квесты будут считаться "отказаными"?
При чем тут Ирдорат?
Не получится ли что не начатые или просто вовремя не законченные квесты будут считаться "отказаными"?
Не вовремя законченный квест = проваленный, так что тут все в порядке, если это будет так.
 

D36


Модостроитель
Регистрация
3 Дек 2014
Сообщения
2.114
Благодарности
3.194
Баллы
485
Дважды отказаться или просто не брать квесты? Там же нет реплик с отказом, вроде *newspaper*
Дважды отказаться:
Daedalus:
func void DIA_Addon_Greg_NW_Hallo_weg()
{
    AI_Output(other,self,"DIA_Addon_Greg_NW_Hallo_weg_15_00");    //Мне надо идти.
    AI_Output(self,other,"DIA_Addon_Greg_NW_Hallo_weg_01_01");    //Итак, ты отказываешься мне помогать, верно? Хорошо, я это запомню. Мы еще встретимся!
    AI_StopProcessInfos(self);
    MIS_Addon_Greg_BringMeToTheCity = LOG_FAILED;
    B_CheckLog();
};
Daedalus:
func void DIA_Addon_Greg_NW_was_NoHelp()
{
    AI_Output(other,self,"DIA_Addon_Greg_NW_was_NoHelp_15_00");    //Я не могу тебе помочь.
    AI_Output(self,other,"DIA_Addon_Greg_NW_was_NoHelp_01_01");    //(зло) Нет, ты не ХОЧЕШЬ мне помочь.
    if((MIS_Addon_Greg_BringMeToTheCity == LOG_Running) || (MIS_Addon_Greg_BringMeToTheCity == LOG_FAILED))
    {
        AI_Output(self,other,"DIA_Addon_Greg_NW_was_NoHelp_01_02");    //Второй раз ты отказываешься выполнить мою просьбу.
        AI_Output(self,other,"DIA_Addon_Greg_NW_was_NoHelp_01_03");    //Мой тебе совет: постарайся сделать так, чтобы я тебя больше не видел.

Не получится ли что не начатые или просто вовремя не законченные квесты будут считаться "отказаными"?
Не вовремя законченный квест = проваленный, так что тут все в порядке, если это будет так.
Эта ситуация уже учтена в оригинале, в этом случае Грег в Яркендаре говорит:
Daedalus:
func void B_UseRakeBilanz()
{
    if(((MIS_Addon_Greg_RakeCave == LOG_Running) && (Greg_SuchWeiter == TRUE)) || (MIS_Addon_Greg_RakeCave == LOG_FAILED))
    {
        AI_Output(self,other,"DIA_Addon_Greg_UseRakeBilanz_01_00");    //И не думай, что я забыл, что ты мой должник.
        AI_Output(self,other,"DIA_Addon_Greg_UseRakeBilanz_01_01");    //В различных местах Хориниса я зарыл несколько сотен золотых монет.
        AI_Output(self,other,"DIA_Addon_Greg_UseRakeBilanz_01_02");    //Ты их прикарманил, не так ли?
        AI_Output(self,other,"DIA_Addon_Greg_UseRakeBilanz_01_03");    //Я заставлю тебя отработать все до последнего медяка.
    }
Санкций в связи с затягиванием этих квестов не предусмотрено.
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.557
Благодарности
4.138
Баллы
915
Дважды отказаться или просто не брать квесты? Там же нет реплик с отказом, вроде *newspaper*
Исходники скриптов обновления для чего выложены, морра? По большому счёту нет особой разницы между отказом взять квест и чрезмерным затягиванием с выполнением взятого. С другой стороны, нужно как-то вознаградить игрока за своевременное выполнение, например, Генри должен учитывать то, что ГГ может отдать Скипу посылку от Бальтрама ещё в Хоринисе и в этом случае снизить плату за вход в лагерь пиратов.
 

heckler

Участник форума
Регистрация
25 Апр 2017
Сообщения
413
Благодарности
109
Баллы
210
Генри должен учитывать то, что ГГ может отдать Скипу посылку от Бальтрама ещё в Хоринисе и в этом случае снизить плату за вход в лагерь пиратов
Откуда Генри может это знать? Что, Скип как-то подошел к нему вечерком и рассказал, как будучи в Хоринисе, гонял какого-то паренька за выпивкой в город?:D
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.557
Благодарности
4.138
Баллы
915
А от кого же ещё? Т.к. в команде капитана Грега осталось слишком мало пиратов, то они довольно хорошо знают друг друга. Например, самогонщик Сэмюэль смог узнать, где старший помощник Фрэнсис прячет свои сокровища.
 

kor.angar

Участник форума
Регистрация
28 Ноя 2017
Сообщения
294
Благодарности
93
Баллы
200
Откуда Генри может это знать? Что, Скип как-то подошел к нему вечерком и рассказал, как будучи в Хоринисе, гонял какого-то паренька за выпивкой в город?:D
вопрос скорее надо ставить наоборот: откуда ГГ может знать что Скип в лагере пиратов ;-)

Эта ситуация уже учтена в оригинале, в этом случае Грег в Яркендаре говорит:
Грег и в Хориносе жжёт :)
Daedalus:
    if((MIS_Addon_Greg_BringMeToTheCity == LOG_FAILED) || (MIS_Addon_Greg_RakeCave == LOG_FAILED))
    {
        AI_Output(self,other,"DIA_Addon_Greg_NW_Bigcross_01_00");    //Это же наш господин Ненадежность!
    };
 

Dimus

★★★★★★★★★
Супермодератор
Регистрация
19 Июл 2010
Сообщения
5.557
Благодарности
4.138
Баллы
915
Это жжёт не Грег, а переводчики, усилившие его сарказм. В оригинале он говорит:
Sieh an, der Unzuverlässige. (Смотри-ка, ненадёжный.)
Должен сказать, что они достаточно вольно обошлись с авторским текстом, например, в диалоге, где ГГ подсказывает Грегу, где стоит искать Декстера.
G2 MDK:
Код:
func void DIA_Addon_Greg_NW_DexterFound_wo ()
{
    AI_Output            (other, self, "DIA_Addon_Greg_NW_DexterFound_wo_15_00"); //Ich weiß, wo du ihn finden kannst.
    AI_Output            (self, other, "DIA_Addon_Greg_NW_DexterFound_wo_01_01"); //(überrascht) Tatsächlich? ERZÄHL!
    AI_Output            (other, self, "DIA_Addon_Greg_NW_DexterFound_wo_15_02"); //Nicht weit von hier.
    AI_Output            (other, self, "DIA_Addon_Greg_NW_DexterFound_wo_15_03"); //Er ist offensichtlich der Anführer einer üblen Bande von Banditen.
    AI_Output            (self, other, "DIA_Addon_Greg_NW_DexterFound_wo_01_04"); //(lacht hämisch) HAH. Ja. Das ist er.
    AI_Output            (self, other, "DIA_Addon_Greg_NW_DexterFound_wo_01_05"); //Ich wusste, dass er sich hier irgendwo verkrochen hat, die alte Landratte.
    AI_Output            (self, other, "DIA_Addon_Greg_NW_DexterFound_wo_01_06"); //Ich muss jetzt nur noch in den Kellerlöchern und Rattennestern in der Gegend hier nachsehen.
    AI_Output            (self, other, "DIA_Addon_Greg_NW_DexterFound_wo_01_07"); //Den Schweinehund finde ich schon, da brauche ich deine Hilfe nicht mehr.
    Info_ClearChoices    (DIA_Addon_Greg_NW_DexterFound);
    B_GivePlayerXP (XP_Ambient);
};
Гуглоперевод:
- Я знаю, где его найти.
- (удивленно) В самом деле? РАССКАЗЫВАЙ!
- Недалеко отсюда. Похоже, он стал предводителем плохой шайки бандитов.
- (злобно смеется) ХА. Да. Это он. Я знал, что он где-то здесь прячется, старая сухопутная крыса. Все, что я должен сделать сейчас - осмотреть грязные дыры и крысиные гнезда в этом районе. Я найду этого ублюдка, и мне больше не нужна твоя помощь.

Перевод от Акеллы:
- Думаю, я могу помочь тебе его найти.
- Действительно? И где же он сейчас?
- Недалеко отсюда. Похоже, он стал главарем шайки бандитов.
- Ха! Да, похоже, это он. Я знал, что этот трус прячется где-то здесь. Теперь все, что мне осталось сделать - обыскать все убежища и тайные укрытия в округе. Я найду этого ублюдка, и твоя помощь мне не нужна.
Обращаю ваше внимание на разницу между:
"Я знаю, где его найти." и "Думаю, я могу помочь тебе его найти.";
"ХА. Да. Это он." и "Ха! Да, похоже, это он.";
"старая сухопутная крыса" и "трус".
 
Последнее редактирование:
Сверху Снизу