8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Как сделать макрос для онлайн игр

Как сделать макрос на клавиатуру, мышку [пошаговый пример]. Утилиты для создания макросов (последовательность нажатий нужных клавиш)

Всем здравия!

Иногда при работе на компьютере необходимо нажимать последовательно несколько клавиш (причем, чем быстрее и «четче» это делаешь — тем лучше!). Например, это часто требуется в играх, при каких-то рутинных офисных задачах и пр.

Однако, всё можно упростить! Представьте, вы нажмёте только одну клавишу — а спец. программа за вас нажмет последовательность из 5÷10 клавиш, которую вы ей заранее укажите (причем, она может это сделать как очень быстро, так и с определенной паузой). Кстати, называют подобные «трюки» — макросами.

А если вы сделаете 3-4 таких макросов?! (на все возможные случаи). Да вы сможете нажимать так быстро любые комбинации клавиш, что ни один человек без «таких же фокусов» не сможет вас обогнать (обыграть!). Нажал одну клавишу в каком-нибудь «Mortal Kombat» — и боец делает всю связку без промедления! 😉

Статья в тему:  Что такое ганг в доте

Собственно, в текущей заметке приведу простейший пример макроса: от А до Я. Думаю, что, начав с малого и поэкспериментировав — многие пользователи смогут добиться весьма неплохих результатов. 👌

Не обгонишь, я быстрее нажму!

Создание макроса: нажимам 1 клавишу — получаем последовательность из 10!

Пошаговый пример: делаем макрос для игры

👉 ШАГ 1

Для нашего примера я взял утилиту BotMek (ссылка на сайт разработчика). Она проста в настройке, полностью на русском, и позволяет создавать достаточно длинные и хитрые комбинации макросов. Это нам и нужно 👌.

После установки и запуска BotMek — необходимо перейти в раздел «Макрос» . 👇

ШАГ 1 — открываем раздел «макрос»

👉 ШАГ 2

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

ШАГ 2 — название макроса

👉 ШАГ 3

Теперь для созданного макроса нам нужно записать комбинацию нажатий мыши и клавиатуры: именно ее потом программа и будет воспроизводить (эмулировать нажатия за нас!).

Для этого нужно нажать по кнопке «Запись» , и указать: нужно ли запоминать нажатия мыши и клавиатуры (в своем примере я выбрал вариант «Записывать нажатия клавиш с клавиатуры» ).

ШАГ 3 — начать запись

После нажмите на клавиатуре последовательно всё клавиши, которые программа должна запомнить и записать! Учтите, что она запоминает даже паузы между нажатиями клавиш!

По сути, мы делаем образец, и он должен быть идеальным. 😉 В конце операции нажмите по клавише «Стоп» и затем «OK» (этим мы сохраним макрос и выйдем в меню).

нажимаем последовательность клавиш

👉 ШАГ 4

Теперь нам нужно этот макрос (последовательность клавиш) установить на какую-нибудь реальную клавишу — т.е. когда мы нажмем на неё — он и сработает.

Статья в тему:  Ник черников я люблю тебя как доту 2 текст

Для этого нужно открыть раздел «Клавиши» , нажать мышкой по одной из клавиш на виртуальной клавиатуре и выбрать для нее макрос (в моем случае для клавиши «Z» — «Присвоить макрос -> Макрос1: wow» 👇).

ШАГ 4 — присваиваем макросу клавишу

Далее нужно нажать кнопку «Запустить» , чтобы программа начала отслеживать все нажатия на указанную нами клавишу «Z».

👉 ШАГ 5

Осталось только войти в нужную нам игру/приложение (для которого мы создали макрос), и нажать кнопку активации макроса — в моем случае «Z».

Ву-а-ля, персонаж в игре начинает автоматически атаковать цель с применением всего боевого комбо! Задача решена?! 👌

ШАГ 5 — испытания! // Скриншот из игры World of Warcraft

Разумеется, мой показанный пример очень прост и бесхитростный. Однако, если вы никогда не сталкивались с этим — то начинать лучше с малого, потихоньку усложняя и накручивая «свои заготовки».

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

Какие утилиты можно порекомендовать для начинающих

Разумеется, программ и утилит подобного рода достаточно много. В этой заметке у меня нет цели представить их все (с описанием плюсов и минусов) — самое главное дать несколько наводок для начинающих.

Т.е. те приложения, с которыми под силу разобраться «средней» руки пользователю, который накануне «открыл» для себя тему макросов. 👌

BotMek

BotMek: главное окно программы

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

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

  1. совместимость с любыми моделями мышек и клавиатур;
  2. рассчитана на новичка (спец. знаний не требуется);
  3. есть коллекция готовых макросов для популярных игр;
  4. позволяет пользоваться одновременно сразу неск. макросами;
  5. совместима с Windows 7/8/10 (работает «тихо» и не отвлекает различными окнами и напоминаниями. ).
Статья в тему:  World of warships как играть на эсминце

TinyTask

TinyTask — совсем небольшая утилита (несколько килобайт веса), позволяющая записывать и воспроизводить активность реальной клавиатуры/мыши (т.е. являться на время их программным эмулятором).

Отлично подходит для решения и автоматизации рутинных задач.

Кстати, программа также позволяет сохранить записанную последовательность в файл исполняемый EXE (что сделает перенос и запуск нужного сочетания клавиш еще проще). 👋

Недостаток : есть неудобства при работе сразу с несколькими макросами (переключение не удобно).

Macros Effects: Макроскин (ME)

Macros Effects — скриншот главного окна

«Узко-спец.» приложение для постановки макросов на практически любые виды мышек. Совместима с макросами, написанными в Oscar Editor в формате AMC.

  1. высокая точность при настройке осей и координат перемещения курсора (хорошее перемещение прицела в играх-шутерах 😉);
  2. вкл./откл. функции повторов;
  3. работает в свернутом режиме;
  4. низкие системные требования к железу;
  5. возможность переносить макросы и одной копии ПО в другую просто скопировав код (в текстовом варианте);
  6. наличие раздела «Help» со справкой и пояснениями, как работать с программой.

Минус : отсутствует возможность записывать и загружать команды для клавиатуры!

Ну а у меня на сим пока всё, успехов!

Как сделать макрос для онлайн игр

FINAL FANTASY XIV Online

2,570уникальных посетителей
71добавили в избранное

Для начала хотелось бы отметить, что макросы никогда, ну вот вообще НИКОГДА не стоит использовать чтобы как — то заменить ротации скилов. Для этого есть множество причин и вот 3 самые весомые:

  • Ваши умения имеют время кулдауна (отката) в 2.5 секунды. А макросы «умеют» работать только с целочисленными значениями. Это означает, что, если мы хотим уместить в макрос нашу ротацию умений, то мы теряем 1 способность за каждые 6 действий. Так же стоит учитывать, что если Вы хотите вставить какое — либо заклинание в серидину макроса, то стоит это делать осторожно, так как действия в макросе воспроизводятся не по очереди, а по времени. Еще Вы можете столкнуться со следущей проблемой: все, что будет прописано в макросе после команды, на которой произошло сбитие заклинания (допустим пошевелились во время каста) просто напросто не будет воспроизведено макросом.
  • Вы не можете быть уверены, что Вам понадобится 100% вашей ротации. Можно привести массу примеров, но самый простой из них: АоЕ атаки, от которых Вам надо уворачиваться. Ну а как написано выше, при прерывании хотя бы одного умения в ротации, макрос перестает работать.
  • Ну и последнее. Ваш персонаж постоянно развивается и получает новые способности и Вам просто необходимо будет постоянно вводить новые умения в список активно используемых. Написанный макрос лишает Вас вариативности. Написаный макрос не научит Вас правильно играть и не выпрямит Вам руки. Ну и когда Вы достигните высоких уровней Вы просто напросто потеряетесь в умениях Вашего персонажа и не сможете раскрыть его потенциал.
Статья в тему:  Drakensang online сколько весит клиент

Ключевое слово, которое надо взять за правило при написании макроса это «Полезность».
Макрос должен помогать Вам играть за ваш класс максимально продуктивно и эффективно. Чтобы во время боя с очередным Primal’ом не искать в панике по всем своих хотбарам этот хренов крайне нужный бафф, или же что либо быстро ответить своим товарищам в чат. Перед написанием макроса спросите себя: «Что я хочу от этого макроса? Какого его предназначение?». В Вашей голове должен сложиться ясный и простой ответ на этот вопрос.

Итак, вот Вы и собрались написать свой первый макрос. Для начала нам необходимо открыть меню макросов.

Находим меню.

Для начала нажимаем на Escape, в открывшемся окне нажимаем на строку «User Macros».

Выскочит вот такое окно. Цифра в каждом квадрате обозначает слот под макрос.

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

Команды для макросов.

На самом деле команд намного больше, чем представлено ниже. Все остальные команды можно посмотреть в разделе Text Commands в меню макросов. Ниже приведены самые часто используемые команды

/micon — Уставнавливает иконку макроса по названию умения. Как использовать — /micon «Ability»
/merror — Включает или выключает отображение ошибок макроса в чате. Изначально данный параметр включен. Использование — /merror off (on)
/party, /p — Отправить сообщение в чат канал группы. Использование — /p *сообщение*.
/echo, /e — Отправить в чат сообщение, которое увидите только Вы. Использование — /e *ваша заметка*.
/action, /ac — Применить умение. Использование — /ac «Ability»
/petaction, /pac — Применить умение питомцем. Использование — /pac «Ability»
/companionaction, /cac — Применить умение чокобо. Использование — /cac «Ability»
/facetarget — Повернуть Вашего персонажа лицом к цели. Использование — /facetarget
/wait — Подождать определенное количество времени перед выполнением следующей команды макросом. Использование — /wait 5

Статья в тему:  Можно ли играть в онлайн игры на телевизоре

Стоит обратить внимание, что /wait можно использовать на одной линии с другой командой, постив этот оператор в данные символы: <>. Например: /ac «Ability»

/hotbar ? # — где # номер хотбара на который мы хотим воздействовать и ? это:
— change — меняет номер хотбара на заданный
— display — включает отображение заданного хотбара на Вашем HUD’e

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

— Текущая цель
- Цель Вашей цели
- Цель фокуса
- Цель, над которой находится Ваша мышка
- Нулевой член группы. Обычно Ваш персонаж
. - Седьмой член группы.
- Цель, на которой стоит метка "Attack1"
. - Цель, на которой стоит метка "Attack5"

Другие полезные советы

Имеется возможность использовать и в сообщениях в чате. При таком использовании в чате будет выводиться название цели.
Например - /p Incoming !

Так же Вы можете поменять звук системных сообщений и сообщений в чате, чтобы выделить их на общем фоне. Для этого нужно вставить где либо в сообщении, где # - это число от 1 до 16. Но не стоит этим злоупотреблять - далеко не все Ваши сообщения имеют пометку "Необходимо к прочтению". Серьезно. Пишите только важную информацию для Вашего рейдагруппы с оповещением.
Пример - /p На мне спадет бафф через 5 секунд

Итак, теперь Вы знаете как создать макрос. Но перед тем, как мы приступим к более подробному изучению макросов, необходимо понять, как эта хрень крайне эффективная вещь работает.

Статья в тему:  Что означает бб в доте

Во первых, как мы уже узнали из предыдущей главы, макросы не могут переплюнуть по КПД (коэфицент полезного действия) ручное использование скилов. Как уже было сказано ранее, для использования способностей, которые затрагивает макрос, Ваш персонаж должен быть неподвижен - но это не значит, что Вам необходимо ждать пока пройдет ГКД (глобальное время отката скилов) чтобы использовать умение, для которого этот ГКД отсутствует. Это так же не означает, что и оборотная сторона медали истинна, так как никто не запрещает Вам просто использовать умение прямо в серидине анимации отката макроса.
Не стоит забывать, что у вашего питомца есть свой ГКД и Вы можете пользоваться макросом, чтобы "направить" своего питомца в бою. Однако макрос не будет работать, если питомец сейчас занят, тоесть, допустим, сам кастует другое умение.

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

Ну и наконец, макросы используют команды, заложенные в них, строго по порядку. Будет использоваться первое возможное действие, которое не находится в КД и готово к использованию. Допустим, Вы уже раскачанный Gladiator, Rampart сейчас в КД и мы запускаем следующий макрос:

Статья в тему:  Как убрать ботов в доте

/ac "Rampart"
/ac "Convalescence"
/ac "Fight or Flight"

Система будет пытаться использовать Rampart, но остановится, так как эта сособность в КД.
Convalescence будет использован, так как он идет следующий по списку. Тут макрос не остановится, и следующим действием будет применение Fight or Flight - но, ничего не получится, так как Convalescence сейчас кастуется.

Конечно же, если Вы разбавите макрос /wait командами, подходящими по времени КД умений, то можете быть уверены, что Fight or Flight будет точно использовано. Но, как я уже говорил ранее, использование макроса вместо ручной ротации это удел ленивых жоп людей и может вылиться в опасную ситуацию не только для Вас, но и подставить всю группу.

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

Не все из приведенных ниже примеров будет для Вас КРАЙНЕ полезны всю Вашу последующую игру, но на данных вариантах можно понять принцип работы, как пишутся команды, вообщем, переходим от кучи теории к практике!

Очень легко создать макрос, который бы использовал по нажатию всего одной кнопки все Ваши баффы. Конечно же, никто не запрещает прожимать их по одному, но к каком либо экстренном случае такие макросы будут крайне полезны. Вот примеры:

Статья в тему:  Ник черников я люблю тебя как доту 2 текст

Баффы Gladiator на защиту
/merror off
/ac Rampart
/ac Foresight
/ac Sentinel
/ac Bulwark

Баффы Bard на атаку
/merror off
/ac "Raging Strikes"
/ac "Internal Release"
/ac "Blood for Blood"

Баффы Summoner для питомца
/ac Rouse
/ac Spur

Не забывайте, что порядок, в котором Вы расставляете умения может быть ОЧЕНЬ важным. Чаще всего, лучшим решением будет расположить способности в порядке возрастания КД, чтобы Вы могли приберечь баффы с бóльшим КД на крайние случаи. Выбор метода сортировки баффов, конечо же, за Вами, хоть в порядке уменьшения эффективности, хоть по КД, не важно - самое главное, чтобы была логика действий, понятная Вам.

    Макросы для пати.

Ну хватит быть эгоистами и писать макросы только для себя. Подумайте о своих товарищах! Например - расставить метки для порядка атаки мобов, оповещение об использовании Вами способности Limit Break. Да что угодно, что придет в голову! Вот например.

Порядок убийства мобов (до 3х целей)
/mk attack3
/ac "Target Forward"
/wait 1
/mk attack2
/ac "Target Forward"
/wait 1
/mk attack1

Усыпление моба
/ac "Sleep"
/ac "Repose"
/mk ignore1
/p Усыпил , не бейте его.

    Многозадачность

    Вот тут можно развернуться, потому что в данном направлении макрос представляет из себя самую полезную вещь в игре. Серьезно. Если использовать такие макросы правильно, это позволт избежать множественного переключения целей и, как следствие, потери времени.

    Conjurer Esuna
    /ac Esuna

    Scholar Mitigation
    /ac Virus
    /ac Virus
    /ac "Eye for an Eye"

    Astrologian Card Buff
    /ac Draw

    Rogue Goad
    /ac Goad

    Arcanist Knockback
    /pac Backdraft
    /pac Shockwave

Заметка от автора
Использование команд с применением mouse-over так же аботает и для элементов HUD'а. Например состав группы, список врагов, цель фокуса или же цель цели. Как мне кажется, единственной причиной неиспользования данной возможности - отсутствие мыши. Ну а для тех, кто играет на геймпаде.. Извините, ребята, я не знаю такой команды для Вас. 🙁

Один из разделов, в котором /wait команды играют Вам на руку.

Summoner Dreadwyrm Trance таймер
/ac "Dreadwyrm Trance"
/wait 10
/e Транс спадет через 5 секунд

Raid Pull таймер
/p Pulling in 10s.
/wait 5
/p 5
/wait 1
/p 4
/wait 1
/p 3
/wait 1
/p 2
/wait 1
/p 1

    Крафтинг

    Да-да. Макросы для крафта. Крайне удобно и практично, ведь можно запустить макрос и придти через час уже "на все готовенькое".

    Пример подготовки к крафту
    /ac "Inner Quiet"
    /wait 3
    /ac "Tricks of the Trade"
    /wait 3
    /ac "Basic Touch"
    /wait 3
    /ac "Tricks of the Trade"
    /wait 3
    /ac Manipulation

    Пример крафта Finisher
    /ac "Basic Touch"
    /wait 3
    /ac "Basic Touch"
    /wait 3
    /ac "Basic Touch"
    /wait 3
    /ac "Basic Touch"
    /wait 3
    /ac "Basic Touch"
    /wait 3
    /ac "Careful Synthesis"
    /ac "Basic Synthesis"

Написание макроса-бота для браузерной игры

Введение

Не так давно на Google+ появились игры. Прочитав топик об этом, я решил во что нибудь поиграть. Выбор пал на игру Diamond Dash. Через некоторое время игры программист во мне заговорил, что однотипные действия нужно автоматизировать. И вот что из этого вышло…

*Примечание: «руками» даже опытному игроку сложно набрать больше 400к

Раньше я никогда не сталкивался с задачами работы с экраном и мышкой. После непродолжительного гугления было решено для решения использовать язык макросов AutoIt.
Под катом вы найдете краткое описание игры, мой способ распознавания поля, алгоритм определения точки нажатия, и некоторое количество оптимизаций. А так же ссылку на github-репозиторий скрипта.
UPD Добавлено видео работы скрипта.

Краткое описание игры

Игра представляет из себя простую «кликни-на-область-больше-трех-квадратиков-одного-цвета» головоломку.

Есть поле 9 на 10, заполненное квадратиками 5 цветов. У нас есть одна минута на то, чтобы набрать максимальное количество очков. При нажатии на область из 3 или более одноцветных клеток, она исчезает, то что над ней проваливается, а сверху падает недостающее. Количество начисленных очков зависит от размера области: чем она больше — тем больше очков.
Кроме того, если делать клики быстро, и почти безошибочно, поле вокруг загорается, а каждое удаление(в данном случае взрыв), захватывает соседние с удаляемой областью клетки.

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

Определение координат окна

Эта часть была добавлена в самую последнюю очередь, до этого координаты угла были жестко прописаны в коде. Используется функция из сторонней библиотеки ImageSearch для поиска сохраненного шаблона 10 на 10 пикселей. Судя по всему, фон слегка меняется от игры к игре, потому что не любой кусок подходил.
На форумах повсеместно не рекомендуют использование ImageSearch из-за долгого времени работы. Но так как нам нужно определить координаты только один раз в начале игры, провисаний по времени можно не опасаться.

Распознавание цветов и сохранение скриншотов

  1. Func _GetField ( ByRef $aiField ) ; получение массива цветов поля
  2. ; получение BitMap-снимка экрана с помощью WinAPI
  3. Local $hWnd = WinGetHandle ( "Игры Google+ - Google Chrome" )
  4. Local $Size = WinGetClientSize ( $hWnd )
  5. Local $hDC = _WinAPI_GetDC ( $hWnd )
  6. Local $hMemDC = _WinAPI_CreateCompatibleDC ( $hDC )
  7. Local $hBitmap = _WinAPI_CreateCompatibleBitmap ( $hDC , $Size [ 0 ] , $Size [ 1 ] )
  8. Local $hSv = _WinAPI_SelectObject ( $hMemDC , $hBitmap )
  9. _WinAPI_BitBlt ( $hMemDC , 0 , 0 , $Size [ 0 ] , $Size [ 1 ] , $hDC , 0 , 0 , $SRCCOPY )
  10. _WinAPI_SelectObject ( $hMemDC , $hSv )
  11. _WinAPI_DeleteDC ( $hMemDC )
  12. _WinAPI_ReleaseDC ( $hWnd , $hDC )
  13. Local $L = $Size [ 0 ] * $Size [ 1 ]
  14. Local $tBits = DllStructCreate ( 'dword[' & $L & ']' )
  15. _WinAPI_GetBitmapBits ( $hBitmap , 4 * $L , DllStructGetPtr ( $tBits ) )
  16. ; определение цветов клеток
  17. For $iCol = 0 To $iNumCols - 1
  18. For $iRow = $iNumRows - 1 to 0 Step - 1
  19. ; замер цвета квадратика
  20. $iX = $iCornerX + ( $iCol * 40 ) + $iDeltaX
  21. $iY = $iCornerY + ( $iRow * 40 ) + $iDeltaY
  22. $iPixelColor = Mod ( DllStructGetData ( $tBits , 1 , $iY * $Size [ 0 ] + $iX ) , 0x1000000 )
  23. $aiField [ $iRow ] [ $iCol ] = _GetCheckColor ( $iPixelColor )
  24. Next
  25. Next
  26. ; удаление данных для избежаня утечки памяти
  27. _WinAPI_DeleteObject ( $hBitmap )
  28. _WinAPI_DeleteObject ( $hMemDC )
  29. _WinAPI_DeleteObject ( $tBits )
  30. EndFunc


Тут стоит оговориться, почему замер происходит всего по 1 точке. Этот метод был испробован мной в первую очередь, и остался в финальной версии. Между этими двумя моментами было испробовано довольно большое количество альтернативных способов, среди которых были: замер 64 точек на каждый квадратик(решетка 8 на 8) и различные усреднения полученных значений, случайный выбор координат для замера, хранение истории нескольких последних замеров для лучшей точности… Но все они оказались менее точными или удобными, чем самый первый способ.
Возможно, что так как я весьма далек от темы распознавания изображений, я не знаю чего-то простого, способного помочь мне в этом вопросе. В таком случае буду рад любым предложениям. =)

Определение одноцветной области по таблице цветов

  1. Func _DfsAreaSize ( ByRef $aiField , $iStartX , $iStartY ) ; нерекурсивный алгоритм поиска размера одноцветной области
  2. ; методом поиска в глубину
  3. Local $aiResult [ $iNumCols * $iNumRows ] [ 2 ] ; список клеток входящих в область
  4. Local $iResultSize = 0
  5. Local $afMap [ $iNumRows ] [ $iNumCols ] ; флаги пройденности
  6. For $iRow = 0 to $iNumRows - 1
  7. For $iCol = 0 to $iNumCols - 1
  8. $afMap [ $iRow ] [ $iCol ] = False
  9. Next
  10. Next
  11. $afMap [ $iStartX ] [ $iStartY ] = True
  12. Local $aiStack [ $iNumRows * $iNumCols ] [ 2 ] ; активный стек
  13. Local $iStackSize = 1
  14. $aiStack [ 0 ] [ 0 ] = $iStartX
  15. $aiStack [ 0 ] [ 1 ] = $iStartY
  16. While $iStackSize > 0
  17. $iStackSize -= 1
  18. $iX = $aiStack [ $iStackSize ] [ 0 ]
  19. $iY = $aiStack [ $iStackSize ] [ 1 ]
  20. $aiResult [ $iResultSize ] [ 0 ] = $iX
  21. $aiResult [ $iResultSize ] [ 1 ] = $iY
  22. $iResultSize += 1
  23. For $iDirection = 0 to 3 ; перебор 4 рядомстоящих клеток
  24. Local $iNewX = $iX
  25. Local $iNewY = $iY
  26. Switch $iDirection
  27. Case 0
  28. $iNewY += 1
  29. Case 1
  30. $iNewY -= 1
  31. Case 2
  32. $iNewX += 1
  33. Case 3
  34. $iNewX -= 1
  35. EndSwitch
  36. If ( $iNewX >= 0 And $iNewX $iNumRows And _
  37. $iNewY >= 0 And $iNewY $iNumCols And _
  38. Not ( $afMap [ $iNewX ] [ $iNewY ] ) And $aiField [ $iNewX ] [ $iNewY ] = $aiField [ $iStartX ] [ $iStartY ] ) Then
  39. $afMap [ $iNewX ] [ $iNewY ] = True
  40. $aiStack [ $iStackSize ] [ 0 ] = $iNewX
  41. $aiStack [ $iStackSize ] [ 1 ] = $iNewY
  42. $iStackSize += 1
  43. EndIf
  44. Next
  45. WEnd
  46. Return $iResultSize
  47. EndFunc

Оптимизации

Оптимизация 1. Алмазики
  1. For $iRow = $iNumRows - 1 to $iNumRows - 3 Step - 1
  2. For $iCol = 0 to $iNumCols - 1
  3. If $aiField [ $iRow ] [ $iCol ] <> 0 Then
  4. $aiDiams [ $iRow ] [ $iCol ] = 0
  5. Else
  6. $aiDiams [ $iRow ] [ $iCol ] += 1
  7. If $aiDiams [ $iRow ] [ $iCol ] > 15 Then
  8. MouseClick ( "Left" , $iCornerX + 30 + ( $iCol * 40 ) , $iCornerY + 10 + ( $iRow * 40 ) , 1 , $iMouseSpeed )
  9. $aiDiams [ $iRow ] [ $iCol ] = 0
  10. Sleep ( 500 )
  11. Return 0
  12. EndIf
  13. EndIf
  14. Next
  15. Next
Оптимизация 2. Over Explosion

Тут надо объяснить, почему очень важно уменьшить количество ошибок, и почему в моем скрипте между соседними снимками экрана стоит задержка в 1/10 секунды. Дело в том, что когда поле загорается и ячейки начинают взрываться, количество очков многократно возрастает. Но если слишком много ошибаться, поле перестает загораться. Поэтому минимизация ошибок не менее важная часть, чем оптимизация времени распознавания (а учитывая запас времени, вообще единственно важная).
Несмотря на задержку в 1/10 секунды между соседними снимками экрана, некоторые ячейки все равно не успевают упасть, и определяются не на своих местах. Чтобы уменьшить их количество, была введена проверка на взрыв. При взрыве в квадратике появляется ореол почти чисто-белого цвета (#fffefc если быть точным), а это легко определить. Все клетки над взрывом, не мудрствуя лукаво, можно проставить как неопределенные.

Оптимизация 3. Область последнего клика

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

После всего вышеописанного, мой рекорд стал примерно таким:

Очень хотелось 2 миллиона, но 4 дня попыток, пара тысяч строк экспериментального кода (с самописным логгированием и сохранением скринов), тщательное курение логов и сверки со скриншотами, результатов не дало. =(
Ссылка на репозиторий github: github.com/EvilTosha/DiamondDash

Вместо постскриптума. Пара слов об AutoIt

Меня очень удивило, что этот язык почти не освещен на хабре. Собственно, желание исправить эту несправедливость и побудило написать этот топик.
Язык при этом умеет довольно много, и обладает поражающей простотой изучения. Через пару часов после того, как я узнал о его существовании, я уже обладал всеми знаниями нужными для написания данного макроса.
С помощью AutoIt можно автоматизировать почти любое рутинное действие: сохранение скриншота, установка программы(если надо поставить на много компов), многократный логин куда-либо… Можно скомпилировать в exe-шник, подключать DLL-ки.
Но что-то я как евангелист заговорил. =)

UPD Видео работы.

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

BotMek – игровые макросы для любой клавиатуры и мыши

Программа BotMek с удобным редактором и базой готовых макросов для многих популярных игр существенно облегчит жизнь заядлого геймера в тяжелых замесах.

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

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

Но выход есть – это специальные программы для перепрограммирования клавиш и записи макросов для клавиатуры и мыши. Одним из наиболее интересных решений является программа BotMek, имеющая ряд полезнейших функций и готовых к использованию макросов для наиболее популярных игр.

Содержание

Содержание

  • 1. Интерфейс программы
  • 2. Привязка к окнам
  • 3. Назначение клавиш
  • 4. Редактор макросов
  • 5. Редактор скриптов
  • 6. База макросов и скриптов
  • 7. Где скачать программу

1. Интерфейс программы

Интерфейс BotMek довольно прост и удобен.

В самой верхней строке есть маленькая красная иконка при клике на которую предлагается зарегистрироваться для синхронизации настроек программы с сервером.

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

Здесь также можно получить подсказки о функциональности данной вкладки, наведя указатель мышки на знак вопроса или любой другой элемент, а также поделиться своим макросом или скриптом с другими пользователями.

2. Привязка к окнам

Программа открывается изначально на вкладке «Окно» и включен режим без привязки, в котором все действия применяются к активному окну. Но вы можете жестко привязать программу к конкретному окну, что удобно если вы играете в несколько окон.

Для этого нужно кликнуть мышкой на красном крестике и не отпуская кнопку перетащить указатель мыши на окно игры, после чего ее название должно зафиксироваться в графе «Заголовок окна».

После этого все назначенные комбинации клавиш и макросы будут применяться только к конкретному игровому окну вне зависимости от того активно оно или нет в данный момент.

3. Назначение клавиш

На вкладке «Клавиши» отображаются виртуальная клавиатура и мышка.

При клике на любую клавишу клавиатуры или мыши можно назначить на нее макрос, скрипт или сочетание клавиш.

Например, часто в играх задействуются не все функциональные клавиши F1-F12 и боковые клавиши мыши, их можно запрограммировать как вам угодно. В сочетаниях клавиш можно использовать одну клавишу-модификатор на выбор (Win, Ctrl, Shift, Alt) в сочетании с любой другой клавишей.

Но кнопку Win лучше все-таки не использовать, чтобы избежать конфликтов с горячими клавишами Windows и случайного сворачивания окон при ее нажатии. Все назначенные клавиши подсвечиваются желтым цветом, что удобно.

В нижнем левом углу программы есть кнопки для сохранения и загрузки профилей, это можно использовать не только для сохранности выполненных настроек, но и для создания и переключения профилей для разных игр. Для того, чтобы назначенные клавиши начали действовать нужно нажать кнопку «Запустить», для приостановки действия клавиш и возврата их обычной функциональности служит кнопка «Остановить».

4. Редактор макросов

Макросы представляют собой последовательность нажатия любых клавиш клавиатуры, мыши и пауз между ними.

Редактор макросов BotMek позволяет создавать макросы несколькими способами. Можно просто нажать кнопку «Запись» и нажимать требуемые клавиши в нужном порядке, делая паузы между нажатиями если это необходимо. Я для примера записал комбинацию «2 клика левой – пауза – 3 клика правой» и вот что получилось.

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

5. Редактор скриптов

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

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

6. База макросов и скриптов

Запись и отладка макроса занимает некоторое время, со скриптом придется повозиться еще дольше. Но зачем, если все давно уже придумали за вас? В программе BotMek есть замечательная база готовых макросов и скриптов для наиболее популярных игр.

В базе есть такие игры как CS:GO, Dota, GTA, FIFA, PW, Overwatch, World of Tanks, War Thunder и многие другие. Для того, чтобы скачать макрос, нужно кликнуть на него два раза или нажать кнопку «Подробнее», после чего откроется окно с его кратким описанием, где нужно нажать кнопку «Установить».

Установленные макросы появляются в редакторе макросов, а скрипты в редакторе скриптов.

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

7. Где скачать программу

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

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

Клавиатура A4Tech Bloody B418 Black USB
Клавиатура A4Tech Bloody B254
Клавиатура A4Tech Bloody B418 Black USB

Как сделать макрос для онлайн игр

Описание
BotMek (переводится «Bot Macro enabled keyboard») — программа для платформы Windows, представляющая собой программный эмулятор макросной клавиатуры и мыши. Для работы программы необходим пакет Microsoft Net Framework 4.5. Программа имеет русский интерфейс и выполнена в темных тонах.

Возможности
В программе можно написать макросы на обычную мышку и клавиатуру, такие макросы станут отличным помощником в онлайн-играх, ведь нажатием 1 клавиши на своей клавиатуре программа выполнит целую серию комбо-ударов. Так же макрос может выполнить за вас рутинную работу по фарму мобов и автоматизирует другие задачи. В FPS-шутерах можно уменьшать отдачу оружия настройкой очередности выстрелов одним нажатием мышки. Вы можете скачать готовый макрос или создать его самостоятельно. Теперь не нужно покупать дорогостоящие клавиатуры с поддержкой макросов, BotMek в разы повысит ваш уровень мастерства в играх.

Создание макросов
Программа выделяет два способа создания макросов :

  • Создание макросов происходит в визуальном редакторе : как с использованием встроенной виртуальной клавиатуры с ручным редактированием времени нажатия клавиш и количеством повторов, так и с возможностью записи действий с физической клавиатуры и мыши с автоматической подстановкой времени нажатия, что позволяет в точности копировать действия пользователя.
  • Создание скриптов происходит в текстовом редакторе с подсветкой синтаксиса, имеет ограниченный набор команд пополняемых разработчиком при обновлениях программы.

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

Особенности

  • При указание окна в операционной системе с которым программе нужно работать используется функция которая позволяет производить запрограммированные нажатия в неактивное окно.
  • При использование программы без указания конкретного окна с которым нужно работать используется функция которая работает с любым активным окном.

Ссылки

  • Официальный сайт
  • Результаты Virustotal

    Макросы в играх (сетевые шутеры) — Чит?

    Проголосовало: 87 | Воздержалось: 6

    — Добрый день.
    — Недавно играя в сетевом шутере я был неприятно удивлен, когда один из игроков, с гордостью, стал хвастаться что он пользуется МАКРОСАМИ.

    — Я всегда считал что сторонние программы встраивающиеся в игру и меняющие её баланс (не важно какой игры и степень влияния на баланс), это по меньшей мере НЕПРАВИЛЬНО и НЕ ЧЕСТНО. По отношению к оппонентам в противоположной команде.

    — Когда речь заходит о сингл игре, это одно дело (каждый сам в праве выбирать как играть и что делать), но играя против «ЖИВЫХ» людей, использование стороннего софта: ПРЕСТУПЛЕНИЕ!

    — Мне стало интересно мнение геймеров об использовании макросов, я сформулировал вопрос и разослал его знакомым игрокам из разных стран (все игроки отличаются хорошим «аимом» в различных шутерах, я решил что такие люди определённо разбираются в «марали»: макрос — чит или не чит!

    — А какое ваше мнение об использовании макросов в сетевых шутерах? Напишите пожалуйсто ваше мнение или какую либо историю связанную с этим.

    Макрос — окейная вещь, если не даёт очевидного преимущества над другим игроком. В ММО, таких как WoW, например, их использование облегчает рутинную работу типа сбора лута с противника (простое — подбежать и зять всё). Никому не мешает, и облегчает долгую прокачку.

    В какой — то степени честным может быть макрос, связанный на скорости реакции игрока. Тут нельзя строго классифицировать такие игры, поэтому приведу пару примеров:
    1.) League of Legends и герои с бурст уроном (которые почти мгновенно используют все свои заклинания и предметы, не требующие задержки при использовании) на примере старого Вейгара — ему нужно нажать три кнопки (и предмет, если он есть, старый Deathfire Grasp) и все заклинания всё равно привзянаы к цели. И разница в том, сделаешь ты это тремя кнопками или одной — почти минимальна, потому что это не требует и половины секунды. Макром позволяет выйграть буквально 0,1 секунды от внезапно обрушевшегося на тебя противника, если времени у тебя совсем в обрез. Соответственно, вариантов, когда этот макрос вытаскивает тебе игру, ну, от силы 10%.

    2.) И второй пример — это самый яркий абуз макроса на реакцию, который я когда либо видел. Первая Magicka и её мультиплеер представляют собой арену до 3 vs 3. Если Вам неизвестна механика, то напомню: есть 8 элементов, каждый забитый на свою кнопку. Комбинация этих элементов, до 5 — ти штук одновременно, позволяет творить разного рода заклинания — лучи, булыжники, щиты, стены и прочее. Так вот, увлекшись местной ПвП ареной, игроки быстро пришли к выводу, какие комбо самые сейфовые. И они (эти комбо) далеко не легкие. Напомню у вас есть 8 кнопок на 3 — 4 пальца, которые вы используете для творения заклинаний. И что бы создать убермегащит, который был признан самым вменяемым среди остальных вариантов, надо потратить добрых 1.5 — 2 секунды на его сотворение ЕСЛИ ТЫ УЖЕ профессионал, и разбираешься во всем этом дерьме. Если нет — то тут как в старом МК «ща, подожди, я один приём попробую». Только это нифига не работает, ибо парень с макросом, как только прозвонит гонг, МГНОВЕННО надевает на себя этот щит и ещё через полсекунды жарит тебя лазером, пока ты кастуешь свой. Ну, а так как а) разрабы давно забили на первую часть б) никто таких не наказывает в) и это в целом не запрещено — макросы юзали все. И вся динамичность и наслаждение от ПвП превратились в дуэль дикого запада — кто быстрее на милисекунду использует два — три макроса. И 5 минут, отведенных на раунд, кончались на 10 — й секунде.

    Ну и отъявленное днище — это использование макроса в обход механике игры, или использование макроса, который без его использования, требует от игрока невероятных скила и усилий. Яркий пример — файтинги. Особенно 2Д файтинги. Что бы научиться даже простому комбо — вомбо, новичку требуется часы, а то и дни, недели, что бы отточить мастерство на максимум. В макросе ты можешь точно указать время каждого удара — записывать эти удары в буфер, подсчитать заранее кадры и записать комбо в 40 ударов на одну кнопку. Это даже звучит несправедливо, что уж там говорить, когда на своём уровне ты встречаешь чувака, который бессовестно спамит макросом и не парится многочасовыми тренировками.

Ссылка на основную публикацию
Статьи c упоминанием слов:
Adblock
detector