Содержание

    HotkeyNet и World of Warcraft: быстрый старт

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

    HotkeyNet и World of Warcraft: быстрый старт

    Возможности программы HotkeyNet

    Вот основные из них:

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

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

     

    Пошаговая настройка игры

    1. Прежде чем вносить изменения в игровые настройки, было бы весьма разумно сделать копию папки "WTF", находящейся в каталоге "World of Warcraft". В этой папке хранятся макросы, настройки интерфейса, чата, аддонов и т. д.

    2. Зарегистрируйте в игре несколько аккаунтов (удобнее всего сделать не более пяти, но можно и больше) и создайте на них по одному персонажу.

    3. Для ускорения процесса откройте один игровой клиент и проведите грубую настройку:
      • Переключитесь в оконный режим. При необходимости выберите разрешение экрана с соотношением сторон 4:3.
      • Для экономии ресурсов понизьте качество графики и вызовите чат-команду, которая убавит фоновым окнам частоту кадров в секунду:
        /console maxfpsbk 15
      • Выберите один из нескольких способов управления группой:

        1. Быстрая настройка. Для этого применяются игровые комбинации из игрового меню "Key Bindings". Способ рассчитан на использование экспериментальных скриптов и отличается минимальными настройками в игровом клиенте. Как ими воспользоваться, подробно изложено в описании этих скриптов.

        2. Медленная, но более точная настройка. Метод заточен на произнесение всех заклинаний через макросы. Никогда не даёт сбой и подходит для любого количества окон, но тогда настройка отнимет много времени. Добавьте макросы на панели и назначьте им клавиши (примеры вы найдёте в материале Мультибоксинг в World of Warcraft). Базовые и примитивные скрипты рассчитаны именно на управление макросами.

      • Задайте остальные горячие клавиши на своё усмотрение. Будьте внимательны, потому что некоторые их них могут использоваться скриптом. Если не уверены, оставьте в игре стандартную схему управления.

    4. Чтобы скопировать основные настройки и не проделывать одно и то же несколько раз:
      1. Закрываем игру и направляемся в каталог, куда она была установлена.
      2. Находим папку "WTF > [имя аккаунта]". Нас интересуют следующие файлы:
        • bindings-cache.wtf
        • config-cache.wtf
        • macros-cache.txt
        • [название сервера] > [ник персонажа]:
          • bindings-cache.wtf (если есть)
          • config-cache.wtf (если есть)
          • macros-cache.txt (если есть)

        Их необходимо скопировать на те же самые места в папки с остальными аккаунтами.

    5. Загрузите подходящий скрипт в управляющую программу. В представленных ниже скриптах запуск клиентов осуществляется сочетанием Ctrl+Alt+L или нажатием на кнопку L слева внизу.

     

    Готовые скрипты

    Эти скрипты содержат основной набор возможностей:

    • Запуск и закрытие клиентов.
    • Переключение между окнами горячими клавишами или кнопками на панели.
    • Отправка нажатий и кликов.

    Выберите наиболее подходящий из них. Процесс загрузки скриптов описывается на странице HotkeyNet: установка и настройка.

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

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

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

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

     

    Дополнительный функционал отдельно

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

     

    Возможные неполадки

    Я нажимаю Ctrl+Alt+L, но игра не запускается.

    Убедитесь, что:

    1. Программа HotkeyNet запущена и в неё загружен подходящий скрипт. Это делается кнопкой "Load Script" в левом нижнем углу.
    2. Путь к файлу "Wow.exe" внутри скрипта указан верно и не содержит кириллицы. Узнать его точное место хранения можно в свойствах ярлыка World of Warcraft.
    3. В загруженном скрипте существует горячая клавиша Ctrl+Alt+L и именно она отвечает за запуск. А также она не конфликтует с другими комбинациями. Например, вы могли назначить её повторно в другом месте кода.
    4. В логах HotkeyNet после загрузки скрипта не появляются ошибки (отмечены красным). Очень часто нарушения правил написания кода делают неработоспособным весь скрипт.
    5. Для примитивных скриптов: на клавиатуре должна быть включена клавиша ScrollLock.
    Не переименовываются окна во время запуска (или переименовываются, но никакие нажатия не достигают окон).

    В зависимости от причины неполадки решение может отличаться:

    • HotkeyNet может слишком рано пытаться осуществить переименование. Тогда достаточно вставить задержку между командами Run и RenameTargetWin, например:

      // ...

      <Run "C:\Games\World of Warcraft\WoW.exe"> // путь к исполняемому файлу игры

      <Wait 200> // задержка длительностью 0.2 сек

      <RenameTargetWin WoW%1%> // переименование окна
    • Некоторым мультибоксерам помогает переименование окон отдельной горячей клавишей:

      <Hotkey Ctrl R>
      <SendPC local>
      <RenameWin "World of Warcraft" WoW1>
      <RenameWin "World of Warcraft" WoW2>
      <RenameWin "World of Warcraft" WoW3>
      <RenameWin "World of Warcraft" WoW4>
      <RenameWin "World of Warcraft" WoW5>
    • В новых операционных системах Windows и/или с новыми версиями игры часто бывает так, что после запуска игры невидимое окно "World of Warcraft" в фоновом режиме пытается что-то скачать:

      Это окно не видно даже в диспетчере задач, но скрипт его переименовывает и передаёт нажатия именно в него, а не в игровой клиент. При этом HotkeyNet пишет в логах, что всё работает нормально. Для решения проблемы создайте в скрипте такой переключатель:

      <Hotkey Ctrl R>
      <Toggle>
      <TargetForegroundWin> <RenameTargetWin WoW1>
      <Toggle>
      <TargetForegroundWin> <RenameTargetWin WoW2>
      <Toggle>
      <TargetForegroundWin> <RenameTargetWin WoW3>
      <Toggle>
      <TargetForegroundWin> <RenameTargetWin WoW4>
      <Toggle>
      <TargetForegroundWin> <RenameTargetWin WoW5>
      Чтобы переименовать окна с его помощью:
      1. Выделите первое окно WoW, затем нажмите Ctrl+R.
      2. Переключитесь на второе окно, снова нажмите Ctrl+R.
      3. И так далее с каждым окном по очереди.

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

    • Кроме того, может оказаться, что у вас уже открыто окно с фразой "World of Warcraft" в заголовке (например, папка с игрой). В этом случае с большой долей вероятности HotkeyNet переименует открытое окно проводника.

    Как отключить автоматическое скрытие панели задач перед стартом игровых клиентов?
    1. Закомментируйте в скрипте строки, содержащие команду SetTaskbarAutoHide. Это делается путём добавления в начало строки двух слешей //.
    2. Сохраните скрипт.
    3. Перезагрузите скрипт кнопкой "Reload Script".
    Некорректно вводятся имена учётных записей после запуска окон.

    Обычно это происходит из-за того, что в системе установлен русский язык ввода по умолчанию.

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

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

    Я назначил новую горячую клавишу в скрипте, но она не работает.

    Проверьте следующее:

    1. Скрипт после сохранения был перезагружен в программу.
    2. В логах HotkeyNet после загрузки скрипта не должно быть ошибок.
      Например, следующая ошибка явно говорит о том, что комбинация назначена несколько раз и будет работать только первая из них:
      <Hotkey F1> has already been defined. Only the first definition will be used.
      А если вы назначаете клавиши целыми списками и забыли указать одно исключение, то будет много ошибок, похожих на эту:
      Disregarding empty hotkey: <Hotkey Alt Z>
      Также могут быть и другие ошибки, мешающие правильной работе. Их исправление сильно повысит шансы починить горячую клавишу.

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

    4. А, может быть, со скриптом всё в порядке, но вы просто не замечаете эффект из-за неправильного макроса в игре. Проверьте его работоспособность мышкой.
    Некоторые кнопки на клавиатуре перестали реагировать на нажатия, и теперь я не могу нормально напечатать текст.

    Скорее всего, у вас включены горячие клавиши, назначаемые скриптом. Отключите их на время набора текста. По умолчанию в экспериментальных и базовых скриптах это делает кнопка Pause, а в примитивных ScrollLock.

    Также можно отключить горячие клавиши в главном окне HotkeyNet, сняв галку напротив "Pressed hotkeys" слева вверху. Или через пункт меню "Turn off hotkeys" в системном трее.

    Кстати, в экспериментальных и базовых скриптах можно печатать текст сразу во всех окнах, если при включённых горячих клавишах активировать ScrollLock. Это помогает ввести пароль или какие-нибудь чат-команды.

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

    Возможные причины:

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

    2. Не все клавиши или макросы в игре настроены правильно. Внимательнее следуйте прилагаемым инструкциям.

    3. Виновата кнопка ScrollLock. В экспериментальных и базовых скриптах она должна быть отключена, а в примитивных, наоборот, включена.

    4. Важно понимать, что специальные макросы выбора главного героя для экспериментальных скриптов требуют, чтобы привязанная к ним игровая клавиша была простой (без модификаторов), а также остальные сочетания с этой кнопкой в игре были свободны.
      Например, вы добавили такой специальный макрос на клавишу F1, но в игре с другими функциями связаны комбинации Shift+F1 и Ctrl+F1. Тогда вместо этого макроса будут вызываться другие функции, и выбор цели происходить не будет.
      Освободите дополнительные комбинации с этой кнопкой (unbind key) либо назначьте макрос на другую клавишу.

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


    6. То же самое касается клавиш на цифровом блоке клавиатуры, расположенном справа. При разных состояниях NumLock игра может воспринимать их по-разному. 

    7. Если вы обладатель современной мультимедийной клавиатуры, проверьте, не отключили ли вы специальным Fn-переключателем верхний ряд функциональных клавиш F1-F12.

    8. Атака общей цели в экспериментальных скриптах по умолчанию реализована на клавишах от 1 до 9, 0, - и =. Как расширить список, смотрите в инструкции к скрипту на соответствующей странице.
    Панели, добавляемые скриптом, и окна выползают за пределы экрана.

    Чтобы передвинуть панели, откройте скрипт и в самом начале измените координаты в командах CreatePanel.

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

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

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

    В экспериментальных и базовых скриптах из этой статьи это реализовано для 4-ядерных процессоров. Когда происходит запуск, в шаблон "LaunchAndRename" двумя последними цифрами передаются номера логических ядер, которые должны отвечать за вычисления в запускаемом окне. Вот пример схемы для 8-ядерного процессора:

    <Hotkey Ctrl Alt L>

    // ...

    <ApplyTemplate LaunchAndRename 1 Login1 0 1>
    <ApplyTemplate LaunchAndRename 2 Login2 2 3>
    <ApplyTemplate LaunchAndRename 3 Login3 4 5>
    <ApplyTemplate LaunchAndRename 4 Login4 6 7>
    <ApplyTemplate LaunchAndRename 5 Login5 2 4>

    Подробнее о распределении нагрузки на процессор смотрите в описании команды SetAffinity.

    Почему после выхода из игры все окна в системе продолжают активироваться при наведении курсора?

    Это делает встроенная в Windows функция. С активным отслеживанием окон не требуется кликать в каждое окно для его активации, что очень удобно в мультибоксинге.

    HotkeyNet может автоматически включать её специальной командой. Чтобы она корректно отключалась, выходите из игры при помощи горячей клавиши Alt+F4. По задумке она также отключается при выключении горячих клавиш кнопкой Pause.

    Где мне взять скрипт на 3 окна?

    Скачайте любой готовый скрипт из этой статьи и закомментируйте в нём лишние строки "LaunchAndRename" в секции запуска клиентов. Должно получиться примерно так:

    <Hotkey Ctrl Alt L>

    // ...

    <ApplyTemplate LaunchAndRename 1 Login1 0 1>
    <ApplyTemplate LaunchAndRename 2 Login2 0 1>
    <ApplyTemplate LaunchAndRename 3 Login3 2 3>
    // <ApplyTemplate LaunchAndRename 4 Login4 2 3>
    // <ApplyTemplate LaunchAndRename 5 Login5 2 3>

    Сохраните изменения. Этого будет достаточно для нормальной работы скрипта.

    Также на сайте имеется генератор скриптов HotkeyNet, который может вам в этом помочь.

     

    Как избежать бана в игре?

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

    Вот несколько рекомендаций по соблюдению правил.

     

    Одно действие на каждое окно

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

     

    Игровые макросы вместо чат-команд, передаваемых скриптом

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

     

    Избегайте использования функции Wait

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

     

    Передача кликов мыши

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

     

    Задержки технического характера

    HotkeyNet вставляет незначительные задержки в некоторые команды по техническим причинам. Например, ClickMouse делает паузу сразу перед кликом и после него, для того, чтобы дать целевому окну время на определение новой позиции курсора. По умолчанию эти задержки слишком короткие, чтобы повлиять на игровой процесс (их продолжительность обычно равна около 16 мс, что составляет примерно половину одного видеокадра). Однако, некоторые игроки верят, что любая задержка, вызванная сторонним приложением, неважно насколько короткая, даже если не влияет на игровой процесс, является нарушением правил. Если вы обеспокоены наличием таких задержек, избегайте использования следующих команд:

    • SendWinMF: используйте вместо неё SendWinM.
    • SendWinSF: используйте вместо неё SendWinS.
    • ClickMouse: установите в настройках HotkeyNet параметр "ClickMouse delays" равный 0 0 (ноль ноль).

     


    Понравился материал? Расскажи друзьям!

    Комментарии (6)
      • автор

      Pashted

      написал 12 месяцев назад

      У нас появился калькулятор для автоматического расчёта размеров и координат окон, применяемых в скриптах HotkeyNet! Находится он на странице Схемы расположения окон.

        Ivan

        написал 10 месяцев назад

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

          • автор

          Pashted

          написал 10 месяцев назад

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

          • автор

          Pashted

          написал 3 месяца назад

          Только недавно получилось довести до ума простенький генератор скриптов. Работа над ним продолжается. Буду рад любым багрепортам и предложениям по улучшению.

      cmd

      написал 10 месяцев назад

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

        • автор

        Pashted

        написал 10 месяцев назад

        Такие скрипты уже есть, они вынесены в категорию "Примитивные". Ещё примитивнее сделать не получится.

        Вот пример использования самого простого из них:
        1. Запускаете вручную несколько игровых окон.
        2. После загрузки скрипта в HotkeyNet включаете ScrollLock на клавиатуре.
        3. Нажимаете Ctrl+R - игровые окна должны после этого переименоваться на WoW1, WoW2 и т. д.

        Теперь, если на клавиатуре включена кнопка ScrollLock, нажатия с клавиатуры будут дублироваться в эти окна.
        Также если зажать ~ (тильду) и кликать мышкой в окне, то каждый клик будет передаваться в остальные окна WoW.

        И помните, установить причину неработоспособности скрипта или какой-то горячей клавиши всегда можно, посмотрев, что происходит в это время в главном окне HotkeyNet.

    Оставить комментарий
    Вы комментируете как Гость.
    Все поля, отмеченные звёздочкой *, являются обязательными.

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