Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
и это зря, когда свои спеллы отслеживаете, то лучше юзать "UNIT_SPELLCAST_SUCCEEDED" с проверкой плеера и спелла. намного шустрее будет. Это вроде уже от сервера зависит. Кто нибудь знает как сделать проверку спелла в скрипте с использованием ивентов UNIT_ENERGY/MANA/etc ? Возможно ли это вообще?
Сообщение # 2161 написано 23.03.2017 в 22:28
|
Кто нибудь знает как сделать проверку спелла в скрипте с использованием ивентов UNIT_ENERGY/MANA/etc ? Возможно ли это вообще? Чем тебе функция UnitPower не угодила, какая проверка и зачем ивент? Добавлено (24.03.2017, 01:10) Всем привет, нужна помощь в реализации автокика для комбат роги.Если цель в досягаемости способности Пинок и он не на кд, юзаем пинок в 0.3 до конца каста, если же Пинок в кд, кастуем Смертельный бросок в 0.9 до конца каста. Если цель вне досягаемости пинка юзаем Смертельный бросок в 0.9 до конца каста. Может кто помочь? пробуй Код function Auk( self, elapsed ) spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") finish = endTime/1000 - GetTime() enabled = GetSpellCooldown("Пинок") inRange = IsSpellInRange("Пинок", "target") if spell and enabled and inRange and interrupt == false and finish <= 0.3 then CastSpellByName("Пинок") elseif enabled ~= 0 or not inRange and finish <= 0.9 then CastSpellByName("Смертельный бросок") end end CreateFrame("Frame", "AukFrame") AukFrame:SetScript("OnUpdate", Auk)
Сообщение # 2162 написано 24.03.2017 в 01:10
|
ивент для реализации скрипта для чтобы ловить контроль, я играю на сервере где реализация анти сс возможна ТОЛЬКО через UNIT_ENERGY/MANA/etc есть рабочий скрипт, нужна проверка на то какой спелл юзается, чтобы ловить определенные спеллы, а не все подряд Код local f=CreateFrame("Frame","f") f:UnregisterEvent("UNIT_ENERGY") f:RegisterEvent("UNIT_ENERGY") f:SetScript("OnEvent", self, elapsed, function() cheat() end) local enabled = true local lastEnergy = 0 function cheat() if enabled then if (event == "UNIT_ENERGY") then if UnitPower("target") < lastEnergy and (UnitIsEnemy("player","target")) then CastSpellByName("Исчезновение") end lastEnergy = UnitPower("target") end end end скрипт на кик уже давно сделал, но все равно спасибо, твой протестирую мб лучше зайдет |
ивент для реализации скрипта для чтобы ловить контроль, я играю на сервере где реализация анти сс возможна ТОЛЬКО через UNIT_ENERGY/MANA/etc есть рабочий скрипт, нужна проверка на то какой спелл юзается, чтобы ловить определенные спеллы, а не все подряд Ну хорошо, сравнил ты что у мага например стало на 2к маны меньше после использования предположим фрост болта, дальше что? Скрипт все равно будет жать ваниш. Не очень мне понятно каким образом можно словить что-то определенное через такой ивент, скрипт просто будет жать ваниш при изменении ресурса, что бы это ни было и скорее всего у кого бы то ни было из врагов которые рядом. Ивенты которые приходят в голову по которым можно отследить спелы это UNIT_SPELLCAST_SUCCEEDED и COMBAT_LOG_EVENT_UNFILTERED но если они не работают, то остается проверка разницы ресурса, то есть если например было 15к маны к примеру а потом маг юзнул полиморф и у него осталось 13 к примеру, то разность (стоимость) полиморфа допустим 2к, если разность энергии будет составлять стоимость полиморфа то можно жать ваниш. Довольно топорно и не гарантирует что какой либо спелл не будет стоить столько же, но можно попробовать. Я конечно могу ошибаться, но это так, чисто мои мысли. |
Просьба к знатокам , помогите исправить данный скрипт , он работает не как надо , то-есть если взять в цель охотника и он даст Дезориентирующий выстрел , то Слово Тьмы: Смерть сработает , а если я буду держать в цели другого игрока , будь то напарник мой или же напарник врага , то проигнорирует . Код SWD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) SpellBase = {"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"} local cd = GetSpellCooldown("Слово Тьмы: Смерть") for v = 1,#SpellBase do local args = {arg1, arg2} if (arg1 == "target" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть") end elseif (arg1 == "focus" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть","focus") end elseif (arg1 == "arena1" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть","arena1") end elseif (arg1 == "arena2" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть","arena2") end elseif (arg1 == "arena3" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть","arena3") end elseif (arg1 == "arena4" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть","arena4") end elseif (arg1 == "arena5" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть","arena5") end end end end) Самое простое решение которое приходит в голову, будет работать или нет - не знаю) По крайней мере на арене должно работать, проверка таргета, фокуса, арена целей. Кстати, грубый прием дает обезьянка, а не твой таргет фокус и так далее, поэтому я не уверен что будет жаться швд на спел пета. |
кстати насчет отслеживания колонн ящиков и что цель находится за текстурой и тд,тут предлагался вариант через COMBAT_LOG_EVENT_UNFILTERED проверять ошибки когда спел не может быть скастован изза колонны или по другим причинам и потом блокировать этот спел на пару сек,но таким образом не сделать хороший срипт на арене,ибо любая попытка использывания спела будет вызывать гкд,а если целей много на которых надо раскидать дотки например афли лок,а цели две из 3 находятся за колоннами то до 3 цели очередь может и недойти вообще,
попробую расписать свой вариант ,может кому нить будет полезно смысл в том чтобы создать свою геодату для каждой арены,представим что колонна на арене это круг,заходим на арену подходим к этой колонне впритык и оббегаем ее вокруг вписываем координаты линий в массив,те получится окружность вписанная в многоугольник,а в массиве mas_line={{1,2},{7,8},{9,0},{30,10}} -- массив отрезков {1,2} ху первого отрезка 7,8 его окончание ,таким образом что у нас есть массив координат отрезков вокруг каждой колонны или ящика на аренах,координаты player,party1,party2 GetPlayerMapPosition("unit"),а теперь смотрим в цикле если есть пересечение отрезка playerx,playery....party1x,party1y с любым из отрезков в массиве то цель находится за текстурой и ее похилить нельзя function Intersection(ax1,ay2,ax2,ay2,bx1,by1,bx2,by2) v1:=(bx2-bx1)*(ay1-by1)-(by2-by1)*(ax1-bx1); v2:=(bx2-bx1)*(ay2-by1)-(by2-by1)*(ax2-bx1); v3:=(ax2-ax1)*(by1-ay1)-(ay2-ay1)*(bx1-ax1); v4:=(ax2-ax1)*(by2-ay1)-(ay2-ay1)*(bx2-ax1); if (v1*v2<0) and (v3*v4<0) then return true else return false end функция для определения пересечения отрезков ,таким образом мы всегда можем отпределить находится ли дружественная цель за текстурой,а не пытаться кастить спелл и получать гкд и не тратить время на каст, к сожалению в рамках скрипта можно сделать только с дружественными целями тк как GetPlayerMapPosition("unit") пашет толко с целяи в пати,чтобы сделать определение координат таргета арены1 и тд надо уже перебирать обьекты на экране в памяти процесса,кому интересно могу рассказать
Сообщение # 2167 написано 24.03.2017 в 13:21
|
Кто может написать скрипт на сбитие каста мага и седакт суккубы? сначала облик мишки далее чардж по фокусу. с меня +. За ранее спасибо! Код function Bear( self, elapsed ) spell, _, _, _, _, _, _, _, interrupt = UnitCastingInfo("focus") enabled = GetSpellCooldown("Лобовая атака") inRange = IsSpellInRange("Лобовая атака", "focus") if spell == "Соблазн" or spell == "Превращение" and enabled and inRange and interrupt == false then if not UnitBuff("player","Облик медведя") then CastSpellByName("Облик медведя") end CastSpellByName("Лобовая атака") end end CreateFrame("Frame", "BearFrame") BearFrame:SetScript("OnUpdate", Bear) Автоматически сбивает касты соблазн или превращение, при этом суккуба или маг обязательно должны быть у тебя в фокусе, вроде так ты хотел, если я понял задачу
Сообщение # 2168 написано 24.03.2017 в 15:52
|
Ну хорошо, сравнил ты что у мага например стало на 2к маны меньше после использования предположим фрост болта, дальше что? Скрипт все равно будет жать ваниш. Не очень мне понятно каким образом можно словить что-то определенное через такой ивент, скрипт просто будет жать ваниш при изменении ресурса, что бы это ни было и скорее всего у кого бы то ни было из врагов которые рядом. Ивенты которые приходят в голову по которым можно отследить спелы это UNIT_SPELLCAST_SUCCEEDED и COMBAT_LOG_EVENT_UNFILTERED но если они не работают, то остается проверка разницы ресурса, то есть если например было 15к маны к примеру а потом маг юзнул полиморф и у него осталось 13 к примеру, то разность (стоимость) полиморфа допустим 2к, если разность энергии будет составлять стоимость полиморфа то можно жать ваниш. Довольно топорно и не гарантирует что какой либо спелл не будет стоить столько же, но можно попробовать. Я конечно могу ошибаться, но это так, чисто мои мысли. правильно думаешь, ваниш кастоваться будет только от изменения юнитповера противника который в тартегете (UnitIsEnemy("player","target")), видимо остается только вычисление по стоимости спеллов. да с тем же успехом можно повесить и на onupdate lastunitenergy-UnitEnergy()==20, 20 стоимость блайнда в енергии lastenergy=UnitEnergy(); Код local f=CreateFrame("Frame","f") f:SetScript("OnUpdate", self, elapsed, function() cheat() end) local enabled = true local lastEnergy = 20 function cheat() if enabled then if UnitPower("target") == lastEnergy and (UnitIsEnemy("player","target")) then CastSpellByName("Исчезновение") end lastEnergy = UnitPower("target") end end так? не работает (
Сообщение # 2169 написано 24.03.2017 в 18:10
|
Цитата Valvedoto4254970ocal f=CreateFrame("Frame","f")
f:SetScript("OnUpdate", self, elapsed, function() cheat() end) local enabled = true local lastEnergy = 20 ----- ну и lastenergy у тебя постоянно будет 20,вынеси его в глобальные переменные function cheat() if enabled then if UnitPower("target") == lastEnergy and (UnitIsEnemy("player","target")) then --UnitPower("target") == lastEnergy ???у тебя написано кастить исчезновение когда енергия цели 20 CastSpellByName("Исчезновение") end lastEnergy = UnitPower("target") end end |
ивент для реализации скрипта для чтобы ловить контроль, я играю на сервере где реализация анти сс возможна ТОЛЬКО через UNIT_ENERGY/MANA/etc есть рабочий скрипт, нужна проверка на то какой спелл юзается, чтобы ловить определенные спеллы, а не все подряд похоже на бред. UNIT_ENERGYMANA/etc приходят позже UNIT_SPELLCAST_SUCCEEDED, ну про информативность и говорить не стоит. так нафига их юзать? кстати насчет отслеживания колонн ящиков и что цель находится за текстурой и тд,тут предлагался вариант через COMBAT_LOG_EVENT_UNFILTERED проверять ошибки когда спел не может быть скастован изза колонны или по другим причинам и потом блокировать этот спел на пару сек,но таким образом не сделать хороший срипт на арене,ибо любая попытка использывания спела будет вызывать гкд,а если целей много на которых надо раскидать дотки например афли лок,а цели две из 3 находятся за колоннами то до 3 цели очередь может и недойти вообще, даже в клиенте нету такой фигни, тупо запрос к серверу, по ошибкам реализовать можно легко(не через комбатлог), например, кастуешь в первую цель, ждешь ответа от сервера, если пришла ошибка, то цель перемещается в конец очереди и следующий каст идет в другого. все же просто, чуть медленнее в зависимости от пинга, но без сложных таблиц с расчетами. |
похоже на бред. UNIT_ENERGYMANA/etc приходят позже UNIT_SPELLCAST_SUCCEEDED, ну про информативность и говорить не стоит. так нафига их юзать? на ате (warmane) идет только UNIT_ENERGYMANA/etc ивенты и только после делея в ~0.1 sec идут ивенты UNIT_SPELLCAST_SUCCEEDED и прочее. Из - за этого делея в 0.1 сек скрипты по типу UNIT_SPELLCAST_SUCCEEDED/комбатлоганфильтред просто не успевают сработать.
Сообщение # 2172 написано 25.03.2017 в 11:25
|
даже в клиенте нету такой фигни, тупо запрос к серверу, по ошибкам реализовать можно легко(не через комбатлог), например, кастуешь в первую цель, ждешь ответа от сервера, если пришла ошибка, то цель перемещается в конец очереди и следующий каст идет в другого. все же просто, чуть медленнее в зависимости от пинга, но без сложных таблиц с расчетами. ага,только попытка этого каста вызывает гкд,скастил на арена1 вызвало ошибку,перешел к следующему опять ошибка,потерял 1 секунду из-за гкд,не очень ок,для простых скриптов может и сойдет блокировка по ошибке,но когда делаешь фул ротацию на 3 таргета под арену+ 2 таргета party1 party2,да еще твой чар не мелик а рдд или хил какой-нить то это весьма критично
Сообщение # 2173 написано 25.03.2017 в 13:06
|
даже в клиенте нету такой фигни, тупо запрос к серверу, по ошибкам реализовать можно легко(не через комбатлог), например, кастуешь в первую цель, ждешь ответа от сервера, если пришла ошибка, то цель перемещается в конец очереди и следующий каст идет в другого. все же просто, чуть медленнее в зависимости от пинга, но без сложных таблиц с расчетами. ага,только попытка этого каста вызывает гкд,скастил на арена1 вызвало ошибку,перешел к следующему опять ошибка,потерял 1 секунду из-за гкд,не очень ок,для простых скриптов может и сойдет блокировка по ошибке,но когда делаешь фул ротацию на 3 таргета под арену+ 2 таргета party1 party2,да еще твой чар не мелик а рдд или хил какой-нить то это весьма критично неудачная попытка каста не запускает гкд проблема в том, что на 3.3.5 в эвенте COMBAT_LOG_EVENT // "Target not in line of sight" в графе имя и гуид цели нули т.е. ошибку то поймать можно, но заносить в черный список целей в лосе некого надо как-то "запомнить" цель, к которой будет применяться каст, и при ошибке уже заносить ее в список и переходить к следующей |
на ате (warmane) идет только UNIT_ENERGYMANA/etc ивенты и только после делея в ~0.1 sec идут ивенты UNIT_SPELLCAST_SUCCEEDED и прочее. Из - за этого делея в 0.1 сек скрипты по типу UNIT_SPELLCAST_SUCCEEDED/комбатлоганфильтред просто не успевают сработать. 0.1 это нормально с пингом 100мс. или UNIT_ENERGY приходит с 0.1, а еще через 0.1 приходит UNIT_SPELLCAST_SUCCEEDED? зачем тада играть на таком сломаном сервере? ага,только попытка этого каста вызывает гкд,скастил на арена1 вызвало ошибку,перешел к следующему опять ошибка,потерял 1 секунду из-за гкд,не очень ок,для простых скриптов может и сойдет блокировка по ошибке,но когда делаешь фул ротацию на 3 таргета под арену+ 2 таргета party1 party2,да еще твой чар не мелик а рдд или хил какой-нить то это весьма критично если в клиенте абилка проходит проверку, то отправляет на сервер и тут же запускает гкд, если с сервера приходит ошибка, то гкд отменяется. то есть потеря каждой проверки с ошибкой равняется величине пинга. с пингом 100мс нужно 10 ошибок получить чтобы потерять 1сек.. ну ладно я понимаю если один столб обрисовать, но не все арены же? а как быть с Z-координатой? а как быть со столбами которые двигаются? плюс ко всему, если брать координаты юнита, нужно тоже учитывать что там он был пинг назад..
Сообщение # 2176 написано 25.03.2017 в 15:26
|
неудачная попытка каста не запускает гкд проблема в том, что на 3.3.5 в эвенте COMBAT_LOG_EVENT // "Target not in line of sight" в графе имя и гуид цели нули т.е. ошибку то поймать можно, но заносить в черный список целей в лосе некого надо как-то "запомнить" цель, к которой будет применяться каст, и при ошибке уже заносить ее в список и переходить к следующей попробую по-другому,если ты нажал на кнопку и попытался скастить спелл то в течении 0.3 -0.5 сек все остальные попытки скастить другой спелл будут неудачны,может быть не из-за гкд а по другой причине но это факт, если таких целей много и все они будут за текстурой то до нужной цели может и не дойти тк как будет 0.3+0.3+0.3 ,к этому есть время на которое блокируется таргет если он за текстурой,скажем это 1 сек, и не факт,это все будет потеря времени дамага контроля,вместо того чтобы скрипт кинул что нить полезное он будет тратить время по приоритету в скрипте перебирая таргеты 0.3 0.3 0.3 вместо того чтобы точно зная в кого что и когда кастить да и если ставить блок спелов при ошибке на target, то изза глюков серва пинга и тд получается что ошибка сработала, цель вышла изза колонны ,а скрипт тупо курит пару сек пока блок не пройдет проблема в том, что на 3.3.5 в эвенте COMBAT_LOG_EVENT // "Target not in line of sight" в графе имя и гуид цели нули не проблема ,тут можно запоминать последнее действие в скрипте в какую цель(target arena1 и тд) было последнее действие скрипта и если через скажем 0.1 сек появилась ошибка блочить с z координатой надо уже высчитывать пересечение отрезка с плоскостью,неудобно заносить такое в массив и долго считать,с отрезками удобнее намного,есть конечно аренки двууровневые или с ящиками,но она вроде всего 1,если делать с z,в wow api нет вроде по z,я делал так создавал переменную в аддоне например z=456352234,вообщем уникальное значение,дальше прогой из памяти вытаскивал z координату,искал в памяти 456352234 это уникальное значение в wow.exe ,записывал в адрес этой переменной координату z в цикле и уже можно было в скрипте аддоне чтото делать с ней а создать массив координат колонн ящиков достаточно быстро за часик можно на стычках все обьекты вписать |
Даже со скриптом касты по большей части не инстантны и легко прерываются повторным лосом за колонну, стоит ли вся эта возня, собственно, свечей? Километры кода, миллион проверок и прогонов по массивам не сделают этот скрипт особо шустрым, поэтому не вижу смысла в этом ,проще самому следить за положением своей цели/фокуса на арене)
Сообщение # 2178 написано 25.03.2017 в 17:29
|
Даже со скриптом касты по большей части не инстантны и легко прерываются повторным лосом за колонну, стоит ли вся эта возня, собственно, свечей? Километры кода, миллион проверок и прогонов по массивам не сделают этот скрипт особо шустрым, поэтому не вижу смысла в этом ,проще самому следить за положением своей цели/фокуса на арене) сейчас пытаюсь сделать проверку на нахождение цели за спиной или того что цель не может быть атакована из-за того цель находится позади вас, не придумать алгоритм когда даны две координаты игрока и цели и угол наклона игрока относительно севера Впринципе если сделаю,будет решена проблема с кастом спелов как дыхание дракона у мага где важна позиция игрока относительно цели чтобы спелл не уходил вникуда |
Сообщение # 2180 написано 25.03.2017 в 19:03
|
а не проще найти спеллы/спеллы итемов которые не вызывают гкд? например у дк хватка смерти одна из таких, но она с кулдауном и не годится. может снежками или кожанными мячиками запастись и кидатся в друг друга, чтоб узнать за текстами или нет?)) ну как вариант,но на арене то не будут вообще работать итемы мячики и тд,хватку пытаться скастить для проверки колонны тоже весьма сомнительно она может и сработать просто притянув ненужную цель,а так вообще да возможно в цикле пытаться скастить на каждый таргет этот спел ,результат ошибки заносить в таблицу,и потом уже смотреть какая цель в лосе какая нет,да и итем или спел должен быть такой чтобы не влиять на общее гкд ,кастица на арене и тд
Сообщение # 2181 написано 25.03.2017 в 19:16
|
Код /run if (not UnitBuff("target", "Защита от страха")) and (not UnitBuff("target", "Плащ Теней")) and (not UnitBuff("target", "Сдерживание")) and (not UnitBuff("target", "Антимагический панцирь")) then RunMacroText("/cast Ментальный крик")end Ребята выручайте вот скрипт который блокирует фир , если на противнике следующие бафы , работает чуток не правильно , если я держу в таргете цель ту которая применяет магию допустим рога юзнул кош , то фир блокируется это хорошо , но если я держу в таргете себя или напа фир проходит все ровно , помогите исправить . |
Ребята выручайте вот скрипт который блокирует фир , если на противнике следующие бафы , работает чуток не правильно , если я держу в таргете цель ту которая применяет магию допустим рога юзнул кош , то фир блокируется это хорошо , но если я держу в таргете себя или напа фир проходит все ровно , помогите исправить . Концепция макроса "на все случаи жизни" это конечно здорово, но я лично вижу 2 варианта Вариант 1 Ты фокусишь цель в которую намерен выдавать контроли и фиряешь ее по кд скриптом Код if not UnitBuff("focus", "Защита от страха") and not UnitBuff("focus", "Плащ Теней") and not UnitBuff("focus", "Сдерживание") and not UnitBuff("focus", "Антимагический панцирь") then CastSpellByName("Ментальный крик") end В принципе этот вариант неплох, но имеет недостатки, например если на фокусе будет фирвард, а тебе надо фирнуть сразу двоих, (они стоят вплотную друг к другу) то макрос не сработает. Так же если в фокусе быдлоинвизер то фокус будет спадать (это и касается любителей покайтить вроде магов прыгунов и хантеров, при увеличении дистанции фокус слетает) в принципе это лечится двумя отдельными биндами на первом просто фир, на второй расширенный со скриптом, либо через модифер Вариант 2 Код local buffbase = {"Защита от страха","Плащ Теней","Сдерживание","Антимагический панцирь","Божественный щит","Ледяная глыба","Ярость берсерка"} local objbase = {"arena1","arena2","arena3","arena4","arena5"} for i=1,#objbase do for j=1,#buffbase do if not UnitBuff(objbase[i],buffbase[j]) and IsSpellInRange("Ментальный крик",objbase[i]) then CastSpellByName("Ментальный крик") end end end Я не знаю, будет ли это работать, но суть примерно такая: идет перебор в 2 циклах всех арена фреймов на заданные баффы в массиве, если совпадения на указанные баффы нет, то идет фир. Минусы в том что цикл схлопнется после первого срабатывания, то есть на какой то определенный арена фрейм нет привязки, ты то конечно в любом случае кого-то фирнешь, но не того кого надо, тоесть если скажем на arena1 есть фир вард, то цикл пропустит этот фрейм, но если на arena2 нет ничего то фир все равно кастанется, поэтому вариант с фокусом намного уместнее ибо тут дополнительно нужна проверка на расстояние от твоего персонажа до конечной цели, чтобы фир не разряжался куда попало, но я лично не видел такой функции поэтому предлагаю попробовать через функцию IsSpellInRange, хотя не уверен что она работает для спелов по области вроде ментального крика, в общем над вторым вариантом надо крепко думать и дорабатывать |
Есть подобное для офа по типу Yasb ? готов отдать бота с ключом но сам бот обновлялся в последний раз для дренора , А все сервера чита мертвы)
#WarlockForBugs Русская команда багеров
http://vk.com/warlockforbugs |
Добрый день знатоки , вот скрипт .
Код SWD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) SpellBase = {"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"} local cd = GetSpellCooldown("Слово Тьмы: Смерть") for v = 1,#SpellBase do local args = {arg1, arg2} if (arg1 == "target" and arg2 == SpellBase[v]) then if cd == 0 then CastSpellByName("Слово Тьмы: Смерть") end end end end) Кто поможет вставить в него следующие команды . /cancelaura Слово силы: Щит /cancelaura Божественное покровительство p/s всем добра , с меня спасибки .
Сообщение # 2188 написано 02.04.2017 в 08:13
|
Элементарно Код SWD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) SpellBase = {"Дезориентирующий выстрел","Грубый прием","Превращение","Покаяние","Ослепление","Ошеломление","Ненасытная стужа"} local cd = GetSpellCooldown("Слово Тьмы: Смерть") for v = 1,#SpellBase do local args = {arg1, arg2} if (arg1 == "target" and arg2 == SpellBase[v]) then if cd == 0 then if UnitBuff("player","Слово силы: Щит") then CancelUnitBuff("player","Слово силы: Щит"); elseif UnitBuff("player","Божественное покровительство") then CancelUnitBuff("player","Божественное покровительство"); end CastSpellByName("Слово Тьмы: Смерть") end end end end)
Сообщение # 2189 написано 02.04.2017 в 15:27
|
Это очень примитивно но возможно поможет просто сделай два макроса и используй макро геймер для одновременного нажатия
#WarlockForBugs Русская команда багеров
http://vk.com/warlockforbugs |
| |||