tunecx 3 Report post Posted February 11, 2015 Да, но факт что это уже не дотянется до магов и друлей, кто собственно и декурсят, просто ищу какой то логический трюк. к тому же макрос таргетит петов.думаю все таки после проСкана ближайших врагов загонять их в Array и потом их ужн проверять на дистанцию. весь то тормоз наступает из-за перебора врагов и если делать это пореже, явно разгрузит клиент. Тогда уже может получать и фильтровать врагов из списка учасников на бг, скажем там 4 кастера из 10, после каста давать отсрочку на выбор этой же цели на 1 гкд.. 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 12, 2015 (edited) Я делал себе макрос, на скан всего и вся вокруг, перебором TargetByName с генерированием строк "aaa" - "zzz", даже умудрялся составлять список петов. Фриз эдак на секунду+ идет. Можно это налепить на аддон, и делать не сразу, а во времени. Но там надо продумать всё, чтобы твои касты спеллов не сбивались никуда. В случайно новый таргет. Как вариант, переписать под себя функции CastSpellByName и тому подобные. Edited February 12, 2015 by shuraken007 0 Share this post Link to post Share on other sites
tunecx 3 Report post Posted February 12, 2015 (edited) на счет владельца Curse, на самом деле можно сканить комбат лог за последние 3 секунды ( между тиками) cкачал книгу про программинг для вов, пару гайдов, почитаю в оффлайне. Edited February 12, 2015 by tunecx 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 12, 2015 (edited) World of Warcraft Programming (2nd Edition).pdf ? оно 2010-го что ли года, там малость врут, а точнее там много чего нового. И версия Lua , и команд дохренища других. А вот первого издания, как я ни старался не нашёл. p.s. что в комбат логе пишет когда курс вешаешь? Edited February 12, 2015 by shuraken007 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 12, 2015 Osiris62ruтам в начале макроса sp="Mind BLast" я мог в названии ошибиться - там регистр букв даже имеет значение. если фраза Mind Blast встретится - то будет номер, если в буке Mind blast уже не найдет. 0 Share this post Link to post Share on other sites
tunecx 3 Report post Posted February 13, 2015 пишит Afflicted by Curse of , но так как на враге хватит и 1 курса языков, главное делать различие между твоим дот-курсом и курсом чужого лока. даже если курс абсорбит все равно можно это увидеть в логе. ( + какой то аддон на время) 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 13, 2015 (edited) А если не ты повесил? Что будет писаться? Edited February 13, 2015 by shuraken007 0 Share this post Link to post Share on other sites
tunecx 3 Report post Posted February 15, 2015 (edited) ну resisted будет.хочу из аддона AttackBar достать время до окончания свинга, что бы взвесить вероятность вбухиванья рейджа в героик перед сменой стойки, когда реджа у тебя больше 25. где мне вытащить returnпока копаюсь, нашел нужные функции, но с Math func я слабо знаком:-----эдит---в ЛУА148 линия функции Abar_event(event) врубает ивентом попадания функцию (106)Abar_selfhit(), где аддон достаёт данные по урону и скоростипотом ведутся какие то манипуляции с числами math.abs math.mod -----эдит 2----- мне надо нынешнюю скорость спарава что на картинке ----эдит 3----- точно даун, заметил что таймер в { } cкобках, поискал в документе и нашел нужню строчку... все оказалось легче чем я думал. Attack bar.rar Edited February 15, 2015 by tunecx 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 15, 2015 Я эту атак бар покоцал - у меня полосочка в пару сантиметров, на которой время, минимализм так сказать) 0 Share this post Link to post Share on other sites
tunecx 3 Report post Posted February 16, 2015 (edited) я так и не получил ни чего полезного, непоредстенно из фрейма для MainHand какие то левые числа вылетают(у меня 2.7 скорость а он разнос в 2.8 по 3.1+ показывает) GetTime() + скорость свинга, ресетится при каждом ударе. если бы знал что быстро сам напишу уже сделал, но уже чувствую сколько надо будет сидеть и разбирать азы. вроде все понятно ивент попадания, промаха вырубает функцию и запоминает отметку во времени и складывет со скоростю пушки в момент каждого свинга.. как он это потом визуалищирует, я не особо понял. Edited February 16, 2015 by tunecx 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 16, 2015 (edited) 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 February 16, 2015 by shuraken007 1 Share this post Link to post Share on other sites
tunecx 3 Report post Posted February 16, 2015 (edited) Ок спс, проверю. А есть какой нибудь теплейт, простой фрейм который можно вставить в аддон и тестить результаты. графический или "дигитальный"? кароче я про, мои баги со скоростью из-за того что я бил летающих мышей в плагах, которые.. кидают замедление свинга и получал тупые результаты, хотя ответ был написан у меня перед носом. у меня менялась скорость свинга в разных сочитания слоу(-25%) и фларри (+30%) [3.37] [2.70] [2.59] [2.08] Edited February 16, 2015 by tunecx 1 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 16, 2015 А чем тя не устраивает стандартный вывод? /script msg = Abar_Mhr.et-GetTime()) - (math.mod((Abar_Mhr.et-GetTime()),.01) DEFAULT_CHAT_FRAME:AddMessage(msg) 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 16, 2015 (edited) хм.. а эти все бафы с дебафами разве не учитываются атак баром? Думал входят в UnitAttackSpeed. Хотя парри не учитывается к примеру. Edited February 16, 2015 by shuraken007 0 Share this post Link to post Share on other sites
tunecx 3 Report post Posted February 17, 2015 А чем тя не устраивает стандартный вывод? /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 происходит удар, после следует задержка. 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted February 17, 2015 Не нашёл я в коде, ничего палящего изменение времени. Надо вручную где-нить дописать, что если скорость вдруг изменилась, т.е. текущее значение не совпадает с предыдущим, то тогда сдвинуть позиции в баре минмакса, или текущего ползунка SetMinMaxValues() SetValue() 0 Share this post Link to post Share on other sites
Proba 6 Report post Posted March 13, 2015 Пожалуйста напишите макрос на каст по моусоверу,на каст по таргету и хил! И макрос на каст вандом,чтобы при спаме не отменялся каст. Очень прошу... 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted March 14, 2015 (edited) ну попробуй /script if not IsAutoRepeatAction(slot) then CastSpellByName("Shoot") end вместо slot - номер слота где стоит этот макрос, нумерация от 1 до 120 у них. про "каст по моусоверу,на каст по таргету и хил" не понял что ты хочешь Edited March 14, 2015 by shuraken007 0 Share this post Link to post Share on other sites
Proba 6 Report post Posted March 14, 2015 ну попробуй /script if not IsAutoRepeatAction(slot) then CastSpellByName("Shoot") end вместо slot - номер слота где стоит этот макрос, нумерация от 1 до 120 у них. про "каст по моусоверу,на каст по таргету и хил" не понял что ты хочешь ооо ) огромное спасибо, работает! аж приятней качаться стало. Мне надо макрос наподобие #showtooltip /cast [target=mouseover] дота ... 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted March 14, 2015 (edited) /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 March 17, 2015 by shuraken007 0 Share this post Link to post Share on other sites
asdfz 0 Report post Posted March 23, 2015 (edited) Пользую макрос для вара для чарджа из любой стойки: /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 March 23, 2015 by asdfz 0 Share this post Link to post Share on other sites
asdfz 0 Report post Posted March 23, 2015 (edited) При использовании выдает следующую ошибку: Error: `then' expected near `?String: if UnitAffectingCombat("player")then CastShapeShiftF?..Count: 1 Edited March 23, 2015 by asdfz 0 Share this post Link to post Share on other sites
shuraken007 345 Report post Posted March 23, 2015 (edited) Там пробелов просто не хватает между словами, к примеру ...)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 March 23, 2015 by shuraken007 0 Share this post Link to post Share on other sites
childchild 36 Report post Posted March 26, 2015 Всем доброго времени суток. Есть вопрос по супермакро. Речь пойдет о макросе смены оружия. Уже давно пользовался двумя примитивными макросами: /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] все нормально работает. Что же это такое? Это изза запятой? Название слишком длинное? Ошибки в написании быть не может, так как название копируется с помощью шифт клика. В общем, ищу совета бывалых варов, в чем тут дело? Может, мне попался бракованный меч? 0 Share this post Link to post Share on other sites
Shaf 6 Report post Posted March 26, 2015 Всем доброго времени суток. Есть вопрос по супермакро. Речь пойдет о макросе смены оружия. Уже давно пользовался двумя примитивными макросами: /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Попробуй так, на тестовом проверил правда 4 Share this post Link to post Share on other sites