Otóż podczas testowania jednego z moich questów natrafiłem na problem opisany w temacie. Dodam, że używam trialogu. Zrobiłem to w taki sposób - najpierw jest trialog fabularny (czyli rozmowa wnosząca nowości do zadania), a potem jeden z wrogów sam nas zaczepia i występuje pusty dialog - bez kwestii, same funkcje sprawiające, że postaci atakują (kiedyś mi w trialogu npce się atakowali zanim się skończył).
Trialog:
TRIA_Invite (Drunk1);
TRIA_Invite (Drunk2);
TRIA_Start ();
TRIA_Next (Tashman);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_00"); //Daj mi chwilę. Zaraz się tym zajmę.
AI_TurnToNpc (Tashman, Drunk1);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_01"); //Doigraliście się. Na mocy prawa nadanego mi przez gubernatora Lariusa, aresztuję was za zorganizowanie rozboju na obywatelu tego miasta!
TRIA_Next (Drunk2);
AI_TurnToNpc (Drunk2, Tashman);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_02"); //(Hik) Tsoo ty bredzishh, Tashman?
TRIA_Next (Drunk1);
AI_TurnToNpc (Drunk1, Tashman);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_03"); //Przestań się wygłupiać, durniu, tylko nam zapłać za ostatnią robotę.
TRIA_Next (Drunk2);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_04"); //Włłłaśnie. Tsoo z kaso?
TRIA_Next (Tashman);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_05"); //Ty gnoju! Śmiesz się tak zwracać do królewskiego oficera?!
AI_DrawWeapon (self);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_06"); //Mówię po raz ostatni. Idziecie ze mną do aresztu po dobroci, albo zaciągnę tam wasze trupy!
TRIA_Next (Drunk1);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_07"); //Działasz mi na nerwy, Tashman! Wciąż nam wisisz za ostatnią akcję, znaleźliśmy ci...
TRIA_Next (Tashman);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_08"); //Nie będę tego słuchał!
TRIA_Next (Drunk2);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_09"); //Zarass pożałujesz! Nhhhikt nie zadziera z namy. NHHIKT! (hik)
TRIA_Next (Drunk1);
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_10"); //Właśnie! Chyba czas, by ktoś ci obił ten kłamliwy pysk, Tashman!
AI_Output (self, other,"DIA_Tashman_DrunksTria_09_11"); //Bierz tamtego kolesia, ja się zajmę tym obłudnym skurczybykiem!
TRIA_Finish ();
B_StartOtherRoutine (Tashman, "FightDrunks");
B_LogEntry (TOPIC_MerchantsEmployee, "Dziwne. Tamci pijacy zachowują się, jakby znali Tashmana wcześniej. Mówili coś o zapłacie i chcieli powiedzieć więcej, ale Tashman im przerwał.");
AI_StopProcessInfos (self);
A ten do ataku bardzo prosty:
AI_StopProcessInfos (self);
B_Attack (self, other, AR_KILL, 1);
B_Attack (Tashman, Drunk1, AR_KILL, 1);
B_Attack (Drunk1, Tashman, AR_KILL, 1);
self.aivar [AIV_INVINCIBLE] = FALSE; //dodałem te aivary pierwszym sprawdzeniu, nie pomogło
Drunk1.aivar [AIV_INVINCIBLE] = FALSE;
Tashman.aivar [AIV_INVINCIBLE] = FALSE;