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


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

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


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

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


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

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

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


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

Сообщений в этой теме


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

 



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