IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Тема закрытаНачать новую тему
> Инструкция - Переменные, FAQ, Основные сведения
Ak47RA
сообщение 7.9.2009, 19:20
Сообщение #1


ПОЗИТИВ!!!
***

Группа: Пользователи
Сообщений: 1902
Регистрация: 25.4.2009
Пользователь №: 898
Сайт инфа: walya.iii.ru


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

Прежде всего читаем: Инструкция разработчиков в ней многое подробно написано.

Общие сведения:
Есть 3 типа переменных:
Бесконечные - запоминаются для гостя навсегда.
  • %user_name
  • %user_gender
  • %user_age
  • %user_1
  • %user_2
  • %user_3
  • %user_4
  • %user_5
  • %user_6
  • %user_7
  • %user_8
  • %user_9
  • %user_10
Кратковременные - стираются через три часа после последней реплики гостя.
  • %var1
  • %var2
  • ...
  • %var100

и автоматически заполняемые переменные даты и времени - в них ничего не запоминается и они постоянно заполнены от движка инфа.
  • auto_date - формат значения переменной auto_date: год-месяц-день
    - Допустим, мы хотим, чтобы инф поздравлял гостей с Рождеством:
    $ с рождеством <!>
    #[if(%auto_date="2011-01-07")]{И тебя с Рождеством!}[else]{А я думал, Рождество 7-го января празднуют, а сегодня вроде не 7-е... Но если ты так настаиваешь... И тебя с Рождеством!}
    Соответственно, 7-го января инф будет отвечать на "С Рождеством!" фразой "И тебя с Рождеством!", а во все остальные дни - "А я думал, Рождество 7-го января празднуют, а сегодня вроде не 7-е... Но если ты так настаиваешь, то и тебя с Рождеством!"
    Условия на эту переменную можно использовать не только в "Моих шаблонах", но и в разделе "Реакции на события".
  • auto_time - формат значения переменной auto_time: час:минуты
    Время будет подставляться автоматически, по времени сервера (т.е. на А-я-яй - по московскому времени)
    Допустим, мы хотим, чтобы инф отвечал на вопрос "который час". Тогда мы можем создать вот такой шаблон:
    $ который час <?>
    #Сейчас [%auto_time] по московскому времени.
    Пример диалога:
    Гость: который час?
    Инф: Сейчас 15:26 по московскому времени.


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

Возможные ошибки:
    Если шаблон с переменной не работает, проверьте следущее:
  • Если вы писали шаблоны сначала в текстовом редакторе переставьте все кавычки заново.
    - неработающие кавычки.
    " - работающие кавычки.
  • В значениях переменных учитывается регистр букв. Если вы присвоили переменной значение "Добрый", то она не сработает на конструкцию [if(%var1="добрый")]{}
  • В значениях переменных можно ошибиться с языком. Если вы присвоили переменной значение "добрый"(английская о), то она не сработает на конструкцию [if(%var1="добрый")]{}(русская о).
  • Проверьте все символы, один недостающий символ [if(!%var1] или [if(!var1)] и весь шаблон перестанет работать.
Далее представлены примеры Виу-Пиу как использовать переменные на практике:
I. Имя
II. Возраст
III. Как сделать так, чтобы инф не повторял по два раза
Антимат с помощью переменных

Сообщение отредактировал папа Карло - 5.2.2011, 7:04
Перейти в начало страницы
 
+Цитировать сообщение
Ak47RA
сообщение 7.9.2009, 19:22
Сообщение #2


ПОЗИТИВ!!!
***

Группа: Пользователи
Сообщений: 1902
Регистрация: 25.4.2009
Пользователь №: 898
Сайт инфа: walya.iii.ru


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
Сообщение #3


ПОЗИТИВ!!!
***

Группа: Пользователи
Сообщений: 1902
Регистрация: 25.4.2009
Пользователь №: 898
Сайт инфа: walya.iii.ru


II. Возраст

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


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

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



3. Ответ на вопрос, сколько лет пользователю:
Перейти в начало страницы
 
+Цитировать сообщение
Ak47RA
сообщение 7.9.2009, 19:26
Сообщение #4


ПОЗИТИВ!!!
***

Группа: Пользователи
Сообщений: 1902
Регистрация: 25.4.2009
Пользователь №: 898
Сайт инфа: walya.iii.ru


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

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


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

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

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


И напоследок замечу, что при использовании переменных, так же, как при использовании инлайн словарей {///}, выбранное значение инф выводит с лишними пробелами. Так что приготовьтесь, что инф будет говорить некрасиво оформленное: "Привет,  Маша !"
Перейти в начало страницы
 
+Цитировать сообщение
Ak47RA
сообщение 7.9.2009, 19:27
Сообщение #5


ПОЗИТИВ!!!
***

Группа: Пользователи
Сообщений: 1902
Регистрация: 25.4.2009
Пользователь №: 898
Сайт инфа: walya.iii.ru


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

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

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

Тема закрытаНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 20.11.2019, 22:23