Підготовка до роботи DialogEditor
1. Запустити DialogEditor (клікнути на !DialogEditor.cmd що знаходиться в X-Ray CoP SDK\editors\)
2. Відкрити таблицю з дискрипшенами (натиснути на клавішу Open STRING TABLE XML, вибрати файл із configs\text\rus\)
3. Відкрити таблицю зі структурою діалогу (натиснути на клавішу Open DIALOG description XML, вибрати файл з діалогом із configs\gameplay\ типу dialogs_локація.xml)
!Зверніть увагу на те, що кнопкою Open DIALOG description XML відкривають не дискрипшени, а саме самі діалоги. Що дивно (враховуючи назву кнопки), можна легко переплутати... Хоча якщо зробити навпаки - відкрити кнопкою Open DIALOG description XML файл з дискрипшенами, ви все одно нічого не зможете зробити (вилазитиме помилка: Wrong Strings XML file).
Вміст xml-заготовок
Файл із дискрипшенами (скажімо st_dialogs_mod.xml)
<?xml version="1.0" encoding="windows-1251" ?>
<string_table>
</string_table>
Після того, як діалог буде готовий і записаний у xml-файл, помістити його в configs\text\ukr\
Файл із структурою діалогу (скажімо dialogs_mod.xml)
<?xml version="1.0" encoding="windows-1251" ?>
<game_dialogs>
</game_dialogs>
Після того, як діалог буде готовий і записаний у xml-файл, помістити його в configs\gameplay\ і зареєструвати в configs\system.ltx
[dialogs]
files = dialogs_mod, dialogs
Створення діалогу у DialogEditor
Отже, відкрили обидва файли. Усі поля стали доступними. Створюємо діалог.
1. Для початку створюємо новий діалог: зліва вгорі у полі між кнопками Add і Del вводимо id нашого діалогу, наприклад mod_dialog_01. Натискаємо Add зліва від поля введення. Бачимо, що у нас у списку діалогів з'явився наш mod_dialog_01.
!Ось ще один нюанс: якщо спробувати відкрити порожні dialogs2.xml і string_table2.xml і спробувати додати туди свій діалог, DialogEditor одразу вирубається. Чому не знаю.
2. Отже ми створили діалог. Тепер потрібно написати текст: виділяємо курсором свій діалог у списку зліва вгорі, бачимо, що в нижньому вікні зліва з'явився синій квадратик і цифрою 0 - це стартовий текст діалогу (належить він ГГ - сині квадратики - це діалоги ГГ, зелені - це діалоги npc).
Виділяємо діалог РР курсором, праворуч унизу в полі Content замінюємо текст default text на свій: "Привіт! Як життя?".
Тепер додаємо відповідь npc: ліворуч знизу в полі пишемо 1 і натискаємо кнопку Add. З'явився зелений квадратик із цифрою 1 – це відповідь npc на діалог РР.
Виділяємо зелений квадратик з цифрою 1 і в полі Content замінюємо текст default text на відповідь npc: "Так хреново, вчора горілки перепив." ну і так далі ... Основи роботи з DialogEditor я здається розжував.
3. Збереження діалогу: зверху праворуч знаходимо кнопку save both, тиснемо. Все перевіряємо наші файли, в одному з'явився наш діалог:
<dialog id="mod_dialog_01">
<phrase_list>
<phrase id="0">
<text>mod_dialog_01_0</text>
<next>1</next>
</phrase>
<phrase id="1">
<text> mod_dialog_01_1</text>
</phrase>
</phrase_list>
</dialog>
У другому дискрипшені діалогу:
<string id="mod_dialog_01_0">
<text>Привіт! Як життя?</text>
</string>
<string id="mod_dialog_01_1">
<text>Так хреново, вчора горілки перепив.</text>
</string>
Створення одноразового діалогу
Отже, як зробити діалог одноразовим? Реалізується це у вигляді інфопорцій. Назвемо її скажемо mod_dialog_01_done.
Для початку цю інфопорцію потрібно додати до гри: відкрити будь-який список з інфопорціями (скажімо configs\gameplay\info_portions.xml) та додати рядок з нашою інфопорцією:
<info_portion id="mod_dialog_01_done"></info_portion>
Далі виділяємо в DialogEditor наш діалог mod_dialog_01 (у вікні зліва вгорі).
Клікаємо на нього двічі, має відкритися віконце Dialog properties. Знаходимо віконце dont_has_info, тиснемо кнопку <-Edit.
Відкрилося ще одне віконце List Editor, праворуч у полі пишемо mod_dialog_01_done, натискаємо <-Add.
У вікні dont_has_info з'явилася наша інфопорція mod_dialog_01_done. Тиснемо Ok.
Тепер наш діалог буде доступний за відсутності інфопорції mod_dialog_01_done.
Тепер потрібно зробити так, щоб інфопорція mod_dialog_01_done видавалася після завершення діалогу.
Перемикаємо нашу увагу на вікно зліва внизу. Виділяємо останній квадратик у списку (у нашому варіанті: зелений квадратик із цифрою 1).
Трохи вище від центру вікна DialogEditor знаходимо вікно, зверху якого написано give_info. Лівіше цього вікна тиснемо на кнопку Edit-> і додаємо інфопорцію mod_dialog_01_done так, як ми робили у вікні dont_has_info .
Все, записуємо зміни - тиснемо save both.
У файлі dialogs_mod.xml має з'явитися такий вміст:
<dialog id="mod_dialog_01">
<dont_has_info>mod_dialog_01_done</dont_has_info>
<phrase_list>
<phrase id="1">
<text>mod_dialog_01_1</text>
<give_info>mod_dialog_01_done
<
/give_info ="0">
<text>mod_dialog_01_0</text>
<next>1</next>
</phrase>
</phrase_list>
</dialog>