Создание простого бота для WoW, пути программирования

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

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

Фон

Сбор

Люди, далекие от игровой индустрии, могут без предубеждения пропустить этот раздел. В игре WoW есть такой аспект — коллекционирование. Как и в нумизматике/филателии, чем больше у вас, например, ездовых животных, тем больше удовольствия вы получаете. Аналогично, процесс получения.

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

Блекдпс для вов 3 3 5а конструктор скриптов! как сделать скрипт для вов самому!

Если игроку дается возможность выпадать только раз в день (иногда в неделю), вам потребуется время, соизмеримое с годом, для запуска. И все ради того момента, когда вы получите желанный многострадальный предмет. Чем больше времени и усилий вы потратите на «фарм» предмета, тем лучше он будет для вас. По моему опыту, радость очень мимолетна.

Зависимость шанса выпадения от количества попыток

Небольшое отклонение. Какова вероятность того, что при шести бросках игральной кости выпадет «6»??? Очевидно, что . То есть, наше событие противоположно тому, чтобы не выпало «6» во всех шести попытках.
Используя второй замечательный предел, нетрудно показать, что .

И шанс получить лошадь с 1% вероятностью «дропа» за 100 попыток составляет около 63%.

Некоторые игроки, попробовав 300 раз, думают, что им вот-вот повезет — вероятность того, что их обманут столько раз, мала. Они будут разочарованы, потому что на следующие 100 им снова повезет на 63%. И старые работы ничего не дают.

Задача

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

Карта подземелья и маршрут:

Проблема в максимуме. Запустил и ушел на полчаса. Процесс полностью автоматический.

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

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

Что такое скрипты (lua-scripts) в WoW!

Подход

Движение и позиционирование
  1. Необходимо воспроизвести исходное положение персонажа и направление его взгляда. Если вы немного повернете в другую сторону перед автоматическим бегом, вы будете бежать криво и в итоге врежетесь в стену
  2. Если вы записали точные координаты и угол, то вы также не сможете поместить туда своего персонажа. Он реагирует на кнопки, как бульдозер, и поворачивает точно так же. И даже ошибка в 1 градус на 100 метров выльется в метры (ширина дверного проема)
  3. Время нажатия и отпускания кнопок также далеко от идеала. Это как передвигаться по квартире с закрытыми глазами. Вроде бы шесть шагов вперед и строго направо, но на самом деле вместо туалета мы оказываемся в ванной комнате. Попробуйте также открыть дверь с закрытыми глазами, не касаясь ручки

ход 40.644 20.417 1.537 ход 40.526 20.411 1.537 ход 40.246 20.408 1.592 move 39.974 20.414 1.592 ход 39.691 20.411 1.537 ход 39.417 20.388 1.510

Это выдержка из списка команд перемещения робота. Указанные координаты x, y И угол поворота в пространстве в радианах.

Клавиши и команды

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

ход -0.89 мышь вправо 942 498 пауза 10000 перемещение 39.417 20.388 1.510 клавиша `пауза 1000 клавиша ход 39.142 20.364 1.510 клавиша 3 клавиша 3 мышь вправо 963 622 перемещение 38.864 20.340 1.510 перемещение 38.653 20.321 1.510

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

Его нужно было добавить, как только персонаж захотел летать.

Модули
  1. Мы будем писать WoW интерфейсный аддон, Которые будут определять положение персонажа, азимут, наклон. Правила игры аддонами никак не запрещены, указанная информация доступна через внутриигровой API внутри аддона. Она будет рисовать все это на экране. Сам аддон написан на Lua, потому что так решили разработчики игры.
  2. В аддоне вы можете определить некоторые вещи, вы можете рисовать, но вы не можете заставить персонажа двигаться. Также в аддоне нельзя записать в файл, спросить у игры, где стены, где враги, и многое другое нельзя. Поэтому нам нужно написать внешнее приложение управления. Я не стал оригинальничать и использовал AutoIt. Это действительно быстро и удобно, хотя и немного странно для меня, привыкшего программировать на строго типизированном языке.
    • Приложение должно быть способно написать мои действия. Назовем эту функциональность Recorder
    • Приложение должно уметь воспроизведение вход. Назовем ее Player
    • Записанные действия и координаты которые мы будем сохранять в текстовом файле построчно. Вы можете и должны редактировать их вручную. Добавить костыли, убрать мусор. Сразу хочу сказать, что это самая сложная часть.
    Читайте также:  Как получить warcraft reforged

    Аддон для WoW на языке Lua

    Аддон для WoW — скрипт на Lua. Язык является полным, гибким, эффективным. Вы не можете ничего сделать с системой. Вы можете делать с игрой все, что угодно, но только в рамках API, которое предоставляет вам игра. Поскольку Blizzard не хочет, а точнее запрещает игрокам и предпринимателям писать ботов, API не предлагает ничего большего, чем вышеупомянутые координаты.

    Конечно, полезной для наших нужд. Хорошее руководство по написанию аддонов сразу с описанием Lua можно найти здесь. Я опишу свою версию.

    Манифест и графический интерфейс

    Подробности и источник. В папке World of WarcraftInterfaceAddOns создать папку HelloWorld. В него вы помещаете HelloWorld.toc с содержимым

    ## Интерфейс: 50001 ## Название: Hello, World! ## Примечания: Мой первый AddOn HelloWorld.lua

    Если бы я хотел нарисовать еще несколько форм и кнопок (а именно для этого обычно и создаются аддоны), я бы поставил HelloWorld.xml с описанием этих кнопок. В разработке и написании таких GUI аддонов очень помогает AddOn Studio. Мощный инструмент на базе MS Visual Studio.

    Но так как я минималист, то в этот раз мы не будем ничего рисовать. Также это даст мне возможность показать вам, что вы можете создавать формы динамически из самого скрипта без использования дизайнера. Давайте посмотрим на HelloWorld.lua. Я отредактировал его в блокноте++. Чтобы игра связала изменения в HelloWorld.toc, вам нужно перезапустить все это дело.

    А вот изменения в HelloWorld.lua можно получить, написав команду /перезарядка. Вот почему процесс программирования и отладки не такой болезненный.

    Команды слэша

    Кстати, об отладке. Советую сразу добавить обработчик слэш-команд:

    SLASH_HELLO_WORLD1 = ‘/helloworld’; function SlashCmdList.HELLO_WORLD(msg, editbox) local facing = GetPlayerFacing(); local pitch = GetUnitPitch(«player»); local x, y = GetPlayerMapPosition(«player»); print(format(«HelloWorld %.2f %.2f %.2f %.2f», x*100, y*100, facing, pitch)); end

    Для этого мы определяем переменную вида SLASH_IMN. Где НАЗВАНИЕ уникально для всех аддонов, и n либо пустой, либо порядковый номер от 1. Добавляем функцию с именем ИМЯ в какой-то объект.

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

    Теперь команду в консоли WoW /helloworld Делают то, что вам нужно: отображают отладочную информацию и, в случае простейших аддонов, делают все то, для чего вы их туда поместили.

    А затем я показал WoW API, который извлекает необходимую информацию.

    Обработчик событий

    Система работы с графическим интерфейсом в аддоне похожа на то, как Windows работает со своими сообщениями и их обработкой.

    local EventFrame = CreateFrame(«Frame») function EventFrame:OnEvent(event, . ) print(«HelloWorld:», event) self[event](self, . ) end EventFrame:SetScript(«OnEvent», EventFrame.OnEvent) EventFrame:RegisterEvent(«PLAYER_LOGIN») function EventFrame:PLAYER_LOGIN() — Инициализация здесь end function EventFrame:OnUpdate() — Полезные действия здесь end EventFrame:SetScript(«OnUpdate», EventFrame.OnUpdate)

    Мы создаем фрейм типа «Фрейм» и подключаться к действиям «OnEvent» и «OnUpdate»команды

    EventFrame:SetScript(«OnEvent», EventFrame.OnEvent) EventFrame:SetScript(«OnUpdate», EventFrame.OnUpdate)

    Обработчик OnUpdate оно будет вызываться после каждого кадра — это то, что нам нужно для обновления координат. А OnEvent который будет срабатывать при других желаемых событиях. Из него мы будем извлекать соответствующие функции:

    self[event](self, . )

    Что еще более мощно в Lua, так это то, что вы можете использовать эту конструкцию для вызова уникальных обработчиков, таких как

    function EventFrame:PLAYER_LOGIN()

    Здесь PLAYER_LOGIN — это событие, которое посылается всем фреймам при входе в мир и перезапуске пользовательского интерфейса. Другие события: PLAYER_LEAVE_COMBAT, QUEST_FINISHED, PLAYER_EQUIPMENT_CHANGED, PLAYER_DEAD, — и многое другое. Полный список можно посмотреть здесь. Давайте зарегистрируем событие, которое мы хотим обработать с помощью команды

    EventFrame:RegisterEvent(«PLAYER_LOGIN»)

    Передача информации

    Так как в аддоне нельзя ничего сделать с системой, мы будем передавать информацию из WoW в другую часть бота, изменяя цвет пикселей. Как сделал rednaxi в своем посте. Но только мы не будем передавать один бит информации, мы сериализуем данные и передадим больше.

    Рисование

    Поскольку нам также нужны рамки для рисования, давайте создадим их

    local HelloWorld1 = CreateFrame(«Frame», nil, UIParent) local HelloWorld2 = CreateFrame(«Frame», nil, UIParent) function EventFrame:PLAYER_LOGIN() HelloWorld1:SetFrameStrata(«BACKGROUND») HelloWorld1:SetWidth(10) HelloWorld1:SetHeight(10).texture = HelloWorld1:CreateTexture(nil, «BACKGROUND») HelloWorld1.texture:SetAllPoints(HelloWorld1) HelloWorld1:SetPoint(«TOPLEFT»,0,0) HelloWorld1:Show() HelloWorld2:SetFrameStrata(«BACKGROUND») HelloWorld2:SetWidth(10) HelloWorld2:SetHeight(10).texture = HelloWorld2:CreateTexture(nil, «BACKGROUND») HelloWorld2.texture:SetAllPoints(HelloWorld2) HelloWorld2:SetPoint(«TOPLEFT»,10,0) HelloWorld2:Show() end

    Думаю, тут все понятно без комментариев. Подробности о каждом методе ищите сами.

    Сериализация

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

    В результате точность позиционирования в локации была 1/255 размер карты. Это то же самое, что и в GPS: вроде бы координаты есть, но нельзя вести машину на автопилоте (без управления человеком) по дороге с навигатором. Поэтому пришлось отдать два байта. Как сохранить одно дробное число в двух байтах? Я сделал так

    local x1, x2 = math.modf(x*255)

    Функция modf Возвращает целую и дробную части числа, разделенные запятой. Здесь используется параллельное присвоение, еще один полезный трюк Lua.

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

    local math = getfenv(0).math function EventFrame:OnUpdate() local facing = GetPlayerFacing(); local pitch = GetUnitPitch(«player»); local x, y = GetPlayerMapPosition(«player»); local x1, x2 = math.modf(x*255) local y1, y2 = math.modf(y*255) HelloWorld1.texture:SetTexture(x1/255, x2, facing/7) HelloWorld2.texture:SetTexture(y1/255, y2, pitch/4+0.5) end

    Читайте также:  Моды на скайРим warcraft 3

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

    Полный текст HelloWorld.lua

    local math = getfenv(0).math SLASH_HELLO_WORLD1 = ‘/helloworld’; local EventFrame = CreateFrame(«Frame») local HelloWorld1 = CreateFrame(«Frame», nil, UIParent) local HelloWorld2 = CreateFrame(«Frame», nil, UIParent) function EventFrame:OnEvent(event, . ) print(«HelloWorld:», event) self[event](self, . ) end EventFrame:SetScript(«OnEvent», EventFrame.OnEvent) EventFrame:RegisterEvent(«PLAYER_LOGIN») function EventFrame:PLAYER_LOGIN() HelloWorld1:SetFrameStrata(«BACKGROUND») HelloWorld1:SetWidth(10) HelloWorld1:SetHeight(10).texture = HelloWorld1:CreateTexture(nil, «BACKGROUND») HelloWorld1.texture:SetAllPoints(HelloWorld1) HelloWorld1:SetPoint(«TOPLEFT»,0,0) HelloWorld1:Show() HelloWorld2:SetFrameStrata(«BACKGROUND») HelloWorld2:SetWidth(10) HelloWorld2:SetHeight(10) HelloWorld2.texture = HelloWorld2:CreateTexture(nil, «BACKGROUND») HelloWorld2.texture:SetAllPoints(HelloWorld2) HelloWorld2:SetPoint(«TOPLEFT»,10,0) HelloWorld2:Show() end function EventFrame:OnUpdate() local facing = GetPlayerFacing(); local pitch = GetUnitPitch(«player»); local x, y = GetPlayerMapPosition(«player»); local x1, x2 = math.modf(x*255) local y1, y2 = math.modf(y*255) HelloWorld1.texture:SetTexture(x1/255, x2, facing/7) HelloWorld2.texture:SetTexture(y1/255, y2, pitch/4+0.5) end EventFrame:SetScript(«OnUpdate», EventFrame.OnUpdate) function SlashCmdList.HELLO_WORLD(msg, editbox) local facing = GetPlayerFacing(); local pitch = GetUnitPitch(«player»); local x, y = GetPlayerMapPosition(«player»); print(format(«HelloWorld %.2f %.2f %.2f %.2f», x*100, y*100, facing, pitch)); end

    Заключение первой части

    1. Мы рассчитали вероятность получения предмета при большом количестве попыток
    2. Вы определили задачу, выработали подход к решению, разбили ее на модули
    3. Мы рассмотрели код самого простого аддона для WoW на языке Lua
      • научились передавать координаты с помощью цвета
      • научился рисовать, обрабатывать события
      • Узнали, как обрабатывать команды слэша
      • Теперь вы готовы к написанию собственного аддона.

      1. Запись регистратора клавиш и координат в AutoIt
      2. Написание инструкции для бота
      3. 2D-математика, как ориентироваться в декартовой системе координат без теоремы косинусов
      4. Управление роботом в случае недостаточного количества датчиков
      5. Как противостоять ботам

      Источник: habr.com

      Руководство по макросам WoW

      Это сгруппированные запросы/команды на ОДНОЙ кнопке. Если вы думаете, что макросы увеличат ваш урон или что один клик мгновенно убьет все в радиусе 5 км от вас, вы ошибаетесь. Но макросы могут улучшить вашу игру и немного оптимизировать ее.

      Как создать макрос

      В меню выбираете «Макросы»

      wow bfa macro guide

      Переход к меню макроса

      Руководство по макросам WoW

      Здесь, при нажатии кнопки «Создать», вы можете выбрать иконку макроса и ввести его название

      Руководство по макросам WoW

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

      Какие макросы доступны

      Остановить каст

      Есть такой макрос:

      /cast Power Word: Shield

      Что это делает? При нажатии на значок макроса текущее заклинание будет мгновенно отменено и будет применено заклинание/способность, указанная в следующей строке, в данном случае — Щит священника. Полезно, если вы видите, что на вас надвигается враждебное заклинание, например, когда вы вызываете демона. Если вы нажмете этот макрос, призыв маунтов будет мгновенно отменен, а на вас будет наложен щит.

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

      Еще один очень полезный макрос:

      Наложение мыши

      примеры макросов

      Его функциональность заключается в использовании способности курсора на цели. То есть в данном случае заклинание «Слово тьмы: Боль» будет применено к цели, на которую только что была наведена мышь, а не выделена. В больших сражениях вам достаточно навести курсор на противников и нажать макрос. Экономит кучу времени и нервов.

      Теперь пришло время для нашего следующего макроса по упорядочиванию способностей:

      CastSequence

      Руководство по макросам WoW

      Итак, допустим, у нас есть несколько довольно утомительных и постоянных моментов в нашей ротации. То есть, вы просто нажимаете 1,2,3 и так далее по кругу. Для упрощения можно использовать приведенный выше макрос. Способности, разделенные запятыми после /castsequence, будут выполняться в том порядке, в котором они написаны. Удобно?

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

      Добавление переменных

      Итак, давайте представим, что вы используете макрос с /castsequence и вдруг ваша цель умирает. Да, иногда такое случается. И теперь, при переходе к новой цели, нам придется выполнять последовательность действий заново. То есть, если вы убили цель на 3 способности, макрос будет использовать 4-ю способность, но теперь нам нужно сначала выполнить ротацию, то есть с первой способности.

      Для этого мы добавим к нему переменную reset=taeget. Теперь, когда вы меняете цель, макрос обновится и начнет вращаться снова с 1-ой указанной способностью. Это выглядит примерно так:

      Руководство по макросам WoW

      Если вас не устраивает обновление при смене цели, вы можете делать это каждые несколько секунд. Для этого после reset= укажите число, которое будет означать, что раз в сколько секунд макрос будет перезапускаться.

      Комбинации

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

      Еще один момент, касающийся способностей без GCD. Поместите их в макрос как

      Вы используете их все одновременно. Но только если они мгновенные и без ГКД! Вы можете сделать комбинацию аксессуаров и способностей. Т.е., например, вы можете нажать Героизм и активировать аксессуар.

      Руководство

      Представьте ситуацию: вы и ваш друг идете в БГ. В пылу битвы он кричит вам: «Я умираю!! Сохранить!»Куча игроков бегает вокруг вас, повсюду летят снаряды, оторванные конечности и т.д.п. Как найти друга здесь?? Здесь макрос

      Руководство по макросам в WoW

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

      Фокус

      Этот макрос максимально прост и требует всего одной строки:

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

      На этом гайд по макросам в WoW заканчивается. Это было просто базовое понимание того, что такое макросы и как их писать самостоятельно.
      Изучите свои способности, узнайте, какие из них есть в GCD, а какие нет. Какие из них можно и нужно засовывать в очередь, а какие нет. Если у вас есть вопросы — задавайте их в комментариях.

      Рекомендую прочитать

      Защита паладина WoW BFA 8 гайд.0.1

      ARCAN MAGE 3.3 5 PVP

      Arcane Mage 3 Руководство.3 5 pve

      Arms War Pvp 3.3.5

      Arms War 3.3.5 pvp guide

      Lock Afli 3.3.5 pvp

      Лок Афли 3.3.5 руководство по pvp

      Frost Mage 1.12.1 pve

      Frost Mage 1.12 1 руководство

      DC Priest 3.3.5 pve

      DC Priest 3.3 5 pve гайд

      Питомцы Ханта

      Охота на пвп-питов

      Демонолог замок 3.3.5 пвп

      Lock Demonologist 3.3.5 pvp руководство

      Один комментарий

      Я искал в сети лок макрос который меняет питомцев местами и меняет абилки для пета (призвал суку = кнопка превратилась в приманку (зажал alt при использовании = кнопка превратилась в приманку по фокусу), призвал собаку = сало (сало по фокусу), призвал синего = щит) Видел такой макрос укогрез , но не смог повторить сам. Помощник?

      Источник: 2warcraft.com

      Самые популярные скрипты WOW

      Звезда активнаЗвезда активнаЗвезда активнаЗвезда неактивнаЗвезда неактивна

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

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

      Немного информации. в движке woof любая команда выполняется через слэш — «/action».

      Список скриптов для wow

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

      Создайте макрос (команда /macro ) и впишите в него следующее (без кавычек):

      » /script local function buy (n,q) for i=1,100 do if n==GetMerchantItemInfo(i) then BuyMerchantItem(i,q) end end buy («Emblem of Heroism»,140) «

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

      2) Учетная запись нарушена? Он больше не отображает правильную информацию о DPS и HP? Аккаунт в слове не работает корректно? Скрипт для восстановления аккаунта ниже.

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

      3) Скрипт для добавления игроков в гильдию. Нет необходимости злоупотреблять этим.

      4) В макросе необходимо сделать ссылку на объект?

      » / выполнить local _,x = GetItemInfo (ID); SendChatMessage(» текст для ссылки «..x..»! текст после ссылки», «CHANNEL», nil , 6); » (без пробела после первого слэша)

      Там, где написано «ID» — поставьте id вашей одежды, (id вещей можно найти в базе знаний)
      Далее укажите канал, на который хотите дать ссылку, интересно, но на разных чарах «все» каналы под разными номерами — где 6, где 5.

      5) Скрипт для выхода из группы

      6) Полная перезагрузка интерфейса без релога

      7) Скрипт для отдаления камеры от персонажа или его ездового (летающего) животного.

      «/console cameraDistanceMaxFactor 3.4 «

      Отказ от ответственности, но его нужно использовать снова после перелогинивания или входа в игру.

      8) Скрипт для отмены дуэльного ульта:

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

      10) В свое время у меня было много твинков и созданных на них гильдий, цель была одна — место. Поэтому не раз приходилось заходить в игру с двумя окнами, так как назначить оффунового персонажа ГМ не мог, Этот скрипт может помочь.

      11) Часто может помочь лекарю на арене. Взять напарника на прицел.

      «/target «name»» (без кавычек)

      12) Выбор цели.

      Макросы также могут помочь в управлении питомцами ваших персонажей.

      13) Самые популярные команды для питомцев.

      а) Ваш питомец атакует вашу цель.

      б) Питомец просто бежит за вами.

      в) Ваш питомец застывает на месте и ничего не делает

      г) Бывают ситуации, когда в панели управления пропадает питомец, в частности, я столкнулся с этим, играя за своего мага и DK. Исправить это можно с помощью скрипта ниже.

      14) Этот скрипт автоматически выучит все недостающие заклинания у тренера.

      / run LoadAddOn «Blizzard_TrainerUI» f=ClassTrainerTrainButton f.e = 0 if f:GetScript «OnUpdate» then f:SetScript(«OnUpdate», nil)else f:SetScript(«OnUpdate», function(f,e) f.e=f.e+e if f.e>.01 then f.e=0 f:Click() end)end

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

      /castrandom Black Drake Mount, Brown Kodo, Armored Brown Bear (для русского клиента — аналогично русским названиям маунтов, но всегда с большой буквы)

      16) Макросы Говорите.

      17) Кастует заклинание, указанное в макросе. Например:

      18) Очень полезный макрос, позволяющий одним кликом повесить на цель сразу несколько баффов.

      /target SolBadGuy
      /castsequence reset=5 Prayer of Spirit, Prayer of Fortitude, Prayer of Protection from Dark Magic.

      19) Возврат к первоначальному виду. Неважно, являетесь ли вы дру, сп, варлордом или кем-то еще.

      Источник: click-wow.ru