WORLD OF WARCRAFT

Тема: [Макросы]  (Прочитано 749344 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Girgon

  • Завсегдатай
  • **
  • Сообщений: 183
Re: Все, что вы хотели знать о макросах.
« Ответ #135 : 27 Мая, 2010, 11:00:31 »
  • Рейтинг:0 (+0 | 0)
Классический вариант, через симуляцию нажатия кнопки на панели. Соответственно, вызываемый макрос должен быть под этой кнопкой.

/click [button:<номер кнопки мыши>] <идентификатор кнопки на панели>


Идентификатор проще всего получить следующим макросом:

/run local f = GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end

Жамкаешь хоткеем, когда наводишь мышь на нужную кнопку. В чат получишь идентификатор.


Раньше был ещё способ вызова макроса через /script, но, насколько я помню, нужную функцию сделали защищённой и теперь её можно вызывать только из lua скриптов.

Shaii

  • Новичок
  • *
  • Сообщений: 10

  • Варкрафт: +
    • Имя: Алексей
Re: Все, что вы хотели знать о макросах.
« Ответ #136 : 03 Июня, 2010, 12:31:13 »
  • Рейтинг:0 (+0 | 0)
тут говорили насчет того что выбрать метку невозможно.

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

совсем дурацкий вопрос:
 есть такая функция - GetRaidTargetIndex("unit"). по идее она возвращает нам числовое значение метки на этом самом unit-е. но проблема в том чтобы как-то нам это поюзать и добиться выделения игрока с меткой) например, что-то такое:
1. для начала, пробежаться этой функцией по всему рейду;
2. затем, встретив возвращенное значение, равное, скажем, восьмерке (Череп), остановить этот пробег;
3. взять в таргет тот самый unit, для которого GetRaidTargetIndex вернула значение этой самой восьмерки.

мастера, можете что-нибудь сказать по поводу реализуемости данной схемы? ^^'

Girgon

  • Завсегдатай
  • **
  • Сообщений: 183
Re: Все, что вы хотели знать о макросах.
« Ответ #137 : 03 Июня, 2010, 13:58:26 »
  • Рейтинг:0 (+0 | 0)
Скрипт примерно такой:

for i = 1, GetNumRaidMembers() - 1 do
    local unit = “raid”..i
    if (UnitExists(unit) and GetRaidTargetIndex(unit) == 1) then
        <Какие-то действия>
        break;
    end
end


Осталось записать в одну строчку, впереди добавить /run. Сократить, если требуется, выкинуть проверки и заменить кол-во игроков в рейде константой.

Shaii

  • Новичок
  • *
  • Сообщений: 10

  • Варкрафт: +
    • Имя: Алексей
Re: Все, что вы хотели знать о макросах.
« Ответ #138 : 03 Июня, 2010, 14:23:11 »
  • Рейтинг:0 (+0 | 0)
мне одному это напоминает паскаль? оО
Скрипт примерно такой:

for i = 1, GetNumRaidMembers() - 1 do
    local unit = “raid”..i
    if (UnitExists(unit) and GetRaidTargetIndex(unit) == 1) then
        <Какие-то действия>
        break;
    end
end


Осталось записать в одну строчку, впереди добавить /run. Сократить, если требуется, выкинуть проверки и заменить кол-во игроков в рейде константой.

т.е. в панельке ввода макросов должно получиться что-то вроде (мы хотим пока только эмоцией указать на человека с нужной нам меткой(рейд 25ппл, совсем конкретно)):
/run for i = 1, 25 - 1 do local unit = “raid”..i if (UnitExists(unit)) and (GetRaidTargetIndex(unit) == 1) then /указать break; end end
верно? оО
« Последнее редактирование: 03 Июня, 2010, 14:43:22 by Shaii »

Girgon

  • Завсегдатай
  • **
  • Сообщений: 183
Re: Все, что вы хотели знать о макросах.
« Ответ #139 : 03 Июня, 2010, 14:50:38 »
  • Рейтинг:0 (+0 | 0)
Точку с запятой надо выкинуть, или макрос на ней споткнётся. Везде, где разделители лексем в избытке, их убираем.
/run for i=1,24 do local u=“raid”..i if(UnitExists(u)and GetRaidTargetIndex(u)==1)then <Какие-то действия> break end end

Всё в одну строчку, ессно.

Shaii

  • Новичок
  • *
  • Сообщений: 10

  • Варкрафт: +
    • Имя: Алексей
Re: Все, что вы хотели знать о макросах.
« Ответ #140 : 03 Июня, 2010, 14:56:31 »
  • Рейтинг:0 (+0 | 0)
а, точно)
а вот насчет <Каких-то действий>.
ведь после перебора член рейда, для которого GetRaidTargetIndex будет удовлетворять условию, останется в таргете? или нужно писать что-то вроде target=u?
и тогда если, например, тупо написать как у меня - /указать - оно сработает?

G3

  • Завсегдатай
  • **
  • Сообщений: 140
Re: Все, что вы хотели знать о макросах.
« Ответ #141 : 03 Июня, 2010, 15:11:57 »
  • Рейтинг:0 (+0 | 0)
Классический вариант, через симуляцию нажатия кнопки на панели. Соответственно, вызываемый макрос должен быть под этой кнопкой.

/click [button:<номер кнопки мыши>] <идентификатор кнопки на панели>


Идентификатор проще всего получить следующим макросом:

/run local f = GetMouseFocus(); if f then DEFAULT_CHAT_FRAME:AddMessage(f:GetName()) end

Жамкаешь хоткеем, когда наводишь мышь на нужную кнопку. В чат получишь идентификатор.
ооо ! спасибо большое. А то при использовании бартендера далеко не всегда получется поюзать идентификаторы, приведённые на воввики. Хотя часть и работает

ТШ [4. Поиск спутников][Тредикс]: В ИК25 требутся 2 хила, куча дд от 6к+. БоЕ шмот АНРОЛЛ !!!

Girgon

  • Завсегдатай
  • **
  • Сообщений: 183
Re: Все, что вы хотели знать о макросах.
« Ответ #142 : 03 Июня, 2010, 15:20:57 »
  • Рейтинг:0 (+0 | 0)
Хм, недоглядел. Если конечная цель макроса выбрать новый таргет по метке, то мы зря мучаемся :) Это невозможно.

Выбранная цель в момент перебора и после него не меняется. Переменная unit дальше команды /run использоваться не может. Использовать или запускать макрокоманды (типа /цель) внутри скрипта тоже нельзя. А скриптовые функции выбора цели запрещены Близзами ещё в БК.

Остаётся что-нибудь типа написать приватное сообщение. М.б. что-то ещё такое же безобидное.

Shaii

  • Новичок
  • *
  • Сообщений: 10

  • Варкрафт: +
    • Имя: Алексей
Re: Все, что вы хотели знать о макросах.
« Ответ #143 : 03 Июня, 2010, 15:26:59 »
  • Рейтинг:0 (+0 | 0)
чиорт!
это очень и очень печально(((
но все равно спасибо за помощь, немножко еще разобрался с синтаксисом скриптов

ЗЫ Черт >.<

Volk

  • Новичок
  • *
  • Сообщений: 26
Re: Все, что вы хотели знать о макросах.
« Ответ #144 : 03 Июня, 2010, 15:51:49 »
  • Рейтинг:0 (+0 | 0)
Народ, подскажите, может ли быть такой макрос, при использовании которого в таргет берётся метка (череп, крест. пр.), которую расставляет во время файта наш РЛ?
Вчера очень актуально было в бою с Леди ХМ, одни говорили, что якобы такой макрос имеет право на существование, другие спорили, что такой макрос в принципе невозможен. Что скажут компетентные люди?

Foe

  • Старожил
  • ***
  • Сообщений: 1232
  • Hey ho.
Re: Все, что вы хотели знать о макросах.
« Ответ #145 : 03 Июня, 2010, 16:45:16 »
  • Рейтинг:0 (+0 | 0)
Такой макрос в принципе невозможен.


p.s. на будущее - если бы вы просмотрели хотя бы последние 2 страницы, увидели бы точно такой же пост -_-
« Последнее редактирование: 03 Июня, 2010, 16:47:18 by Foe »

Shaii

  • Новичок
  • *
  • Сообщений: 10

  • Варкрафт: +
    • Имя: Алексей
Re: Все, что вы хотели знать о макросах.
« Ответ #146 : 03 Июня, 2010, 17:36:07 »
  • Рейтинг:0 (+0 | 0)
дадад, Volk, чуть выше твоего поста я как раз и пытался спросить совета как-бы такое организовать) и там же ответ почему его нельзя сделать)

Димонофф

  • Завсегдатай
  • **
  • Сообщений: 164
Re: Все, что вы хотели знать о макросах.
« Ответ #147 : 03 Июня, 2010, 20:17:22 »
  • Рейтинг:0 (+0 | 0)
Кто помнит макрос на определение среднего уровня шмота

Volk

  • Новичок
  • *
  • Сообщений: 26
Re: Все, что вы хотели знать о макросах.
« Ответ #148 : 04 Июня, 2010, 01:59:02 »
  • Рейтинг:0 (+0 | 0)
Такой вот макрос для элема...
#showtooltip
/script UIErrorsFrame:UnregisterEvent("UI_ERROR_MESSAGE");
/cast Покорение стихий
/use 13
/startattack
/castsequence reset=8 Выброс лавы,Цепная молния,Молния,Молния,Цепная молния,Молния

Жизнеспособно?
« Последнее редактирование: 04 Июня, 2010, 02:04:11 by Volk »

Hanomi

  • Завсегдатай
  • **
  • Сообщений: 921
Re: Все, что вы хотели знать о макросах.
« Ответ #149 : 04 Июня, 2010, 10:41:00 »
  • Рейтинг:0 (+0 | 0)
ооо ! спасибо большое. А то при использовании бартендера далеко не всегда получется поюзать идентификаторы, приведённые на воввики. Хотя часть и работает
это проблемаособеннасть бартендера, он кроме "настоящих" кнопак использует и свои дополнительные фэйковые :]

 

закрыть