/script TargetLastEnemy(); - очень удобная команда для друидов/шаманов. Смысл заключается в том, что во время боя, часто приходится лечить своих партнеров. И так как цель была изменена, а противник оказался в толпе, в которой его сложно выбрать - используйте эту команду, которая автоматически выберет последнего противника, с которым Вы сражались.
Сумки, сумки, сумки……….
Самая важная вещь, в работе с сумками - это нахождение предмета. Для начала объясню как определяется расположение предмета в сумке. Например, у вас есть бутылка со здоровьем, находящееся в правом нижнем слоте сумки. На панели после шкалы латентности (задержки) находится 5 слотов под сумки. Их нумерация следующая:
[4] [3] [2] [1] [0]
Так что, как понимаешь наша дефолтная сумка Backpack находится под номером 0. Она всегда будет под номером 0, т.к. ее невозможно перемещать. Итак, под 0 у нас Backpack, под 1 Green Sack, под 2 Traveler's Bag, под 3 Small Pouch, ну и под 4 номером еще какая-то сумка.
Итак, мы знаем, что зелье находится в Traveler's Bag, поэтому ее нахождение будет по адресу (2, №). А также, я уже говорил, что она находится в самом нижнем правом слоту. Итак, давайте посчитаем. Получается, что это слот номер 14. Поэтому наш адрес в сумке будет (2,14).
Bag 0
[1] [2] [3] [4]
[5] [6] [7] [8]
[9] [10] [11] [12]
[13] [14] [15] [16]
Bag 1
[1] [2]
[3] [4] [5] [6]
[7] [8] [9] [10]
Bag 2
[1] [2]
[3] [4] [5] [6]
[7] [8] [9] [10]
[11] [12] [13] [14]
Использование адреса нахождения
/script PickupContainerItem(#,#); - с помощью этой команды, заменив символы # на цифры, можно автоматически выбрать то, что находится по этому адресу, в указанной сумке, и данный предмет появится на курсоре, готовый к использованию.
Открытие закрытие сумок
/script ToggleBag(0);
/script ToggleBag(1);
/script ToggleBag(2);
/script ToggleBag(3);
/script ToggleBag(4); - удобный скрипт, который позволяет открывать или закрывать все сумки сразу. Но лично я пользуюсь клавишами Ctrl+B, т.к. количество скриптов ограничено.
Теперь разберем слоты нашего снаряжения, которое мы носим.
[ 1]**********[10]
[ 2]**********[ 6]
[ 3]**********[ 7]
[15]**********[ 8]
[ 5]**********[11]
[ 4]**********[12]
[19]**********[13]
[ 9]**********[14]
[16][17][18]<-[0]
0. Ammo - расходный материал(пули, стрелы и т.д.)
1. Head - голова
2. Neck - шея
3. Shoulders - плечи
4. Shirt - рубашка
5. Chest - грудь
6. Waist - пояс
7. Legs - ноги
8. Feet - ступни
9. Wrist - запястье
10. Hands - руки
11. Finger - палец
12. Finger - палец
13. Trinket - серьга
14. Trinket - серьга
15. Back - спина(накидка)
16. Main Hand - главная рука
17. Off Hand - вторая рука(пасивная)
18. Ranged Weapon - дальнобойное оружие
19. Tabard - табард
Chapter 2
/script PickupInventoryItem(#); - команда является великолепной в использовании с выбором предметов из сумки. Она оденет на персонажа то, что сейчас выбрано мышью. Например, мы пользуемся топором, а у нас в сумке по адресу (1,2) лежит нож. Используя полученную выше информацию, мы можем написать такой макрос:
/script PickupContainerItem(#,#); указать адрес нахождения ножей - 1,2
/script PickupInventoryItem(#); указать адрес в снаряжении - 16
таким образом получим
/script PickupContainerItem(1,2)
/script PickupInventoryItem(16);
Теперь, когда мы нажмем на иконку макроса, наш меч будет заменен на нож в снаряжении. В сумке меч будет находится по адресу, который занимал нож. Поэтому повторное нажатие на макрос приведет к тому, что нож заменится на меч.
Ну и практический пример, замена двуручного меча на одноручный с щитом.
/script oi=(GetInventoryItemLink("player",17));if (not oi) then PickupContainerItem(3,2);
PickupInventoryItem(16);PickupContainerItem(3,3);
PickupInventoryItem(17);end;
В первой строчке, используется команда которая, возвращает указатель предмета в определенном слоте. Player - это наш персонаж, а 17 слот - это место, где одевается щит. Проверяем, если слот 17 пустой, тогда одеваем одноручный меч, с щитом. Поменяв условие проверки на противоположное, можно сделать макрос заменяющий одноручный меч с щитом, на двуручный. Думаю, у вас получится это самостоятельно.
Полезные макросы
Сейчас, я хочу познакомить вас с некоторыми макросами, которые могут оказаться полезными для вас.
/script CURRENT_ACTIONBAR_PAGE = X;
/script ChangeActionBarPage();
Изменяет текущую панель кнопок на X панель. Также в игре по умолчанию, можно переключать панели с помощью клавиш Shift + 1,2,3,4
/cast (spell subtext) - каст заклинания. Например: "/cast Fireball (Rank 1)". Чтобы добавить название заклинания в макрос, его можно либо напечатать ручками, что утомительно, либо shift-клик в книжке заклинаний, что сразу же добавить сроку каста заклинания с его именем. Очень удобно.
/script px,py=GetPlayerMapPosition("player")
/script DEFAULT_CHAT_FRAME:AddMessage(format("[ %s ] %s , %s",GetZoneText(),px,py));
Chapter 3
/p Atacking %t(%t подставляет имя выделенного вами персонажа.)
Хорошо, теперь допустим мы маг, кто играл магом - знает какая это беда кастить полиморф в группе, когда члены группы, по несогласованности, начинают атаковать и частенько под руку попадается овечка.
Код:
/p Polymorphing! DONT atack %t!
/cast Polymorph (Rank X)(X - это уровень вашего заклинания)
Идём дальше. Нужен скрипт, который лечил и предупреждал остальных хилеров, что вы уже лечите эту цель:
Код:
/script if ((UnitName("target") ~= nil) AND (UnitIsFriend("player", "target"))
then SendChatMessage("Healing (+n)!", "PARTY", "COMMON", UnitName("target") ); end
/cast SpellName (Rank X)Думаю понятно, описание функции смотрите ниже.
Ещё один полезный макрос:
Код:
/script ToggleBag(0);
/script ToggleBag(1);
/script ToggleBag(2);
/script ToggleBag(3);
/script ToggleBag(4); Открывает/закрывает все сумки полезно перебиндить на "b".
Приведу основные функции:
Хотя это всё функции, некоторые из них являться только информационными, а некоторые, влияют непосредственно на игру, поэтому я разделил всё на методы и свойства, для удобства.
----------------------------------------------[Методы]
--[действия]--
AttackTarget();
Пример: AttackTarget();
Описание: Атакует выделенного персонажа.
CastSpellByName(spellname)
Пример: CastSpellByName("Demon Skin");
Описание: Кастует указанное заклинание
TargetUnit(targetcode);
Пример: TargetUnit("player");
Описание: Выделяет персонажа указанного в параметре "player", "party1".."party5", "npc", "target".
TargetUnitsPet(targetcode);
Пример: TargetUnitsPet("player");
Описание: Выделяет пэта указанного персонажа.
TargetLastEnemy();
Пример: TargetLastEnemy();
Описание: Выделяет последнего атакованного персонажа.
AssistUnit(target)
Пример: AssistUnit("target");
Описание: Помогает атаковать персонажу, указанному в параметре.
AssistByName(target)
Пример: AssistByName("Marco");
Описание: Помогает атаковать персонажу с именем указанным в параметре.
FollowUnit(target)
Пример: FollowUnit("target");
Описание: Следует за персонажем указанным в параметре.
FollowUnitByName(target)
Пример: FollowByName("Beeblebrox");
Описание: Следует за персонажем с именем указанным в параметре.
ToggleBag(bagnumber)
Пример: ToggleBag(0);
Описание: Открывает/закрывает сумку сумки расположены: 4-3-2-1-0. 0 это бэкпак.
--[группа и взаимодействия]--
InviteByName(target)
Пример: InviteByName(GetSlashCmdTarget(msg));
Описание: Приглашает в группу персонажа с именем указанным в параметре.
UninviteByName(target)
Пример: UninviteByName(GetSlashCmdTarget(msg));
Описание: Удаляет из группы персонажа с именем указанным в параметре.
InitiateTrade(target)
Пример: InitiateTrade("target");
Описание: Приглашает к торговле персонажа указанного в параметре.
InspectUnit(target)
Пример: InspectUnit("target");
Описание: Показывает информацию о персонаже.
BeginTrade();
Описание: Согласиться на торговлю.
CancelTrade();
Описание: Отказаться от торговли.
AcceptGroup()
Описание: Согласиться на приглашение в группу.
DeclineGroup()
Описание: Отказаться от группы
PromoteToPartyLeader(unit);
Описание: Делает лидером указанного игрока.
LeaveParty()
Описание: Покинуть группу.
Свои координаты с таким макросом очень легко сообщить своим друзьям. Хотя я больше предпочитаю Титан панель, в которой все удобно и красиво расписано.
/script JoinChannelByName("LookingForGroup - Ironforge", nil, 1);
ChatFrame1.channelList[5]="LookingForGroup - Ironforge";
ChatFrame1.zoneChannelList[5]=0;
или
/script JoinChannelByName("LookingForGroup - Orgrimmar", nil, 1);
ChatFrame1.channelList[5]="LookingForGroup - Orgrimmar";
ChatFrame1.zoneChannelList[5]=0;
Начиная играть в WoW изначально не представляешь, какую важную роль будет играть столица. Но приближаясь к 60 уровню, ты понимаешь что группа в любой инстанс формируется в городах, а не в той зоне, где находится подземелье. Поэтому, если есть желание следить за каналом LFG, находясь в какой-то зоне, выполняя квесты, можете воспользоваться этим макросом.
На этом я ставлю точку, и отправляю вас на эксперименты с новыми возможностями из мира макросов. В следующей части, я приведу примеры макросов для разных классов.
Ну и на десерт, предлагаю Вам веселый макрос, который при каждом нажатии клика будет выдавать разные фразы. Список фраз вы сможете пополнить без труда.
/script s={"Privet Bratva!","Ninja Behind!","Chest!!!","Dance with me"};
SendChatMessage(s[math.random(getn(s))], "SAY")
пс написалбы ещо но не влезает .. ограничение по длинне поста .. брет
Сообщение было отредактировано Exploit!: Feb 17 2007, 12:53 PM