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




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

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

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

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

Если 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


Танки грязи не боятся, сама отвалится
Я на Всадниках Кальрадии: https://rusmnb.ru/index.php?action=profile;u=18932
Гридень
Налётчик
Офлайн 15 июня 2014 14:03 поделиться
syabr
Спасибо, стараюсь


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

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


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


Танки грязи не боятся, сама отвалится
Я на Всадниках Кальрадии: https://rusmnb.ru/index.php?action=profile;u=18932
Мододел
Hero_of_Calradia
Титул: Герой Кальрадии
Офлайн 12 июля 2014 11:10 поделиться
syabr,
Хантервольф давно уже инактив на ВК(А жаль....


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

Онлайн

Сейчас на сайте: 143
Гостей: 141

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

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

MOD M&B Anno Domini 1257
Deymon_Targarien, Вчера, 09:43
а как скачать версию 276? ссылкуа не работает...
Csatadi non official patch
wadawda, 26 марта 2024 03:05
MOD Csatadi Visual and Historical Modили это уже не надо? если ставить этот саб мож? где новее...
Csatadi non official patch
wadawda, 25 марта 2024 23:20
Gut, Это в шапке или где качать? И как играть с ним если еще и оригинал стоит MOD Csatadi Visual...
ПЕТИЦИИ НА ПЕРЕВОД МОДОВ
vasul, 25 марта 2024 10:11
Сделай под новую...
MOD Noble Recruit-Hire Party Essence
Сергей Владимирович, 24 марта 2024 16:51
Кто знает, есть ли мод или чит позволяющий сделать любого воина своим компаньоном?...
MOD Medieval Conquests
beibars, 24 марта 2024 12:07
Лекс, Спасибо большое. Это тот самый мод) Как раз то что надо...
MOD Medieval Conquests
Лекс, 24 марта 2024 08:21
beibars, Помоему ето етот мод - ...
MOD Medieval Conquests
beibars, 23 марта 2024 22:08
Помогите, люди добрые:) Ищу один мод, но забыл его название. Мод на основе 1257AD, с наработками...
ПЕТИЦИИ НА ПЕРЕВОД МОДОВ
dimm, 23 марта 2024 11:47
vasul, русификатор - под старую версию (1.4.0.9) . соответственно, в новой (1.445.1) - не всё...