Добавление диалога в мод




Первая часть любого диалога, с которой он начинается, выглядит примерно так:
"[ ...какой-то код... ]"
Это код, отвечающий за проверку условий при вызове диалога. Единственное и главное его назначение – проверять, выполнено ли данное условие или набор условий и возвращать результат. Каждый диалог при вызове проверяет это условие до тех, пока оно не будет выполнено.

Далее идут последующие части диалога, которые выполняются, только в том случае, если проверка условий пройдена успешно и активна именно их ветвь диалога. Поэтому, если вы хотите, чтобы какое-то одно действие выполнялось всегда, когда, игрок, например, встречает Главнокомандующего во вторник, но совершенно другое – когда они встречаются в среду, диалог может выглядеть как-то так:
КОД

Но вообще создавать строки диалога, зависящие от классов, в одном блоке условий, как это было сделано выше — довольно плохой тон. Так делать не стоит, поскольку больше вероятность сделать какую-нибудь логическую ошибку. Лучше заключать создание каждой строки в отдельный блок условий, вот так:
КОД

С помощью такого подхода можно сделать несколько вариантов начала разговора, используя несколько блоков условий:
КОД

Если reg0 не равен 0, вместо данного выражения в строку подставится «а», если равен — подставится «» - пустая строка. Поэтому, если reg0 не равен 0, то данная строка будет «города», а если равен - «город».
Сложные строки состояния

Строки состояния могут вкладываться одна в другую, создавая сложные динамически генерируемые строки. Например:
КОД

Данная строка примет значение «Я», если reg6 != 0 (значение reg7 в этом случае не важно), “Ты”, если reg6= 0 и reg7 != 0, или же строки s11 (в данном случае содержащей имя лорда), если оба этих регистра равны 0. Это компактное и красивое решение, более эффективное, чем использование напрямую отдельного строкового регистра и громоздкое присваивание ему «Я», «Ты» или имени нужного лорда с помощью, например, try блоков или других подобных конструкций.

Однако сложные строки состояния стоит использовать, только если данная строка встречается в коде только однажды. В случае, если такая строка должна использоваться в коде несколько раз, будет как раз удобнее и лучше один раз создать отдельный строковый регистр и присвоить ему нужное значение с помощью try блока так, как это было описано выше, без использования строк состояния.
Строки пола

Строка пола, или как ее реже называют, строка чередования полов — это условное выражение, использующееся в диалогах для подстановки одной из двух данных строк в зависимости от пола персонажа, с которым происходит диалог (обычно игрока). Если этот персонаж мужского пола, то вместо данного выражения подставляется первый вариант, если женского — то второй. Это является одним из способов динамической генерации текста и используется, как правило, для правильного формирования обращений игровых персонажей к игроку.
Использование строк пола

Строка пола имеет чрезвычайно простую конструкцию: она состоит из двух текстовых строк, одна для мужчины, другая для женщины, разделенных слешем “/” и заключенных в фигурные скобки “{ }”.
КОД

В случае, если персонаж, к которому обращено эта фраза, мужского пола, она примет вид:
КОД

Ну и если собеседник — женщина:
КОД

Примечания

Используйте строки пола всегда, когда это возможно

Будьте особенно внимательны, когда пишете диалог для игрока или лорда, у которого может быть другой пол, нежели вы предполагаете. Если с помощью каких-либо сторонних модификаций или чисто случайно пол собеседника окажется не таким, каким вы предполагали при написании диалога, диалог будет несогласован. Поэтому если есть возможность, что собеседником может оказаться как мужчина, так и женщина, используйте строки пола для избежания ошибок.

Строки пола могут использоваться только с говорящим и слушающим персонажами

Обратите внимание, что строка пола относится к тому, к кому обращена реплика, а не к тому, кто ее произносит.

Чтобы слушателем был игрок, запись диалога должна начинаться так:

Если слушателем должен быть другой игровой персонаж, то эта запись должна быть такой:

Также помните, что строки пола учитывают пол только тех двух персонажей, которые непосредственно участвуют в диалоге (говорящий и слушающий). Если нужно определить пол какого-то стороннего, третьего персонажа, следует определить класс этого персонажа и воспользоваться функцией troop_get_type, чтобы определить его пол, и в зависимости от полученного результата выполнить какие-то действия.
Информация взята отсюда





- используйте эту кнопку если вы обнаружили ошибку/искажение содержимого/отсутствие контента в новости или если хотите сообщить администрации о выходе новой версии мода и т.п.

Комментариев 5

Колонист
syabr
Титул: Главный динозавр и ГГ сайта
Офлайн 15 июня 2014 10:21 поделиться
Полезный гайд, молодец smile


Гридень
Налётчик
Офлайн 15 июня 2014 14:03 поделиться
syabr
Спасибо, стараюсь


Гридень
Налётчик
Офлайн 15 июня 2014 14:20 поделиться
Цитата: Гоша
На всадниках видел по моему

В шапке последняя строчка smile


Колонист
syabr
Титул: Главный динозавр и ГГ сайта
Офлайн 15 июня 2014 14:21 поделиться
Вполне возможно. Автор Хунтерволф, он есть на Всадниках. ссылку на него мы дали, не думаю, что он будет против размещения гайда тут.


Мододел
Hero_of_Calradia
Титул: Герой Кальрадии
Офлайн 12 июля 2014 11:10 поделиться
syabr,
Хантервольф давно уже инактив на ВК(А жаль....


Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Онлайн

Сейчас на сайте: 179
Гостей: 178

Пользователи: 
- отсутствуют

Последние комментарии

MOD Honour&Glory (Честь и Слава)
Радомир, 28 марта 2025 23:40
В дискорде меня нет. Но разработчики и тут появляются. Поэтому написал коммент здесь. Да, кстати,...
MOD Honour&Glory (Честь и Слава)
epilect, 28 марта 2025 16:29
Радомир, Сегодня вышел патч,честно говоря я думал ты в дискорде по моду,так как по моему являешься...
MOD Honour&Glory (Честь и Слава)
Радомир, 28 марта 2025 15:27
Итак, поздравляю всех поклонников Варбанда с выходом новой версии популярного мода! Пока есть моды...
ATLAS
pda, 24 марта 2025 23:05
Нашёлся ещё более свежий русификатор, так что фанаты у игры боле-менее остались) Конечно и здесь...
ПЕТИЦИИ НА ПЕРЕВОД МОДОВ
timur karsli, 22 марта 2025 22:32
MOD Clone War Conquest - переведён. Можно убирать с списка...
MOD Clone Wars Conquest submod (Turmoil Across the Stars)
timur karsli, 22 марта 2025 21:47
Сделал руссификатор полный для данного мода. Прошу добавить его в описание, чтобы его могли...
Как русифицировать моды?
kitel, 21 марта 2025 20:22
У меня хрень какая то странная. На английском текст есть а в русском переводе нету. проверил все...
Быстрый перевод мода Warband гуглом
kitel, 21 марта 2025 20:00
У меня хрень какая то странная. На английском текст есть а в русском переводе нету. проверил все...
TLD Overhaul Submod
Sidney_87, 18 марта 2025 22:04
Ссылка на Дискорд, если кому-то интересно...