Я пробовал изменять скрипты Г2а по аналогии с Г1, субтитры разговоров появлялись, но при этом если ГГ вступал с каким-нибудь НПЦ в диалог, а рядом стояли другие болтающие между собой НПЦ, разговоры этих НПЦ мешали диалогу ГГ и приводили к невозможности пропуска фразы или наоборот фраза могла вообще не отобразиться.
Можно было бы попробовать воспользоваться функцией:
PrintDialog (int dialogNr, string msg, int posx, int posy, string font, int timeSec);
Выводит текст в окно, похожее на диалоговое. Координаты имеются и можно убрать помехи для диалогового окна чуть повыше. Таким образом, можно создать шрифт с красным цветом по типу того, который используется в подобных видимых SVM фразах. Потом убрать все настройки на отображение обычных SVM фраз. Затем отрегулировать вывод в окно игры в определённых ситуациях, тем самым эмулируя всю ситуацию вцелом.
Как можно перенести барьер с Г1 в мод Г2?
Видел в Gothic: _work\data\Meshes\Level\
такие файлы:
Magicfrontier.3ds
Magicfrontier_Down.3ds
Magicfrontier_Out.3ds
Magicfrontier_Up.3ds
В Gothic II только один купол: _work\Data\Meshes\_intern\
Magicfrontier_Out.3ds
Это и есть файлы барьера. Барьер оказывается овальной формы...
Но вот как обрабатывается взаимодействие барьера с мешами, точнее как наносится вред, вот это я не могу сказать... Могу лишь предположить, что:
1) Файлы, что выше должны иметь соответствующее название и дожны иметь свои координаты в мире, соответственно они должны быть вставлены как-то, например как части всего мира, и затем уже всё должно быть в сборке в конечном зене. И обработку вреда осуществляет движок игры.
2) Аналогично предыдущему, только обработка вреда осуществляется скриптами.
Напрмер, хотя это не так, т.к. барьер овальный, но предположу скриптовую обработку.. Не буду писать на скриптовом языке, напишу по русски:
Если Нпс находится на расстоянии [заданное число] от центра мира, то он получает урон барьером. Ну и конечно же должен стоять какой-нить следящий, например, как сейчас стало модно, таймер. Таким образом вред будет наноситься по радиусу. Но барьер то овальный. Это первая причина, что это ошибочное предположение. Возникает вопрос а кому будет наноситься вред? Что, надо написать всех нпс в функции, вызываемой таймером? О, нет, это слишком тупо со стороны большого объёма данных. Можно попробовать воспользоваться вспомогательными функциями определения нпс, чтобы не писать конкретные инстанции. И ещё.. куда полетит нпс никто не знает. Может быть к центру мира по радиусу, а может за пределы барьера по радиусу и до бесконечности. Вот. Так что скорее всего работает движок.