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




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

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

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

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

Если 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,
Хантервольф давно уже инактив на ВК(А жаль....


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

Онлайн

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

Пользователи: 

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

MOD Honour&Glory (Честь и Слава)
commando.com.ua, Сегодня, 15:01
Вот и вышло обновление ЧиСа, спустя столько лет. Поздравляю фанатов и разработчиков с релизом!...
MOD East 1135
Artkolobok, 25 февраля 2025 13:06
iskanderzp, У меня доступа нет к аккаунтам сайта (ГД), но я скачаю мод и попрошу другого админа...
MOD East 1135
epilect, 23 февраля 2025 19:20
iskanderzp, Я в тебе не сомневался)))...
MOD East 1135
iskanderzp, 23 февраля 2025 11:26
epilect, Есть такое. Залил на Фекс.нет.  Уважаемые админы, если есть желание и возможность,...
MOD East 1135
epilect, 22 февраля 2025 14:02
Это Анди была ссылка,эта версия может быть разве что у Искандера......
MOD East 1135
Artkolobok, 22 февраля 2025 12:37
Mikail Havrilyuk, Мы её никак заменить не можем...
MOD East 1135
Mikail Havrilyuk, 21 февраля 2025 18:46
Уважаемые Администраторы, ссылка на версию 1.2.5 не работает. Я прохожу авторизацию без конца....
Гайд по моду Age of Arthur
Asgard_guardian, 19 февраля 2025 17:41
Спящий, Если ещё актуально - методом проб и ошибок выяснил, что ловкость должна быть действительно...
Флудилка V3
Gut, 19 февраля 2025 16:52
SupportCaptain, Без знания модульки будет тяжело(я сам не мододел, в точности не подскажу), тяжело...