Новые диалоги - FAQ по модингу - Каталог статей - Информационный сайт о серии игр S.T.A.L.K.E.R.

E-mail:
Пароль:
Меню сайта






Сеть
Статистика


Всего в зоне: 1
Гостей: 1
Сталкеров: 0


Нас сегодня посетили:
Главная » Статьи » FAQ по модингу

Новые диалоги
Создание новых веток диалогов

1) В файле gamedata/config/gameplay/character_desc_escape.xml в конце списка веток для trader припишем свою ветку с произвольным названием. Это будет, например, <actor_dialog>escape_trader_letat_gusi</actor_dialog>.

Т.е у нас получится так:
<specific_character id="escape_trader" no_random = "1">
        ...
        <start_dialog>escape_trader_start_dialog</start_dialog>
        <actor_dialog>escape_trader_talk_info</actor_dialog>
        <actor_dialog>escape_trader_jobs</actor_dialog>
        <actor_dialog>tm_trader_dialog</actor_dialog>
        <actor_dialog>tm_trader_reward</actor_dialog>
        <actor_dialog>escape_trader_done_blockpost_box</actor_dialog>
                        <actor_dialog>escape_trader_letat_gusi</actor_dialog>
    </specific_character>

        …

Записываем изменения, с этим файлом пока всё.

2) Теперь берем файл gamedata/config/gameplay/dialogs_escape.xml

Диалогу:
Меченый: Сидрыч а почему это у тебя зеленые человечки, что по столу бегают, такие худые?
Сидорович: Чего?!!
Меченый: Ты их совсем, совсем не кормишь?
Сидорович: В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.


Будет соответствовать такая структура:
<phrase id="0">
            <text>escape_trader_letat_gusi_0</text>
            <next>1</next>
</phrase>
<phrase id="1">
            <text>escape_trader_letat_gusi_1</text>
            <next>2</next>
 </phrase>
<phrase id="2">
            <text> escape_trader_letat_gusi_2</text>
            <next>3</next>
</phrase>
<phrase id="3">
            <text> escape_trader_letat_gusi_3</text>
</phrase>


Условия наличия ветки в диалоге можно взять из ветки
<dialog id="escape_trader_talk_info">.

Т.е берем условия <precondition>escape_dialog.trader_has_talk_info_wr</precondition> и <has_info>tutorial_end</has_info>. Можно было, конечно, прописать в скрипте еще одно условие для ветки, чтобы она появилась только один раз, а потом больше не возникала. Но об этом как-нибудь позже.

В итоге у нас получилась такая структура:
<dialog id="escape_trader_letat_gusi">
        <precondition>escape_dialog.trader_has_talk_info_wr</precondition>
        <has_info>tutorial_end</has_info>
        <phrase_list>
                   <phrase id="0">
                             <text>escape_trader_letat_gusi_0</text>
                              <next>1</next>
                    </phrase>
                     <phrase id="1">
                               <text>escape_trader_letat_gusi_1</text>
                                <next>2</next>
                     </phrase>
                     <phrase id="2">
                                <text> escape_trader_letat_gusi_2</text>
                                <next>3</next>
                     </phrase>
                     <phrase id="3">
                                  <text> escape_trader_letat_gusi_3</text>
                      </phrase>
        </phrase_list>
  </dialog>


Её нужно вставить в любом месте между dialog id'ами других веток в файле dialogs_escape.xml. Главное - не промахнутся и засунуть именно между, а не внутрь одного из dialog id.

После сохранения внесенных изменений с файлом dialogs_escape.xml все.

3) Теперь вбиваем сами текстовички в файле gamedata/config/text/rus/stable_dialogs_escape.xml

Т.е нам надо в файле stable_dialogs_escape.xml вставить такую конструкцию:
    <string id="escape_trader_letat_gusi_0">
        <text>Сидрыч, а чего это у тебя зеленые человечки, что по столу бегают, такие худые?</text>
    </string>
    <string id="escape_trader_letat_gusi_1">
        <text>Чего?!</text>
    </string>
    <string id="escape_trader_letat_gusi_2">
        <text>Ты их совсем, совсем не кормишь?</text>
    </string>
    <string id="escape_trader_letat_gusi_3">
        <text>
В следующий раз, как пойдешь в зону, бери-ка  вместо водяры побольше антирада. А то мало что таким перегаром дышишь, уже до зеленых человечков долечился... Шутник.</text>
    </string>



В любом месте между уже существующими string id. После сохранения изменений, у нас все готово. Можно загружать игру и смотреть что получилось.
Дополнительно:

Внимание! После патча 1.002 данный урок перестал работать. Причина - со вторым патчем несовместимо это условие:
<precondition>escape_dialog.trader_has_talk_info_wr</precondition>

Дело в том, что во втором патче из файла escape_dialog.script была удалена функция:
function trader_has_talk_info_wr( trader, actor )
   return true
end


Можно либо записать эту функцию обратно в escape_dialog.script, либо использовать другие более-менее подходящие условия, например:
<precondition>escape_dialog.trader_alredy_give_job</precondition>

Всё. Мы научились писать простые диалоги.
Категория: FAQ по модингу | Добавил: Demonaz (17.02.2011)
Просмотров: 150 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Материалы


Патчи
Обновление ТЧ до версии 1.0006 Обновление ЧН до версии 1.5.10 Обновление ЗП до версии 1.6.02
Авторское право на игру и использованные в ней материалы принадлежат GSC Game World.
Любое использование материалов сайта возможно только с разрешения его администрации.
Powered by USSR, URAN, HUNTER, SaKRaT // Design by OPEX // Сайт оптимизирован под браузер Opera
© 2009-2012 Пользовательское соглашение
Хостинг от uCoz
Рейтинг@Mail.ru Seo анализ сайта