Jump to content
abeliq

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

Recommended Posts

  Да, но факт что это уже не дотянется до магов и друлей, кто собственно и декурсят, просто ищу какой то логический трюк. к тому же макрос таргетит петов.думаю все таки после проСкана ближайших врагов загонять их в Array и потом их ужн проверять на дистанцию. весь то тормоз наступает из-за перебора врагов и если делать это пореже, явно разгрузит клиент. Тогда уже может получать и фильтровать врагов из списка учасников на бг, скажем там 4 кастера из 10, после каста давать отсрочку на выбор этой же цели на 1 гкд..

Share this post


Link to post
Share on other sites

Я делал себе макрос, на скан всего и вся вокруг, перебором TargetByName с генерированием строк "aaa" - "zzz", даже умудрялся составлять список петов.

Фриз эдак на секунду+ идет.

Можно это налепить на аддон, и делать не сразу, а во времени.

Но там надо продумать всё, чтобы твои касты спеллов не сбивались никуда. В случайно новый таргет.

Как вариант, переписать под себя функции CastSpellByName  и тому подобные.

Edited by shuraken007

Share this post


Link to post
Share on other sites

на счет владельца Curse, на самом деле можно сканить комбат лог за последние 3 секунды ( между тиками)

cкачал книгу про программинг для вов, пару гайдов, почитаю в оффлайне.

Edited by tunecx

Share this post


Link to post
Share on other sites

World of Warcraft Programming (2nd Edition).pdf   ?

оно 2010-го что ли года, там малость врут, а точнее там много чего нового. И версия Lua , и команд дохренища других.

А вот первого издания, как я ни старался не нашёл.

 

p.s. что в комбат логе пишет когда курс вешаешь? 

Edited by shuraken007

Share this post


Link to post
Share on other sites
Osiris62ru

там в начале макроса sp="Mind BLast"

я мог в названии ошибиться - там регистр букв даже имеет значение.

если фраза Mind Blast встретится - то будет номер, если в буке Mind blast  уже не найдет.

Share this post


Link to post
Share on other sites

пишит Afflicted by Curse of , но так как на враге хватит и 1 курса языков, главное делать различие между твоим дот-курсом и курсом чужого лока. даже если курс абсорбит все равно можно это увидеть в логе. ( + какой то аддон на время)

post-30884-0-77051200-1423816392_thumb.jpg

Share this post


Link to post
Share on other sites

ну resisted будет.хочу из аддона AttackBar достать время до окончания свинга, что бы взвесить вероятность вбухиванья рейджа в героик перед сменой стойки, когда реджа у тебя больше 25. где мне вытащить returnпока копаюсь, нашел нужные функции, но  с Math func я слабо знаком:-----эдит---в ЛУА148 линия функции Abar_event(event) врубает ивентом попадания функцию (106)Abar_selfhit(), где аддон достаёт данные по урону и скоростипотом ведутся какие то манипуляции с числами math.abs math.mod

-----эдит 2-----

мне надо нынешнюю скорость спарава что на картинке

post-30884-0-05028500-1424013278_thumb.jpg

----эдит 3-----

точно даун, заметил что таймер в { } cкобках, поискал в документе и нашел нужню строчку...

все оказалось легче чем я думал.

Attack bar.rar

Edited by tunecx

Share this post


Link to post
Share on other sites

Я эту атак бар покоцал - у меня полосочка в пару сантиметров, на которой время, минимализм так сказать)

Share this post


Link to post
Share on other sites

я так и не получил ни чего полезного, непоредстенно из фрейма для MainHand какие то левые числа вылетают(у меня 2.7 скорость а он разнос в 2.8 по 3.1+ показывает) GetTime() + скорость свинга, ресетится при каждом ударе.

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

вроде все понятно ивент попадания, промаха вырубает функцию и запоминает отметку во времени и складывет со скоростю пушки в момент каждого свинга.. как он это потом визуалищирует, я не особо понял.

Edited by tunecx

Share this post


Link to post
Share on other sites

Abar_Mhr.et-GetTime()) - (math.mod((Abar_Mhr.et-GetTime()),.01)

вот твоё время оставшееся

для оффхенды

Abar_Oh.et-GetTime()) - (math.mod((Abar_Oh.et-GetTime()),.01)

 

смотри lua файл function Abar_Update() её 6 строчка

и xml файл строка 159

<StatusBar name="Abar_Mhr" inherits="AbarBar" parent="UIParent"/>
<StatusBar name="Abar_Oh" inherits="AbarBar" parent="UIParent"/>
Edited by shuraken007

Share this post


Link to post
Share on other sites

Ок спс, проверю.

А есть какой нибудь теплейт, простой фрейм который можно вставить в аддон и тестить результаты. графический или "дигитальный"?

кароче :D я про, мои баги со скоростью из-за того что я бил летающих мышей в плагах, которые.. кидают замедление свинга и получал тупые результаты, хотя ответ был написан у меня перед носом. у меня менялась скорость свинга в разных сочитания слоу(-25%) и фларри (+30%)

[3.37] [2.70] [2.59] [2.08]

Edited by tunecx

Share this post


Link to post
Share on other sites

А чем тя не устраивает стандартный вывод?

/script msg = Abar_Mhr.et-GetTime()) - (math.mod((Abar_Mhr.et-GetTime()),.01) DEFAULT_CHAT_FRAME:AddMessage(msg)

Share this post


Link to post
Share on other sites

хм.. а эти все бафы с дебафами разве не учитываются атак баром? Думал входят в UnitAttackSpeed.

Хотя парри не учитывается к примеру.

Edited by shuraken007

Share this post


Link to post
Share on other sites

А чем тя не устраивает стандартный вывод?

/script msg = Abar_Mhr.et-GetTime()) - (math.mod((Abar_Mhr.et-GetTime()),.01) DEFAULT_CHAT_FRAME:AddMessage(msg)

Да я так и сделал, изначально сделал. и все +- окей, но я наблюдаю пару интересных моментов:

1.когда тебе дают замедление свинга, бар ресетиться или даже ты не заканчиваешь удар(хз)

2.по крайней мере с 2умя пухами свинг таймер дает 2.7 (моя скорость) до -0.8, хотя к 0 происходит удар, после следует задержка.

Share this post


Link to post
Share on other sites

Не нашёл я в коде, ничего палящего изменение времени. Надо вручную где-нить дописать, что если скорость вдруг изменилась, т.е. текущее значение не совпадает с предыдущим, то тогда сдвинуть позиции в баре минмакса, или текущего ползунка

SetMinMaxValues()

SetValue()

Share this post


Link to post
Share on other sites

Пожалуйста напишите макрос на каст по моусоверу,на каст по таргету и хил! И макрос на каст вандом,чтобы при спаме не отменялся каст. Очень прошу...

Share this post


Link to post
Share on other sites

ну попробуй

/script if not IsAutoRepeatAction(slot) then CastSpellByName("Shoot") end 

вместо slot - номер слота где стоит этот макрос, нумерация от 1 до 120 у них.

 

про "каст по моусоверу,на каст по таргету и хил"

не понял что ты хочешь

Edited by shuraken007

Share this post


Link to post
Share on other sites

ну попробуй

/script if not IsAutoRepeatAction(slot) then CastSpellByName("Shoot") end 

вместо slot - номер слота где стоит этот макрос, нумерация от 1 до 120 у них.

 

про "каст по моусоверу,на каст по таргету и хил"

не понял что ты хочешь

ооо ) огромное спасибо, работает! :) аж приятней качаться стало. Мне надо макрос наподобие 

#showtooltip

/cast [target=mouseover] дота ...

Share this post


Link to post
Share on other sites
/script if UnitName("mouseover") then TargetUnit("mouseover") CastSpellByName("Fireball") TargetLastTarget() end

не сбивая текущей цели будет каст будет идти в того, над кем мышка

 

шоутултипа тут нету, можно наверняка сделать аналог, но я ещё не докопался

 

update: версия с проверкой адекватности овермауса

запускать в аддоне супермакро, как ни пытался оптимизировать, меньше 277 символов не выходило

/script local num, spell, u, save, c = 2 ,"Fireball","mouseover", UnitName("target"), nil if UnitName(u) and not UnitIsFriend(u, "player") and not UnitIsDead(u) then TargetUnit(u) if IsActionInRange(num) == 1 then CastSpellByName(spell) c=1 end  if save ~= UnitName(u) then TargetLastTarget() end end  if not c then CastSpellByName(spell) end

Где в начале самом надо задать имя спелла, вместо "Fireball" что-нить

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

 

update - терь ещё автоатака по второму нажатию будет врубаться в таргет. По прошествию ATTACK_INTERVAL будет сброс, и внось будет каститься спелл 

/script local SLOT_SPELL = 30 local NAME_SPELL = "Fear" local ATTACK_SLOT = 25 local ATTACK_INTERVAL = 2 local u, save = "mouseover", UnitName("target") if not proba_iter then proba_iter = 0 end if not proba_lt then proba_lt = GetTime() - ATTACK_INTERVAL - 1 end if GetTime() - proba_lt > ATTACK_INTERVAL then proba_iter = 0 proba_lt = GetTime() end if proba_iter == 0 then if UnitName(u) and not UnitIsFriend(u, "player") and not UnitIsDead(u) then TargetUnit(u) if IsActionInRange(SLOT_SPELL) == 1 then CastSpellByName(NAME_SPELL) proba_iter = 1 proba_lt = GetTime() end  if save ~= UnitName(u) then TargetLastTarget() end end if proba_iter == 0  then CastSpellByName(NAME_SPELL) proba_iter = 1 proba_lt = GetTime() end elseif proba_iter == 1 then if not IsCurrentAction(ATTACK_SLOT) then AttackTarget() end proba_iter = 0 end
Edited by shuraken007

Share this post


Link to post
Share on other sites

Пользую макрос для вара для чарджа из любой стойки:

/script texture,name,isActive,isCastable = GetShapeshiftFormInfo(1); if isActive then CastSpellByName("Charge"); else CastSpellByName("Battle Stance()"); end;

 

Можно ли сюда впихнуть еще и интерцепт? Т.е приблизительно макрос выглядел бы так:

условие - бой/вне боя

если бой - проверка кд - проверка стойки - интерцепт

если вне боя - проверка кд - проверка стойки - чардж

 

Пока остановилась на этом варианте (путем модифицирования одного из макросов в теме):

 

/script C=CastSpellByName;if not UnitAffectingCombat("player") then C("Charge()");end/script C=CastSpellByName;if not UnitAffectingCombat("player") then C("Battle Stance()");end/script C=CastSpellByName;if UnitAffectingCombat("player") then C("Intercept()");end/script C=CastSpellByName;if UnitAffectingCombat("player") then C("Berserker Stance()");end

 

(Работает, конечно, уже только после взятия таланта Tactical Mastery, хехе)

 

Вопрос в следующем: как запихнуть его в супермакро? Пкм по иконке макроса - он работает. Но я совершенно не представляю, как выложить его на панель (

Edited by asdfz

Share this post


Link to post
Share on other sites

При использовании выдает следующую ошибку:

 

Error: `then' expected near `?String: if UnitAffectingCombat("player")then CastShapeShiftF?..Count: 1

Edited by asdfz

Share this post


Link to post
Share on other sites

Там пробелов просто не хватает между словами, к примеру ...)then   т.к. слитно, то фигня получается.

/run if UnitAffеctingCоmbаt("plауеr") thеn CаstShаpеShiftFоrm(3) CаstSpеllBуNаmе("Intеrcеpt") еlsе CаstShapеshiftFоrm(1) CаstSpеllBуNаmе("Chаrgе") end
Edited by shuraken007

Share this post


Link to post
Share on other sites

Всем доброго времени суток. Есть вопрос по супермакро. Речь пойдет о макросе смены оружия.

 

Уже давно пользовался двумя примитивными макросами:

/eq Bloodlord's Defender/eq Elementium Reinforced Bulwark/cast Defensive Stance

и

/eq draconic avenger/cast Battle Stance

Но недавно мне повезло найти вепон получше, и второй макросс пришлось переделать:

/eq Ashkandi, Greatsword of the Brotherhood/cast Battle Stance

Не работает. Стойка меняется, но оружие нет.

Очевидно, проблема в названии меча, так как с [Mining Pick] все нормально работает. Что же это такое?  Это изза запятой? Название слишком длинное?

Ошибки в написании быть не может, так как название копируется с помощью шифт клика.

 

В общем, ищу совета бывалых варов, в чем тут дело? Может, мне попался бракованный меч?

Share this post


Link to post
Share on other sites

Всем доброго времени суток. Есть вопрос по супермакро. Речь пойдет о макросе смены оружия.

 

Уже давно пользовался двумя примитивными макросами:

/eq Bloodlord's Defender/eq Elementium Reinforced Bulwark/cast Defensive Stance

и

/eq draconic avenger/cast Battle Stance

Но недавно мне повезло найти вепон получше, и второй макросс пришлось переделать:

/eq Ashkandi, Greatsword of the Brotherhood/cast Battle Stance

Не работает. Стойка меняется, но оружие нет.

Очевидно, проблема в названии меча, так как с [Mining Pick] все нормально работает. Что же это такое?  Это изза запятой? Название слишком длинное?

Ошибки в написании быть не может, так как название копируется с помощью шифт клика.

 

В общем, ищу совета бывалых варов, в чем тут дело? Может, мне попался бракованный меч?

/script use("Ashkandi, Greatsword of the Brotherhood");/cast Battle StanceПопробуй так, на тестовом проверил правда

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

×