Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

forum.iii.ru _ FAQ по Проекту _ Инструкция - Переменные, FAQ

Автор: Ak47RA 7.9.2009, 19:20

Переменные
Тема содержит в себе все данные, собранные из различных мест форума.
В данной теме обсуждаются идеи новых переменных. Можно спрашивать о не получившихся шаблонах.

Прежде всего читаем: http://help.iii.ru/%D0%9C%D0%BE%D0%B8_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D1%8B:%D0%9F%D0%B5%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D0%B8_%D1%83%D1%81%D0%BB%D0%BE%D0%B2%D0%BD%D1%8B%D0%B9_%D0%BE%D0%BF%D0%B5%D1%80%D0%B0%D1%82%D0%BE%D1%80_IF%E2%80%A6_ELSE в ней многое подробно написано.

Общие сведения:
Есть 3 типа переменных:
Бесконечные - запоминаются для гостя навсегда.

Кратковременные - стираются через три часа после последней реплики гостя.
и автоматически заполняемые переменные даты и времени - в них ничего не запоминается и они постоянно заполнены от движка инфа.

По сути надо запомнить вот что, пример:
[%var1="х"] - присвоить значение Х, где х - любые буквы или цифры.
[%var1=""] - обнулить значение
[%var1] - вывести значение т.е. вставить в ответ инфа
[if(!%var1)]{ответ1} - если значения не присваивалось(инф не запоминал) то выдать ответ1.
[if(%var1)]{ответ2} - если значения присваивалось(инф запоминал) то выдать ответ2.
[if(%var1="х")]{ответ3}[else]{ответ4} - если значение присваивалось и равно X, то выдать ответ3, иначе ответ 4. Часть [else]{ответ4} - необязательная

Возможные ошибки:
Далее представлены примеры Виу-Пиу как использовать переменные на практике:
http://forum.iii.ru/index.php?s=&showtopic=3450&view=findpost&p=23291
http://forum.iii.ru/index.php?s=&showtopic=4569&view=findpost&p=38157
http://forum.iii.ru/index.php?s=&showtopic=4569&view=findpost&p=38158
http://forum.iii.ru/index.php?s=&showtopic=4569&view=findpost&p=38159

Автор: Ak47RA 7.9.2009, 19:22

I. Имя:

1. В первом шаблоне инф запоминает имя. (Не спорю, шаблон не охватывает все возможные формулировки.)
Сразу же идет запоминание имени.
Во втором шаблоне реакция на положительный ответ, в третьем - на отрицательный с обнулением переменной.


2. Реакция на дерево с якорем-вопросом имени гостя.



3. Если инф спросит имя гостя, а гость после этого проведет по нему мышкой или ткнет, то инф запомнит его как "EVENT многострашныхзнаков". Можно это предотвратить таким шаблоном:
- В данный момент работа EVENT-ов не подтверждена.

4. Как этими знаниями можно пользоваться:




А вот реакция на одну постоянную гостью:


5. Прежде чем спрашивать у гостя имя, хорошо бы проверять, вдруг инф уже его спрашивал.

# [if(!%user_name)]{Как тебя зовут?} + якорь или так:
# [if(!%user_name)]{Как тебя зовут?}[else]{А я знаю твое имя!}
Если используете оператор [else], в шаблон якорь лучше не ставить, потому что для двух исходов этого шаблона могут понадобится совершенно различные якори.
Если очень-очень хотите якорь пристроить, лучше разбить этот шаблон на:
# [if(!%user_name)]{Как тебя зовут?} + якорь1
# [if(%user_name)]{А я знаю твое имя!} +якорь2

Дополнительный шаблон:
Ниже приведен шаблон для варианта: Я имя + занесение пола, такой же шаблон можно сделать и на женские имена.


$ я[-{Алекс~/Алексей/Саня/Санек/Леша/Лешка/Леха/Анатолий/Толя/Толик/Андрей/Андрю~/Антон~/Антох~/Аркадий/Арсений/Сеня/Сенька/Артем~/Тёма/Борис/Боря~/Борька/Вадим~/Вадик/Василий/Вася/Вениамин/Веня/Виктор/Витя/Витал~/Вова~/Вовч~/Вовк~/Вячеслав/Слава/Геннадий/Гена/Георгий/Глеб~/Григорий/Гриш~/Даниил/Данил~/Денис~/Дмитрий/Дима/Димк~/Митя/Димон/Иван/Ваня/Ваньк~/Игорь/Гарик/Илья/Илю~/Кирилл/Константин/Костя/Костик/Костян/Леонид/Максим/Макс/Михаил/Михан/Миша/Никит~/Николай/Коля/Колян/Олег/Олеж~/Павел/Паша/Петр/Петя/Рома/Руслан/Семён/Семен/Сергей/Серег~/Сереж~/Федор/Федя/Юрий/Юра/Юрик}-]
# [%user_name="[&1]"][%user_gender="М"] Свой текст

Автор: Ak47RA 7.9.2009, 19:24

II. Возраст

1. У шаблонов про возраст принцип аналогичный.
Только я сделала много шаблонов на каждую цифру, чтобы было меньше недоразумений.


И так от 7 до 31))) На большее меня не хватило. Вы можете вместо цифр написать звездочку. Будет не так точно, но работать не перестанет.

2. Ну и ответы на деревья:



3. Ответ на вопрос, сколько лет пользователю:

Автор: Ak47RA 7.9.2009, 19:26

III. Как сделать так, чтобы инф не повторял по два раза
(Использование переменных для тех, кого достали повторяющиеся фразы.)

1. Вот мой шаблон. Прошу прощения за объемные якоря.


Поясню - в конце сработавшего ответа переменной присваивается любое значение (я поставила 1, просто потому что всегда ставлю 1). А при срабатывании шаблона вначале проверяется, имеет ли переменная какое-либо значение. Если ей не присвоена моя единица (которая означает, что эту фразу инф уже говорил), то ответ годится.

Но здесь нужно учесть, что если гость переберет все возможные ответы, то шаблон больше не сможет срабатывать (потому что ни одно из условий в ответах выполняться не будет). На этот случай нужно наделать несколько нейтральных ответов без условия.

2. Если вам жалко тратить переменную на одну фразу, то можно при помощи одной пустить реплики по кругу:


И напоследок замечу, что при использовании переменных, так же, как при использовании инлайн словарей {///}, выбранное значение инф выводит с лишними пробелами. Так что приготовьтесь, что инф будет говорить некрасиво оформленное: "Привет,  Маша !"

Автор: Ak47RA 7.9.2009, 19:27

Антимат с помощью переменных:

$ *
# [if(%user_name="Мат")]{Я не буду с тобой разговаривать}

$ *Ты {дурак/дебил}* - самое главное не ошибиться тут, а то закроет инф доступ к половине гостей.
# Не груби, а то обижусь[%var1="1"]
# [if(%var1="1")]{Еще раз и мы попрощаемся с тобой навсегда [%var1="2"]}
# [if(%var1="2")]{Пока, больше ты меня не будешь доставать[%user_name="Мат"]}

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)