Территория Свободы | Главная | Поговори хоть ты со мной... - Форум | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Pereiro  
Поговори хоть ты со мной...
PereiroДата: Понедельник, 19.11.2007, 12:37 | Сообщение # 1
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Итак, новый персонаж в игре есть, теперь надо бы поговорить с ним о чем-нибудь. И желательно о чем-то своем.
Для этого добавим диалог в игру.

Небольшое отступление - в ресурсах игры просмотрите файлы dialogs_***.xml (где *** - название локации), character_desc_***.xml (*** - аналогично) - лежат в gamedata\config\gameplay и файлы stable_dialogs_***.xml - в gamedata\config\text\rus
и может раздумаете читать эту статью.
Если же не раздумали, то начнем:
диалоги в игре есть двух типов <actor_dialog> и <start_dialog>. Как следует из названия, <старт_дайлог> - это приветственный диалог НПЦ (первая фраза НПЦ), а <актор_дайлог> - первая фраза принадлежит ГГ.

Итак, будем делать наш диалог.
Говорить будем с Ингви-сталкером, которого создали в этой теме.
У него присутствует <start_dialog>hello_dialog</start_dialog> (как дела, что нового и т.п.), поговорим с ним вот о чем:
ГГ: - Ингви-сталкер, у тебя и автомат есть, и пистолет... Дай мне что-нибудь. А то с оружием напряг.
И-С: - А куда свое дел?
ГГ: - Да вот бармену на пузырь променял...
И-С: - Ну и сам дурак. Ничего тебе не дам.
ГГ: - Злой ты, Ингви... ладно, может кто другой поможет. Пока.

1. Скелет диалога.
Дабы не засорять лишний раз файлы игры, создаем в папке gamedata\config\gameplay свой файл, например dialogs_pereiro.xml (называйте как угодно).
В нем пишем:

Code

<game_dialogs>
<dialog id="ingvi_give_me_a_gun">
[color=blue]Примечание:
здесь должна идти секция условий, разрешающих диалог  
<precondition></precondition> - использует как условие функцию какого-нибудь скрипта
<has_info></has_info> - диалог появится при наличии инфопоршена  
<dont_has_info></dont_has_info> - диалог появится при отсутствии инфопоршена
если ничего нет - диалог будет возникать вседа.
[/color]
<phrase_list>
<phrase id="0">
<text>ingvi_give_me_a_gun_0</text>
<next>1</next>
</phrase>
[color=blue]Примечание:
1. начинается диалог всегда с нулевой фразы.
2. после тега <phrase id=""> может следовать секция условий, разрешающая данную фразу
3. в теге <text></text> может быть как теносредственно фраза, так и ссылка на нужную строку (как у нас)
4. <next></next> может быть несколько - это позволяет ветсить диалог [/color]  
<phrase id="1">
<text>ingvi_give_me_a_gun_1</text>
<next>2</next>
</phrase>
<phrase id="2">
<text>ingvi_give_me_a_gun_2</text>
<next>3</next>
</phrase>
<phrase id="3">
<text>ingvi_give_me_a_gun_3</text>
<next>4</next>
</phrase>
<phrase id="4">
<text>ingvi_give_me_a_gun_4</text>
<action>dialogs.break_dialog</action>
</phrase>
[color=blue]Примечание:
В последней фразе появляется тег <action></action> - позволяет совершать действия передавать предметы, менять отношение собеседника и т.п. вызовом функции скрипта. В нашем случае вызывается ф-я break_dialog из файла dialogs.script (лежит в gamedata\scripts).
Такая конструкция может быть в любой фразе диалога. Так же может иметь место тег <give_info></give_info> - выдача инфопоршена в этой фразе.[/color]
</phrase_list>
</dialog>
</game_dialogs>

Не забываем правильно закрывать теги. И, естественно, примечания в файл не пишем :)

2. Текст диалога.
Я уже говорил, что сами фразы можно писать непосредственно в теге <text></text>, но у нас там стоит ссылка на строку. Поделаем эти строки.
в папке gamedata\config\text\rus создадим файл например stable_dialogs_pereiro.xml (называйте как хотите).
там пишем:

Code

<string_table>
<string id="ingvi_give_me_a_gun_0">
<text>Ингви-сталкер, у тебя и автомат есть, и пистолет... Дай мне что-нибудь. А то с оружием напряг.</text>
</string>
<string id="ingvi_give_me_a_gun_1">
<text>А куда свое дел?</text>
</string>
<string id="ingvi_give_me_a_gun_2">
<text>Да вот бармену на пузырь променял...</text>
</string>
<string id="ingvi_give_me_a_gun_3">
<text>Ну и сам дурак. Ничего тебе не дам.</text>
</string>
<string id="ingvi_give_me_a_gun_4">
<text>Злой ты, Ингви... ладно, может кто другой поможет. Пока.</text>
</string>
</string_table>

Здесь вроде все ясно.

3. Добавим диалог НПЦ.
Итак, у нас есть скелет диалога, и есть его фразы. Добавим его кому-нибудь. Так как говорим с Ингви-сталкером, то ему и добавляем.
Открываем файл с его описанием (смотри п.1 этой темы)и там, где видим <start_dialog>hello_dialog</start_dialog> ниже пишем <actor_dialog>ingvi_give_me_a_gun</actor_dialog>.

4. Как сделать, чтобы всё заработало.
В папке gamedata\config\ есть файлы system.ltx и localization.ltx
4.1. Сначала систем:
описание Ингви-сталкера у нас уже добавлено (тема про уникальных НПЦ, на которую я ссылался раньше).
Ищем там секцию [dialogs] - там названия файлов, содержащих диалоги, и после запятой дописываем dialogs_pereiro.
4.2. Теперь локализация:
после запятой вписываем имя нашего файла stable_dialogs_pereiro.
Если же разместить этот файл не в папке gamedata\config\text\rus, а просто в gamedata\config\text, то локализацию трогать не надо.

Всё. Вроде ничего не забыл. Если захотите добавить свой диалог какому-то существующему НПЦ (торговцу или ещё кому), то ищите его профиль в соответствующем character_desc_***.xml.
А у нас при разговоре с Ингви-сталкером будет появляться ветка диалога, где мы выпрашиваем у него оружие.


Делай, что должно, и будь что будет
 
ОтшельникДата: Пятница, 28.12.2007, 09:30 | Сообщение # 2
Золотое перо ФОРУМА
Группа: Модераторы
Сообщений: 246
Репутация: 14
Статус: Offline
Pereiro, и насколько сильно можно переозвучить игру?

Понаписал тут...
 
PereiroДата: Суббота, 29.12.2007, 22:59 | Сообщение # 3
Beholder
Группа: Администраторы
Сообщений: 483
Репутация: 18
Статус: Offline
Это не переозвучка. Это текстовые диалоги.
Хотя переозвучить игру тоже можно. Только места такой мод будет занимать вагон.


Делай, что должно, и будь что будет
 
  • Страница 1 из 1
  • 1
Поиск:


Designed by S.Pereiro © 2024