Модификаторы частоты использования ответа

В одном шаблоне может быть несколько ответов, и выбор между ними будет произвольным. А что если гость скажет одну и ту же или похожую фразу несколько раз?

Например, у нас есть шаблон следующего содержания:

$ * ты {хорош~/мил~/славн~/умн~/молодец} {!/—}
# Я польщен.
# Хвалите меня, хвалите!
# Я тоже так думаю.

Из-за свободного выбора между ответами мы можем получить такой диалог:

Гость: Ты милый!
Инф: Я польщен.
Гость: Ты славный!
Инф: Я польщен.
Гость: Ты молодец!
Инф: Я польщен.

Чтобы этого избежать, нужно использовать модификаторы.

NB: Модификаторы работают ТОЛЬКО В РАЗДЕЛЕ "МОИ ШАБЛОНЫ". Они не работают в разделах "Предустановленные темы", "Анкета", "Нераспознанные реплики" и "Реакции на события".

Содержание

Модификатор :u:

Ответ с модификатором :u: будет сгенерирован только один раз за все общение инфа с данным гостем.
Например:
$ * повторяешься *
#:u: Не всегда. Смотри, этот ответ ты увидишь только один раз за все наше общение с тобой. Можешь проверить.

Получаем:
Гость: Ты повторяешься.
Инф: Не всегда. Смотри, этот ответ ты увидишь только один раз за все наше общение с тобой. Можешь проверить.

Модификатор :lu:

Ответ с модификатором :lu: будет использован повторно только после того, как в его шаблоне будут использованы по одному разу все остальные ответы, отмеченные модификаторами :u: или :lu:. Добавим его в пример, приведенный в начале:

$ * ты {хорош~/мил~/славн~/умн~/молодец} {!/—}
# :lu: Я польщен.
# :lu: Хвалите меня, хвалите!
# :lu: Я тоже так думаю.


Получим примерно следующее:

Гость: Ты милый!
Инф: Я тоже так думаю.
Гость: Ты славный!
Инф: Я польщен.
Гость: Ты молодец!
Инф: Хвалите меня, хвалите!

Частичный вес ответа

Ответам с модификатором :lu: может быть присвоен частичный вес – тогда они будут выбираться не в произвольном порядке, а в том, который будет им задан.

Частичный вес ответа представляется числом от -500 до +500 и по умолчанию равен нулю. При построении ответа среди шаблонов с одинаковым весом ответы выбираются по порядку, заданному частичным весом – от большего к меньшему. Ответы могут иметь и одинаковый частичный вес, тогда выбор между ними будет производиться произвольно.

Например:

$ * загадай * загадку *
# :lu:+1: Без окон, без дверей – полна горница людей.
# :lu: Не лает, не кусает – а в дом не пускает.
# :lu:-1: Все, я больше не знаю загадок.
# :lu:-2: Я честно-честно кроме тех двух больше ни одной не знаю.
Получаем диалог:

Гость: Загадай мне загадку!
Инф: Без окон, без дверей – полна горница людей.
Гость: Это огурец. Загадай еще одну загадку.
Инф: Не лает, не кусает – а в дом не пускает.
Гость: Это я не знаю, что такое, – загадай другую загадку.
Инф: Все, я больше не знаю загадок.
Гость: Да ладно тебе, загадай загадку.
Инф: Я честно-честно кроме тех двух больше ни одной не знаю.
Гость: И все-таки загадай загадку.
Инф: Не лает, не кусает – а в дом не пускает.
… И так далее.

Модификатор :last:

Ответ с модификатором :last: будет сгенерирован, только если не получилось сгенерировать ответ без такого модификатора во всех равновесных шаблонах.

Например, шаблон про загадки можно модифицировать так:

$ * расскажи * анекдот *
# :u: Бабушка, пытаясь покушать в суши-баре, связала два свитера.
# :u: Любишь музыку слушать? Люби и наушники распутывать!
# :last: Я тебе все анекдоты уже рассказал.

Получаем диалог:
Гость: расскажи анекдот
Инф: Любишь музыку слушать? Люби и наушники распутывать!
Гость: расскажи анекдот
Инф: Бабушка, пытаясь покушать в суши-баре, связала два свитера.
Гость: расскажи анекдот
Инф: Я тебе все анекдоты уже рассказал.


NB: Одновременное использование в одном шаблоне-ответе модификаторов :last: и :lu: не допускается.