StealthBot 2.6 - Trivia
Скрипт создаёт своеобразную викторину на Battle.net канале, задавая вопросы, находящимся там пользователем. Каждый новый вопрос берётся из фаила questions.txt (по умолчанию), является случайным, и не повторяется до тех пор пока не будут заданы все вопросы. Вопросы задаются через определённое время. Если на какой-то вопрос пользователи не могут ответить то бот выдаёт подсказки, открывая по 1 букве ответа через определённое время. Колличество открываемых букв устанавливается администратором бота. Если за несколько открытий никто так и не угадал, то бот скажет правильный ответ, подождёт некоторе время и задаст следующий вопрос. Интервал времени между вопросами в 2 раза больше интервала между подсказками (по умолчанию).
Каждый пользователь, правильно ответивший на вопрос получает 1 очко. Бот строит список всех пользователей, отвечавших когда либо на вопросы и сортирует его по колличеству правильных ответов. Набрав в чате команду .top5 можно посмотреть 5 самых активных пользователя. Когда человек на канале набрирает команду .rank бот отправляет ему в приват сообщение, в котором указывает его место в общей статистике и колличество набранных очков. Синонимами команды .rank являются команды .stats и .score. В статистику попадают все, у кого есть хотябы 1 правильный ответ.
Скрипт сохраняет всю статистику в папке бота в фаил scores.txt (по умолчанию) при любом правильном ответе или выходе из программы и загружает из её при запуске.
Команды скрипта, которые могут использовать все пользователи на канале:
.top5 - показывает 5 самых активных пользователей
.rank (.stats .score) - отсылает пользователю информацию о его местоположении в статистике и колличестве набранных очков
.help - выводит на канал список основных команд
.usercount - выводит на канал число пользователей, ответивших на вопросы
... и не только на канале. Если послать команду боту в приват, то он ответит в приват пославшему. Это правило действует и для администраторских команд.
Управление скриптом
Кроме пользовательских команд есть ещё и команды, предназначеные для управления скриптом. Для того чтобы использовать эти команды нужно сначала установить себе, боту и другим необходимым пользователям необходимый уровень доступа. Будем считать, что скрипт уже установлен и находится в папке с ботом в фаиле script.txt.
Установка уровня доступа пользователям:
Запускаем бота. Входим в меню Bot. Нажимаем Userlist Manager.
Вписываем имя необходимого пользователя в поле Username и даём ему доступ от 0 до 100. Чем больше доступ, тем больше прав имеет пользователь. О всех уровнях доступа и правах можно прочитать в фаиле readme, который находится в папке с ботом. Для того, чтобы пользователь мог управлять скриптом RusTrivia необходимо установить доступ, не меньше 50 (по умолчанию, как изменить доступ для управления скриптом написано дальше). После того, как имя и доступ введены необходимо нажать Add User, затем тоже самое для всех остальных пользователей.
Не забудьте добавить самого бота в список, в противном случае скрипт не будет управляться из окна бота.
В конце нажимаем Done, тем самым сохраняя список. Если прото закрыть окно, то список не сохранится. Список пользователей можно изменять, редактируя фаил users.txt или специальными командами (подробнее об этом читайте в фаиле бота readme).
Все пользователи, с доступом больше или равным 50 (по умолчанию) могут пользоваться специальными управляющими командами, например запускать, останавливать скрипт, менять имя фаила с вопросами и т. д.
Команды скрипта, которые могут использовать пользователи с доступом, необходмым для управления скриптом:
.ahelp - показывает основные админские команды
.pingmeenable - разрешает боту отвечать на .pingme (команда на стадии разработки)
.pingmedisable - запрещает боту отвечать на .pingme (команда на стадии разработки)
.file <имя фаила с вопросами> - позволяет сменить фаил с вопросами на другой
.filename - показывает текущее имя фаила с вопросами
.trivia - запуск/остановка скрипта. При этом ранее заданные вопросы повторяться не будут. Скрипт не запустится, если вопросы не загружены.
.triviarestart - перезапуск скрипта. Ранее заданные вопросы будут повторяться.
Администраторы бота могут пользоваться командами .top5, .rank, .help, .usercount, как и обычные пользователи.
Установка скрипта
Прежде всего надо скачать скрипт и вопросы. Последняя версия того и другого всегда доступна сдесь. Заходим туда, открываем фаил с последней версией скрипта в браузере (это обычный текстовый фаил), жмём Сохранить как, сохраняем скрипт и вопросы в папку с ботом. Скрипт под именем script.txt а вопрсы questions.txt. Вероятно в папке с ботом уже существует старый фаил script.txt, его необходимо заменить.
После того как скрипт сохранён открываем его блокнотом и ищем следующие строки:
'Путь к фаилам
public const ScoreFilePath = "C:\Program Files\Programs\StealthBot\scores.txt" 'фаил в который бот будет записывать кол-во набранных очков
public const QuestionFilesDir = "C:\Program Files\StealthBot\QuestionFilesDir\" 'директория фаилов с вопросами
QuestionFileName = "questions.txt" 'имя фаила с вопросами
То что выделено красным необходимо заменить на путь к папке, в которой находятся вопросы. Чтобы узнать его необходимо нажать правой кнопкой по фаилу questions.txt, выбрать Свойства, необходимый нам путь будет находится в графе Размещение. Копируем то что находится справа от этой графы и вставляем в текстовый фаил. Далее для проверки можно запустить бота, зайти в меню Settings и нажать Reload Script. Если путь указан неверно то бот об этом напишет в своём консоле. Проверьте, чтобы в конце строки QuestionFilesDir был поставлен символ "\" (без кавычек), иначе вопросы не будут найдены. Далее можно запускать бота на канал, набирать .trivia и мучить народ вопросами... Только не забудьте себе выставить необходимый доступ.
Если почитать фаил script.txt дальше, то можно найти ещё несколько очень полезных настроек:
public const trivAccess = 50 - изменяя этот параметр можно сменить уровень доступа к Trivia администраторским командам. Если поставить число, меньше 0, то скриптом смогут управлять все пользователи.
public const nHints = 4 - этот параметр устанавливает число подсказок.
scTimer.Interval = 10100 - время между подсказками в миллисекундах (чтобы перевести в секунды надо поделить на 1000). Внимание! Установка параметра scTimer.Interval слишком малым может привести к тому, что бота будет банить за флуд в батлнете (на 20 минут каждый раз).
public const fast_question = False - этот параметр определяет сразу ли задавать вопрос после удачного ответа пользователей, или нужно подождать время, которое определяется параметром timer_division. По умолчанию выключено. Чтобы включить нужно изменить значение на True.
public const timer_division = True - этот параметр определяет время через которое будет задан новый вопрос после удачного ответа. Если стоит в True, то это время в 2 раза меньше времени между подсказками.
public const flood_p_arec_time = 25 - колличество минут через которое бот попытается подключиться к батлнету, если был забанен за флуд. Если установить в 0 - то бот не будет делать попыток подключения.