1. Оформление. 1.1 Статья разделена на 3 части: Создание макросов; Классовые макросы; Доп. материалы. 1.2 1 часть: Создание макросов разделена на 3 главы: 1.2.1 Как создавать макросы !? 1.2.2 Основные команды. 1.2.3 Создание сложных макросов. 1.3 3 глава содержит половину информации 2 главы, поэтому более продвинутым игрокам лучше читать статью с 3 части. 1.4 Так как макросы, название заклинаний и их параметры в каждом патче разные или новые, то поэтому 2 раздел: Классовые макросы разделен на 2 части, на 2 патча, которые поддерживает наш сервер: 1.4.1 WotLK. 1.4.2 Cataclysm. 1.5 Часть оформления перенята из моей предыдущей статьи по гайдам для классов, поэтому не удивляйтесь знакомым иконкам. 1.6 Основная информация и составляющая ресурса 1 и 3 части перенята из других источников! Это: WoWraider и Golden WoW . Но она полностью изменена и улучшена в оформлении!!! 1.7 Каждый макрос в этой статье заключен в теги [сode][/сode] для удобства копирования и чтения. 1.8 Раздел классовые макросы является пользовательским и заполняться он будет при помощи игроков нашего сервера. Полностью рассчитываю на вашу помощь в развитии статьи. 2. Авторские права. 2.1 Классовые макросы. Данный раздел является пользовательским, а значит большая часть ресурсов оттуда будет черпаться при помощи вас, дорогие пользователи форума. 2.2 Каждый макрос, созданный индивидуально и действительно приносящий пользу, будет еще и иметь ссылку на форумный профиль игрока. 2.3 Если же вы не согласны с каким-либо макросом, то данный макрос будет пересмотрен лично мной и изменен по вашим рекомендациям, а так же получит ссылку на ваш профиль. 2.4 Наиболее активные игроки, создавшие наибольшее количество полезных макросов, будут получать подарки из нашего магазина от меня. Их ценность будет вполне достойной, это я могу вам гарантировать! 3. Добавление авторских макросов. 3.1 Чтобы ваш макрос появился в данной статье, нужно совершить всего лишь 3 простых шага: 3.1.1 создать макрос 3.1.2 написать его в комментариях либо мне в лс 3.1.3 указать что делает данный макрос и для какого он патча остальные действия буду принимать уже я. Если макрос достойный и действительно полезный, то как говорилось выше, данный макрос будет еще и иметь ссылку на автора.
/macro
/s Привет всем!!!
/2 Продам кучу саронитовой руды по 16 голды за стак
- Повесить Метку охотника
- Натравить питомца
- Начать стрелять
/cast Метка охотника /petattack /cast Автоматическая стрельба
- Использовать предметы
- Использовать способности
- Целиться
- Говорить
- Выражать эмоции
- Создавать предметы
- Распылять предметы
- Просеивать руду
- и многое другое…
- Слэш команды (о которых говориться в данной статье)
- Фрагменты кода на языке LUA
Бой
Команды (eng): /cast /spell /use
Команды (ru): /заклинание /использовать /закл
Действие: применение заклинания/использование предмета.
И так, давайте познакомимся с командой /cast, я думаю это самая часто используемая команда в макросах. Команда /cast, позволит вам использовать заклинание по его имени из вашей книги заклинаний или книги заклинаний питомца, так же эта команда позволит использовать предметы.
/cast %опции% %имя способности или предмета%; %опции% %имя способности или предмета%; ... /cast item:%id предмета% /cast %id слота% /cast %id сумки% %номер ячейки в этой сумке%%id предмета% — можно узнать на wowhead'е
%id слота% — все ID слотов, находятся в доп. материалах к это части.
%id сумки% — все ID сумок можно посмотреть в доп. материалах к этой части.
/cast Звездный огонь
/cast Возрождение /к %t вставай, старый бездельник
/cast item:117
/cast 13
/cast 0 3
/stopcasting
/castsequence %опции% reset=n/target/combat/alt/shift/ctrl %способность или предмет№1%, %способность или предмет№2%, ... , %способность или предмет№N%
target — последовательность сбросится если вы сменили цель.
combat — сбросится если вы вышли из боя.
alt/shift/ctrl — сбросится если вы нажали, alt, shift, ctrl соответственно.
/castsequence reset=10/combat Знак дикой природы, Шипы, Облик медведя, Волшебный огонь(облик медведя), Звериный рывок, Устрашающий рев
/castsequence reset=20 Настой стальной кожи, Минестроне с лавочешуйчатой рыбой, Знак дикой природы
Команды (eng): /castrandom /userandom
Команды (ru): /случвыбор /случайно
Действие: случайное заклинание
Пожалуй тут все понятно, /castrandom будет воспроизводить случайную способность или предмет, из заданного списка.
/castrandom %имя способность или предмета%, %имя способности или предмета№2%, ..., %имя способности или предмета№N%
/castrandom Аманийский боевой медведь, Бронированный ящер Раззаши, Стремительная зульская пантера
/castrandom Акула-гриль, Горный гранат, Высокогорная брынза /случвыбор Живительный ананасовый пунш, Высокогорная ключевая вода, Великолепное пиво Мей
/castglyph %имя символа% %id слота%
/castglyph Символ древня 3
/startattack %ID цели%
/startattack focus
/stopattack
/cancelaura %имя баффа%
/cancelaura Знак дикой природы
/cancelform
/cancelqueuedspell
/changeactionbar %опции%, %№ панели%, %опции% %№ панели%...
/changeactionbar [mod] 1, [nomod] 2
/swapactionbar %№ первой панели% %№ второй панели%
/swapactionbar 1 4
/target %опции% %имя цели или тип цели%
/target Эдвант
/target Player
/target targettargettarget
/target focus
/cleartarget %опции%
/cleartarget [harm]
/targetexact %опции% %имя цели%
/targetexact Вася
/assist %имя цели% /assist %ID цели%
/focus %имя цель%
/focus Петруша
/clearfocus
/targetparty %опции% %имя цели%
/targetraid %опции% %имя цели%
/targetenemy %опции% %имя цели%
/targetenemy вор
/targetfriend %опции% %имя цели%
/targetefriend ров
/targetenemyplayer %опции% %имя цели%
/targetenemyplayer орв
/targetfriendplayer %опции% %имя цели%
/targetfriendplayer рво
/targetlasttarget
/targetlastenemy
/targetlastfriend
/petattack %опции%
/petattack [@targettarget]
/petagressive
/petdefensive
/petpassive
/petautocaston %имя заклинания%
/petautocaston Огненная стрела
/petautocastoff %имя заклинания%
/petautocastoff Огненная стрела
/petautocasttoggle %имя заклинания%
/petautocasttoggle Огненная стрела
/petfollow
/petstay
/petmoveto
/cast Shadow Word: Pain
/cast Превращение /p Овцую %t!
/aftercast /p Нажмите на портал, чтобы призвать %t. /cast Ритуал призыва
/use 13
/cast Кормление питомца /use 0 1
/cast Неистовый вой /cast Кровавое неистовство /cast Зов дикой природы
/target Вася
/target Маг Крыла Тьмы /cast Бич агонии
- «arenaN» — Член вражеской команды арены. N = 1,2,3,4 или 5.
- «bossN» — Активный босс текущего энкаунтера, если он доступен. N = 1,2,3 или 4.
- «focus» — Текущий фокус игрока.
- «mouseover» — Юнит, который находится (или недавно находился) под указателем мыши.
- «none» — нет юнита. Часто используется для того, чтоб запретить макросу авто–каст на себя (/cast [target=none] Волна исцеления).
- «partyN» — N–ый член группы, исключая вашего персонажа. N = 1, 2, 3 или 4.
- «partypetN» — питомец N–го члена группы. N = 1, 2, 3 или 4.
- «pet» — текущий питомец игрока.
- «player» — сам игрок.
- «raidN» — член рейда. N = 1, 2, 3,…, 25.
- «raidpetN» — пет N–го члена рейда. N = 1, 2, 3,…, 25.
- «target» — текущая цель игрока
- «vehicle» — текущее транстпортное средство игрока.
/targetenemy /targetenemy 1
/targetfriend /targetfriend 1
/targetenemyplayer /targetenemyplayer 1
/targetfriendplayer /targetfriendplayer 1
/targetparty /targetparty 1
/targetraid /targetraid 1
/petautocaston Мучение /petautocastoff Муки
/petautocasttoggle Огненное дыхание
/equip Заточенный топор Бездны
/equipslot 14 Морковка на палочке
/equipset [equipped:Shields] DPS; Tank
/equipslot [equipped:Shields] 17 Колун безжалостного гладиатора; 17 Гребень Ша'тар
/castsequence Жертвенный огонь, Порча, Бич агонии, Похищение жизни
reset=n/target/combat/shift/alt/ctrl
/castsequence Берсерк, Стылая кровь /castsequence Trinket 1, Trinket 2
/castrandom Стремительный зеленый механодолгоног, Черный боевой механодолгоног, Призыв коня погибели
/startattack Пеплогривый кабан
/stopattack Пеплогривый кабан
/cast Дух ястреба /changeactionbar 1
/cast Дух лисицы /changeactionbar 2
/swapactionbar 1 2
/cancelaura Горн зимы /cast Горн зимы
/cancelform /use Гигантский флакон с лечебным зельем
/stopcasting /cast Ожог Тьмы
/dismount
/cast [@focus] Превращение
/cast Превращение /run for i=1,GetNumRaidMembers()-1 do local u,t="raid"..i,"target"if UnitIsUnit(u..t,t)then SendChatMessage("Измените цель! Превращаю в овцу...","WHISPER",nil,UnitName(u))end end
/cast [help] Обновление; [harm] Слово Тьмы: Боль
- #show
- #showtooltip
- /assist
- /cancelaura
- /cancelform
- /cast
- /castrandom
- /castsequence
- /changeactionbar
- /clearfocus
- /cleartarget
- /click
- /dismount
- /equip
- /equipslot
- /equipset
- /focus
- /petagressive
- /petattack
- /petautocastoff
- /petautocaston
- /petdefensive
- /petfollow
- /petpassive
- /petstay
- /startattack
- /stopattack
- /stopcasting
- /stopmacro
- /swapactionbar
- /target
- /targetenemy
- /targetfriend
- /targetlasttarget
- /targetparty
- /targetraid
- /use
- /usetalents
- /userandom
/use [@player] Плотные бинты из ткани Пустоты
/cast Кара \___/ \___/ | | | параметры | команда /petattack \________/ V | | | параметры (пустые) | команда /castsequence reset=3Dtarget Жертвенный огонь, Порча, Бич агонии, Вытягивание жизни \___________/ \___________________________________________________________________/ | | команда параметры
/команда [условия] [ещё условия] параметры; [условия] параметры ...
[<no>condition<:parameter</parameter</parameter<...>>>>]
/cast [stance:1/2] Удар щитом; Оборонительная стойка
/petattack [@focus, harm];
/petattack [@focus, harm] ; \________/ \____________/ V V V | | | | | команда опции | | параметры (пусто) | | | опции (пусто) | параметры (empty)
/cast [@mouseover, help] [ ] Вспышка света
/target [@focus, dead] party1
- actionbar:1/…/6 или bar:1/…/6 — определенная панель заклинаний выбрана.
- bonusbar:5 — Активна панель управления транспортным средством или другим игроком.
- button:1/…/5/<виртуальный клик> или btn:1/…/5/<виртуальный клик> — макрос активирован указанной кнопкой мыши.
- channeling:<spell name> — поддерживание указанного заклинания.
- combat — в режиме боя.
- dead — цель мертва.
- equipped:<item type> или worn:<item type> — тип предмета одет (:<item type> может быть ячейкой инвентаря, типом предмета, подтипом предмета).
- exists — цель существует.
- flyable — в зоне разрешено летать
- flying — на маунте/в летающей форме И в воздухе.
- group: party/raid — вы находитесь в указанном типе группы.
- harm — можно наложить вредное заклинание на цель.
- help — можно наложить полезное заклинание на цель.
- indoors — в помещении.
- modifier:shift/ctrl/alt или mod:shift/ctrl/alt — зажав указанную кнопку.
- mounted — на средстве передвижения.
- outdoors — на открытом воздухе.
- party — цель в вашей группе.
- pet:<имя пета или тип> — указанный питомец активен.
- raid — цель в вашей группе или рейде.
- spec:1/2 — текущий активный спек.
- stance:0/1/2/…/n or form:0/…/n — в стойке.
- stealth — невидимый.
- swimming — плавающий.
- unithasvehicleui — цель макроса имеет интерфейс транспортного средства.
- vehicleui — ваш персонаж имеет интерфейс транспортного средства.
- Воин: 1 — Боевая стойка, 2 — Оборонительная стойка, 3 — Стойка берсерка.
- Друид: 1 — Облик медведя, 2 — Водный облик, 3 — Облик кошки, 4 — Походный облик, 5 — Облик лунного совуха или Перевоплощение: Древо Жи…, 6 — Облик птицы.
- Жрец: 1 — Облик Тьмы, 2 — Дух воздаяния.
- Разбойник: 1 — Незаметность, 3 — Танец теней.
- Шаман: 1 — Призрачный волк
/cancelform [noform:1/3] /cast [form:1/3] Волшебный огонь (облик зверя)(); [noform] Волшебный огонь
/cast [modifier, help] [modifier, @targettarget, help] Быстрое исцеление; [help] [@targettarget] Великое исцеление
/equip [noequipped:Two-Handed Axes] Секира Хрустальной Кузницы /cast [nostance:1] Боевая стойка; [equipped:Two-Handed Axes] Превосходство
swapactionbar 1 2 /cast [actionbar:1] Дух ястреба; Дух лисицы
/cast [pet] Холод; Кольцо льда
/script print(UnitCreatureFamily("pet"))
/cast !Незаметность /cast !Массовое рассеивание /cast !Выстрел
/cast [@focus] Превращение
/focus party3target
/castsequence reset=20/target=player Слово силы: Стойкость, Божественный дух, Защита от темной магии, Объятия вампира, Внутренний огонь
2. Наложение дот одной кнопкой (экономия места). Через 4 сек сброс значения на первое заклинание. для ШП. (Joska)
/castsequence reset=4/target Слово Тьмы: Боль, Всепожирающая чума, Прикосновение вампира
Для чего нужны скрипты?Скрипты – очень мощный инструмент, который может решить множество проблем. По этой причины Blizzard ограничили круг возможностей скриптов. Начну с того, чего вы не можете делать с помощью скриптов. Вы не можете произносить заклинания, использовать предметы, изменять страницу панели заклинаний и влиять на вашу цель каким–либо образом . Вы ограничены набором «безопасных» команд.СкриптыИнтерфейс WoW контролируется кодом, который написан на языке Lua скриптов. Вы можете использовать преимущества системы скриптов в ваших макросах с помощью команды /run или /script. Целый скрипт должен быть написан одной строчкой. Можно использовать несколько /run в одном макросе.Blizzard предоставляет много фунцкий (API), которые используются в скриптах, чтобы контролировать интерфейс.
/run ChatFrame1:AddMessage(format("Avoidance with Stoneskin Gargoyle: %.2f%%", GetDodgeChance() + GetParryChance() + 6 + 1/(0.0625 + 0.956/(floor(GetCombatRatingBonus(CR_DEFENSE_SKILL))*0.04))))
/run ChatFrame1:AddMessage(format("Total avoidance: %.2f%%", GetDodgeChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))
/run ChatFrame1:AddMessage(format("Total avoidance: %.2f%%", GetDodgeChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))
/run ChatFrame1:AddMessage(format("Total avoidance: %.2f%%", GetDodgeChance() + GetParryChance() + 5 + 1/(0.0625 + 0.956/(GetCombatRating(CR_DEFENSE_SKILL)/4.91850*0.04))))
/tar Дирки /tar Вира /tar Зате /stopmacro [noexists] /w Ваше_имя %t следит за тобой! /run RaidNotice_AddMessage(RaidBossEmoteFrame,"Вот же этот дракон! МОЧИ ЕГО!", ChatTypeInfo["RAID_WARNING"]) /script PlaySoundFile("Sound\\interface\\RaidWarning.wav")
CTT=CreateFrame("Frame")CTT:SetParent(TargetFrame)CTT:SetPoint("Left",TargetFrame,-30,5)CTT:SetSize(25,25)CTT.t=CTT:CreateTexture(nil,BORDER)CTT.t:SetAllPoints()CTT.t:SetTexture("Interface\\Icons\\ABILITY_DUALWIELD")CTT:Hide() local function FrameOnUpdate(self) if UnitAffectingCombat("target") then self:Show() else self:Hide() end end local g = CreateFrame("Frame") g:SetScript("OnUpdate", function(self) FrameOnUpdate(CTT) end) CFT=CreateFrame("Frame")CFT:SetParent(FocusFrame)CFT:SetPoint("Left",FocusFrame,-30,5)CFT:SetSize(25,25)CFT.t=CFT:CreateTexture(nil,BORDER)CFT.t:SetAllPoints()CFT.t:SetTexture("Interface\\Icons\\ABILITY_DUALWIELD")CFT:Hide() local function FrameOnUpdate(self) if UnitAffectingCombat("focus") then self:Show() else self:Hide() end end local g = CreateFrame("Frame") g:SetScript("OnUpdate", function(self) FrameOnUpdate(CFT) end)
Координаты и размер иконки комбата настраиваются в строках:
CTT:SetParent(TargetFrame)CTT:SetPoint("Left",TargetFrame,-30,5)CTT:SetSize(25,25)
CFT:SetParent(FocusFrame)CFT:SetPoint("Left",FocusFrame,-30,5)CFT:SetSize(25,25)
4. Скрипт отображает иконку класса вместо портрета игрока
UFP = "UnitFramePortrait_Update" UICC = "Interface\\TargetingFrame\\UI-Classes-Circles" CIT = CLASS_ICON_TCOORDS hooksecurefunc(UFP,function(self) if self.portrait then if UnitIsPlayer(self.unit) and UnitIsVisible(self.unit) then self.portrait:SetTexture(UICC) self.portrait:SetTexCoord(unpack(CIT[select(2,UnitClass(self.unit))])) else self.portrait:SetTexCoord(0,1,0,1) end end end)
local fontName = "Interface\\AddOns\\NeilyoScript\\font.ttf" local fontHeight = 40 local fFlags = "" local function FS_SetFont() DAMAGE_TEXT_FONT = fontName COMBAT_TEXT_HEIGHT = fontHeight COMBAT_TEXT_CRIT_MAXHEIGHT = fontHeight + 2 COMBAT_TEXT_CRIT_MINHEIGHT = fontHeight - 2 local fName, fHeight, fFlags = CombatTextFont:GetFont() CombatTextFont:SetFont(fontName, fontHeight, fFlags) end FS_SetFont()
local UnitIsPlayer, UnitIsConnected, UnitClass, RAID_CLASS_COLORS = UnitIsPlayer, UnitIsConnected, UnitClass, RAID_CLASS_COLORS local _, class, c local function colour(statusbar, unit) if UnitIsPlayer(unit) and UnitIsConnected(unit) and unit == statusbar.unit and UnitClass(unit) then _, class = UnitClass(unit) c = CUSTOM_CLASS_COLORS and CUSTOM_CLASS_COLORS[class] or RAID_CLASS_COLORS[class] statusbar:SetStatusBarColor(c.r, c.g, c.b) end end hooksecurefunc("UnitFrameHealthBar_Update", colour) hooksecurefunc("HealthBar_OnValueChanged", function(self) colour(self, self.unit) end) local sb = _G.GameTooltipStatusBar local addon = CreateFrame("Frame", "StatusColour") addon:RegisterEvent("UPDATE_MOUSEOVER_UNIT") addon:SetScript("OnEvent", function() colour(sb, "mouseover") end)