dosinabox / g2nr_unofficial_update

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

Расписание Орлан #344

Closed Kor-Angar closed 3 years ago

Kor-Angar commented 3 years ago

у меня глюк получился с Орлан . во время собрания КВ у него сменилось расписание в рамках квеста "пей до дна". Теперь Ларес не начинает собрание так как Орлан стоит на входе.

как вариант можно добавить у Лареса в DIA_Addon_Lares_Geduld_Info запуск B_Addon_Orlan_ComingRanger

func void DIA_Addon_Lares_Geduld_Info()
{
    AI_Output(self,other,"DIA_Addon_Lares_Geduld_09_01");   //Тебе придется немного подождать. Еще не все собрались.
    AI_StopProcessInfos(self);
    B_Addon_Orlan_ComingRanger();
};
Kor-Angar commented 3 years ago

3:05:06 https://youtu.be/uVy_3Zbz3rQ?t=11106

dosinabox commented 3 years ago

В доспехах Кольца он вообще не должен выходить из таверны и стоять в них на улице у всех на виду. Особенно когда соратники собрались там, чтобы принимать нового агента. Ещё одна проблема склейки аддона с классикой. Поэтому запрещаем ему менять распорядок дня, если собрание уже началось:

func void DIA_Randolph_ICHGEBEDIRGELD_Info()
{
    AI_Output(other,self,"DIA_Randolph_ICHGEBEDIRGELD_15_00");  //Я дам тебе деньги, чтобы ты сразился с Рухаром.
    if(B_GiveInvItems(other,self,ItMi_Gold,10))
    {
        AI_Output(self,other,"DIA_Randolph_ICHGEBEDIRGELD_06_01");  //(восторженно) Правда? Огромное спасибо. Я скоро верну их тебе.
        AI_Output(self,other,"DIA_Randolph_ICHGEBEDIRGELD_06_02");  //Если я смогу победить, я даже верну тебе их с процентами. Еще увидимся.
        B_LogEntry(TOPIC_Wettsaufen,"Пари заключено. Состязание пройдет в таверне 'Мертвая гарпия'.");
        B_GivePlayerXP(XP_Randolph_WettkampfStart);
        DIA_Randolph_ICHGEBEDIRGELD_noPerm = TRUE;
        B_NpcClearObsessionByDMT(self);
        MIS_Rukhar_Wettkampf_Day = Wld_GetDay();
        Npc_ExchangeRoutine(self,"Wettkampf");
        B_StartOtherRoutine(Rukhar,"Wettkampf");
        if(RangerMeetingRunning != LOG_Running)
        {
            B_StartOtherRoutine(Orlan,"Wettkampf");
        };
};

И не отправляем его за прилавок после состязания, если собрание ещё не закончилось:

func void DIA_Orlan_WETTKAMPFLAEUFT_Info()
{
    AI_Output(self,other,"DIA_Orlan_WETTKAMPFLAEUFT_05_00");    //Вот ты где, наконец. Я ждал тебя.
    AI_Output(other,self,"DIA_Orlan_WETTKAMPFLAEUFT_15_01");    //Что случилось?
    AI_Output(self,other,"DIA_Orlan_WETTKAMPFLAEUFT_05_02");    //Состязание 'кто кого перепьет' наконец-то закончилось.
    AI_Output(other,self,"DIA_Orlan_WETTKAMPFLAEUFT_15_03");    //Кто победил?
    if(!Mob_HasItems("CHEST_RUKHAR",ItFo_Booze) && (Mob_HasItems("CHEST_RUKHAR",ItFo_Water) > 0) && (Rukhar_Won_Wettkampf == FALSE))
    {
        AI_Output(self,other,"DIA_Orlan_WETTKAMPFLAEUFT_05_04");    //На этот раз Рэндольф. Рухару нынче не повезло.
    }
    else
    {
        AI_Output(self,other,"DIA_Orlan_WETTKAMPFLAEUFT_05_05");    //Как всегда Рухар напоил Рэндольфа в стельку. Этого следовало ожидать.
        Rukhar_Won_Wettkampf = TRUE;
    };
    if((hero.guild != GIL_PAL) && (hero.guild != GIL_KDF))
    {
        AI_Output(self,other,"DIA_Orlan_WETTKAMPFLAEUFT_05_06");    //Я надеюсь, это было в последний раз. Я не хочу, чтобы подобное повторялось в моем доме. Заруби это у себя на носу.
    }
    else if((Rukhar_Won_Wettkampf == FALSE) && !Npc_KnowsInfo(other,DIA_Orlan_EINGEBROCKT))
    {
        AI_Output(self,other,"DIA_Orlan_EINGEBROCKT_05_00");    //Да уж, доставил ты мне проблем. Теперь мне нужно быть поосторожнее с Рухаром.
    };
    AI_StopProcessInfos(self);
    if(RangerMeetingRunning != LOG_Running)
    {
        Npc_ExchangeRoutine(self,"Start");
    };

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

Kor-Angar commented 3 years ago

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

ну именно так мы и обходили в 2001 году баг с Идолом на кладбище :-) методика рабочая и спустя 20 лет :-)

Kor-Angar commented 3 years ago

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

так не получилось. там все друг друга в результате начили бить и крестьяне и братья

Kor-Angar commented 3 years ago

надо по тихоньку добавлять в неоф помощники запуск тех или иных функций

Kor-Angar commented 3 years ago

если вселить в НПС, Орлана герой незабогоюзится?

dosinabox commented 3 years ago

Можешь его просто убить, тогда Ларес не будет его проверять. Или я сделаю книжку которая отправит его обратно на встречу.

Kor-Angar commented 3 years ago

думаю выманю. сейчас попробую.