MSFD Начало и окончание диалога
ForceGreeting
ForceGreeting используется, чтобы заставить актера начать диалог.
При вызове ForceGreeting откроется диалоговое окно, и актер использует приветствие, исходя из установок диалога.
Поэтому, если вы хотите вызвать специальное приветствие от актера, вы должны дать его через окно диалога в TES CS.
Не важно, где находится NPC, эта функция работает всегда, так что лучше использовать ее в связке с функциями GetDistance или GetPCCellВообще-то важно. ForceGreeting не будет работать, если до этого вы ни разу не говорили или хотя бы не были в одной ячейке с NPC, с которым хотите поговорить. Более того, если иметь копию NPC в какой-то удаленной ячейке, и поставить другую копию NPC перед игроком, а затем удалить ее, то ForceGreeting все рано не заработает. (Прим. Gwathobal).
Примечание: этот скрипт показывает хороший набор условий для проверки перед вызовом функции ForceGreeting
Begin balynScript
float timer
short doOnce
if ( GetJournalIndex "DA_Mephala" < 40 )
Return
endif
if ( GetJournalIndex DA_Mephala >= 60 )
Return
endif
Set timer to ( timer + GetSecondsPassed )
if ( timer < 5 )
Return
endif
Set timer to 0
if ( doOnce == 0 )
if ( GetDistance Player <= 1024 )
if ( player->GetDistance "hlaalu_loaddoor_ 02_balyn" <=256 )
if ( GetLOS Player == 1 )
ForceGreeting
Journal DA_Mephala 55
set doOnce to -1
endif
endif
endif
endif
End
Примечание.
Это же позволяет создавать "радиостанции".
Хотя для начала все одно надо "увидеть" цель беседы.
Решается это просто, НПС телепортируется за спину игрока и тут же возвращается обратно в свою ячейку.
Достаточно одного раза.
Либо призывать НПС на все время беседы.
Таким образом, можно сделать консоль связи позволяющую игроку беседовать с Дивайт Фиром не выходя из Балморы, даже если ГГ ни разу не бывал в Тель Фире.
Другой вариант, если "вызываемый персонаж" имеет опцию Companion.
Т.е. дает доступ к своему инвентарю.
Здесь же не надо пояснять, что это "лютейший чит"?
Например "познакомившись" с неким дружелюбным (атронахом, например) можно оставить его сидеть в Сейда Нин, а самому (Игроку) гулять по всея Ввандерфелу налегке.
Периодически выходя на связь (посредство некоего предмета инициирующего диалог), дабы скинуть весь набранный лут и прочее...
[no fix?] Goodbye
Goodbye приведет к завершению диалога.
После вызова этой функции (она обычно используется в секции result темы для диалога, не в скриптах) игрок может выбрать только опцию «прощай», которая закроет диалоговое окно.