Скрипт на php, который реагирует на вводимую в поле ввода информацию
Например, мы пишем ему "Привет", скрипт сравнивает со своей имеющейся (заполненной нами) таблицей, и отвечает на это пользователю "И вам привет" (либо другими, рандомно выбранными фразами приветствия), и отвечает через какое-то время (скорость ответа зависит от количества символов, а пока не отправил, скрипт имитирует набор текста, типа "набирает текст...")
После вывода ответа скрипт ждет новых ответов от живого пользователя.
У нас будет также переключение блоков. Например вышеописанное приветствие будет называться блоком "privet", но после него мы зададим переход на блок "name", где наш скрипт уже будет спрашивать имя человека.
И вот такое хождение между блоками и будет составлять весь процесс общения.
Можно будет задавать маски, например "превосходн*" или "добр*вечер*" (Например кто-то напишет "доброго вечера, и маска поймает это)
У блока "name" может быть своя стартовая фраза, которая будет выводиться пользователю. Она будет присоединяться к крайней фразе с оставленного блока "privet". Например, "И вам привет. Как зовут?". А дальше уже идет отлов имен и реагирование на них (например в блоке "reaction_on_the_name".
После реакции на имя можно указать некой ссылкой или тегом как переход на новый блок, так и РАНДОМ на указанные блоки, которые мы перечисляем в окончании покидаемого блока.
Если пользователь отвечает таким текстом, что в текущем блоке нет таких вариантов реплик пользователя, то идет прогонка через Общий блок "all", и ищутся там уже возможные соответствия в таблице, и если находятся, то идет ответ на них из общего блока, затем идут уводы на новые блоки для развития диалога по этой теме, после чего увод на заданный новый блок или указание рандома из блоков.
Если какой-то блок будет указан как критичный, допустим в названии после блока будет стоять пометка типа "problema_kritik", то если нет от пользователя искомых нами реплик, идет рандомно выводящаяся фраза по типу "это что, так сложно было ответить?" И вновь повторяется вопрос предыдущий, немного измененный, потому что у нас даже в самих предложениях бота можно рандомизировать прямо внутри предложения слова, к примеру "а чем/чем/чем же/а чем таким/ … ты … в жизни/по жизни/в процессе жизни … занимаешься/маешься?". И так кидает его снова и снова на рандомизированные слова с упреками, типа "ты заставляешь меня больше никогда со мной не общаться", попутно (как будет сказано ниже) сюда же будет возможность вставлять и холды, и игноры, и задавание времени
В блоках после определенного ответа пользователю можно задавать, сколько бот после нее будет молчать. Допустим, блок обиды "obida", будет начинаться с фразы "Я обиделся" и задано время неответа 4 часа. Затем уход на заданный блок или рандом блоков.
Есть такие варианты, когда в ответ на слова пользователя вообще идет сначала игнорирование какое-то время (можно задать рандомный интервал в секундах, желательно чтобы работали знаки умножения, типа от 3600*1 до 3600*3 означает игнорирование от 1 до 3 часов рандомно).
Можно будет также кидать заданные картинки пользователю вместе с отправляемым текстом.
Также в скрипте будет присутствовать бальная система.
Будут такие блоки, где за определенные ответы пользователя теми или иными словами насчитывается балл тем или иным характеристикам пользователя.
У нас будет немного таких блоков. В каждом из них будут показатели, названные латиницей, например "audial", "visual", "kinestet", и т.п.
И например при ответе пользователя в каокм-то блоке, что ему нравятся к примеру красивые цветы, мы прописываем тегом, что зачисляется 1 балл в пользу характеристики "visual" в блоке "psikhotip", и затем при отправке пользователя в блок "psikhotip" блок смотрит, какие 2(или указано нами, сколько) показателя наиболее выраженные, и идет рандомное бросание пользователя на блок "talk_with_visual" и "talk_with_audial". И так при каждой отправке пользователя на блок "psikhotip" уже кидает только на эти два блока.
Такой еще момент. Если пользователь написал три сообщения, реагирует скрипт только на первое его, и с ним работаем.
Сделаем также опечатки у бота. 1% выдаваемого текста ботом пусть будет либо с добавлением рядом стоящей буквы на qwerty клавиатуре, либо с заменой на радом стоящую, либо пусть будет с пропуском этой буквы, либо с удваиванием этой буквы.
После точки, вопроса и воскрицания пусть идет большая буква, а после запятых, двоеточий и тире маленькая. Всегда большая или всегда маленькая будет только у слов, которые мы кодово зададим большими "_Америка", либо "_нет". Если появляются лишние пробелы на стыках блоков, пусть останется один. Знаки препинания при состыковках блоков должны быть прижаты к словам справа как положено, и после них идти пробел.
Разделы:
Опубликован:
18.05.2020 | 06:50 [последние изменения: 19.05.2020 | 15:14]