Боты для браузерных игр на AutoIT
Вместо предисловия
Сегодня я получил ссылочку на статью на хабре о технологии создания «макроса-бота для браузерной игры». Там же было написано с сожалением, что AutoIT мало представлен на хабре. Со штуками, описанными в статье я баловался год-два назад. В последнее время использую библиотеку IE.au3, которая позволяет творить с браузерными игрушками просто чудеса.Собственно информацией об этом и хотел бы поделиться. Только сразу предупреждаю — речь идет только работе под MS-Internet Explorer. Фанатам других браузеров скажу сразу — можно тоже самое делать наверное под любым браузером, только нужно искать соответствующую библиотеку и как они работают я сказать не могу. Скажу только о библиотеке IE.au3 — она входит в комплект стандартной установки AutoIT-а, достаточно хорошо протестирована, снабжена комментариями и примерами, описанные в ней функции удобно подсвечиваются и предлагаются к завершению при наборе с соответствующими подсказками, как стандартные функции пакета (или как там назвать этот самый AutoIT).
Выбор жертвы
В качестве примера работы AutoIT-а с браузерными играми предлагаю игру «Моя деревня» (оригинальное название игры “My Free Farm”) — http://www.mojaderewnja.ru/.Игра реально напрашивается на автоматизацию, потому что заставляет выполнять слишком много рутинных действий. Например, если Вы не будите платить в проект около 180 рублей ежемесячно, то посадку и поливку растений Вам нужно будет делать вручную. А это обычно 120 кликов по полю, только чтобы посадить растения, затем 120 кликов чтобы полить. Полей может быть не один и не два, а до десятка. А некоторые растения растут минут 10, так что такие кликанья либо отбивают желание играть либо заставляют платить за казуальную игрушку ежемесячно сумму, за которую можно иметь месяц скромного интернета или хорошее кабельное телевидение. Так что автоматизировать «Мою деревню» — это просто то, что нам нужно.Выглядит поле для обтыкивания так:
Вариант №1 — примитивный вариант
— Функция проверяет цвет точки, передаваемой в качестве первого параметра $color на то, чтобы она находилась в цветовом диапазоне от $min до $max, с учетом трех составляющих цвета точки (RGB). Возвращает, соответственно True или False.
Непосредственно процедура обтыкивания всех клеток на поле выглядит так:
Тут все понятно. 10 и 12 в заголовках цикла это размер поля в клетках. Константы в параметрах MouseClick вычислены с помощью той же утилиты AutoIt Window Info, относительно определенной ранее «точки отсчета». Значение задержки в Sleep можно менять по своему желанию – это будет влиять на скорость обтыкивания, но слишком быстрое может приводить к ошибкам выполнения скрипта игры.
Преимущество этого метода – он работает в любом браузере. Везде где можно открыть окно игры так, чтобы была видна вся пашня.Недостаток – окно игры должно быть всегда открыто, нужно подбирать скорость обтыкивания и во время работы скрипта нельзя трогать мышь (иначе тыкнет не там где надо).
Вариант №2 — правильный вариант
Вариант №3 — самый правильный вариант
Бот для браузерной игры, сетевой подход
Прочитав статьи о ботах решил поделится своим скромным опытом создания бота с помощью Java и использованием сетевого протокола (то есть никаких макросов или внедрений в AS).
Введение
Подготовка
Перед тем как приступить к написанию бота я решил изучить каким образом игра связывается с сервером и обменивается с ним данными. Для этого был использован довольно популярный сниффер — Wireshark.
После запуска Wireshark, надо запустить саму игру и сыграть пару игр. Потом найти сообщения между браузером и сервером в Wireshark и открыть всю историю переговоров.
В итоге было выявлено, что игра связывается с сервером по 9337/9338 порту и обменивается с ним с помощью JSON запросов. Аутентификация же происходит в виде обмена XML сообщениями содержащими вашу информацию ВКонтакте (как я понял, эта информация вынимается посредством API ВКонтакте).
Написание бота
Создавать сам бот я решил с помощью Java, так как довольно неплохо знаком с самим языком, а так же хотелось получить опыт написания приложений с использованием Swing.
Так как я не желал тратить время на парсинг XML, обмен сообщениями для аутентификации был реализован довольно грубо и в лоб:
Для передачи сообщений с помощью JSON, был использован Jackson Java JSON-processor.
Затем создавался экземпляр бота, конструктору которого передавались Input и OutputStreams (открытые через сокет):
Bot имел всего один метод, который создает комнату и отыгрывает один матч:
Вторым компонентом бота, был его мозг, представляющий собой класс с публичным методом:
Данный метод возвращал следующее решение на основе текущей ситуации в игре, принимая во внимание цель, количество оставшихся бросков, вес броска и т.д.
Бот имел довольно аскетичный интерфейс который позволял соединятся с сервером, производить базовые настройки и запускать бота.
Дальнейшее исследование
После написания бота я решил заняться механизмами его доводки, для этого было реализовано несколько вариантов «мозгов» бота, нацеленных на различную игру, агрессивную, пассивную или же достижение определенного порога. Как я не старался, но мне не удавалось вывести бота в плюс по очкам, лучшее чего я смог достичь это потеря 5% очков в течении 2000 игр.
Исходные коты находятся в очень плачевном состоянии (бот писался год назад), но если есть желание я попробую привести их в порядок и выложить на github.
Игровые боты. Начало
Что может быть интереснее процесса игры в игры? Правильно! Процесс наблюдения за тем, как играет в игры написанный тобой бот.
Некоторое время, я размышлял, о чём бы написать свою первую статейку. Хотел написать о программировании микроконтроллеров, но оказалось трудно отделить части рабочих проектов от тех, что можно опубликовать без оглядки на коллег. Остановился на идее о ботах.
Введение
Боты для онлайн игр я бы грубо разделил на 3 разновидности по способам реализации:
1. Боты не использующие приложение игры. Имитирующие протокол обмена с сервером.
2. Боты работающие с процессом приложения игры. В случае с Web, работающие с окном браузера.
3. Боты работающие со скриншотом и имитирующие устройства ввода мышь и клавиатуру.
Первая разновидность скорее гипотетическая, т.к. протоколы, как правило, закрыты и не тривиальны.
Первая разновидность больше подходит для ботов с простыми и текстовыми протоколами. Если на сервер передаются бинарные данные, то предстоит разобраться с их структурой, что усложняет задачу.
Вторая разновидность более реальна и может быть реализована. Бот второго вида получает полезную информацию из памяти процесса игры. Недостаток — версии клиентов могут регулярно обновляться и тогда может потребоваться заново искать интересующие адреса памяти.
Мы рассмотрим третюю разновидность ботов, т.к. ИМХО они более привлекательны, хоть и не лишены недостатков.
А так же, такой подход более спортивный 🙂
В этой статье я рассмотрю набор инструментов для самого простого бота для Windows.
Для самого простого бота достаточно эмитировать события мыши и клавиатуры. В большинстве случаев этого оказывается достаточно для решения (не самого эффективного, но не требующего участия человека) рутинных дел в различных играх. Для более эффективной работы бота требуется обратная связь с игрой, т.е. получение и обработка скриншотов игры.
Для разработки приложений я буду использовать Qt Creator + Qt 5 либы (так мне привычнее) и раз бот для Виндовс то + windows.h (WinAPI).
Регистрация горячих кнопок для управления ботом:
Обработка событий нажатия кнопок управления ботом:
Перемещение указателя мыши к нужной точке:
(выполнено не очень аккуратно, обещаю исправиться :-))
Мануал юзера
Перед запуском бота горячей кнопкой Alt-F1, бот следует сначала настроить, определив верные координаты органов управления по которым бот будет кликать.
Для запоминания координат точки наводим указатель месту и жмём Alt-F4.
Для проверки корректности точки отводим указатель в сторону и жмём Alt-F3.
Для настройки следующей точки жмём Alt-F2.
Для сохранения верных координат жмём Alt-F5.
Подводные камни
Опыт показывает, что не стоит торопиться кликать по органам управления и двигать указатель. Часто игры притормаживают, при наведении мыши на кнопку срабатывает отрисовка подсветки и прочие неведанные процессы и торопливость приводит к несрабатыванию клика или захвата при перетягивании и т.п. и как следствие неработоспособность бота. При ручном управлении, люди обычно таких досадных мелочей даже не замечают, так как работает обратная связь через органы зрения. Решение — делать паузы после всех элементарных действий.
Окно игры может произвольно свернуться в следствии появления сообщения от виндозы или ещё по каким причинам. В программе последовательности кликов и пауз стоит предусмотреть клик по иконке свёрнутой игры.
Пишем бота для онлайн-игры на JavaScript с применением AOP
1. Готовим ингредиенты
Важно! Игра должна работать в браузере, а не в клиенте. Причем не на Flash, а на HTML+JavaScript.
На выходе у нас должно получиться расширение для Chrome, которое будет играть вместо нас.
2. Делаем расширение
О том как делается расширение я не буду подробно расписывать. На хабре об этом уже писали, например, тут.
Приведу лишь коды, нужных нам файлов.
В manifest.json
В строчке «matches»: [ «pernatsk.ru*» ] вам нужно будет указать адрес вашей игры.
Файл background.js я использую для случаев, когда хочу инджектить на сайте свой JS кода. Собственно код background.js:
Важно! Если вы не понимаете, что мы делаем в этой единственной функции, то делать бота вам пока рано. Почитайте основы JavaScript.
Вся работа у нас будет вестись в файле injected.js Его код пока такой:
Все эти файлы сохраняем в одной папке bot.
3. Первый пуск бота
4. Добавляем AOP
Для работы бота нам потребуются библиотеки. Мой любимый jQuery уже используется на Пернатске, поэтому добавлять его не будет.
Добавим плагин AOP for Jquery. По хорошему это стоило запаковать в само расширение в виде отдельного файла, но я ленив. Поэтому просто добавим код bin/aop.pack.js первой строкой в наш injected.js.
Проверим, что это работает изменив ai_on
Проверяем, что AOP нормально подключилось. В консоле разработчика теперь будет строчка «jQuery detected!» Сообщение будет только один раз, так как я отключаю совет после первого же срабатывания.
Важно! Прочитайте документацию AOP for Jquery, чтобы понять jQuery.aop.after и bot[0].unweave().
5. Зачем мы будем использовать AOP
6. Учим бота первой команде
В injected.js добавим такой код:
По этой команде наша бот-птичка будет лететь в Пернатске за шишками. Код слегка мудренный, так как в Пернатске есть небольшая защита от ботов.
Когда вы будете писать свои команды я рекомендую сначала опробовать их работоспособность в console, а уже потом переносить код в редактор.
Чтобы протестировать и проверить работу нашей команды запустим в косноле код commands.conessearch() Все работает.
7. Ищем событие на которое должен реагировать бот
Тут есть два метода первый — анализируем код игры. Долго 🙁
Второй метод — воспользоваться AOP, и после всех функций, который срабатывали вывести в лог их имя. Потом выбрать нужные.
Меняем ai_on()
Теперь у нас отражаются только те функции, которые еще не отображались. Их полный список мы храним в fnList.
После пары минут там будут такие варианты функции для прицепки [«clearInterval», «$», «setTimeout», «timerTick», «serverTimeUpdate», «getComputedStyle», «setInterval», «tutorialArr», «showQ», «showQc», «updateBirdData», «viz», «unviz», «weatherUpdate»]
Меняя target и регулярное выражение в method мы можем подобрать ту функцию, которая нам подойдет, чтобы к ней прицепиться. Для примера, я выбираю функцию weatherUpdate теперь каждый раз как будет меняться погода наша птичка будет лететь за шишками.
7. Учим бота реагировать на события
Мы снова меняем код функции ai_on()
Функцияю ai_off нужна, чтобы через консоль выключить бота.
Создание ботов для игр без программирования. Автоматизация рыбалки
Очень часто в играх приходится выполнять рутинные однообразные действия, которые хотелось бы избежать или минимизировать. Для некоторых задач подходят кликеры, записав сценарий для которых можно запустить воспроизведение по кругу, однако такая автоматизация отличается большой не надежностью и ее возможно применить в очень ограниченных случаях.
В данной статье я хочу рассказать как можно создавать полноценных ботов за минимальное количество времени без освоения языка используемого в нужной программе.
Использовать будем программу Кибор, в котором присутствует визуальный редактор кода. В визуальном редакторе Кибор схема данного бота будет выглядеть таким образом. На ее составление ушло не более 10 минут с подготовкой всех изображений.
Для примера будем автоматизировать процесс рыбной ловли в игре На рыбалку. Процесс рыбалки выглядит следующим образом:
1) Нажимаем на кнопку Забросить и щелкаем по ней левой кнопкой мыши.
2) Ожидаем появление кнопки Тянуть. При появление кнопки зажимаем на ней левую кнопку мыши. Появляется полоса обозначающая натяжение лески. Нажимая и отпуская левую кнопку мыши следим что бы полоса не перевалила за правый или левый край.
3) Когда рыба вытащена закрываем табличку и переходим к первому этапу.
Для данных действий бот должен уметь:
Распознать кнопку Забросить и нажать на нее.
Распознать кнопку Тянуть и зажать на ней левую кнопку мыши.
Распознать по полосе когда надо кратковременно отпускать левую кнопку мыши.
Распознать появление таблички, что бы закрыть ее и начать лов сначала.
Овальный блок это точка старта. Синие блоки отвечают за анализ экрана, зеленые на манипулирование мышью.
На данном скриншоте показаны какие части изображений используются в каких блоках.
Бот строится по порядку действий игрока.
Первым создается блок Старт. В нем объявляются переменные в которые мы в дальнейшем запомним координаты кнопок.
Затем идет блок поиска кнопки Забросить и клик по ней.
После этого ожидается появление кнопки Тянуть. В настройках свойств этого блока даем время ожидания появления этой кнопки (первый параметр). Пока кнопка не появится программа будет крутиться в этом блоке указанное время. как только кнопка появится управление перейдет дальше. При появление кнопки ее координаты запишутся в переменные (x y) и мышь зажмет левую кнопку на ней.
После этого ожидаем появление полосы. Точнее указанного нами ее фрагмента, при появление которого надо кратковременно отпустить левую кнопку мыши.
Одновременно с полосой сканируем появление таблички о пойманной рыбе. Эти два изображения сканируются по очереди, пока одно из них не будет найдено. Координаты найденного крестиика закрытия таблички запишутся в переменные (x1 y1).
Как только появится указанный участок полосы при появление которого надо кратковременно отпустить левую кнопку мыши управление переходит в блоки управления мышью. Действия мыши происходит по координатам (x y) кнопки Тянуть. Затем управление опять переходит на сканирование полосы.
Когда рыба поймана появится табличка с крестиком для закрытия. В этом случае управление перейдет в нижние блоки управления мыши. В них мышь отпустит левую кнопку на кнопке Тянуть, переместится на крестик закрытия таблички (x1 y1), закроет табличку и управление перейдет в начало программы.
Видео создания и работу готового бота можно посмотреть тут https://youtu.be/u8NpA1eXTsI
Что-то дальше одного поста у вас дело не пошло.
Забросили программу или просто не публикуете здесь информацию по ее развитию?
А что публиковать. Все равно тут ее не опишешь полностью. Она имеет очень много инструментов и функций.
Не забросил, наоборот.
Сегодня вышло обновление.
Добавил обучаемую функцию распознавания текста.
Теперь считывание с экрана текста не будет проблемой. Для обучения разработан специальный инструмент.
Подробнее о распознавание текста в Кибор
Видео работы функции и процесса обучения
Будет время напишу пост подробный как этим пользоваться лучше.
Оптическое распознавание текста в Кибор. Примеры создания ботов:
Настойчивость она для кого надо настойчивость
Закон есть закон
Ответ на пост «Важно слышать своих детей»
Что называется, подержите моё пиво.
На ор прибегает бабушка, отвешивает мне смачного леща, а плачущего брата отводит на кухню и даёт ему шоколадку. За попытку оправдаться я получил ещё одного леща.
Так и есть
Хочу закалить в себе мужской характер
Френдзона как причина
Интересная фича
Как PSIHolog84 решил Пикабушников налюбить, но попал в просак
Сразу же миф о том, что тачка исключительно для души улетучился, в инсте он сам написал, что это товар/услуга
Ой, а кто это тут сидит на капоте с металлическими кольцами на своей портупее?
Теперь квест из «найди, где ТС солгал» переходит в «найди, где ТС не спиздел», потому, что ложь буквально в каждом слове, так как увидел в той же инсте видос, где человек хуярит щёткой его ласточку, которая вся завалена снегом (явно не паркинг, да?). На эти претензии ТС мне написал, что готов спорить хоть на 100к рублей о том, что машина всё же стоит в паркинге, затем, когда ему скинули доказательства и он сам спалился в разговоре с другим пользователем, что тачка стоит на улице, он сказал, что «Стоит в паркинге» это про то, что она именно сегодня стоит в паркинге и потом меня заблокировал )) Рекомендую почитать всю ветку #comment_220919738
Соотвественно ложь о том, что ремонт после НТВшников дорогой, нужно красить всю машину, покрывать керамикой и т.д., в прошлый раз накидали шпатли и замазали (смотрим предыдущий пост) и вот ещё добавочка https://www.instagram.com/p/BqorMPgnK8S/
Вишенкой на торте является то, что ТС даже врать не может одинаково. Мне он ответил, что нет фото, потому, что он «чистил телефон» перед поездкой заграницу и удалил их (ну это было рассчитано совсем на тупых, так как он же сам тут выкладывал более старые фото. Кто будет удалять свежие фото и оставлять старые?), другому человеку написал, что просто их не делал #comment_220954236
Резюмируем, если бы ТС написал всё, как есть, я бы ему посочувствовал даже. Но привкус наебалова мешает это сделать, а наебалово я ой как не люблю.
UPD про спор на 100к рублей
Где деньги, Лебовский?
Теперь она селебрити
Достигла совершенства
Когда нашел баг, а код и с ним работает
Попалась, су*ка!
Но, логичный вопрос интервьюера:
— Значит, ты девственница?, почему-то ввергает её в ступор)
Срочные добрые новости
Все мы немного приемные
Ответ Brume74 в «Спалилась»
Веду мелкого в садик. Года четыре где-то ему, и девочке из его группы, соответственно тоже.
Приходим, там девочка и ее мама разговаривают с воспитателем.
— Варенька, а что это у тебя за красная полоска на шее?
— А это меня мама веревкой душила.
Про фильму
Музыкальное сопровождение
В «Жилищник» Северного Бутово берут только киргизов и узбеков
Readovka наткнулась на необычный пост в паблике «Объявления для московских мусульман». Некий Магомед Хамхоев предлагал «братьям» работу дворником. Журналисты решили прозвонить по указанным контактам и попробовать «устроиться». Несколько человек получили отказ, как только выяснилось, что они не мусульмане.
Издание выяснило, что собеседник, проводивший интервьюирование, является замначальником одного из участков ГБУ «Жилищника». Сам чиновник в диалоге говорил, что в его ведении находятся аж четыре участка в Северном Бутово. Свой отказ принимать на работу кого-то кроме киргизов и узбеков мужчина мотивировал тем, что весь штат состоит из мигрантов. Они могут поссориться, поэтому русским путь в дворники закрыт
«Следите за речью, комментаторы», — написал Беслан Цечоев в посте у Олега Кашина в Facebook, посвященном расследованию
Цечоев в 2015 – 2019 годах был мэром Магаса, столицы Ингушетии, а до этого занимал пост помощника-советника главы Республики Ингушетии.
«Зато физкультуры нет»: физрука из Ростова пытаются признать педофилом
Учителю Вадиму Шерстенникову 49 лет, и последние три года жизни он провел в судах. С 2018 года педагога ростовской школы № 30 обвиняют в педофилии по заявлению матери первоклашки. Мужчина даже провел полгода в колонии, пока апелляционный суд не постановил отпустить Шерстенникова и заново рассмотреть дело, приняв во внимание показания других учителей и учеников о невиновности физрука. Но теперь все снова идет к обвинительному приговору.
История одного учителя
Шерстенников пришел работать в школу № 30 из другого образовательного учреждения, где много лет был тренером по баскетболу. Общий стаж его работы — 25 лет, но в 30-ке учитель оказался лишь в 2018 году. В новой школе, кроме физкультуры в старших классах, Шерстенников вел гимнастику у первоклашек.
По словам коллег, педагог мог заинтересовать детей. Первоклашки особенно тянулись к игровым формам занятий, среди которых была и гимнастика.
— Вадим вел уроки интересно, ребята с удовольствием ходили на занятия. Никто из учителей, родителей, а тем более детей, кто знал педагога, не верит в то, что творится сейчас с ним, — рассказывает его бывшая коллега. — Его оболгали, а он, будучи честным человеком, даже не представлял себе, что такое может происходить у нас.
В роковой день физрук учил малышей делать «мостик» на козле — семилетняя Оля (все имена детей изменены — Прим. ред.) лежа выгибала спину, пытаясь достать руками мячик. Учитель страховал детей по инструкции: правой рукой поддерживал колено, левой — спину. Все упражнения провели в группе из 30 детей.
Через месяц после того урока Шерстенникова вызвали в Следственный комитет. Физруку сказали, что подозревают в педофилии: якобы учитель лез в трусы к девочке-первоклашке. Почти сразу мужчину отстранили от преподавания, хотя и оставили на свободе. При этом, никто из опрошенных 115 детей из пяти классов этого не видел. Все свидетельствовали, что «урок нравился, а учитель хороший».
Следствие трижды прекращало уголовное преследование за отсутствием состава преступления. А прокурор возвращал дело на дорасследование.
Четвертый следователь прямо сказал мне: «Ничем помочь не могу, хотя вижу, что ничего нет. Прокурор требует обвинительного заключения»,
Как пояснил 161.RU источник в силовых структурах, статья 132 УК РФ — тяжкая. Поэтому то, что учителя лишь отстранили от работы, но не задержали, может говорить о том, что у СК не было реальных доказательств для ареста. В большинстве случаев по такой статье на время следствия человека садят в СИЗО.
У нас в стране принято верить детям. Если ребенок говорит, то значит, правда, — отметил силовик. — В большинстве случаев, дети — наговаривают, не понимая последствий. После такого приговора, проводилась внутренняя проверка, как велось следствие и почему ряд показаний не были указаны в деле. Скорее всего, именно по результатам проверки Шерстенников позже выиграл апелляцию.
После встречи со следователями Шерстенникова вызвали и сказали, что в прокуратуру поступило заявление от мамы одной из девочек. Согласно показаниям матери, первоклашка рассказала ей, что во время гимнастики физрук правой рукой залез под леггинсы, трусики. Этих слов матери хватило, чтобы завели уголовное дело.
Родительница написала, что ребенок пришел из школы и [сказал, что] не хочет ходить на физкультуру. Якобы на уроке физкультуры учитель трогал причинные места, — вспоминает коллега Шерстенникова. — В зале есть камеры, но, к сожалению, именно в тот день их не успели подключить по техническим причинам.
Сначала следователь отказал в возбуждении уголовного дела, но мама ребенка оказалась непростой. Она — бывший сотрудник органов на пенсии.
Спустя месяц после первая заявления еще одна девочка — Света — из того же класса заявила, что тоже кое-что вспомнила. Вторая первоклашка сказала, что Шерстенников приставал и к ней. По словам адвокатов, мамы детей дружат много лет — переехали в Ростов с Дальнего Востока.
Поддержка довела до тюрьмы
По словам самого учителя, на последнее перед приговором заседание пришел «какой-то полковник в погонах», подошел к судье и сказал: «Это ужас. Ему нужно 15 лет дать». Шерстенников спросил за что. Тот ответил: «За моральный ущерб ребенку».
Шерстенникову дали 13 лет лишения свободы и отправили в ИК-2 на Каменку, а через месяц перевели в новочеркасскую ИК-14. Ни коллеги, ни сам Шерстенников до последнего не верили, что дело закончится колонией.
Понимаете, он до такой степени человек советской закалки, который никогда никуда не попадался и верил в учителей, в правосудие, в суд.
Поэтому в первый раз в суде никого и не допрашивали. Вадим подумал, что суд разберется и понятно, что никто его не осудит. Теперь у него, конечно, такого мнения нет. Он в шоке, — вспоминает один из адвокатов Шерстенникова.
Коллеги, родственники и даже школьники создали петицию с требованием отменить приговор и заявили, что педагога оболгали. Все опрошенные дети говорили в присутствии психологов и родителей — только после этого подписали петицию. Коллективное обращение было отправлено в суд. Его подписали все родители класса, кроме двух мам-заявительниц.
При первом рассмотрении судья решил, что «пострадавших» девочек опрашивать не будут. Следственного эксперимента с участием детей для установления фактических обстоятельств также не было. А самое главное в том, что фактические обстоятельства — условия — не вписываются в предъявленные обвинения, — рассказал Шерстенников.
По словам физрука, свидетелей в деле нет, хотя рядом было около 30 детей, которые следили за выполнением упражнений, сидя на скамейках. Суд решил не опрашивать и не уточнять, как именно учитель страховал девочек. Шерстенников для наглядности снял видео, в котором показал свои действия и содержани упражнений.
Как рассказал нам коллега Шерстенникова, малый зал, в котором проходили занятия с малышами — это просто кабинет, в котором просто нет парт и другой мебели.
При выполнении упражнения одна рука страхует спину ребенка, вторая держит колени, чтобы они не поднимались, иначе ребенок просто упадет назад. Нет же у него третьей руки, которая бы в это время лезла в трусы? — пояснил спортивный тренер.
Чьи показания оказались нужнее?
Позиция обвинения в суде первой инстанции была проста: дети лгать не будут. Обвинение привело в качестве доказательств слова девочек без анализа на предмет противоречий.
Так, в показаниях второй девочки фактически пересказана та же история, что и ее подруги. Школьница лишь добавила, что остальные дети просто ничего не видели. При этом в протоколе допроса этой же пострадавшей говорится, что «все дети видели доступно упражнения». В самом приговоре снова: «никто ничего не видел».
По словам адвоката Михаила Ревякина, дело Шерстенникова полностью сфабрикованное — построенное на словах одной из мам девочек. Заседания по делу закрытые, аудиозапись не ведется.
Противоречия при вынесении приговора увидел не только Шерстенников и его защита.
В апелляционном определении судебной коллегии по уголовным делам указано: «[Районный] суд в приговоре не привел показания несовершеннолетних свидетелей — шестерых детей — о том, что им ничего неизвестно о том, что Шерстенников совершал в отношении потерпевших действия сексуального характера, данных событий они не видели, потерпевшие им об этом не рассказывали. Эти показания могли повлиять на выводы, при этом суд не дал им оценку».
В основу обвинительного приговора суд положил показания несовершеннолетних потерпевших девочек и их мам. При этом не учтено, что несовершеннолетние потерпевшие в ходе расследования неоднократно меняли свои показания, поясняли, что Шерстенников на уроке физкультуры засовывал им руку в трусы, в ходе дополнительных допросов поясняли, что контакт был через одежду, к коже половых органов он никогда не прикасался, однако какой-либо оценки данные обстоятельства в приговоре не получили, — рассказал адвокат Ревякин.
Когда в мае 2020-го Ростовский областной суд отменил приговор и отправил дело на новое рассмотрение, Вадима Шерстенникова освободили в зале суда.
Апелляция была выиграна именно благодаря двум его адвокатам, которые, практически перелопатили около десяти томов по 400 листов дела.
Мама Оли в показаниях говорит о том, что «это началось с первого урока физкультуры в сентябре 2018 года и происходило каждый урок во время гимнастических упражнений на козле». Но эти упражнения ученики стали выполнять только в октябре. Согласно журналу занятий, до отстранения Шерстенников провел 21 занятие. Защита спрашивает, возможно ли такое, что, находясь в нескольких метрах от происходящего, почти 30 учеников, не увидели, как учитель на 21 уроке кряду залезал в трусы к девочкам.
В выводах заключения судебной психолого-психиатрической экспертизы указано, что у Вадима Шерстенникова нет никакой склонности к педофилии. Кроме того, согласно уголовно-процессуального закона в основы приговору могут быть положены только те доказательства, которые исследовались в судебном заседании. Именно поэтому, мы ходатайствовали о допросе в качестве свидетелей — двух одноклассников потерпевших, которые были на всех уроках, с участием их законных представителей, педагога и психолога. Но суд не дал на это разрешение, — рассказал адвокат Ревякин.
Во время суда мне судья делал замечание, когда я отвечал на вопрос стороны обвинения, и грозил удалением из зала суда в случае еще одного замечания. В течении последнего заседания суда судья сделал мне около 20 замечаний без всяких на то оснований, — сетует Шерстенников.
В результате меня осудили, так и не доказав вины, на 13 лет. Я пять месяцев провел в СИЗО в полной антисанитарии, с зэками, которые меня унижали в быту — заставляли перестирывать их вещи несколько раз, мыть за ними, убирать.
25 декабря 2019-го Ворошиловским районным судом в отношении Вадима Шерстенникова был вынесен обвинительный приговор. Его приговорили к 13 годам лишения свободы в колонии строгого режима по части 4 статьи 132 УК РФ «Насильственные действия сексуального характера» и в зале суд взяли под стажу. 27 мая 2020-го областной суд при апелляционном рассмотрении отменил приговор суда и отправил дело на новое рассмотрение. Шерстенников до сих порт под подпиской о невыезде.
После апелляции — оправдали и снова обвиняют
После апелляции дело вернулось в Ворошиловский райсуд Ростова. По словам адвокатов и самого Шерстенникова, все снова идет по старой схеме: заседания закрыты, свидетелей защиты отказываются слушать. Девочкам, которые заявили на учителя, уже по 10 лет. Обе уже перевелись в другие школы.
Все идет только со слов двух мам, плюс еще психологи, которых привлекло следствие для того, чтобы дети допрашивались в их присутствии. При этом есть мальчики, которые и спустя три года все четко помнят и готовы говорить, но их не привлекают как свидетелей.
Во время суда психологи, привлеченные следствием из социального центра и те, которых привлекла сторона защиты после психологической экспертизы не сошлись во мнениях. Первые сделали вывод, что «девочки говорят правду». Вторые утверждают обратное.
Как могут социальные психологи делать какой-то вывод? Там должна быть комиссия, заключение экспертно-психиатрическое для того, чтобы выявить говорят ли правду дети. А у них какой-то психолог из социального центра поприсутствовал при допросе, а теперь его допрашивают, как свидетеля. Он говорит: «Девочки говорили правду три года назад». Понимаете, как все там происходит? — рассказал адвокат Шерстенникова.
На опросе вне судебного заседания два мальчика, которых так и не сделали свидетелями, рассказали, что Оля якобы призналась одноклассникам, что выдумала историю о домогательствах.
То есть, мальчики это помнят, они готовы это рассказать, но им не дают. Когда учителя уволили, они же не сразу узнали, из-за каких девочек. Потом подошли к этой Оле и спросили: «Ты зачем такое наговорила про учителя?»
Она в ответ: «Ну и что? Захотела и наговорила. Зато теперь физкультуры нет».
адвокат Михаил Ревякин
Адвокаты Шерстенникова уверены, если бы другим родителям разрешили дать показания в суде, то дело сразу бы приняло другой оборот.
По словам адвоката, сейчас в деле нет ссылки на заключение судебной психолого-психиатрической комиссии экспертов, где есть подробнейшая характеристика первой девочки. Исследование провели по заказу стороны защиты, документы не приобщены к делу.
Согласно заключению, копия которого есть у редакции, Оля характеризуется импульсивным поведением, по незначительным поводам у нее могут возникать бурные эмоциональные реакции, «аффективно реагирует на замечания, наказания, строгое обращение», может быть лидером.
Что касается Светы, которая стала наговаривать на учителя через месяц после первой [девочки], согласно выводам психолого-психиатрической комиссии, выявлена склонность к повышенной внушаемости, — добавил адвокат Ревякин.
Из показаний свидетельства Оли в разное время: «Я делала мостик стояла на руках, а Вадим Николаевич меня трогал», «Ну я делала мостик на козлике, а учитель засунул руку туда». На вопрос о том, где находились дети, когда учитель приставал, Оля отвечает «отжимались». Уточняющий вопрос: «Все время отжимались? Ответ: «Угу».Спустя год Оля заявила, забыв, что говорила ранее, что дети сидели на лавочке и смотрели на гимнакстическое упражнение на козле.
Адвокат говорит, что хочет придать огласке мнение о противоправных действиях следствия, прокуратуры и районного суда — тщательно проверить действия на всех уровнях обвинения.
Видя все проведенные защитой экспертизы и доказательства в виде показаний детей, должно быть понимание, что этого не могло произойти, что это все наговоры на учителя. Но, к сожалению, они не отказываются от этого чудовищного обвинения. И причиной этому является безальтернативная вера своему ребенку, не смотря на факты, вера в то, что ребенок не может обманывать. Однако, все мы понимаем, что дети врут не реже, а порой и чаще взрослых, — заявил Ревякин.
Защита Вадима Шерстенникова в течение трех лет бьется за честное имя педагога ростовской школы. Обращения в генеральную прокуратуру РФ ни к чему не привели — документ спустили на местный уровень. Накануне адвокаты направили письмо в телепередачу «Человек и закон», чтобы на беду одного учителя физкультуры обратили внимание. Вадим Шерстенников написал петицию, в которой просит неравнодушных людей принять участие в его нелегком деле и помочь разобраться. Кроме того, учитель физкультуры написал обращение на имя Владимира Путина, в котором рассказал о том, что творится в ростовском правосудии и попросил вмешательства в его судьбу.
Три года Вадим Шерстенников лишен права работать и зарабатывать деньги.
Оплачивать адвокатов и многочисленные экспертизы уже нет средств, так как Шерстенников весь в долгах.
Дело в отношении меня было сфабриковано под давлением экс-прокурора Ростовской области Юрия Баранова (Летом 2020 года прокурор подал в отставку на фоне проверки из Москвы.
Поводом для проверок стали сразу несколько скандалов с участием прокурора, — Прим. ред.), — говорит Вадим Шерстенников.
Я лично ходил к нему на прием и мне было сказано, что ничем не смогут помочь, потому что надо сесть. Прошу ваших молитв, чтобы был нейтрализован, обращен вспять и уничтожен обвинительный уклон и свершилось правосудие в моем деле.
Чтобы неукоснительно соблюдались принципы презумпции невиновности и состязательности сторон, зафиксированных в Уголовно-процессуальном кодексе России.