О гильдии UNITY Устав гильдии UNITY
Новые сообщения · Поиск - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Вход | Регистрация
  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Модератор форума: Shuhart  
Форум содружества UNITY » Это интерестно! » Полезные статьи » Макросы (Что такое макросы и с чем их едят)
Макросы
RantuДата: Суббота, 05/05/2007, 20:00 | Сообщение # 1
Lord-Founder
Game info
Игровой ник: Джирая
Уровень: 80

Forum info
Группа: UNITY
Сообщений: 89
Репутация: 15
Награды: 1
Статус: Offline
Основы Макросов
Что это все означает? Что это за макросы?

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

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

Можешь ли ты себе представить пару ситуаций, когда макрос будет полезным? Возможно у тебя уже появилось пару идей. Если же нет, тогда вот парочка примеров:
Мгновенно нацелится на ту цель, на которую твой танк нацелился.
Мгновенно отправить в атаку своего питомца, как только ты начал атаковать.
Сказать что-либо, в тот же момент, в который ты сделал каст.
Сменить одним нажатием клавиши оружие.

Ограничения Макросов
Ну что заинтригован? Отлично! Однако существуют некоторые ограничения. Во-первых, каждый аккаунт может иметь 18 макросов. Поэтому 18 макросов деляться на всех твоих персонажей на всех рилмах. Так что раскинь хорошенько мозгами, если у тебя много чаров. Во-вторых, каждый макрос может состоять из 255 символов. Это означает, что твой макрос не может стрельнуть из лука, дать приказ питомцу атаковать, использовать все твои способности в атаке, подежать к трупу, забрать лут, снять шкуру, затем накормить твоего питомца и самого себя, и после этого атаковать ближайшего моба, ну и т.д. И последние ограничение - макросы не ждут задержку. Макрос выполняет все команды мгновенно. Так что если ты хочешь сначала пополнить здоровье, а после этого пополнить ману, у тебя ждет неудача, т.к. у них одинаковая задержка. В остальном же ты свободен в действии.

Является ли это читерством?
Позволь мне уверить тебя, что не зависимо от того, играешь ли ты за Орду или за Альянс, не зависимо от расы, класса и профессии, макросы могут значительно увеличить твой скилл в игре. В сообщесте идет небольшая дискуссия пока на тему являются ли макросы честным превосходством. Одно я знаю наверника, использование макросов не является читерством. Каждый игрок может сделать макрос, т.к. у них есть доступ к одинаковым командам, не имеет значения даже твой уровень (level). Превосходство дается тем, кто потравив время и усилия на их создание, может теперь использовать макросы.

Твой первый маркрос
Закончив с вводной частью, перейдем к твоему первому макросу. Этот макрос не позволит тебе одним кликом завалить Ониксию, но облегчит тебе жизнь в Аукционном Доме, или, не даст скучать во время долгого путешествия на другой континент. Вообще-то, этот макрос является социальным, т.к. выполняет серию эмоций и заставляет твоего чара высказать пару фраз.

Итак начнем с того, что найди сначал кнопку Главного Меню(Main Menu) и нажми на Macros. Появится окно создания макросов, которое, в принципе, должно быть пустым, если ты не делал до этого пару экспериментов.

Т.к. мы добавляем новый макрос, то нажми на кнопку New.

Тут ты можешь назвать свой макрос и выбрать ему иконку, которая будет размещена на панеле инструментов. Как видишь, я назвал свой макрос "Dance" и выбрал иконку с лысой головой(вторая строка и второй столбец). Также эта иконка поможет не спутать еще с чем-либо еще. После того как ты назвал свой макрос и выбрал иконку, жми Okay, которая станет доступной. Пошли дальше.

Теперь нужно набрать команды, которые твой макрос должен выполнять. Вот что я напечатал:

/dance
/train
/say Come on everybody...and ride it. Come on everybody...do the Choo Choo!
/train

Я нажал [Enter] в конце каждой строки. Так все выглядит наглядно. Внизу окна ты можешь заметить счетчик, который считает количество символов. Запомни не больше 255 символов! После того как ты все это сделал, тебе не нужно сохранять макрос или делать с ним что-то еще - он уже готов к использованию.

Все что тебе нужно сделать это перетянуть иконку из окна макросов на твою панель инструментов. Теперь уж точно все! Нажимай Exit и добро пожаловать в игру.

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

Как это работает спросишь ты? К счастью, все прошло хорошо. Если нет, тогда возвращайся назад и проверь синтаксис, т.е. убедись что нет ошибок. Орфография - это основа макросов. Проверь пару раз текст, и я уверен, что у тебя все заработает. Теперь можешь побегать перед игроками и показать, какой ты у нас скоростной. Если никто не отреагировал на тебя словами "lol" или "rofl"....то поищи чаров с чувством юмора!

Дальше?
Следующим шагом для тебя будет практика с макросами. Ты ничего не сломаешь, если неправильно что-то напишешь, просто удали и начни сначала. Ну а я перейду к следующему шагу....
_________________

Простые команды

Выбор цели

%t - используя эту команду в макросе, вы тем самым указываете на совершение каких-либо действий по отношению к выбранному персонажу. Например, чтобы отправить сообщение выбранному игроку, используйте в макросе команду %t. Пример: если вы написали макрос "Watch out! That %t is near!", и в данный момент у вас выбранным персонажем является Мурлок , тогда в чате появится сообщение "Watch out! That Murloc is near!". Другим случаем может быть следующий пример, например выбранный персонаж - это игрок с именем Kvazimodo, а в макросе написано следующее - "/tell Surgun His name is %t", тогда в окне чата появится сообщение "To [Surgun]: His name is Kvazimodo".

Нападение и оказание помощи

/script AttackTarget(); - данная команда прикажет Вашему персонажу атаковать выбранную цель вашим оружием. Сама по себе эта команда бесполезна, т.к. в битве используется масса других ваших способностей. Но в совместном использовании с другими командами, она бывает достаточно полезной.

/assist %t
/assist **** - эти команды хорошо подходят кастерам (использующие магию) или ренджерам (стреляющие с расстояния), находящихся на расстоянии от битвы, и помогающие танку, который полностью забрал на себя противника. /assist %t изменить выбранную цель с члена группы, которой выбран на моба, которого они бьют. Вторая же команда /assist **** (замени **** на имя конкретного игрока), выберет цель, которую атакуют игрок, указанный вместо ****. Можно указать вместо **** имя танка, чтобы всегда выбирать цель, с которой сражается танк.

/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 - табард

/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));

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

/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")
_________________

Приведу основные функции:
Хотя это всё функции, некоторые из них являться только информационными, а некоторые, влияют непосредственно на игру, поэтому я разделил всё на методы и свойства, для удобства.
[Методы]
[действия]
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()
Описание: Покинуть группу.

AddFriend(name)
Описание: Добавить друга.

RemoveFriend(name)
Описание: Удалить друга

AddOrDelIgnore(name);
Описание: Добавляет/удаляет игрока из игнор-листа.

Duel(name)
Описание: Вызывает на дуэль игрока.

CancelDuel();
Описание: Отменяет дуэль.

SetLootMethod(methodstring, player)
Описание: Устанавливает способ лута: "freeforall","roundrobin","master".

LootSlot(slotidnumber, 0)
Пример: LootSlot(((LOOTFRAME_NUMBUTTONS - 1) * (LootFrame.page - 1)) + this:GetID(), 0);
Описание: Лутит указанный предмет

[Движения]
MoveForwardStart(starttime);
Описание: Игрок начинает бежать вперёд.

MoveForwardStop(time);
Описание: Игрок прекращает бежать вперёд.

MoveBackwardStart(starttime);
Описание: Игрок начинает бежать назад.

MoveBackwardStop(stoptime);
MoveBackwardStop(arg1);
Описание: Игрок прекращает бежать назад.

TurnLeftStart(starttime);
Описание: Игрок начинает бежать влево.

TurnLeftStop(arg1);
Описание: Игрок прекращает бежать влево.

TurnRightStart(starttime);
Описание: Игрок начинает бежать вправо.

TurnRightStop(stoptime);
Описание: Игрок прекращает бежать вправо.

StrafeLeftStart(StartTime);
Описание: Игрок начинает стрэйфить влево.

StrafeLeftStop(stoptime);
Описание: Игрок прекращает стрэйфить влево.

StrafeRightStart(starttime);
Описание: Игрок начинает стрэйфить вправо.

StrafeRightStop(stoptime);
Описание: Игрок прекращает стрэйфить вправо.

Jump();
Описание: Заставляет игрока прыгать.

SitOrStand()
Описание: Заставляет присесть/встать

[гильдия]
AcceptGuild()
Описание: Принимает приглашение в гильдию.

DeclineGuild()
Описание: Отказывается от приглашение в гильдию.

GuildInviteByName(player);
Описание: Приглашение в гильдию для игрока, имя которого указанно в параметре.

GuildUninviteByName(player)
Описание: Выгоняет из гильдии игрока, имя которого указанно в параметре.

GuildPromoteByName(player)
Описание: Увеличивает статус игрока, имя которого указанно в параметре.

GuildDemoteByName(player)
Описание: Уменьшает статус игрока, имя которого указанно в параметре.

GuildSetLeaderByName(player)
Описание: Делает лидером игрока, имя которого указанно в параметре.

GuildSetMOTD(message)
Описание: Устанавливает приветственное сообщение.

GuildLeave()
Описание: Покинуть гильдию.

[пэт]
PetAttack();
Описание: Заставляет вашего пэта атаковать.
PetAbandon();
Описание: Бросить вашего пэта.

PetRename(name)
Описание: Переименовать вашего пэта.

PetPassiveMode();
Описание: Переключает вашего пэта в пассивный режим.

PetDefensiveMode()
Описание: Переключает вашего пэта в защитный режим.

PetAggressiveMode()
Описание: Переключает вашего пэта в агрессивный режим.

PetWait()
Описание: Останавливает вашего пэта в пассивный режим.

PetFollow()
Описание: Заставляет вашего пэта следовать за вами.

[разное]
SendChatMessage(msg, mode, language, channel);
Пример: SendChatMessage(msg, "WHISPER", this.language, lastTell);
Описание: Отправляет сообщение mode:"SAY", "YELL", "PARTY", "AFK", "DND", language: "COMMON", "DRACONIC", "ORCISH" ...

RandomRoll(low,high);
Пример: RandomRoll("1","100");
Описание: Выдаёт случайное число, удобно при розыгрыше сундуков.

PlaySound(filename);
Пример: PlaySound("BAGMENUBUTTONPRES");
Описание: Проигрывает звуковой файл.

Screenshot();
Описание: Делает скриншот.

ForceLogout()
Описание: Усиленный дисконнект.

Logout()
Описание: Дисконнект.

Quit()
Описание: Выход из игры

1103930566
[Свойства]
UnitName(string)
Пример: target = UnitName("target");
Описание: Возвращает имя игрока

GetFriendInfo(friendid)
Пример: name, level, class, area, connected = GetFriendInfo(friendIndex);
Описание: Возвращает информацию о друге.

UnitXP(target)
Пример: local currXP = UnitXP("player");
Описание: Возвращает опыт игрока

UnitXPMax(target)
Пример: local nextXP = UnitXPMax("player");
Описание: Показывает максимальный опыт игрока.

GetUnitMoney(target)
Пример: if ( UnitMoney("player") >= moneyCost ) then
Описание: Показывает количество денег игрока.

UnitExists(unitname)
Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then
Описание: Возвращает true если персонаж существует.

UnitIsPlayer(unitname)
Пример: if ( UnitExists(unit) and UnitIsPlayer(unit) ) then
Описание: Возвращает true если персонаж является игроком.

PetCanBeAbandoned()
Описание: Возвращает true если пэт может быть брошен.

UnitIsUnit(unitnamea, unitnameB)
Пример: UnitIsUnit("target", "pet")
Описание: Возвращает true если unitnamea является unitnameB

UnitReaction("target", "player")
Пример: UnitReaction("target", "player")
Описание: Возвращает тип поведения: neutral hostile, friendly.

GuildInfo()
Описание: Показывает инфо о гильдии

GetPartyMember(index[or id])
Пример: GetPartyMember(3)
Описание: Возвращает имя члена партии.

[B]UnitIsPartyLeader(unitname)
Пример: UnitIsPartyLeader("target")
Описание: Возвращает true если персонаж лидер группы.

GetLootMethod()
Пример: lootMethod, lootMaster = GetLootMethod();
Описание: Возвращает тип и мастера(если есть) лута

UnitInParty(unitname)
Пример: UnitInParty("target")
Описание: Возвращает true если персонаж входит в группу.

GetPlayerMapPosition(playerid);
Пример: playerX, playerY = GetPlayerMapPosition("player");
Описание: Возвращает ваши координаты.

GetCorpseMapPosition();
Пример: corpseX, corpseY = GetCorpseMapPosition();
Описание: Возвращает координаты вашего тела.

[chanel]
LeaveChannelByName(channelname)
LeaveChannelByName("Trade");
Leaves the channel with the specified name.

ListChannelByName(channelname)
ListChannelByName("trad")
Lists all of the channels that match the specified regular expression.

ListChannels()
ListChannels();
Lists all of the channel.

SetChannelPassword(username, password)
SetChannelPassword("***horis","cantkeepassecret")l
Changes the password of the current channel if that is a legal action.

ChannelModerator(channel,player)
ChannelModerator("uimods","Kelthan");
Sets the specified player as the channel moderator.

ChannelUnmoderator(channel, player)
ChannelUnmoderator("uimods", "***horic");
Takes the specified user away from the moderator status.

ChannelMute(channel, player)
ChannelMute("uimods","zileas");
Turns off the specified player's ability to speak in a channel.

ChannelUnmute(channel,player)
ChannelUnmute("uimods", "marco");
Unmutes the specified user from the channel.

ChannelInvite(channel,player)
ChannelInvite("cutestelves","glorfindel");
Invites the specified user to the chatroom.

ChannelKick(channel,player)
ChannelKick("bigllamas", "Strong_Bad_Is_Geh");
Kicks the specified user from the channel.

ChannelBan(channel,player)
ChannelBan("uimods", "alexyoshi")
Bans a player from the specified channel.

ChannelUnban(channel, player)
ChannelUnban("uimods", "kat");
Unbans a player from a channel.

ChannelToggleAnnouncements(channel);
ChannelToggleAnnouncements(channel);
Sets the channel to display announcements.

Основные команды:
Чат:
/say сообщение – Отправляет сообщение людям находящимся вокруг вас. (/s)
/whisper имя сообщение – Отправляет приватное сообщение. (/w)
/yell сообщение – Отправляет общее сообщение. (/y)
/party сообщение – Отправляет сообщение вашей группе. (/p)
/raid сообщение – Отправляет сообщение вашей рэйд группе.
/guild сообщение – Отправляет сообщение вашей гильдии.
/reply сообщение – Отправляет сообщение последнему приславшему вам сообщение. (/r)
/ignore имя – Добавляет игрока в игнор-лист.
/unignore имя – Убирает игрока из игнор-листа.
/emote сообщение – Эквивалентно /me в mIRC’е. (/em)
/afk [сообщение] – Переключает в режим "away from keyboard" .
/dnd [сообщение] - Переключает в режим "do not disturb".
/join канал – Присоединяет/создаёт чат-каналу.
/leave канал – Отсоединяет от чат-канала.

Группа:
/invite [имя] – Приглашает выбранного игрока в группу, либо указанного в параметре. ( /inv)
/uninvite имя – Удаляет указанного персонажа из вашей группы.
/ffa – Устанавливает тип лута "free for all".
/master [имя] - Устанавливает тип лута Master Loot, указанный чар ставиться master looter
/roundrobin - Устанавливает тип лута "round robin".
/trade – Посылает запрос на торговля выбранному персонажу.

Взаимодействие:
/cast название(Rank X) – Кастует заклинание с указанным именем, уровня Х.
/assist [имя] – Помогает атаковать выбранной цели, либо персонажу [имя].
/inspect – Показывает информацию о выбранном персонаже(инвентарь, статс).
/target имя – Выделяет указанного персонажа.
/duel [имя] – Вызывает на дуэль выбранного чара, либо имя которого указанно в скобках.
/yield – Сдаться в дуэли
/pvp – Включает флаг ПВП на 5минут.

Разное:
/who – Показывает список игроков вокруг вас.
/played – Показывает время проведённое в игре.
/time – Показывает текущее игровое время.
/sit – Ваш персонаж присаживается, тем самым, ускоряя регенерацию здоровья.
/stand – Заставляет вашего персонажа встать.
/random [верхний предел] – Генерирует случайное число от 1 до указанного параметра.
/logout – Отсоединяет от игры.
/exit – Выходит из игры.

Гильдия:
/ginfo – Показывает информацию о вашей гильдии.
/g сообщение – Отправляет сообщение членам вашей гильдии.
/o сообщение – Отправляет сообщение офицерам вашей гильдии.
/ginvite имя – Приглашает игрока в вашу гильдию.
/gremove имя – Выгоняет игрока из вашей гильдии.
/gpromote имя – Повышает ранг выбранного игрока.
/gdemote имя – Понижает ранг выбранного игрока.
/gmotd сообщение – Устанавливает приветственное сообщение.
/gquit – Покинуть гильдию.
/groster - Gives an entire guild roster (officers and leaders only)
/gleader имя – Меняет лидера гильдии.
/gdisband - Disbands your guild (guild leader only)

Голосовые команды:
/v aid
/v assist
/v charge
/v cheer
/v congrats
/v run
/v flirt
/v follow
/v goodbye
/v heal
/v hello
/v help
/v incoming
/v no
/v fire
/v outofmana
/v raspberry
/v silly
/v thanks
/v train
/v wait
/v yes
/v welcome

Эмоции(многие из зависят выбран какой-либо персонаж или нет):
/agree
/amaze
/angry
/apologize
/applaud
/bark
/bashful
/beckon
/beg
/bite
/bleed
/blink
/blush
/boggle
/bonk
/bored
/bounce
/bow
/brb
/burp
/bye
/cackle
/calm
/cheer
/chicken
/chuckle
/clap
/cold
/comfort
/commend
/confused
/congratulate
/cough
/cower
/crack
/cringe
/cry
/cuddle
/curious
/curtsey
/dance
/drink
/drool
/duck
/eat
/eye
/fart
/fidget
/flex
/flop
/frown
/gasp
/gaze
/giggle
/glare
/gloat
/greet
/grin
/groan
/grovel
/growl
/guffaw
/hail
/happy
/hello
/hug
/hungry
/insult
/introduce
/jk
/kiss
/kneel
/laugh
/laydown
/lick
/listen
/lost
/love
/massage
/moan
/mock
/moo
/moon
/mourn
/no
/nod
/nosepick
/panic
/peer
/pity
/plead
/point
/poke
/ponder
/pounce
/praise
/pray
/purr
/puzzle
/raise
/rasp
/ready
/roar
/rofl
/rude
/salute
/scared
/scratch
/sexy
/shake
/shimmy
/shiver
/shoo
/shout
/shrug
/shy
/sigh
/sit
/slap
/sleep
/smile
/smirk
/snarl
/snicker
/sniff
/snub
/soothe
/spit
/stand
/stare
/stink
/surprised
/surrender
/talk
/talkex
/talkq
/tap
/taunt
/tease
/thank
/thirsty
/threaten
/tickle
/tired
/train
/unused
/veto
/victory
/violin
/wave
/welcome
/whine
/whistle
/work
/yawn



Lost in Japan
UNITY NO JUTSU
 
BattersДата: Суббота, 05/05/2007, 20:32 | Сообщение # 2
Nubie
Game info

Forum info
Группа: Пользователи
Сообщений: 49
Репутация: 2
Награды: 1
Статус: Offline
Большое спасибо! happy Мне как раз нужна была помощь по этим "делам".


Meleana | Human Paladin 60+
 
TalamaurДата: Воскресенье, 06/05/2007, 16:50 | Сообщение # 3
Game info

Forum info
Группа: Удаленные





Так же рекомендую создать макросы для варлоков на пета (оч удобно в тсутствии автокаста и возможности вынести на пет-панель)
Премер: /cast Blood Packt rank*, где *- уровень спелла вашего пета. Дабы упростить ввод спелла в книге заклинаний в закладке Демон зажимаем шифт и кликаем по нужному спеллу после написания /cast. Все макрос готов, выносим его на панель и можно смело пользоваться.
 
DjmonSvetaДата: Вторник, 12/06/2007, 10:30 | Сообщение # 4
Respected
Game info
Игровой ник: -
Уровень: -

Forum info
Группа: Пользователи
Сообщений: 381
Репутация: 13
Награды: 1
Статус: Offline
Вот шо я смог накопать. возможны повторы.
Колдовство заклинаний на ближайшую цели с проверкой кол-ва % здоровья цели:
Приведу пример на основе каста хилиерских заклинаний на ближайшие цели с проверкой на кол-во здоровья цели, макрос лечит ближайшую дружественную цель со здоровьем ниже 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();

Колдовство заклинаний на конкретных игроков партии:
Всегда лечит первого игрока партии Флешкой, при этом не сбивает фокуса на выделенной цели.
/script TargetUnit("party1")
/cast Flash Heal
/script TargetLastTarget()

Макрос для поиска номера заклинания в книге умений:
Иногда использования скриптов CastSpellByName приводит к тому что длинна макроса превышает допустимые 255 символов, например макрос: /script CastSpellByName('Holy Light', 1) занимает достаточно много символов, когда как проще использовать макрос: /script CastSpellByNumber(); Но как же узнать какой номер у того или иного заклинания из вашей книги? На помощь приходит очень полезный и распространенный макрос проверки номера заклинания, он выдает на экран имя спела с соответствующим номером:
/script SpellNumber=26; SpellName,SpellRank=GetSpellName(SpellNumber,"spell");
M=format("Spell %d: %s %s",SpellNumber,SpellName,SpellRank); DEFAULT_CHAT_FRAME:AddMessage(M);
проверял работает

Полезный макрос, для снятия нагрузки с экрана и любителям скриншотов
Для имен игроков:
/script if ( GetCVar("UnitNamePlayer") == "1" ) then SetCVar("UnitNamePlayer",0) else SetCVar("UnitNamePlayer",1) end
Для имен npc:
/script if ( GetCVar("UnitNameNPC") == "1" ) then SetCVar("UnitNameNPC",0) else SetCVar("UnitNameNPC",1) end
работает скриншоты суперские получаются только имя перса не убирается у себя

Макросы для помощи войну:
Самый простой макрос для атаки цели которую атакует выбранный заранее танк:
/assist %t
/script AttackTarget();
вроде запрещён или не работает.... может я что не так делал у кого будет работать прошу расказать мне будет очень интересно узнать

Этот макрос слишком простой и не может покрыть всего того функционала который необходим зачастую в быстро протекающем бое, попробуем сделать более сложный вариант макроса, разделив при этом часть автоматической выборки подходящего танка, и часть фокуса на цели выбранного танка:
Для выбора война:
/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"));

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

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

/script p=PAsi or""u=UnitName;t="target"c=IsControlKeyDown()if©then p=u(t)or u("party1")or""else AssistByName(p)end;DEFAULT_CHAT_FRAME:AddMessage("######## "..(c and("Set assist: "..p)or("Assisting "..p.." with "..(u(t)or"NO TARGET"))))PAsi=p

Итак, как же пользоваться этим макросом:

Для установки нужного танка, удерживая Ctrl кликните на иконку использования макроса.
Обычный клик на иконку использования макроса выберет необходимую цель.
Модификация этого макроса с возможностью колдовства разных заклинаний на цель выбранного танка (выбрано заклинание Полиморф, что может быть заменено на любое другое):

/script t=Tg1 or""c=IsControlKeyDown()if©then t=UnitName("target")or""else TargetByName(t)if(IsShiftKeyDown())then CastSpellByName('Polymorph')end end ChatFrame1:AddMessage("######## "..(c and("Tg1 set to: "..t)or("Targeting: "..t)))Tg1=t
Итак, как же пользоваться этим макросом:
Для установки нужного танка, удерживая Ctrl кликните на иконку использования макроса.
Обычный клик на иконку использования макроса выберет необходимую цель.
Если удерживая Shift кликнуть на иконку использования макроса, то персонаж начнет колдовать выбранное заклинание (полиморф) на текущую цель выбранного ранее танка.

Макросы для уничтожения тотемов:

Простейший вариант:
/target Totem
/cast Moonfire(Rank 1)
Более сложный вариант:
/script u=UnitName;
s=strfind;
t="target";
for i = 1,10,1 do TargetNearestEnemy()
if (not UnitCanAttack("player",t))then
break;
end;
if ((s(u(t),"Totem") or s(u(t),"Ward")) and not s(UnitCreatureType(t),"Human")) then
CastSpellByName("Shoot");
break;
end;
end;

Таймер:
/script if IsAltKeyDown() then L1="Instance Start"; T1=GetTime();
M=format("Timer Set [%s]",L1); else N=GetTime(); D=N-T1;
M=format("Time Elapsed - [%s]: %02dh:%02dm:%02ds",L1, D/3600,mod((D/60),60), mod(D,60)); end
SendChatMessage(M,"SAY");

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

Атака петом:
Простой макрос атаки пета по выбранной цели
/script PetAttack();
Более продвинутый вариант:
/target player
/assist
/script PetAttack();
Атака специальным заклинанием пета (например Dash):
/script PetAttack(); CastPetAction(4);
Команды для пета:
Список всех команд пету
/script PetAggressiveMode();
/script PetDefensiveMode();
/script PetPassiveMode();
/script PetFollow();
/script PetAttack();
/script PetStopAttack();
/script CastPetAction(X);
Для последней строки, X – номер заклинания пета в панели управления петом.

Примеры классовых макросов
Примеры оригинальных макросов для каждого класса.

Друид:
Nature's Swiftness + Healing Touch – без глобального кулдауна:
/cast Nature's Swiftness
/script SpellStopCasting();
/cast Healing Touch(Rank 10)
/script if ( SpellIsTargeting() ) then SpellTargetUnit ("player"); end

Хантер:
Выбор ближайшей цели, если цель рога – выстрел Scatter Shot:
/script TargetNearestEnemy(); if (UnitClass("target")=="rogue") then CastSpellByName("Scatter Shot"); CastSpellByName("Hunter's
Mark (Rank 4)");end
Raptor strike + Wing clip:
/cast Raptor Strike
/cast Wing Clip
Макрос для Пула с одновременной привязкой марки к цели:
/cast Hunters Mark(Rank #);
/cast Concussive Shot();
/cast Autoshoot();
Автоматическое кормление пета:
/cast Feed Pet
/script PickupContainerItem (#,#)

Маг:

Макрос для вызова всех типов мана-кристалов, требует многочисленного нажатия:
/script local c=function(a) local f,d a="Mana "..a for i=0,4 do for k=1,GetContainerNumSlots(i) do
d=GetContainerItemLink(i,k) or "" if strfind(d,a) then f = 1 end end end if not f then CastSpellByName("Conjure "..a) end end
c "Ruby" c "Citrine" c "Jade"

Колдовство заклинаний с использованием тринкетов / ПоМа, как мы знаем ТоеП не стекается с ЗХЧ после патча 1.10, но макрос все равно очень полезен, приведу пример ЗХЧ + ПоМ + фростболт 11 ранга:
/script UseAction(37); SpellStopCasting(); CastSpell(82,"spells"); SpellStopCasting(); CastSpell(158,"spells"

Макрос отправляющий висперы, о прекращении атаки игрокам партии, монстра которого вы хотите полиморфить:
/cast Polymorph
/script local n,p,t=UnitName,"party","target" for i=2,5 do if n(p..i) then if
UnitIsUnit(p..i..t,t) then SendChatMessage("I am about to sheep your target, please change
targets.","WHISPER",nil,n(p..i)) end end end

Паладин:
Авто-бафф дружественных целей использующих Ману – Wisdom Blessing и остальных, включая себя – Might Blessing:
/script power = UnitPowerType("target"); if ( power == 0 ) then CastSpellByName("Blessing of Wisdom") else CastSpellByName("Blessing of Might") end; if ( SpellIsTargeting() ) then CastSpellByName("Blessing of Might"); TargetUnit("player"); end;

Вор:
Макрос для воров, которые используют Sinister Strike как основную атаку, макрос использует Riposte, если возможно:
/script if (UnitMana("Player")>=999) then CastSpellByName("Sinister Strike"); end;if (IsUsableAction(18) and UnitMana("Player")>=10) then CastSpellByName("Riposte"); end;
/script if UnitMana("Player")>=40 then CastSpellByName("Sinister Strike"); end;

Шаман:
Nature Swiftness + healing
/script local a=IsAltKeyDown();local c,d=GetSpellCooldown(157,0);if(c==0)then CastSpell(157,0) else if(a)then TargetUnit("player")
end;if(d==0.001)then CastSpell(146,0) else CastSpell(152,0) end;if(a)then TargetLastTarget() end;end

Макрос делает следующее:
если Nature Swiftness не на кулдавне, кастует его.
если на вас активен Nature Swiftness, кастует Healing Wave 9 rank на выбранную цель
во всех остальных случаях кастует Lesser healing wave rank 6 на выбранную цель.

Макрос анонса тотемов в пати-чат:
/party +88 agility totem, 30 yards, stay close
/cast Grace of Air

Stormstrike + тринкет:
/script UseInventoryItem(14);
/script SpellStopCasting();
/cast Stormstrike(Rank 1)

Варлок:
Колдовство страха и одновременное отключение атаки пета:
/cast Fear(Rank #)
/script PetFollow();

Воин:

Battle stance -> Mocking blow:
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(1); if isActive then CastSpellByName("Mocking Blow()"); else CastSpellByName("Battle Stance()"); end;
Требуется минимум 2 нажатия.
Defensive stance -> Taunt:
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(2); if isActive then CastSpellByName("Taunt()"); else CastSpellByName("Defensive Stance()"); end;
Требуется минимум 2 нажатия.

Berserker stance -> Berserker rage
/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(3); if isActive then CastSpellByName("Berserker Rage()"); else CastSpellByName("Berserker Stance()"); end;
Требуется минимум 2 нажатия.

Прочие макросы
Серверное время:
Макрос выдает на экран, серверное время
/script hour,min=GetGameTime()
/script DEFAULT_CHAT_FRAME:AddMessage(format("Server time is %s:%s",hour,min));

Координаты и локация:
/script px,py=GetPlayerMapPosition("player")
/script DEFAULT_CHAT_FRAME:AddMessage(format("[ %s ] %s , %s",GetZoneText(),px,py));
работает только выдаёт координаты в неудобной форме в дробных числах

Макрос печатающий цели квеста в пати-чат:
/script i = GetNumQuestLeaderBoards(); for j = 1, i, 1 do a1, a2, a3 = GetQuestLogLeaderBoard(j); SendChatMesssage(a1, "PARTY"); end;

Макрос автоматической сдачи квеста неограниченное кол-во раз:
/script SelectGossipAvailableQuest(1); CompleteQuest(); GetQuestReward();
Макрос часто используют для неоднократного выполнения квеста – Dark Iron Residue .
Dark Iron Residue на внете работает этот квест???? Квест

Макрос лечения 2 строки Эмерженси монитора, аддона CT_raid:
Очень полезный для любого лекаря макрос, спам которого позволяет сократить оверхил, и четко и быстро реагировать на повреждения рейда
/script CT_RA_Emergency_TargetMember(1)
/script CT_RA_Emergency_TargetMember(2)
/cast Lesser Healing Wave(Rank 6);

/script TargetLastTarget();

Макрос выбирает 2 строчку монитора, если такой нет, то первую, и кастует на цель Lesser healing wave rank 6.



Любовь стоит жизни...
Rogue 29lvl рекрут
ICQ#: 482-819-950
 
RealAcidДата: Суббота, 30/06/2007, 05:18 | Сообщение # 5
Nubie
Game info

Forum info
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
А у меня почемуто не пашут макросы на атаку итд скриптовы cry кароч пишет типа бла бла бла тип скрипт макро хас бин блокед фром ан актион анд авалибл онли ту Blizzard UI... fear
 
DjmonSvetaДата: Суббота, 30/06/2007, 10:04 | Сообщение # 6
Respected
Game info
Игровой ник: -
Уровень: -

Forum info
Группа: Пользователи
Сообщений: 381
Репутация: 13
Награды: 1
Статус: Offline
часть макросов выключена(((


Любовь стоит жизни...
Rogue 29lvl рекрут
ICQ#: 482-819-950
 
RealAcidДата: Понедельник, 02/07/2007, 08:31 | Сообщение # 7
Nubie
Game info

Forum info
Группа: Пользователи
Сообщений: 4
Репутация: 0
Награды: 0
Статус: Offline
У мя он пишет такое на все скриптовые............... badmood
 
DjmonSvetaДата: Понедельник, 02/07/2007, 15:53 | Сообщение # 8
Respected
Game info
Игровой ник: -
Уровень: -

Forum info
Группа: Пользователи
Сообщений: 381
Репутация: 13
Награды: 1
Статус: Offline
Попробуй макросы которые точно работают например
/script if ( GetCVar("UnitNamePlayer") == "1" ) then SetCVar("UnitNamePlayer",0) else SetCVar("UnitNamePlayer",1) end
или
Для имен npc:
/script if ( GetCVar("UnitNameNPC") == "1" ) then SetCVar("UnitNameNPC",0) else SetCVar("UnitNameNPC",1) end
работает скриншоты суперские получаются только имя перса не убирается у себя

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



Любовь стоит жизни...
Rogue 29lvl рекрут
ICQ#: 482-819-950
 
ZorДата: Понедельник, 16/07/2007, 20:13 | Сообщение # 9
Nubie
Game info

Forum info
Группа: Пользователи
Сообщений: 10
Репутация: 2
Награды: 0
Статус: Offline
Такой вопрос - как заставить работать макрос в один клик?
макрос на использования айтемов со строкой use : -----

напрример яки-небудзь тринкет...
1) /equip NewTrinket {одеть тринкеи абилу которого хотим юзать}
2) /use NewTrinket {юзаем абилу}
3) /equip OldTrinket {надеть стары тринкет, которы носим обычно на себе}

с 1-го клика макрос ступорится на одевании нового айтема - юз не идет, ссо 2-го юзается и одевается стары айтем - - КАК СДЕЛАТЬ ВСЕ ЕНТО В 1 КЛИК?



muvement is life
ParKour - art of muvement
 
BumbelbeeДата: Вторник, 21/08/2007, 21:24 | Сообщение # 10
Respected
Game info

Forum info
Группа: Пользователи
Сообщений: 344
Репутация: 8
Награды: 0
Статус: Offline
Ну наверно если кто еще не понял что в БК выключина функция /script или даже закрыта и не допускается к использованию.. Потмоу нужно думать макросы по другому.



[Вот кто я!][Убийца 73%]

Wnet>>><<<Wnet

 
TalamaurДата: Четверг, 28/02/2008, 15:11 | Сообщение # 11
Game info

Forum info
Группа: Удаленные





Источник:Форумы РУС21
Автор с ником: Arknarok
Может это уже где-то было, но более подробного описания я не видел еще ни где.

/cast

Итак, что нового в новом /cast. И как вообще он работает? А работает он просто:
/cast Arcane Intellect
/cast Smite(rank 3)
Если ранк спелла не указан, то будет использован наивысший доступный.
Из нового пожалуй опции. Опции позволяют повесить на один макрос кучу всего полезного. Опции указываются в квадратных скобках. Разные опции разделяются запятыми, а варианты одинаковых - слешем. Приведу пример
/cast [help] Arcane Intellect
В таком случае мы прокастуем спелл ТОЛЬКО если наша цель дружелюбна. После точки с запятой можно указать что произойдет иначе. Например
/cast [help] Arcane Intellect; Fire Blast
В таком случае мы прокастуем интеллект если цель дружелюбна и фаер бласт если нет. Доступные опции такие
[help]: дружелюбная ли цель
[harm]: является ли цель враждебной нам
[combat]: в бою ли вы
[stance: X]: в какой стойке вы находитесь. Вместо Х нужно подставить код стойки. Стойка 0 - стойка по умолчанию. Другие стойки:
Воин: 1 - боевая, 2 - защитная, 3 - берсеркер
Прист: 1 - шадуформа
Друид: 1 - медведь, 2 - тюлень, 3 - кошка, 4 - гепард, 5 - мункин или дерево
Рога: 1 - стелс
Заметка: ауры паладина не являются стойками
[stealth]: находитесь ли вы в режиме скрытности
[modifier] или [modifier: shift|alt|ctrl]: нажимаем ли мы определенную кнопку при нажатии на макрос
[equipped:]: надет ли на нас определенный предмет. Об этой опции я расскажу отдельно
[target=unit]: это даже не совсем опция. По сути она меняет нашу цель на указанную, и об этой вещи я расскажу подробнее позже
[actionbar:X]: вызывается ли макрос из определенного слота на экшнбаре
[pet:name|class]: есть ли у нас пет. Можно указать имя пета (например [pet:Барсик]) или же его класс (например [pet:Cat]). Можно вообще ничего не указывать, тогда будет только проверка, есть ли у нас пет.
[mounted]: едем ли мы на лошади
[swimming]: плывем ли мы
[flying]: летим ли мы
[indoors, outdoors]: находимся ли мы в здании или снаружи соответственно
[button:X]: если макрос был нажат определенной кнопкой (про это дальше)
[channeling:spell]: если у нас идет ченелинг спелла spell. Можно не указывать spell, тогда будет проверка идет ли вообще ченелинг чего-нибудь (фест эйда , например)
[exists]: существует ли ваша цель
[dead]: мертва ли ваша цель
[party]: находится ли цель в вашей группе
[raid]: находится ли цель в вашем рейде
[group]: находитесь ли ВЫ в группе
[group:party/raid]: то же самое с указанием типа группы, тоесть можно проверить , находитесь ли вы в рейде.

Заметка: опцию легко сделать отрицательсной добавив к ней 'no-'. Например [help] проверяет, является ли цель дружелюбной, а [nohelp] - является ли цель НЕдружелюбной
Как видите, опций у нас ой как немало. Самое интересное, что в ветку "иначе" тоже можно добавить условие! Посмотрим, что можно составить...
/cast [help] Arcane Intellect; Fire Blast - как я уже скзаал, если цель дружелюбная, то кастим интеллект, а если нет - фаер бласт
/cast [help] Arcane Intellect; [nocombat] Fireball; Fire Blast - кастуем интеллект, если цель дружественная, если нет, то кастуем фаербол если мы не в бою. А если в бою, то фаер бласт. Как видите, мы уже повесили 3 спелла на одну кнопку!
/cast [help] Arcane Intellect; [harm,nocombat] Fireball; [harm,combat] Fire Blast - делает примерно тоже самое что и предыдущий, но здесь используются сразу несколько условий. Кроме того макрос не сработает никак, если выбрана нейтральная цель.
/cast [group:party] Arcane Brilliance; Arcane Intellect - используем аркан бриллианс, если мы в группе, и обычный интеллект если нет.

Теперь вы уже можете написать макрос. Но некоторые опции требуют разъяснение

Опция [equipped]

Очень хитрая опция, которая позволяет смотреть, надели ли вы предмет из определенного слота. Слоты имеют следующие наименвания:
Two-Hand
Bag
Shirt
Chest
Back
Feet
Finger
Hands
Head
Held In Off-hand
Legs
Neck
Ranged
Chest
Off Hand
Shoulder
Tabard
Thrown
Trinket
Waist
One-Hand
Main Hand
Off Hand
Wrist
Надеюсь, название каждого слота понятно. Помимо слотов можно (и нужно!) указывать типы и подтипы предметов, но вы их сами посмотрите на http://www.wowwiki.com/ItemType , если потребуются.
Приведу примеры макросов:
/cast [equipped:Two-Handed Swords] Mortal Strike; Heroic Strike - используем мортал страйк, если у нас двуручный меч, иначе хероик
/cast [noequipped:Shields, equipped:Off Hand] Rampage - используем рэмпейдж, если у нас НЕТ щита и что-то одето во вторую руку. Так как вероятнее всего у вас там будет оружие (раз щита нет), то макрос вероятнее всего сработает, если вы используете два оружия (впрочем если вы додумались взять во вторую руку какую-нибудь штуковину, то это уже ваше дело)

Опции [button:X] и [target=Х]

По умолчанию вы нажимаете макрос левой кнопкой мыши. Это считается [button:1]. Другие варианты такие:
2: правая кнопка мыши
3: третья кнопка мыши (щелчок колесом)
4: четвертая кнопка мыши (описана как Button4 в настройках управления)
5: пятая кнопка мыши (описана как Button5 в настройках управления)
В теории кнопок может быть и больше, но за этим обращайтесь к настройкам управления
Приведу пример...
/cast [button:2,target=player] Arcane Intellect; [help] Arcane Intellect - применяем интеллект на себя если нажали на макрос правой кнопкой и на дружественную цель, если нет.
Что касается опции [target=unit] то она означает, что вы применяете спелл на unit. В качестве unit могут быть:
player - это вы сами
target - ваша текущая цель
targettarget - цель вашей цели
none - нулевая цель
Дополнительные типы целей можно узнать на http://www.wowwiki.com/UnitId
Тут стоит заметить, что в любом макросе по умолчанию target=target. Это значит, что макросы
/cast [help] Arcane Intellect
и
/cast [target=target,help] Arcane Intellect имеют совершенно одинаковый эффект
Приведу примеры использования
/cast [help] Flash Heal; [target=targettarget] Flash Heal - мы лечим либо цель, если она дружественна нам, либо мы лечим цель нашей цели (очень полезно пристам, помогающим бить боссов - можно щелкнув этим скриптом и выбрав босса, подлечить танка)
/cast [help, combat] Flash Heal; [help, nocombat] Greater Heal; [target=targettarget, help, combat] Flash Heal; [target=player] Greater Heal - у этого макроса 4 функции. Для начала , если наша цель дружелюбна то мы лечим ее флэшхилом (если мы в бою) либо грейтерхилом (если мы не в бою). Если цель недружелюбная, то мы лечим флешхилом цель нашей цели. Ну и наконец, если не получилось, то мы лечим себя. Как видите можно запихнуть 4 действия в одну строку. А мы ведь даже не использовали [button:X]!
/cast [target=none] Dispel Magic - после применения этого макроса мы перейдем в режим выбора цели, на которую необходимо применить диспел.

Надеюсь, вы поняли, как работает /cast. Но, порой его возможностей недостаточно. Тогда нам поможет совершенно новая команда /castsequence

/castsequence

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

А если спелл был скастован неудачно? Например. мы прервали его, или он был на кулдауне! Что тогда?
Тогда при следущем нажатии будет пытатся скастован этот же самый спелл. И так пока он не скастуется удачно.

Ну а если скастовали удачно, а сам спелл получился неудачно? Резист например?
А это уже не важно. /castsequence обращает внимание только на факт каста.

Приведу пример
/castsequence Frost Nova, Blink - сначала используем фрост нову, а затем блинк. Заметьте, что в последовательности спеллы разделяются запятой

Это все хорошо, а если я случайно применю макрос вне боя?
Можно использовать те же опции что и для /cast. Но здесь их можно задать ТОЛЬКО для всей последовательности. Например
/castsequence [combat] Frost Nova, Blink

Это отлично, а если я передумаю и не захочу использовать блинк. Как тогда?
Для таких случаев придумана отличная штука, ресет. Ресет объявляется после опций, но перед спеллами. Приведу пример
/castsequence [combat] reset=24 Frost Nova, Blink - таким образом через 24 секунды последовательность снова начнется сначала

Не понял, тоесть через 24 секунды все, ресет?
Ну не совсем уж всё. Ресет случится только если за эти 24 секунды мы ни разу больше не трогали этот макрос.

Это все хорошо, но я варлок!
Ну и славно. Варлокам часто приходится поддерживать на враге 3 дота. Почему бы не организовать этот процесс?
/castsequence Curse of Agony, Corruption, Immolate

Отлично, но если цель сдохнет пока я докастую все это богатство?
Ресет это не обязательно время. Можно указывать другие условия. Например
/castsequence reset=combat/target Curse of Agony, Corruption, Immolate - combat означает, что когда меняется состояние "в бою/ не в бою", последовательность сбрасывается. А target указывает, что последовательность нужно сбросить, когда ты сменил цель (например надоело мучить определенную цель и ты реши помучить другую)

Это всё хорошо... но я хочу и сам сбрасывать последовательность - это можно сделать?
Да, можно использовать модификаторы. Например
/castsequence reset=combat/target/shift Curse of Agony, Corruption, Immolate - теперь если нажать на макросе с зажатым шифтом, последовательность сбросится и ты скастанешь Curse of Agony!

Ранки

Ранки - вполне простая вещи. Если мы используем макрос вида
/cast Arcane Intellect(rank 1) то мы всегда будем применять интеллект первого уровня. Если опустить указание ранка, то будет применен наивысший уровень спелла.
Однако здесь есть одна тонкость. Есть такие заклинания, у которых все немного не так. Приведу пример
/cast Faerie Fire (Feral)(rank 2) - так мы кастуем феральный фэри фаер второго ранка. Но:
/cast Faerie Fire (Feral) - такой макрос работать не будет. Дело в том, что игра подумает. что вы пытаетесь указать Feral как ранк. Правильно написать так:
/cast Faerie Fire (Feral)() - вот теперь все отлично. Можно использовать пустые скобки и для других спеллов, но не забывайте что для макроса выделяется только 255 знаков!

Запланированные действия

Весьма больная тема. Тут следует понять, что ВЕСЬ макрос пытается выполнится мгновенно. Если он сложный, игра может зависнуть пока он пытается пропихнуть себя. Таким образом если мы пишем макрос вроде
/cast Polymorph
/p Sheeping %t...
То ваш персонаж сообщит об овцевании одновременно с началом каста. Если вы хотите , чтобы макрос выполнял какие-то действия с задержкой, пользуйтесь командой /in <время> <слеш-команда>. Однако вы сможете только ставить в качестве команд разговорные (/s, /rw, /p и т д), эмоции (/sleep, /kneel и т д) или команды, относящиеся к вашим аддонам. Запланировать несколько кастов с помощью /in невозможно!

Помимо этого, можно использовать команду /aftercast. Она ставится перед кастом и срабатывает после того, как вы завершили этот каст. Работает она также, как /in и имеет такие же ограничения. Пример:
/aftercast /p I've sheeped %t!
/cast Polymorph - здесь наш персонаж сообщает об овцевании уже после каста.

Много кастов и глобальный кулдаун

Тоже хитрая тема. Как уже упоминалось, макрос выполняется мгновенно. Тоесть если вы напишете чудо вроде
/cast Overpower
/cast Execute
/cast Mortal Strike
/cast Sunder Armor
то ничего у вас не выйдет. Провалится попытка выполнить Overpower, а затем игра заблокирует дальнейшее выполнение макроса, мотивируя глобальным кулдауном (хотя его на самом деле нет). Здесь обмануть игру не выйдет.

Однако есть старый приём под названием /stopcasting, который прерывает каст. После него никакого кулдауна быть не может, так что игру можно попытатся здесь провести. Но только если вы прерываете каст мгновенного спелла, которое не начинает глобальный кулдаун!
/cast Arcane Power
/stopcasting
/cast Presence of Mind
/stopcasting
/cast Pyroblast
Как видите мы прерываем 2 мгновенных спелла. На самом деле прерватьих нельзя, такчто у них есть шансы пройти.

Предметы

На макрос можно повесить использование предметов. Это делается командой /use. Самое банальное вы можете сделать так
/use Green Mechanostrider - таким образом если у вас есть это чудо, то ввсё будет нормально. Как и все прочие макрокоманды, /use легко сочетается с опциями
/use [nocombat,outdoors] Green Mechanostrider
Впрочем не только этим мы живы...

/use InvSlotId

Если после /use вы указываете одно число, то игра решит что вы пытаетесь применить что-то из экипировки. Вот как игра трактует числа:
0 - боеприпасы
1 - голова
2 - шея
3 - плечи
4 - рубашка
5 - тело
6 - пояс
7 - ноги
8 - ботинки
9 - наручи
10 - перчатки
11 - кольцо 1
12 - кольцо 2
13 - тринкет 1
14 - тринкет 2
15 - плащ
16 - главная рука
17 - вторая рука
18 - стрелковое оружие
19 - табарда
20 - первая сумка (самая правая)
21 - вторая сумка
22 - третья сумка
23 - четвертая сумка (самая левая)
следущие номера пройдут только если вы находитесь в банке
от 40 до 67 - слоты в банке
от 68 до 74 - слоты для сумок в банке

/use сумка слот

Если вы указываете 2 номера после /use то вы применяете предмет в сумке. Сумки имеют номера от 0 (ваша главная сумка) до 4 (самая левая сумка). Нумерация слотов идет слева направо, сверху вниз и всегда начинается на самом верхнем ряду.

Ну а теперь небольшой сюрприз: /use может кастовать спеллы, а /cast - применять предметы! Это особенно полезно в /castsequence макросах, когда вам потребуется чередовать предметы с заклинаниями. Добавьте сюда ваши знания опций и вы теперь можете составлять отличные макросы!

Прицеливание

Как вам уже известно [target=X] при выполнении команды, позволит вам менять вашу цель для комманды. Но для полноценного прицеливания сделана полноценная команда /target. Опять же, здесь можно пойти напрямую
/target Cog - выделит ближайшего к вам Cog-а. Однако тут есть заметка. Если никакого Cog-а рядом нет, она выделит ближайшую к вам цель, независимо от того, кто это будет (да хоть труп). Такчто аккуратнее с такими макросами.

В качестве параметра можно указывать и UnitID. Некоторые я уже рассказывал (вроде target, none, player и т д), теперь приведу еще некоторые возможные варианты...
focus - цель вашего фокуса. Это новая возможность в макросах 2.х и про нее я расскажу подробнее позже
pet - ваш пет
partyX - Х-й член вашей команды
partypetX - пет Х-й члена вашей команды
raidX - Х-й член вашего рейда. Первый человек в первой группе рейда имеет индекс 1, а 5-й в 8-й группе имеет индекс 40.
raidpetX - пет Х-й члена вашего рейда
target - как я уже и говорил, ваша цель. Особо продвинутые макросописатели знают, что это не всегда так и это можно обойти с помощью некоторых функций. Однако о продвинутом макросописании как-нибудь в следущий раз.
playertarget - ваша цель. Обязательно ваша цель. Как видите она получена комбинированием player и target - о комбинациях я тоже расскажу.
mouseover - цель, на которую вы показываете мышкой (не выделяете а именно показываете!). Если такой нет, то будет использована последняя цель на которую вы показывали.
npc - нпц, с которым вы на данный момент взаимодействуете (также используется в автоматизированных макросах например для взаимодействия с торговцами)

Заметка: эти определения легко комбинируются между собой. Например partypet3targettargettarget означает цель цели цели пета 3-го члена вашей группы. Вот только такие ужасы строить не советую, потомучто у вас будут сильные тормоза по ходу выполнения макроса.

Прочие команды прицеливания

/assist - аналогичен targettarget, или нажатию кнопки F. Может только применятся с выделенным дружественным юнитом или если вы указываете имя (например /assist Cog). Учтите если цель вашей цели враждебна вам то вы автоматически войдете в режим боя!
/cleartarget - сброс вашей цели
/targetlasttarget - выбирает последнюю вашу цель
/targetenemy, /targetfriend - эти команды по нажатию выбирают между врагами/друзьями. Тоесть /targetenemy аналогично нажатию TAB, а /targetfriend - нажатию CTRL-TAB. Перечисление можно инвертировать добавив после команды 1 (тоесть /targetenemy 1 работает как SHIFT-TAB)
Заметка - любую из этих команду можно использовать только 1 раз за весь макрос.
/targetparty, /targetraid - то же самое но для группы и, соответственно, рейда. Опять же, параметр 1 позволяет инвертировать последовательность.

Фокус

Фокус - новинка в макросах 2.х. По сути командой /focus можно "запомнить" какую-либо цель, а потом обращатся к ней через /target focus ну или [target=focus]. К фокусу нужно привыкнуть, но потом он станет полезным.

А как снять этот фокус?
/focus [taget=none]

А как проверить, есть ли у меня фокус
Использовать в комманде опцию [taget=focus, exists] - это условие будет положительно только если у вас есть фокус.

Чтобы понять смысл фокуса, разберем такой макрос:
/focus [target=focus, noexists] [target=focus, dead] [target=focus, help]
/stopmacro [target=focus, noexists]
/cast [target=focus] Polymorph
В первой строке мы фокусируемся на цели, если одно из трёх условий верно: 1) У нас нет фокуса, 2) Наш фокус мертв, 3) Наш фокус дружелюбный.
Во второй строке мы прерываем макрос, если фокус поставить не удалось (noexists)
И в третьей строке мы кастуем полиморф на фокус. Суть в том, что после этого мы можем выделить любую цель, но нажатие на этот макрос всегда будет овцевать сфокусированную цель (пока она не умрёт, не пропадет или вы не очистите фокус)

Порой требуется поменять фокус и цель местами. Делается это так:
/cleartarget [target=target, dead]
/clearfocus [target=focus, dead]
/target focus
/cleartarget [target=focus, noexists]
/targetlasttarget
/focus target
/targetlasttarget
Первый две команды очищают фокус и цель, если они мертвы - зачем целится в мертвецов? Затем мы целимся в фокус и очищаем цель, если фокус оказался пустой или неверный. Затем мы возвращаем цель на место командой /targetlasttarget, выбираем фокусом нашу цель и снова меняем нашу цель командой /targetlasttarget.

Пет и как им управлять

Использовать заклинания пета можно через обычный /cast. Но у пета есть некоторые свои команды...
/petattack, /petfollow, /petstay, /petpassive, /petdefensive и /petaggressive - эти команды по сути относятся к кнопкам управления петом. Также есть команды /petautocaston спелл и /petautocastoff спелл, с помощью которых можно включать/выключать автокаст петом определенных спеллов.

Внешний вид макроса

Возьмем следущий макрос
/cast Arcane Power
/stopcasting
/cast Presence of Mind
/stopcasting
/cast Pyroblast
Он своей кнопкой на экшнбаре будет отображать состояние Arcane Power. А если нам больше интересно состояние пиробласта? Тогда в начале макроса надо написать #show Pyroblast. Тогда макрос будет иметь такойже "кулдаун" как и пиробласт. И если вы указали в качестве иконки знак вопроса, то макрос будет отображать иконку пиробласта. Также не всем нравится что при наводке мышкой на макрос отображается не информация о спелле а только название макроса. Чтобы это преодолеть, необходимо написать в начале #showtooltip Pyroblast - таким образом при наводке мы увидим стандартный тултип пиробласта.

Экипировка

Конечно, вы можете экипироватся командой /use. Но правильнее делать это командой /equip <предмет>. Кроме того, можно использовать команду /equipslot <предмет> для экипировки предмета в слот. Слоты я уже когдато расписывал. Для деэкипировки можно использовать /unequip и /unequipslot соответственно. Пример:
/equipslot 14 Carrot on a Stick - так мы поместим тринкет в нижний слот.

Изменения в макросах после 2.2

Итак обзор изменений, которые мы увидим в макросах с патчем 2.2.0

- Теперь можно использовать более продвинутые опции для [modifier:X] . Помимо привычных shift, alt, ctrl добавились lshift, rshift, lctrl, rctrl, lalt, ralt, которые могут различать левые и правые шифты.
- Попытка переместить опцией цель спелла на несуществующую цель будет выдавать еррор при попытке каста. Это хорошо, так как раньше в таком случае спелл кастовался на текущую цель, что обычно заканчивалось бессмысленной потерей маны.
- Сильно переписана система динамического обновления макросов. Ожидается прирост скорости в 100 раз (по времени).
- Продвинутые макросописатели наверно порадуются тому, что имена предметов в скриптах теперь можно заменить на item:X , где Х - ид предмета. Что характерно, даже если у вас нет предмета в сумке, он будет выдернут из WDB-кэша (полезно при использовании функций вроде GetItemInfo("item:X") )
- При описании условий для исполнении макроса теперь используется только нижний регистр. Надписи вроде [Stance:1] работать больше не будут (нужно [stance:1] )
- В условие [modifier:X] добавлены еще несколько видов модифаеров. Это впрочем не очень интересно, впрочем все они должны писатся с большой буквы. Посетите форум кастомизации интерфейса для информации
- Все макросы отвечающие за "подъем" спеллов, оружия, спеллов петов и других макросов считаются "защищенными" во время боя.

Всем аддонописателям, если таковые у нас есть, следует подробнее ознакомится с изменениями, чтобы заранее подготовится к 2.2.0 . Изменения в основном включают изменения в работе с фреймами, впрочем они довольно серьезные чтобы аддоны пришлось поправлять.

 
EovenДата: Четверг, 28/02/2008, 16:43 | Сообщение # 12
Lord Of Unity Academy
Game info
Игровой ник: Eoven
Уровень: 53

Forum info
Группа: UNITY
Сообщений: 333
Репутация: 21
Награды: 0
Статус: Offline
Хочу спросить.. как в макросах реализовать задержку.. например на 5 секунд ??
Сколько я не пробывала.. у меня не получается ((


Аня aka Eoven
(..теперь в бессрочном отпуске)

"Помни, это всего лишь игра.."(©Fryda)
но, "WoW это одна из немногих игр где могут быть настоящие друзья.."(©Taniell)

 
ApparitionДата: Пятница, 29/02/2008, 01:08 | Сообщение # 13
Lord Of Unity
Game info
Игровой ник: Aportionis
Уровень: 70

Forum info
Группа: UNITY
Сообщений: 1138
Репутация: 37
Награды: 3
Статус: Offline
Quote (Talamaur)
Запланировать несколько кастов с помощью /in невозможно!

Quote (Talamaur)
Однако есть старый приём под названием /stopcasting, который прерывает каст. После него никакого кулдауна быть не может, так что игру можно попытатся здесь провести. Но только если вы прерываете каст мгновенного спелла, которое не начинает глобальный кулдаун!/cast Arcane Power/stopcasting/cast Presence of Mind/stopcasting/cast PyroblastКак видите мы прерываем 2 мгновенных спелла. На самом деле прерватьих нельзя, такчто у них есть шансы пройти.

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



В отпуске =)))
Apparition теперь я Aportionis NE Priest 70 lvl - нарик/химик 375/375,
Noitirappa Drainei Shaman 36+ lvl инжа/ювелирка 225/8 =)))


Сообщение отредактировал Apparition - Пятница, 29/02/2008, 01:09
 
EovenДата: Пятница, 29/02/2008, 02:32 | Сообщение # 14
Lord Of Unity Academy
Game info
Игровой ник: Eoven
Уровень: 53

Forum info
Группа: UNITY
Сообщений: 333
Репутация: 21
Награды: 0
Статус: Offline
Quote (Apparition)
мона тока делать несколько мгновенных подряд

я не про спелы с колл дауном... а просто про задержку между действиями .. там в 1секунду, 1 минуту и тд..
я думала есть какой-то встроеный таймер к которому можно привязывать ..ээ ..события
... но увы..

Apparition, всё, я поняла.. средствами макросов - невозможно (
пасиб)



Аня aka Eoven
(..теперь в бессрочном отпуске)

"Помни, это всего лишь игра.."(©Fryda)
но, "WoW это одна из немногих игр где могут быть настоящие друзья.."(©Taniell)

 
advokatДата: Пятница, 29/02/2008, 03:27 | Сообщение # 15
Lord Of The Unity Academy
Game info

Forum info
Группа: UNITY
Сообщений: 881
Репутация: 20
Награды: 0
Статус: Offline
сори за офтоп,но я знаю тока одного человека который может помочь,и имя ему XTREM!!! biggrin biggrin biggrin


 
Форум содружества UNITY » Это интерестно! » Полезные статьи » Макросы (Что такое макросы и с чем их едят)
  • Страница 1 из 8
  • 1
  • 2
  • 3
  • 7
  • 8
  • »
Поиск:


Хостинг от uCoz