Сайт wow bc гільдії renaissance
Макроси в світі WoW
Макроси в WoW використовуються для оптимізації і спрощення інтерфейсу гравця. Починаючи від найпростіших макросів таких як висловлювання в чат «полікуєте мене терміново», коли ваше здоров'я опускається нижче 20%, і закінчуючи більш складними макросами такими як зміна стійок у воїна або каст лікуючого заклинання у 2ую або 3ю рядок Емерженсі монітора, стандартного для більшості гравців аддона - CT_raid. Отже почнемо з загальних макросів, і потім перейдемо до конкретних прикладів.
Зауваження: Починаючи з патча 1.хх чаклунство заклинань більше не вимагає перебігу в запису "(rank X)". Досить записати: / cast Holy Light для чаклунства заспівала максимального рангу. Макроси такого типу не дозволяють касти стиглі нижчого рангу на обрану мету, для використання низьких рангів потрібно дописувати закінчення (rank X), де Х - потрібний ранг заспівала. Приклад: / cast Holy Light (rank 1);
Чаклунство заклинань на самого себе без втрати фокусу на цілі:
/ Script CastSpellByName ( 'Holy Light', 1)
Чаклунство заклинань на самого себе якщо не можна чаклувати заклинання на обрану мету:
Даний макрос касти заклинання "spell" на самого себе тільки в тому випадку якщо мета ворожа
/ Script if (not UnitIsFriend ( "player", "target")) then CastSpellByName ( "Spell", 1); end
Чаклунство заклинань на меті конкретного класу:
Використовується в основному для Баффі рейду, по конкретних класах, можливі модифікації стосовно ПВП
/ Script class = UnitClass ( "target"); if ((class == "Rogue") or (class == "Warrior")) then
CastSpellByName ( "Blessing of Might"); else CastSpellByName ( "Blessing of Wisdom"); end
Чаклунство заклинань на цілі різних рівнів (Баффі):
Використовується дуже рідко, але я все ж наведу приклад прістовского макросу для Баффа на Стаміни, з перевіркою рівня мети:
/ Script Pre = "Power Word: Fortitude (Rank" Sp = if (UnitLevel ( "target")
= Nil and UnitIsFriend ( "player", "target")) then
for i = 6,1, -1 do if (UnitLevel ( "target")> = Sp [i]) then CastSpellByName (Pre..i .. ")") return end end end
Чаклунство заклинань на найближчу мету з перевіркою кількості% здоров'я мети:
Наведу приклад на основі каста хіліерскіх заклинань на найближчі цілі з перевіркою на кількість здоров'я мети, макрос лікує найближчу дружню мета зі здоров'ям нижче 70%, перевіряються тільки найближчі 40 цілей.
/ Script for i = 1,40 do TargetNearestFriend (); if UnitHealth ( "target") / UnitHealthMax ( "target") <0.7 then if UnitIsPlayer("target") then CastSpellByName("Lesser Healing Wave") end end end; TargetLastEnemy();
Анонсування кастуемих заклинань в паті-чат:
/ Cast Healing Touch
/ Party Healing% t in 3.5 seconds
Чаклунство заклинань на конкретних гравців партії:
Завжди лікує першого гравця партії флешки, при цьому не збиває фокуса на виділеній мети.
/ Cast Flash Heal
Чаклунство декількох заклинань (Баффі) з перевіркою на наявність оних на цілі:
Каста різні Баффі на мету, тільки в тому випадку якщо на цілі ще немає такого заклинання (Баффа), приклад версії для друїда:
= Nil) do if (strfind (UnitBuff ( "target", i), "Regeneration")
= Nil) then m = 1; end; i = i + 1; end; c = CastSpellByName; if (m == 1) then c ( "Mark of the Wild (Rank 10)"); else c ( "Thorns (Rank 10)"); end;
Макрос для пошуку номера заклинання в книзі умінь:
Іноді використання скриптів CastSpellByName призводить до того що довжина макросу перевищує допустимі 255 символів, наприклад макрос: / script CastSpellByName ( 'Holy Light', 1) займає досить багато символів, коли як простіше використовувати макрос: / script CastSpellByNumber (); Але як же дізнатися який номер у того чи іншого заклинання з вашої книги? На допомогу приходить дуже корисний і поширений макрос перевірки номера заклинання, він видає на екран ім'я заспівала з відповідним номером:
/ Script SpellNumber = 26; SpellName, SpellRank = GetSpellName (SpellNumber, "spell");
M = format ( "Spell.:% S% s", SpellNumber, SpellName, SpellRank); DEFAULT_CHAT_FRAME: AddMessage (M);
Інвентар та Предмети
/ Script UseContainerItem (bag, slot);
Bag - це номер сумки, від 0 до 4, де 0 - початкова сумка.
Slot - це номер слота в сумці від 1 до 20.
Макрос автоматично використовує предмет в заданій сумці на заданому місці, корисний при використанні алхімії або просто при переодяганні трінкетов.
Швидке використання Бинтів на самого себе:
/ Target [Player Name]
Дуже корисний макрос для дуелей 1v1. Ось ще один приклад макросу для бинтів, складніший, з перевіркою на наявність бинтів в інвентарі, фокусування на попередній мети або скиданні фокуса, якщо мета - ви самі:
/ Script if (not GetContainerItemLink (x, x)) then OpenBag ([same bag number as before]); else
then ClearTarget () end end
Більш просунутий варіант того ж макросу, використовує бинти на самого себе в будь-якому випадку, навіть якщо мета дружня і знаходиться в радіусі дії, дуже корисний в ПВЕ:
/ Scriptp = "player"; t = "target"; if (not UnitCanAttack (t, p)) then ot = UnitName (t); TargetUnit (p);
else ot = nil; end; UseAction (ActionID); if (SpellIsTargeting ()) then SpellTargetUnit (p);
end if (ot) then TargetByName (ot); end
Використання точильних каменів на зброю:
Простий макрос скоротить вам час
/ Script PickupInventoryItem (16);
Змінюючи в останньому рядку 16 на 17 отримаємо макроси для заточування правої і лівої рук.
/ Script CURRENT_ACTIONBAR_PAGE = X;
/ Script ChangeActionBarPage ();
Де X - номер потрібного нам хот-бару, від 1 до 6.
Приклад готового і ускладненого макросу, висновком на екран повідомлення про зміну макросу:
/ Script CURRENT_ACTIONBAR_PAGE = 1;
/ Script ChangeActionBarPage (); == Macro Frame Toggling ==
/ Script if (not MacroFrame: IsVisible ()) then ShowUIPanel (MacroFrame);
else HideUIPanel (MacroFrame); end;
/ Script currentRes = GetCurrentResolution (); if (currentRes == 3)
then SetScreenResolution (15); SetCVar ( "gxWindow", 0); SetMultisampleFormat (16);
else SetCVar ( "gxWindow", 1); SetScreenResolution (3); SetMultisampleFormat (1); end;
Числові значення підібрані для перемикання з дозволу 1600x1200 full anti-aliasing в дозвіл 1024x768 1x anti-aliasing
Відключення імен гравців / npc:
Корисний макрос, для зняття навантаження з екрану і любителям скріншотів
Для імен гравців:
/ Script if (GetCVar ( "UnitNamePlayer") == "1") then SetCVar ( "UnitNamePlayer", 0) else SetCVar ( "UnitNamePlayer", 1) end
/ Script if (GetCVar ( "UnitNameNPC") == "1") then SetCVar ( "UnitNameNPC", 0) else SetCVar ( "UnitNameNPC", 1) end
Автоматична зміна чату:
Макрос для автоматичної зміни між чатах / s якщо ви поза партією, / p якщо ви в партії на 5 чоловік, / raid якщо ви перебуваєте в рейді, макрос тільки встановлює чат, але не пише повідомлення:
/ Script if (GetNumRaidMembers ()> 0) then PR = "Raid"; elseif (GetNumPartyMembers ()> 0)
then PR = "Party"; else PR = "Say"; end;
Для того що б автоматично написати якусь фразу в обраний чат, додайте рядок:
/ Script SendChatMessage ( "Ти Gijdalah нуб і нічого не розумієш.", PR);
Макроси для допомоги танку:
Найпростіший макрос для атаки мети яку атакує обраний заздалегідь танк:
Цей макрос дуже простий і не може покрити все того функціоналу який необхідний найчастіше в швидко протікає бою, спробуємо зробити більш складний варіант макросу, розділивши при цьому частина автоматичної вибірки відповідного танка, і частина фокуса на цілі обраного танка:
---- Для вибору танка ----
/ Script LeaderPlayerName = UnitName ( "target") or UnitName ( "party1") or "";
/ Script DEFAULT_CHAT_FRAME: AddMessage ( "######## Set main assist to:". LeaderPlayerName);
---- Для атаки цілі танка ----
/ Script AssistByName (LeaderPlayerName or UnitName ( "party1") or UnitName ( "player"));
/ Script DEFAULT_CHAT_FRAME: AddMessage ( "######## Assisting". LeaderPlayerName. "With target". (UnitName ( "target") or "NO TARGET"));
При використанні першого макросу, в пам'яті інтерфейсу запам'ятовується нік обраного гравця, що б при натисканні другого макросу, вибиралася мета раніше запомненного танка, не залежно від того де він знаходиться, не потрібно використовувати перший макрос кожен раз, тільки один раз для початкової установки танка.
Але це два макроси, вони будуть займати два слота на вашому інтерфейсі, хоча вони і дуже зручні. Спробуємо поєднати обидва макросу в один не втративши при цьому функціональності. Макрос буде виглядати наступним чином:
Той же макрос в більш зручному для читання вигляді, так як вище наведений, що не Новомосковськ через оптимізації під довжину в 255 символів: