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



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

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

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

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

Если 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://commando.com.ua/commando/main/3337-kak-pravilno-soobschit-ob-oshibke.html
Гридень Налётчик
Офлайн 15 июня 2014 14:03 поделиться
syabr
Спасибо, стараюсь
Гридень Налётчик
Офлайн 15 июня 2014 14:20 поделиться
Цитата: Гоша
На всадниках видел по моему

В шапке последняя строчка smile
Главный администратор syabr
Офлайн 15 июня 2014 14:21 поделиться
Вполне возможно. Автор Хунтерволф, он есть на Всадниках. ссылку на него мы дали, не думаю, что он будет против размещения гайда тут.
--------------------
https://commando.com.ua/commando/main/3337-kak-pravilno-soobschit-ob-oshibke.html
Мододел Hero_of_Calradia
Офлайн 12 июля 2014 11:10 поделиться
syabr,
Хантервольф давно уже инактив на ВК(А жаль....
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации. Регистрация.

Интересно

Онлайн

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



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

MOD Aut Caesar aut nihil
vasul, Сегодня, 00:58
Последняя версия Aut Caesar aut nihil v1.422 (от 12.09.2020)...
MOD Honour&Glory (Честь и Слава)
Дима Гончар, Сегодня, 00:48
Едвард К., дай скриншот на англ и ру...
MOD Honour&Glory (Честь и Слава)
Едвард К., Сегодня, 00:22
Доброго времени суток, встретил вот такой косяк или баг при начале игры за правителя, при выдаче...
ГАЙД ПО ПРОХОЖДЕНИЮ КВЕСТА "ПОТОП" ОиМ
syabr, Вчера, 23:49
Rainbow_Racer, приветствую на сайте. Мало кто играет по причине заглючности. Кажется, это именно...
MOD Aut Caesar aut nihil
syabr, Вчера, 23:45
Budist65, залей на что то приличное пожалуйста...
MOD Age of Arthur
syabr, Вчера, 23:44
AmiRuk, приветствую на сайте...
MOD Age of Arthur
AmiRuk, Вчера, 23:06
Люди добрые, как накатить данный мод на игру, в плане что и в какие папки кидать. Уж простите такой...
MOD Age of Arthur
Pigrik, Вчера, 22:22
Black Messor, а это так и работает....
ГАЙД ПО ПРОХОЖДЕНИЮ КВЕСТА "ПОТОП" ОиМ
Rainbow_Racer, Вчера, 21:55
Может кто-нибудь помочь? После получения патента от Яна Казимира, лорды даже с отношением более +40...