dosinabox / g2nr_unofficial_update

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

Диалог с Абуином. Я Готов #194

Closed Kor-Angar closed 4 years ago

Kor-Angar commented 4 years ago

Напомни плиз почему Герой не говорит Абуину "Я готов"?

dosinabox commented 4 years ago

Техническое ограничение - анимации, эффекты, перемещения и распорядки опережают фразы диалогов. Поэтому предсказания вообще вынесены в отдельную опцию.

Kor-Angar commented 4 years ago

а если сделать вот так (первое предсказание через important = TRUE) ?:-)

Все предсказания через important = TRUE

instance DIA_Abuyin_Trance(C_Info)
{
    npc = VLK_456_Abuyin;
    nr = 2;
    condition = DIA_Abuyin_Trance_Condition;
    information = DIA_Abuyin_Trance_Info;
    permanent = TRUE;
    important = TRUE;
};

var int Abuyin_Trance;
var int DIA_Abuyin_Zukunft_permanent;
var int DIA_Abuyin_Zukunft2_permanent;
var int DIA_Abuyin_Zukunft3_permanent;
var int DIA_Abuyin_Zukunft4_permanent;
var int DIA_Abuyin_Zukunft5_permanent;

func int DIA_Abuyin_Trance_Condition()
{

    if(Abuyin_Trance == true) // Абуин готов к трансу
    {
        return TRUE;
    };
};

func void DIA_Abuyin_Trance_Info()
{
    Abuyin_Trance = false; // Абуин не готов к трансу
    AI_PlayAni(self,"T_MAGRUN_2_HEASHOOT");
    Wld_PlayEffect("SPELLFX_TELEPORT",self,self,0,0,0,FALSE);

    if (Kapitel == 1)
    {
        AI_Output(self,other,"DIA_Abuyin_Zukunft_Trance_13_00");    //(в трансе) Орки... они охраняют вход... старый туннель... Долина Рудников...
        AI_Output(self,other,"DIA_Abuyin_Zukunft_Trance_13_01");    //(в трансе) Люди в сверкающих доспехах... маг... твой друг с ними... он ждет тебя...
        AI_Output(self,other,"DIA_Abuyin_Zukunft_Trance_13_02");    //(в трансе) Огонь! Нападение... могучего существа... пламя... многие... погибнут...
        AI_Output(self,other,"DIA_Addon_Abuyin_Zukunft_Trance_13_00");  //(в трансе) ...Что это?.. Город... Руины... Куарходрон из Яркендара...
        AI_Output(self,other,"DIA_Addon_Abuyin_Zukunft_Trance_13_01");  //(в трансе) ...Он был призван... Куарходрон из Яркендара!
        AI_PlayAni(self,"T_HEASHOOT_2_STAND");
        AI_Output(self,other,"DIA_Abuyin_Zukunft_Trance_13_03");    //Извини - видение кончилось. Больше я ничего не смог увидеть.
        DIA_Abuyin_Zukunft_permanent = TRUE;
        Abuyin_Zukunft = 1;
//      Info_ClearChoices(DIA_Abuyin_Zukunft);
    }
    else if (Kapitel == 2)
    {
        AI_Output(self,other,"DIA_Abuyin_Zukunft2_Trance_13_00");   //(в трансе) Наемник... ему нужен ты... ужасное убийство... Глаз...
        AI_Output(self,other,"DIA_Abuyin_Zukunft2_Trance_13_01");   //(в трансе) Зловещие приспешники... они идут... ищут тебя... страж падет...
        AI_Output(self,other,"DIA_Abuyin_Zukunft2_Trance_13_02");   //(в трансе) ...но трое должны объединиться... только тогда ты получишь то, что должно принадлежать тебе...
        AI_PlayAni(self,"T_HEASHOOT_2_STAND");
        AI_Output(self,other,"DIA_Abuyin_Zukunft2_Trance_13_03");   //Это все. Больше я ничего не смог увидеть.
        DIA_Abuyin_Zukunft2_permanent = TRUE;
        Abuyin_Zukunft = 2;
        Info_ClearChoices(DIA_Abuyin_Zukunft2);
    }
    else if (Kapitel == 3)
    {
        AI_Output(self,other,"DIA_Abuyin_Zukunft3_Trance_13_00");   //(в трансе) Ты должен пробиться... это суждено только тебе...
        AI_Output(self,other,"DIA_Abuyin_Zukunft3_Trance_13_01");   //(в трансе) ...сквозь огонь и снег... сквозь лед и пламя...
        AI_Output(self,other,"DIA_Abuyin_Zukunft3_Trance_13_02");   //(в трансе) Люди в странных доспехах... болото... ящеры... они ждут тебя...
        AI_PlayAni(self,"T_HEASHOOT_2_STAND");
        AI_Output(self,other,"DIA_Abuyin_Zukunft3_Trance_13_03");   //Это все. Больше я ничего не смог увидеть.
        DIA_Abuyin_Zukunft3_permanent = TRUE;
        Abuyin_Zukunft = 3;
//      Info_ClearChoices(DIA_Abuyin_Zukunft3);
    }
    else if (Kapitel == 4)
    {
        AI_Output(self,other,"DIA_Abuyin_Zukunft4_Trance_13_00");   //(в трансе) Место знаний... другая страна... темное место далеко-далеко...
        AI_Output(self,other,"DIA_Abuyin_Zukunft4_Trance_13_01");   //(в трансе) Мужественные спутники... ты должен сделать выбор...
        AI_Output(self,other,"DIA_Abuyin_Zukunft4_Trance_13_02");   //(в трансе) Храм... стоит одиноко в царстве Аданоса... покрытый туманом...
        AI_PlayAni(self,"T_HEASHOOT_2_STAND");
        AI_Output(self,other,"DIA_Abuyin_Zukunft4_Trance_13_03");   //Это все. Больше я ничего не смог увидеть.
        DIA_Abuyin_Zukunft4_permanent = TRUE;
        Abuyin_Zukunft = 4;
//      Info_ClearChoices(DIA_Abuyin_Zukunft4);
    }
    else if (Kapitel == 5)
    {
        AI_Output(self,other,"DIA_Abuyin_Zukunft5_Trance_13_00");   //(в трансе) Тьма опустилась на землю... Зло торжествует...
        AI_Output(self,other,"DIA_Abuyin_Zukunft5_Trance_13_01");   //(в трансе) Король проиграет войну против орков...
        AI_Output(self,other,"DIA_Abuyin_Zukunft5_Trance_13_02");   //(в трансе) Ты вернешься, но не найдешь покоя...
        AI_PlayAni(self,"T_HEASHOOT_2_STAND");
        AI_Output(self,other,"DIA_Abuyin_Zukunft5_Trance_13_03");   //Это все. Больше я ничего не смог увидеть.
        DIA_Abuyin_Zukunft5_permanent = TRUE;
        Abuyin_Zukunft = 5;
//      Info_ClearChoices(DIA_Abuyin_Zukunft5);     
    };

    B_GivePlayerXP(XP_Ambient * 4);
    Npc_RemoveInvItems(self,ItMi_Gold,Npc_HasItems(self,ItMi_Gold));
};
Kor-Angar commented 4 years ago

в оригинальном коде не срабатывает анимация _Wld_PlayEffect("SPELLFX_TELEPORT",self,self,0,0,0,FALSE);_ ?

dosinabox commented 4 years ago

Некоторые эффекты могут не работать с DX11.

Kor-Angar commented 3 years ago

а если так? :-) https://www.youtube.com/watch?v=HySINsQ321M


это я через AI_StartState делал https://github.com/Kor-Angar/G2_NotR_Kor_Angar/commit/faaf5077953233f66d9c0235bb577e457a2a75c6

dosinabox commented 3 years ago
DIA_Abuyin_Zukunft.permanent = false;

Будет работать только до загрузки сохранения и лучше так не делать.

Kor-Angar commented 3 years ago

а я кучу таких изменений наделал. и с ними игру прошёл, они все работают корректно.

dosinabox commented 3 years ago

значит, путаю с Г1

Kor-Angar commented 3 years ago

я их прям много перебил. и у Лареса и в порту у НПС и у Пирокара и много у кого ещё. можно внимательно посмотреть может и правда сбоит . у меня про это есть отдельный топик https://github.com/Kor-Angar/G2_NotR_Kor_Angar/issues/44

Kor-Angar commented 3 years ago

но в целом Абуин это про AI_StartState

Kor-Angar commented 3 years ago

AI_StartState так же я использовал и для Ватраса https://github.com/Kor-Angar/G2_NotR_Kor_Angar/issues/45

Kor-Angar commented 3 years ago

Будет работать только до загрузки сохранения и лучше так не делать.

и правда. слетели. может при входе в мир слетают?

dosinabox commented 3 years ago

и при входе в мир тоже

dosinabox commented 3 years ago
// Ставит вызов функции funcName в AI очередь
// и при ее вызове помещает значения slf & oth
// в глобальные self & other (соответственно)
func void AI_CallScript(var string funcName,var C_Npc slf,var C_Npc oth)

instance DIA_Xardas_TEST(C_Info)
{
    npc = NONE_100_Xardas;
    nr = 2;
    condition = DIA_Xardas_TEST_Condition;
    information = DIA_Xardas_TEST_Info;
    permanent = FALSE;
    description = "Тест AI_CallScript";
};

func int DIA_Xardas_TEST_Condition()
{
    return TRUE;
};

func void DIA_Xardas_TEST_Info()
{
    AI_Output(other,self,"SVM_15_SC_HeyTurnAround");    //Эй, ты!
    AI_Output(self,other,"SVM_14_DieMonster");    //Еще одна грязная тварь!
    //... помещаем в очередь self вызов функции EffectXardas_01
    AI_CallScript("EffectXardas_01",self,other);
    AI_PlayAni(self,"T_PRACTICEMAGIC5");
    AI_PrintScreen("Белиар наказал вас!",-1,YPOS_GoldGiven,FONT_ScreenSmall,2);
    AI_Output(self,other,"SVM_14_TOUGHGUY_ATTACKWON");    //Тебе еще раз показать, кто тут главный?
    AI_Output(self,other,"SVM_14_Ooh03");    //Черт побери!
   //... помещаем в очередь self вызов функции SoundXardas_01
    AI_CallScript("SoundXardas_01",self,other);
    AI_Output(self,other,"SVM_14_WhatAreYouDoing");    //Эй! Осторожно!
};

func void EffectXardas_01()
{
    Wld_PlayEffect("spellFX_INCOVATION_VIOLET",hero,hero,0,0,0,FALSE);
};

func void SoundXardas_01()
{
    Snd_Play("DEM_Warn");
};
Kor-Angar commented 3 years ago

таким же манером можно наверное решить вопрос и с B_GiveInvItems

dosinabox commented 3 years ago

А что там?

Kor-Angar commented 3 years ago

там надпись о передачи предметов выскакивает в начале диалога

dosinabox commented 3 years ago

Разве это не только в Г1?

Kor-Angar commented 3 years ago

точно. перепутал готики