Сповіщення
Очистити все

ЧН - DialogEditor


Infernis
Ранг:
Майстер
Роль:
Модмейкер
Угруповання:
Воля
Записи:
905
Приєднався:
7 місяців тому
 

Підготовка до роботи 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>

   
Цитата