вот это должно сработать (код ниже 01)?
Не совсем. Тут следует учесть особенность работы движка при обработке инстанций диалогов. Если просто прописать вызов функции старта атаки для третьего непися в инстанции диалога, то непись будет переведён в состояние атаки
сразу же после старта диалога. ГГ будет болтать о чём-то с одним неписем, а другой непись в это время вытащит саблю, может быть, что-то грозное пробурчит и будет терпеливо ждать, пока диалог закончится. Согласись, выглядит хреново.
Начинать атаку после завершения диалога может только собеседник ГГ. Также он может по завершению диалога быть принудительно переведён в иное состояние, и этим следует воспользоваться для реализации описанных тобой ситуаций. Требуется написать особое ZS-состояние для непися собеседника ГГ. ZS-состояние обычно состоит из трёх функций (стартовая, циклическая, завершающая). Но в данном случае, думаю, будет достаточно только стартовой функции. Во всяком случае, в Г1 движок такое проглатывает. Что нужно сделать. По пунктам. В инстанции диалога прописать не старт атаки, а перевод собеседника ГГ в особое состояние. Функцию использовать ту же, что для старта атаки в функции B_Attack -
AI_StartState, если не напутал с названием. Написать функцию состояния типа
void c названием, начинающимся с "
ZS_". Например,
func void ZS_Npc1Start Attack(). В этой функции прописать старт атаки для нужных неписей с указанием целей и причин атаки.