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




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

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

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

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

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


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

Онлайн

Сейчас на сайте: 407
Гостей: 405

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

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

MOD The Parabellum
livaiui, 20 января 2025 11:45
что там по новостям о 1.4 версии мода?...
ПЕРЕЧЕНЬ МОДОВ НА ОиМ
Ragnarihno, 20 января 2025 09:49
Подскажите, а баттл сайзер есть на ОиМ?...
MOD A World of Ice and Fire
maxim kalenkovich, 19 января 2025 16:04
Всем Мир, подскажите на какую версию warband ставить этот мод? Armello, привет, разобрался в чем...
MOD Twilight of the sun king / Закат Короля- Солнце
kitel, 15 января 2025 19:34
про города имею ввиду столицу...
MOD Twilight of the sun king / Закат Короля- Солнце
kitel, 15 января 2025 19:13
а как в город попасть и куда патч ставить?...
Флудилка V3
vadmin007, 14 января 2025 22:49
Добрый вечер, не играл в mount and blade несколько лет. Решил вот bannerlord запустить, настройки...
HAN XIONGNU WARS - ПЕРЕВОД НА РУССКИЙ ЯЗЫК
SimbaD, 13 января 2025 10:22
Здесь просто русификатор,а купить игру,судя по всему, можно здесь,вверху есть...
MOD NOVA AETAS (ОБСУЖДЕНИЕ)
Oleg konrad20, 10 января 2025 23:29
Здравствуйте я бы хотел к вам обратится за помощью я незнаю почему у меня каждую неделю со всеми...
HAN XIONGNU WARS - ПЕРЕВОД НА РУССКИЙ ЯЗЫК
Виктор Паскарь, 8 января 2025 00:18
narshadarss, как качать с вашего сайта не шарю что делать где кнопки скачать Как скачать моды с...