dosinabox / g2nr_unofficial_update

Исходники скриптов, релизы, хотфиксы и тестовые версии неофициального обновления для игры "Готика 2: Ночь Ворона".
https://worldofplayers.ru/threads/36817
The Unlicense
15 stars 2 forks source link

Бастер #312

Closed dosinabox closed 3 years ago

dosinabox commented 3 years ago
func void DIA_Buster_AboutSentenza_Info()
{
    AI_Output(other,self,"DIA_Buster_AboutSentenza_15_00"); //Что там насчет Сентензы?
    AI_Output(self,other,"DIA_Buster_AboutSentenza_13_01"); //Он попытается вытрясти из тебя золото, когда ты будешь входить на ферму - он делает это со всеми.
    AI_Output(self,other,"DIA_Buster_AboutSentenza_13_02"); //На твоем месте, я бы заплатил. Я сам так и сделал, когда пришел туда в первый раз. И что хорошо, он проголосовал за меня после этого.
    AI_Output(self,other,"DIA_Buster_AboutSentenza_13_03"); //Услуга за услугу, как он сказал. Я потерял при этом все свое золото, но его все равно было немного. А потом я даже порадовался этому.
    AI_Output(self,other,"DIA_Buster_AboutSentenza_13_04"); //Я видел, как он избивал парня, который решил НЕ платить ему.
    AI_Output(other,self,"DIA_Buster_AboutSentenza_15_05"); //Спасибо за совет.
    AI_Output(self,other,"DIA_Buster_AboutSentenza_13_06"); //Пожалуйста. Он много для тебя значит?
    SCKnowsSLDVotes = TRUE;
    Info_ClearChoices(DIA_Buster_AboutSentenza);
    Info_AddChoice(DIA_Buster_AboutSentenza,"Нет.",DIA_Buster_AboutSentenza_No);
    if(Npc_HasItems(other,ItMi_Gold) >= 5)
    {
        Info_AddChoice(DIA_Buster_AboutSentenza,"Да, вот держи - 5 золотых монет.",DIA_Buster_AboutSentenza_Give);
    };
};

Этот диалог доступен для любой гильдии и в любой главе, хотя по смыслу подходит только нейтралу или только на начальных этапах игры. К тому же, Сентенза не трогает охотников не драконов. Также Бастеру можно заплатить за совет при уже начатом квесте "Рога мракорисов для Бастера" и получить бонус к их цене. При этом комментария от Бастера не будет:

AI_Output(self,other,"DIA_Buster_SHADOWBEASTS_was_wieviel_13_02");  //А помня о том золоте, что ты дал мне, я сделаю для тебя особую цену.
dosinabox commented 3 years ago

В связи с этим, предлагаю:

Kor-Angar commented 3 years ago

наемник: диалог DIA_Buster_AboutSentenza доступен только до третьей главы

неправильно. этот диалог вытекает из предыдущего, а он недоступен наёму и онд.

    if((hero.guild != GIL_SLD) && (hero.guild != GIL_DJG))
    {
        return TRUE;
    };

реплики DIA_Buster_AboutSentenza_13_02 и DIA_Buster_AboutSentenza_13_03 доступны только для нейтрала

смысл? ты воспринимаешь эти правки субъективно и "лечишь одно, калеча другое". тут Бастер предупреждает игрока о том что Сентенза изобъёт любого, кто откажется платить и даёт ему совет заплатить. ты пытаешься эту информацию скрыть от мента / послушника / мага / паладина исходя из того что это инфа предназначается нейтралу так как в ней есть так же инфа о голосование. при этом упускаешь сам факт того что Бастер советует именно заплатить потому что Сентенза сильный наёмник и действительно по ЛОРу даст люлей герою, если герой будет даже милиционером. и этот диалог так же доступен герою после победы над Бастардом, что опять же подчёркивает дружественно-панибратское отношение Бастарда к герою после победы над ним. и получается что ты хочешь из диалога про совет в целом выкинуть само слово совет в частности, исходя из того что это вовсе не совет, а секрет :-)


если говорит про смысл, то лучше всего реализовать этот диалог через Info_AddChoice в рамках инстанции DIA_Buster_OtherSld, а доступ через родную инстанцию DIA_Buster_AboutSentenza закрыть

if(self.aivar[AIV_LastFightAgainstPlayer] == FIGHT_LOST)
    {
        if(hero.guild == GIL_NONE)
        {
            AI_Output(self,other,"DIA_Buster_OtherSld_13_03");  //Я думаю, ты достоин стать одним из нас.
            AI_Output(self,other,"DIA_Buster_OtherSld_13_04");  //Но не стоит обольщаться. Тебе просто повезло во время нашего последнего боя.
        };
        AI_Output(self,other,"DIA_Buster_OtherSld_13_05");  //На этой ферме полно парней, которые будут получше меня...
        AI_Output(self,other,"DIA_Buster_OtherSld_13_06");  //Сентенза, например. Он охраняет вход на ферму. Тебе лучше не связываться с ним.
        Buster_SentenzaTip = TRUE;
        Info_ClearChoices (DIA_Buster_OtherSld);
        Info_AddChoice      (DIA_Buster_OtherSld,   Dialog_Back,        DIA_Buster_OtherSld_BACK);
        Info_AddChoice      (DIA_Buster_OtherSld,   "Что там насчет Сентензы?", DIA_Buster_AboutSentenza_Info);
    }

в таком случае не надо делать никаких доп проверок или ограничений. при этом игроку даётся выбор: хочешь узнай подробности про Сентензу прямо сейчас(до встречи с Сентензой), хочешь нажми назад, т.е. откажись от подробностей и иди дальше(где тебя встретит Сентенза).


немного лирики, в целом я тебе скажу тоже самое что и обычно: ты правишь не играя в игру. твои правки кажутся логичными в рамках одной конкретной инстанции. в игре же где у тебя нет набора инстанций с условиями, а есть просто диалог с НПС, они порой становятся мягко говоря странными(диалог задом наперёд с Грегом про Декстера) и/или неуместными(разговор с Гораксом про статуэтку). найди время и пройди хотя бы первые две главы в Хориносе.

Kor-Angar commented 3 years ago

этот диалог через Info_AddChoice в рамках инстанции DIA_Buster_OtherSld

проверю завтра на своей сборке если силы внутренние будут https://github.com/Kor-Angar/G2_NotR_Kor_Angar/commit/9a8a402ad4100a3b2ea0b9d648226aaeea95d866

dosinabox commented 3 years ago

неправильно. этот диалог вытекает из предыдущего, а он недоступен наёму и онд.

Слушаем предыдущий и DIA_Buster_AboutSentenza становится доступным на все последующие главы.

if(Buster_SentenzaTip == TRUE)
{
    return TRUE;
};

В целом всё стало понятно и лучше это не трогать. Разве что, только использовать Info_AddChoice.

Kor-Angar commented 3 years ago

если не будешь добавлять Info_AddChoice то тогда сделай доп проверку на разговор с сентензой. что бы не выводить этот вопрос после того как герой уже пообщался с сентензой.

dosinabox commented 3 years ago

не выводить этот вопрос после того как герой уже пообщался с сентензой.

или если Сентенза мертв