Jump to content
abeliq

Поиск и вопросы по макросам

Recommended Posts

Ищу 2 макроса:
 1. Тыкаешь 2 раза на бинд: первый- кушаешь, второй- пьешь. Макрос примерно с такой конструкцией:

 

/script for i=1,30 do  d = UnitBuff("player", i)  if d then if string.find(d, "INV_Misc_Fork&Knife") then   food = 1 end if string.find(d,"INV_Drink_07") then water = 1 end end end if (food == 1) then UseContainerItem(0,1) elseif not (food == 1) then UseContainerItem(0,2) end if (water == 1) then UseContainerItem(0,2)  elseif not (water == 1) then UseContainerItem(0,1) end

 

Также желательно, чтобы обращение было не через UseContainerItem, чтобы не следить за слотами сумок.

ps: (0,1)- вода. (0,2)- еда. "INV_Misc_Fork&Knife"- иконка "Food". "INV_Drink_07"- иконка "Drink".

 

2.  Тыкаешь- включаетсяотключается автокаст абилки у пета.

Edited by listener

Share this post


Link to post
Share on other sites

Супермакро

/юс иф нот бафед вотер зен юс вотер

/юс иф нот бффед фуд зен юс фуд

Share this post


Link to post
Share on other sites

Подскажите как написать макрос:

Левой кнопкой хавает еду, правой создаёт. Для мага.

Share this post


Link to post
Share on other sites

Ну например как-то так, нужен аддон SuperMacro из-за команды use(), можно её заменить на юз конкретного слота в конкретной сумке.

/script this:SetScript("OnClick", function() if arg1=="LeftButton" then use("Conjured Sweet Roll") elseif arg1=="RightButton" then CastSpellByName("Conjure Food") end end)

p.s. ты стопудово с ностальриуса какого-то, да?

Edited by shuraken007

Share this post


Link to post
Share on other sites

Ну например как-то так, нужен аддон SuperMacro из-за команды use(), можно её заменить на юз конкретного слота в конкретной сумке.

/script this:SetScript("OnClick", function() if arg1=="LeftButton" then use("Conjured Sweet Roll") elseif arg1=="RightButton" then CastSpellByName("Conjure Food") end end)

p.s. ты стопудово с ностальриуса какого-то, да?

Да Бро. Именно с него.

Классный сервер, я сам с оффа.

http://eu.battle.net/wow/ru/character/%D1%87%D0%B5%D1%80%D0%BD%D1%8B%D0%B8-%D1%88%D1%80%D0%B0%D0%BC/%D0%94%D1%8D%D0%BD/simple

За макрос огромное спасибо! Но, он не корректно работает. По правой создаёт еду. Но вот по левой, отказывается кушать =(

Аддон установил. Может его как-то нужно настроить?

Edited by Disman

Share this post


Link to post
Share on other sites

А у тебя еда как называется? "Conjured Sweet Roll"  если что - это жратва 6-го ранга, вставь своё название.

Share this post


Link to post
Share on other sites

Еда: Conjured Muffin

Вот так у меня:

/script this:SetScript("OnClick", function() if arg1=="LeftButton" then use("Conjured Muffin") elseif arg1=="RightButton" then CastSpellByName("Conjure Food") end end)

Не пашет. При нажатии левой, на макросе загорается подсветка краёв. При ещё одном нажатии левой, подсветка спадает. И т.д.

Еда в сумках лежит.

Изображение

Edited by Disman

Share this post


Link to post
Share on other sites

Попробуй в супермакро сделать макрос. у него значек на миникарте, или esc->supermacro

Share this post


Link to post
Share on other sites

Я даже не знаю в чем дело тогда, а точно - мне говорили у вас там патч какой-то стремный 1.4 что ли, там куча функций не поддерживается.

Попробуй UseContainerItem(1, 1)  это будет юзаться 1-й слот в 1-й сумке. Ну и выставь что тебе там надо.

Отдельно потестируй макросы /script UseContainerItem(1, 1) и /script use("Conjured Muffin")

по идее первый должен работать, а второй нет

Edited by shuraken007

Share this post


Link to post
Share on other sites

Сегодня ещё раз похимичил с макроссом, и он заработал. Нужно было делать перезагрузку игры...

 

/script this:SetScript("OnClick", function() if arg1=="LeftButton" then use("Conjured Water") elseif arg1=="RightButton" then CastSpellByName("Conjure Water") end end)

 

Ещё раз спасибо!

Edited by Disman

Share this post


Link to post
Share on other sites

А как сделать. Что бы на значке макроса отображалось количество стаков еды, а не значёк изготовления?

#showtooltip не пашет =(

 

И ещё, когда нажимаю на макрос не мышкой а биндом на клаве, то выскакивает ошибка. Как сделать что бы юзалось хавка и по левой кнопке и по бинду?

Edited by Disman

Share this post


Link to post
Share on other sites

#showtooltip на классике никогда не было, недавно как раз начал аналог делать - аддон

/script use("Conjured Water") if not lrclmacro then this:SetScript("OnClick", function() if arg1=="LeftButton" then use("Conjured Water") elseif arg1=="RightButton" then CastSpellByName("Conjure Water") end end) lrclmacro = 1 end

только в первый раз надо клацнуть на кнопку, а потом пользоваться можно, а то ошибку выдаст

Edited by shuraken007

Share this post


Link to post
Share on other sites

А можно как то запилить автоатаку? Что бы при касте атакующего спела автоматически включалась автоатака? 

Share this post


Link to post
Share on other sites

Да, можно, но лучше не надо, магов по айсармору будешь фигачить.

Share this post


Link to post
Share on other sites

Вроде как-то так. ATTACK_SLOT свой ставь.

/script ATTACK_SLOT = 4 if not IsCurrentAction(ATTACK_SLOT) then AttackTarget() end CastSpellByName("Frostbolt") 

Share this post


Link to post
Share on other sites

Вот, попросили - чтоб орало в чат при сапе, один раз юзается, дальше само спамит, запуск в супермакро. Спамит в чат BATTLEGROUND.

/script local f = CreateFrame("Frame", "sap", UIParent) f:RegisterEvent("PLAYER_AURAS_CHANGED") f:SetScript("OnEvent", function(event) if buffed("Sap") and not checkfg then SendChatMessage("А..меня сапнули", "BATTLEGROUND", "COMMON")  checkfg = 1 elseif checkfg == 1 and not buffed("Sap") then checkfg = nil end end )

лол, не работало с /run - заменил на /script, бред какой-то

Edited by shuraken007

Share this post


Link to post
Share on other sites

Да лень было из-за 300 символов аддон делать.

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

 

controls = {"hammer", "repentance"} - тут в кавычках виды контроля вписываются - наводите на дебаф - смотрите как называется. Я прост что на пале было, на том тестил. Можно там polimorf seduct и т д вписать. Может кому пригодиться, удаляю у себя за ненадобностью. Delay - мин задержка с которой звук проигрывать, ща 5 сек.

/script DELAY = 5 controls = {"hammer", "repentance"} function cu() if not lastt then lastt = GetTime() - DELAY - 1 end if UnitName("target") then for i = 1, getn(controls) do if buffed(controls[i], "target") then if GetTime() - lastt > DELAY then PlaySound("RaidWarning") lastt = GetTime() end end end end end/script control_frame = CreateFrame("frame") control_frame:SetScript("OnUpdate", cu)
Edited by shuraken007

Share this post


Link to post
Share on other sites

Прошу помочь с написанием следующего макроса, к примеру берем паловский скил - blessing of freedom. 

Все в одном макросе:

Если в таргете я-фридом на меня

Если в таргете дружественная цель-фридом на на неё

Если в таргете никого -фридом на меня

Если в таргете вражеская цель-фридом на меня.

Share this post


Link to post
Share on other sites

autoselfcastdlaslabakov

перевод: в настройках поставить галочку "auto-self cast"  

а ну ты иди сюда мать твою...

Share this post


Link to post
Share on other sites

поставь аддон супермакро 

https://elysium-project.org/forum/index.php?showtopic=16970&page=2#entry219112

там правда небольшой уклон для англоязычного клиента - я учитываю что за спеллом может быть (Rank №)

string.find(spellName .. '(Rank ' .. spellRank .. ')', spell)

так что поменяй - как там оно на рус клиенте в спеллбуке с рангом пишется всмысле (Ранг ) или (Уровень )  - хз

 

 

ну вот так - каст иммолейта, если на противнике дебаф, то шедо болт

/script local rotation = {"Immolate","Shadow Bolt"} if not FindInBook then function FindInBook(spell) local i = 1 local SPELLNUM = nil while true do local spellName, spellRank = GetSpellName(i, BOOKTYPE_SPELL) if not spellName then break end if string.find(spellName .. '(Rank ' .. spellRank .. ')', spell) then SPELLNUM = i end i = i + 1 end return SPELLNUM end end if not FindInBar then function FindInBar(spell) local lActionSlot for lActionSlot = 1, 120 do GameTooltip:SetOwner(GameTooltip, "ANCHOR_NONE") GameTooltip:SetAction(lActionSlot) result = "" leftline = getglobal("GameTooltipTextLeft"..1):GetText() or "" rightline = getglobal("GameTooltipTextRight"..1):IsVisible() if rightline then rightline = getglobal("GameTooltipTextRight"..1):GetText() end result = leftline if rightline and string.find(rightline, "Rank") then rightline = "("..rightline..")" result = result..rightline elseif rightline and leftline ~= "" then result = result.." "..rightline end if string.find(result, spell) then return lActionSlot end GameTooltip:Hide() GameTooltip:ClearLines() end return nil end end if not cd then cd = {} for i = 1, getn(rotation) do cd[i] = {} cd[i].name = rotation[i] cd[i].spellnum = FindInBook(cd[i].name) cd[i].slot = FindInBar(cd[i].name) end end for i = 1, getn(cd) do start, duration = GetSpellCooldown(cd[i].spellnum, BOOKTYPE_SPELL) if duration ~= 0 then cd[i].cd = duration - GetTime() + start else cd[i].cd = 0 end end if buffed("Immolate", "target") then cd[1].cd = 10 end for i = 1, getn(cd) do if cd[i].cd == 0 and IsUsableAction(cd[i].slot) then cast(cd[i].name) break end end

т.е. первый по приоритету Immolate, второй Shadow Bolt

и приписка в конце

if buffed("Immolate", "target") then cd[1].cd = 10 end

которая означает, что если на нашей цели дебаф от иммолейта, то мы ставим кулдаун для 1-го спелла из списка(иммолейт), поэтому он пропустится и скастится шедоболт

 

Да да, это все можно написать в две строчки, но с этим макросом можно последовательность из 20-ти спеллов сделать за пару минут(и проверка на возможность каста адекватная). Так сказать поппуляризирую, ибо 80% вопросов по макросам именно на эту тему.

 

(Еще раз логика макроса - кастим то, что можно первым скастить из списка, ежели нам что-то кастить не надо - то по условию в конце перед последним циклом for..end ставим условия, дабы кд насильно повесить, к слову сказать если надо проверить баф на себе, то вместо "target" "player")

Edited by shuraken007

Share this post


Link to post
Share on other sites

Можно ли для прикола осуществить такой макрос на удаление предметов из инвентаря, чтобы работал по принципу распыления/просеивания/измельчения: жмешь кнопку с макросом, наводишь курсор на ячейку в сумке, жмешь лкм и предмет удаляется (без подтверждения)?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×