Если вам нужны диалоги постоянно, и без затыков. То делается это следующим образом:
1.) Создаём в корневой папке миссии файл с именем initPlayerLocal.sqf
2.) В нём пишем наши диалоги, которые будут происходить по определённым условиям.
0 spawn { waitUntil {/*условие*/}; [ ["Speaker1","Subtitle1",0], ["Speaker2","Subtitle2",5], ["Speaker3","Subtitle3",10], ["Speaker4","Subtitle5",15] ] spawn BIS_fnc_EXP_camp_playSubtitles; };
Например, если мы хотим что бы диалог состоялся при приближении игрока (любого) к определённой точке, то пишем так:
0 spawn { waitUntil {(vehicle player) distance [27427.6,25365.5,0]<10}; [ ["КТО ГОВОРИТ","ЧТО ГОВОРИТ",0], ["КТО ГОВОРИТ","ЧТО ГОВОРИТ",5], ["КТО ГОВОРИТ","ЧТО ГОВОРИТ",10], ["КТО ГОВОРИТ","ЧТО ГОВОРИТ",15] ] spawn BIS_fnc_EXP_camp_playSubtitles; };
или, если нам надо что бы приблизились меньше чем на 10 метров представители фракции в количестве (например) 3 человек, то условие меняем на:
0 spawn { waitUntil {uiSleep 0.5; ({_x distance [26810.2,23094.7,0] < 10 and side _x isEqualTo east} count allUnits isEqualTo 3) };
Можно завязать на всё что угодно. Например на: живая или не живая цель.
waitUntil {uiSleep 0.5; (!alive ЦЕЛЬ)};
В общем меняйте под себя и используйте что бы сделать ваш сценарий более наполненным и понятным для игрока, который будет получать информацию из «переговоров» в виде субтитров.
Кстати, через эти же команды можно и создавать заскриптованые взрывы по условию приближения или же отдаления от указанной точки, и не только это.
Обсудить этот метод можно в нашем Discord канале