Перейти к содержанию
Авторизация  
Admin

Чат-боты

Рекомендуемые сообщения

@LastLife, ты сегодня предложил прикольную тему - настроить эдакого чат-бота на основе моего аккаунта. Я не очень хорошо знаю, как работают чат-боты, но думаю, что это прикольная тема :)

 

Это же надо делать на основе макросов мода - отлавливать запросы игроков и выполнять некие действия на их основе?

 

Есть желание попробовать замутить что-нибудь?

Какие есть варианты - что могло бы быть интересным для игроков?

 

Ты предлагал некую стандартную схему перемещения для обзора + запрос на проверку TPS.

 

В принципе, мне кажется, что можно даже автоматизировать проверку поломок с помощью /co i и даже - /co lookup r:5 t:5d + /co l 2 и т.д... Но предлагаю такой крутой функционал оставить на закуску и начать отрабатывать эту систему на более простых штуках.

 

Можно попробовать перенести функции смены погоды и времени на чат бота. Можно выдавать эффекты за изюм по запросу (естественно, дороже).

 

Кроме того, предлагаю реализовать систему стрима от лица игроков: чтобы админ вселялся в игрока с помощью стандартных средств майна и показывал происходящее от первого лица.

 

Что скажешь? :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю, что всё реализуемо, когда то мы со Стасом уже развлекались командами из чата

http://mc.bbcity.ru/viewtopic.php?id=579&p=23#p28563

Нужен основной принцип, по которому должна отслеживаться команда, например !bot <команда> или просто-напросто ЛС с указанием ключевого слова.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

26 минут назад, LastLife сказал:

Думаю, что всё реализуемо, когда то мы со Стасом уже развлекались командами из чата

http://mc.bbcity.ru/viewtopic.php?id=579&p=23#p28563

Нужен основной принцип, по которому должна отслеживаться команда, например !bot <команда> или просто-напросто ЛС с указанием ключевого слова.

 

Может, попробуем всё сразу подготовить к совместной разработке с открытыми исходниками, например, на github? Вдруг, получится какой-то поистине крутой чат-бот? :)

 

Ведь, по сути, можно вместе его кодить, разбить на модули и каждый сможет для себя ставить нужный модуль. Например, админский модуль понадобится только админам других серверов, но зато можно все ваши наработки по макросам выложить в общий доступ с более большим потенциалом траффика :)

 

И, если тема с макросами перерастёт в такой большой проект, то я под админа-бота выделю отдельный аккаунт, а для стримов буду юзать другой.

 

 + как я уже сказал, любой игрок сможет и кодить, и тестить бота.

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Давайте сразу определимся, как именно бот будет работать.

а) Просто команды в чат, например "Вельвет, тпс" или "Вельвет тпс" (как у ВКшных ботов).

б) Команды в личку.

в) Какой-нибудь ещё вариант.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

15 минут назад, OcelotJungle сказал:

Давайте сразу определимся, как именно бот будет работать.

а) Просто команды в чат, например "Вельвет, тпс" или "Вельвет тпс" (как у ВКшных ботов).

б) Команды в личку.

в) Какой-нибудь ещё вариант.

Вероятно, надо использовать чужие наработки и не умничать )

 

Но именно технические команды, наверное, лучше в ЛС писать.

 

А общение будем как-нибудь со временем отрабатывать: например, вопросы а-ля - "как тут играть?"...

 

Ласт, может, отдельную тему под бота создашь и перенесём туда эти сообщения (а первый твой пост возьми из флуда старого)?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подстрахуемся сразу и не будем использовать в запросах кириллицу (хоть она и норм работает).

Меня больше привлекает вариант  !bot <команда>, бот заменить на любое другое слово, типа !bbya tps (Можно хоть в глобал, хоть в ЛС)

Далее: Хотелось бы чтобы использовался мой чат-фильтр, т.к. на мой взгляд он гораздо удобнее обычного чата <LastLife> wololo VS LastLife: wololo. Цвета можно настроить по вкусу, лично мне нравится ник - аква, сообщение - белое. Т.к. на стриме включен чат, всё же он должен выглядеть красиво. Чат-фильтр я упомянул, потому что если пользоваться событием onChat, то туда вроде как прилетают уже отфильтрованные сообщения.

Разница в ЛС и Глобале в возможности управлять не только с игры, но и с динмапы (но нафиг толкать бота из динмапы?)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

@OcelotJungle, Есть идеи по реализации запроса ТПС? Я у себя на локалке тестил, но сразу получил недочёты. Делал так. В onChat ожидал команды !bot tps. Когда она приходила отправлял запрос /tps. Ставил ожидание 3 секунды(мало ли пинг какой). Также в onChat стояло ожидание сообщения результата тпс. Как только оно появлялось, записывал в переменные результаты. Ну и как проходили 3 секунды, выдавал содержимое переменной. начинал тестить, но проблема была в том, что если в течение 3 секунд ожидания появляются новые запросы, то выдача результатов начинает вести себя неадекватно. Мне она вроде 5 раз вывела результат тпс, хотя запросов было 2 или 3. В общем нужно придумать какую-нибудь систему, которая будет выдавать результаты без каких либо задержек. Либо на момент ожидания блокировать другие запросы. Есть предолжения?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

11 минуту назад, LastLife сказал:

Либо на момент ожидания блокировать другие запросы.

Простое условие и переменная true/false подойдёт?
Если есть запрос, то не принимать и/или ответить, что занят.

Если нет запроса, то начать работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

В теории, можно. Но пока это вряд ли будем запускать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

39 минут назад, Admin сказал:

В теории, можно. Но пока это вряд ли будем запускать.

я бы платил бб или изумруды за возможность тп, пусть даже на спавн

также ты размышлял насчет бана по залогу - вот так его и можно реализовать, если банишь то закладываешь 100к изумрудов, забанил напрасно - 100к должен

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

В 05.11.2016 в 17:35, LastLife сказал:

@OcelotJungle, Есть идеи по реализации запроса ТПС? Я у себя на локалке тестил, но сразу получил недочёты. Делал так. В onChat ожидал команды !bot tps. Когда она приходила отправлял запрос /tps. Ставил ожидание 3 секунды(мало ли пинг какой). Также в onChat стояло ожидание сообщения результата тпс. Как только оно появлялось, записывал в переменные результаты. Ну и как проходили 3 секунды, выдавал содержимое переменной. начинал тестить, но проблема была в том, что если в течение 3 секунд ожидания появляются новые запросы, то выдача результатов начинает вести себя неадекватно. Мне она вроде 5 раз вывела результат тпс, хотя запросов было 2 или 3. В общем нужно придумать какую-нибудь систему, которая будет выдавать результаты без каких либо задержек. Либо на момент ожидания блокировать другие запросы. Есть предолжения?

Думал я, думал, и вот что придумал.

 

Допустим, сообщение из чата сначала идёт в onChat, там находится ключевое слово, и тогда запускается файл, в который передаются аргументы:

1) сообщение целиком (CHATCLEAN)

2) игровое время в тиках (TICKS)

 

Суть в том, чтобы каждый вызов чат-бота работал не с простыми переменными, а с элементами массивов, индексы которых равны переданному TICKS.

 

То есть... как-то так:

1. onChat:

IFMATCHES(%CHATCLEAN%,"word"); LOGTO(chatbotLogs.txt,"[%DATE% %TIME%] %CHATCLEAN%"); EXEC(chatbot.txt,CHATBOT%TICKS%,"%CHATCLEAN%",%TICKS%); ENDIF;

 

2. chatbot.txt:

IFMATCHES($$[1],"word2"); --получение тпс каким-то образом--; #tps[$$[2]] = ...; ENDIF;

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Можно еще, кстати, ответ на вопрос "кто приютит" сделать. Пускай бот говорит "У нас не приют". Шутейка 80lvl.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Первый чат-бот в лице меня запущен.

Пока он имеет одну (две) команды: "время", выдающее игровое время, и "время *аргумент*", выдающее реальное время по МСК.

Для активации в вашем сообщении должно быть одно из ключевых слов:

"Кот? / Котя? / Оцелот? / Ocelot? / OcelotJungle? / oj?" (обязательно с "?", слитно!)

 

И команда:

"Время / Time".

 

Если нужно реальное время по МСК, вместе с командой должен быть аргумент:

"Ирл / Реал / в мире / в жизни / МСК / IRL / MSC / Moscow / Mosc"

 

Если аргумента из списка нет, выдаст игровое время.

 

В планах добавить возможность узнавать время определённого часового пояса.

 

Если есть идеи, что добавить - пишите сюда.

 

 


 

Разумеется, чат-бот работает только когда я в игре.

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Изменён принцип ответа. Теперь, если вы пишете в общем чате или мне в ЛС, отвечать бот будет вам в ЛС, а если с карты, то будет отвечать в общий чат с обращением по нику.

 


 

Добавлена команда проверки ТПС.

 

Можно получить только текущий ТПС командой "тпс|tps|тикрейт|tickrate" (это 4 разных команды), вводить можно в любом регистре, главное - слитно. --> "тпс"

Можно получить ТПС за последние 5 минут добавлением после команды цифры "5" (слитно!). --> "tps5"

Можно получить ТПС за последние 15 минут добавлением соответственно числа "15" после команды (тоже слитно!). --> "тикрейт15"

Можно получить все 3 ТПС добавлением кириллической "В" или латинской "A" после команды. --> "tickratea".

 


 

Теперь обращения и команды можно писать в любых регистрах, хоть "ВрЕмЯ".

 


 

По просьбе Грига добавлено обращение "Котя".


 

 

@Admin, ты же попросил проверку изумрудов? Я решил сделать проверку переменных вообще.

Я думаю, в них ничего секретного нет, ведь игрок проверяет только свои переменные.

Например -

"oj? перем Emerald_money"

"playername, твой Emerald_money = N".

Что ты об этом думаешь?

 

И сразу - так можно сделать и передачу изумрудов. Например - 

"oj? передай N изумрудов playername"

... проверка, что у игрока достаточно денег на счету (если нет - сообщить) ... снятие с его счёта ... зачисление на счёт playername... Вроде того.

Ты всё ещё против такого способа передачи денег? Если да - не буду заморачиваться.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

1 минуту назад, Admin сказал:

Вроде, норм )

 

Да, очень полный ответ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

А почему бот работает только тогда,когда Оцелот в сети?Нельзя сделать бота который будет афкшить?С каким-нибудь именем типа: Помощь,саппорт,админ,сервер и т.д.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Итак.

 

По просьбам кого-то там добавлено обращение "Оцелотус".

 


 

Сделано получение значения переменной.

Команда - "перем / знач / var"

Аргумент - название переменной, он должен быть в одиночных кавычках ( 'Emerald_money' ).

Если хотите узнать кол-во денег на счету - в качестве значения аргумента можно использовать (обязательно в одиночных кавычках!):
"изумруд / изюм / счёт / счет / деньги / бабло / emerald / money".

 

Пример:

Вы: " oj? var 'Emerald_money' "

Бот: " playername, ваше значение Emerald_money = N "

 

Переменные, знать которые имеет смысл простому игроку:

Скрытый текст

 

Emerald_money - количество денег на счету.

BonusB - количество ББ на счету.

ExpBottle - количество бутылок опыта на счету.

ClanID - айди клана, в котором вы официально состоите.

alarmCode - айди игрока, на чьей сигналке вы попались, или технического помещения, границы которого нарушили.

CustomID - айди кастомной переменой, которую вы имеете.

MonthTear - сколько слёз у вас на счёте ивента "Ghastbusters".

MonthFish - сколько рыбы у вас на счёте ивента "Смертельный улов".

qZombieStats - сколько раз вы сдали квест "Кошмарные зомби".

qSoulStats - сколько раз вы сдали квест "Обратный эффект".

qEggStats - сколько раз вы сдали квест "27 фактов о куриных яйцах"

(без Stats - сколько сданных квестовых предметов на вашем счету сейчас)

SkillTear - сколько гастов вы убили.

SkillLeather - сколько коров вы убили.

SkillNugget - сколько свинозомби вы убили.

SkillStone - сколько камня вы выкопали.

 

 

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Итак, я сделал ещё одну(две) команду.

 


 

Функция перевода денег со своего счёта на чужой.

Команда имеет два аргумента - сумму и ник игрока.

Сама команда - "Передай / Pay".

После неё без кавычек (апострофов) идёт положительная сумма, которую хотите перевести (больше нуля!).

Затем в одиночных кавычках (апострофы) ник игрока, которому хотите перевести.

Пример:

oj? pay 10 'Zooomka'

 

Если вы вдруг перевели деньги не тому (ошибка в нике или что угодно) и хотите отменить перевод: пишете в эту тему время и дату перевода, желательно ник игрока и точную сумму. Ведётся лог всех обращений к боту, можете не волноваться.

 


 

* - вообще, эта команда для игроков не имеет значения, она выполняет то, что написано в кавычках, и предназначена для ввода команд с карты, когда влом заходить. Это я на случай, если Вельвет когда-нибудь будет круглосуточным чат-ботом.

Команда: "Run / Выполни / Исполни"

Аргумент в одиночных кавычках после команды.

  • Плюс 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

А вы знали, что Оцелот вчера настроил на Джина чат-бота? Пока еще в тех рамках, что были у него самого, т.е. время, тпс и еще пара команд. Обращаться надо через jr.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Достижения

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×