| Модератор форума: staford11 |
| Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
| Использование Lua скриптов. |
GaTaX, попробуйте:
Код if not (GetSpellCooldown("Зимний горн")) then
Сообщение # 1801 написано 02.07.2016 в 11:46
|
function Reflekt(self, elapsed) if not (GetSpellCooldown("Зимний горн")) then RunMacroText("/cast Зимний горн") end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) Так вообще не работает. |
GaTaX, function Reflekt(self, elapsed) if not GetSpellCooldown("Зимний горн") then CastSpellByName("Зимний горн") end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) function Reflekt(self, elapsed) if not GetSpellCooldown("player","Зимний горн") then CastSpellByName("Зимний горн") end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) Вот так работает, ноо... всеровно скилы при перемещении пропадают а лужу нельзя юзать...
Сообщение # 1804 написано 02.07.2016 в 12:56
|
Ребята, подскажите пожалуйста работающий аддон на 3.3.5а (circle x5) для увеличения количества символов в макросах. Весь день искала, так и не нашла.
Говорят нужно что-то переименовать в super duper macro, чтобы он работал, но вот что?
Сообщение # 1806 написано 02.07.2016 в 21:40
|
на цирке начали банить за использование скриптов
http://forum.wowcircle.com/showthread.php?t=575657&p=5444730#post5444730 pqr кик они могут отследить? По идее pqr должен сам анализировать данные wow и уже потом выдавать команду на кик
Сообщение # 1807 написано 02.07.2016 в 22:20
|
могу только предположить что поиск слов типа runmacro spellcast и прочих в макросах или аддонах ,насчет того где сканируется в памяти процесса,или отслеживается запуск залоченых функций наврятли ,тк как были забанены кто не был в игре,скорее всего тупо поиск по сигнатурам макросов на стороне сервер
так что лучше чтобы в ваших макросах не было wowapi функций залоченых ,а для нажатия на кнопку пользуйтесь другими способами,и для получения какую кнопку нажать тоже:) |
могу только предположить что поиск слов типа runmacro spellcast и прочих в макросах или аддонах ,насчет того где сканируется в памяти процесса,или отслеживается запуск залоченых функций наврятли ,тк как были забанены кто не был в игре,скорее всего тупо поиск по сигнатурам макросов на стороне сервертак что лучше чтобы в ваших макросах не было wowapi функций залоченых ,а для нажатия на кнопку пользуйтесь другими способами,и для получения какую кнопку нажать тоже:) Уверен что 99% забаненых даже анлокера на компе никогда не имели, а просто копирнули макросы из интернета дабы проверить и столкнулись с ошибкой заблокированного LUA макроса да забили на этом. Кули, онлайн большой можно и побанить %) В общем прописываем в чат Код /console synchronizeMacros 0 но тут надо убедиться что после выхода из игры в файле настроек config.wtf оно прописалось как Код SET synchronizeMacros "0" Вообще сохранять макросы на персонаже изначально глупая идея, виноваты сами. Раньше ГМам было достаточно просто склонировать вашего "подозрительного" персонажа и просмотреть макросы, теперь ищут в базе данных по ключевым словам, все UnitCastingInfo и CastSpellByname для начала, далее будут искать все /run и /script со всем подозрительным содержимым макроса. Очевидно что надо либо прописать вышеуказанную команду или же биндить юз макросов SDM на клавишу, естественно нужно SDM переименовывать, т.е., например, пройтись прогой типа Folder Find Text, найти найти во всех файлах аддона все упоминания слова SuperDuper и заменить допустим на PuperTrooper, слова SMD заменить на BDSM или же просто поменять какое-то одно из слов в названии повсеместно даже на одну букву - такой способ поможет даже самым параноикам. Добавлено: Чтобы уж совсем наверняка, можно все три залепить в чате Код /console synchronizeConfig 0 /console synchronizeBindings 0 /console synchronizeMacros 0 либо в самом файле config.wtf Код SET synchronizeConfig "0" SET synchronizeBindings "0" SET synchronizeMacros "0" Пояснения: synchronizeMacros 0 отключит выгрузку макросов на сервер, разумеется это первое что нужно делать. synchronizeBindings 0 отключит выгрузку биндов на сервер допустим если забиндили ваш переименованный запрещенный аддон на клавишу то вполне может выгрузиться на сервер без этой настройки, админы прознают имена кнопок, а ведь авторы аддонов зачастую называют свои кнопки так что в них содержиться часть названия аддона или его аббревиатура. synchronizeConfig 0 отключит выгрузку данных из вашего файла config.wtf на случай если админы дойдут до тотального идиотизма и начнут банить тех кто укрывает свои макросы посредством строки SET synchronizeMacros "0" ВАЖНО! Нужно удалять все запрещенные макросы из макросов персонажа и аккаунта, однако это делать надо ПЕРЕД прописыванием вышеупомянутых команд, иначе ваши старания по чистке макросов не уйдут на сервер, сервер не узнает что вы удалили лишнее и вы рискуете остаться в зоне риска! Принудительно (до отключения выгрузки на сервер) выгрузить макросы на сервер можно через команду чата Код /script BackupMacros() или релогом. Добавлено: Для дренора вместо предыдущих команд прописывается одна Код /console synchronizeSettings 0 либо аналогично в файле config.wtf Код SET synchronizeSettings "0"
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
|
Очевидно что надо либо прописать вышеуказанную команду или же биндить юз макросов SDM на клавишу, естественно нужно SDM переименовывать, т.е. например пройтись прогой типа Folder Find Text, найти найти во всех файлах аддона все упоминания слова SuperDuper и заменить допустим на PuperTrooper, слова SMD заменить на BDSM, такой способ поможет даже самым параноикам.
lol а я думаю чего меня не забанили ))) (я юзал переделанный SDM) +PQR
Скайп Apokalipcic1
Сообщение # 1814 написано 04.07.2016 в 06:45
|
Подозреваю что ещё не поздно получить бан, у них уже сделана копия таблицы макросов на какую-то энную дату и, возможно, несколько копий на разные даты, для статистики для сравнения по тому сколько человек избавились от макросов, хотя наверняка и им могут бан прилепить в случае чего.
+ пока только 2 волны банов было, ожидаются ещё, на порции разбили. Опять же, если в макросах не хранилось ниодного /run или /script то шанс быть забаненым нулевой. Конечно можно стебануть написать "Привет админ CastSpellByName как слышно" что может тоже привести к бану в случае если у кого-то плохо с чувством юмора
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
|
Подозреваю что ещё не поздно получить бан, у них уже сделана копия таблицы макросов на какую-то энную дату и, возможно, несколько копий на разные даты, для статистики для сравнения по тому сколько человек избавились от макросов, хотя наверняка и им могут бан прилепить в случае чего.+ пока только 2 волны банов было, ожидаются ещё. Опять же, если в макросах не хранилось ниодного /run или /script то шанс быть забаненым нулевой. Конечно можно стебануть написать "Привет админ CastSpellByName как слышно" что может тоже привести к бану в случае если у кого-то плохо с чувством юмора
Скайп Apokalipcic1
Сообщение # 1816 написано 04.07.2016 в 06:54
|
Если организуют сканирование памяти на lua-функции, то будет плохо скриптерам) Только вот возможно ли такое организовать? Это наверное сильно нагрузит сервера, т.к придется обрабатывать каждого персонажа в режиме реального времени.
Сообщение # 1817 написано 04.07.2016 в 11:11
|
tobmaps, полностью согласен с тобой. у меня акк забанили, но там не одной плуа функции небыло и на нем я не юзал не унлокер, не пкр, а это значит что он даже такую простую хрень несмог без ошибок написать.
хотя, возможно что это тактический ход, чтоб не юзали сейф макро на сервере, ну и бабло с нубасов срубить заодно, когда те побегут за донат разбаниватся.
Сообщение # 1818 написано 04.07.2016 в 12:10
|
Да все можно юзать, нельзя только в макросах держать скрипты.
Вот разбанили самого известного скриптера., он даже стримит, у него только чат закрыт на стриме http://forum.wowcircle.com/showthread.php?t=576188 Добавлено (06.07.2016, 11:28) Код local Spell, _, _, _, _, endTime = UnitCastingInfo("target") local name = UnitName("targettarget") local myname = UnitName("player") local enabled = GetSpellCooldown("Заморозка разума") local inRange = IsSpellInRange("Заморозка разума", "target") if Spell == ("Превращение") then if name == myname then local finish = endTime/1000 - GetTime() if finish <= 0.2 then if enabled == 1 then end return true end end end пробовал вместо if enabled == 1 then end if enabled == 1 then return false end Но он делает амс все равно. ДЛя себя пока нашел выход такой, кик сбитие на 0,4, амс на 0.2
Сообщение # 1820 написано 06.07.2016 в 11:28
|
тебе чтобы после кика не прожималась и зеленка надо реализовать блокирование клавиш,дело в том что допустим у тебя зеленка и кик не на кд и оба могут быть заюзаны,сначала прожимается кик,и поидее зеленка не должна быть заюзана тк как кик уже сбил каст,в реале на серве все не так,
кик заюзался но для скрипта кик еще не сбил каст и поэтому юзается зеленка,те после юза кика надо делать блокировку юза зеленки скажем на 0.3 мс ну например так переписывать не буду скрипты сделаны под мою прогу если сработало условие на кик то в key пишем число например 6 пишем в конце скрипты if key==6 then --кнопка спела keyblock1=GetTime()+time_; end а в проверке на юз леленки дописываем условие (keyblock1-GetTime())<0 то юзаем зеленку
Сообщение # 1821 написано 08.07.2016 в 11:09
|
Подскажите пожалуйсто, вот хочу сдлеать ПвЕ ротацию на длока, 3.3.5 чтоб сначало дал имолейт-поджог спам испепеления, прок беса-каст хаосболта, но хочу сам, помогите начать, как начать чтоб он в таргет вражеский кастанул имолейт и поддерживал его, т.е. обновлял за 1 сек до спада, функция какая нужно ли делать проверку на комбат? или еще что-то?
Сообщение # 1822 написано 08.07.2016 в 19:02
|
Подскажите пожалуйсто, вот хочу сдлеать ПвЕ ротацию на длока, 3.3.5 чтоб сначало дал имолейт-поджог спам испепеления, прок беса-каст хаосболта, но хочу сам, помогите начать, как начать чтоб он в таргет вражеский кастанул имолейт и поддерживал его, т.е. обновлял за 1 сек до спада, функция какая нужно ли делать проверку на комбат? или еще что-то? if type_=='dot' then type_='PLAYER|HARMFUL' end if type_=='hot' then type_='PLAYER|HELPFUL' end local name_,_,_,_,_,duration_,expirationTime_=UnitAura(target_,buff_,nil,type_); if name_==nil then return true end if (expirationTime_-GetTime()<basetime_ then return true end return false end if проверка на рейндж и проверка на возможность каста дотки и UpdateDot("баф от имолейта","target",1,"dot") then тыкнуть на имолейт end if UnitBuff("player","название бафа когда прокнул хаосболт") then тыкнуть на хаосбол end дальше примерно также проверка на комбат стандартная функция wowapi UnitAffectingCombat("player") |
тебе чтобы после кика не прожималась и зеленка надо реализовать блокирование клавиш,дело в том что допустим у тебя зеленка и кик не на кд и оба могут быть заюзаны,сначала прожимается кик,и поидее зеленка не должна быть заюзана тк как кик уже сбил каст,в реале на серве все не так, кик заюзался но для скрипта кик еще не сбил каст и поэтому юзается зеленка,те после юза кика надо делать блокировку юза зеленки скажем на 0.3 мс ну например так переписывать не буду скрипты сделаны под мою прогу если сработало условие на кик то в key пишем число например 6 пишем в конце скрипты if key==6 then --кнопка спела keyblock1=GetTime()+time_; end а в проверке на юз леленки дописываем условие (keyblock1-GetTime())<0 то юзаем зеленку все равно не понимаю как это реализовать в pqr Дело в том, что в pqr на каждый спел свой скрипт, там нету для 1го скрипты много спелов, ну или я не умею это реализовать. Если делать 2 спела, можно запихать их в ротацию по очереди(приоритет). Но кик юзается без гкд, соответственно способности применяются одновременно. Т.е. если даже записать условие в 1 спел и во второй, оно просто не успеет отработать, т.к. pqr будет юзать сразу 2 спела из-за того, что 1 из спелов не умеет гкд. Пока. все что мне пришло в голову, это юзать кик на 0,4 до конца каста, а АМС до 0.2 Нужна именно проверка условия на кд спела (кика)до срабатывания АМС. я это вижу пока только вводом переменной local enabled = GetSpellCooldown("Заморозка разума") и проверкой этой переменной на значение кд if enabled == 1 then end или if enabled == 1 then return false end Но почему-то не получается есть кстати где-нибудь документация по pqr языку ? -------------- Еще не получается сделать сбитие канального каст не мгновенно, а через время. Как то палевно очень. Пробовал так Код if Spell2 == ("Исповедь") or Spell2 == ("Пытка разума") or Spell2 == ("Контроль над разумом") or Spell2 == ("Канал здоровья") or Spell2 == ("Прилив сил") or Spell2 == ("") then local finish2 = endTime2/1000 - GetTime() if finish2 >= 0.4 then Но он все равно сбивает каст мгновенно |
у меня не pqr,сделать это в pqr без понятия,но идея такая что создаешь глабальную переменную в нее записываешь каждое нажатие на спел со временем его нажатия,а в других скриптах проверяешь условие что не истекло ли время последнего нажатия первого спела
так же можно реализовать проверку на текстуры,если спел допустим нажимается 4 раза подряд то цель за текстурой..
Сообщение # 1825 написано 09.07.2016 в 11:44
|
ясненько, но поидее в pqr можно просто сделать условие на проверку кд. если кик не на кд, то и не надо юзать АМС.
А по поводу канальных кастов можешь подсказать с решением? ----------------------- нашел решение по канальным спелам local finish2 = endTime2/1000 - GetTime() if finish2 <= 1.3 then это для исповеди, если она кастуется 1,8 сек. Это ппц, надо на каждый спел делать отдельно проверку на время. сделаю только на исповедь и прилив сил пока. |
extrimlol,
Дело в том, что в pqr на каждый спел свой скрипт, там нету для 1го скрипты много спелов, ну или я не умею это реализовать. Пишешь после каждого условия CastSpellByName либо RunMacro, в строке для спела в pqr ставишь 0. Т.е. если даже записать условие в 1 спел и во второй, оно просто не успеет отработать, т.к. pqr будет юзать сразу 2 спела из-за того, что 1 из спелов не умеет гкд. Можно записать в условие на амс добавить условие что кик на кд либо вне радиуса
Сообщение # 1827 написано 09.07.2016 в 13:48
|
скину свою функцию на сбитие каста писалось давно только lua изучал:)
function Interrupt(t) local s, _, _, _, sstart, tend = UnitCastingInfo(t); local s_channel, _, _, _, sstart_channel, tend_channel = UnitChannelInfo(t); local health = UnitHealth("player"); local max_health = UnitHealthMax("player"); local health_target = UnitHealth("target"); local max_health_target = UnitHealthMax("target"); local health_party1 = UnitHealth("party1"); local max_health_party1 = UnitHealthMax("party1"); local health_party2 = UnitHealth("party2"); local max_health_party2 = UnitHealthMax("party2"); local health_arena1 = UnitHealth("arena1"); local max_health_arena1 = UnitHealthMax("arena1"); local health_arena2 = UnitHealth("arena2"); local max_health_arena2 = UnitHealthMax("arena2"); local health_arena3 = UnitHealth("arena3"); local max_health_arena3 = UnitHealthMax("arena3"); local n=0; if (s=='Ледяная хватка' or s=='Спячка' or s=='Смерч' or s=='Гнев деревьев' or s=='Отпугивание зверя' or s=='Изгнание зла' or s=='Божественный свет' or s=='Вспышка Света' or s=='Страх' or s=='Стрела Хаоса' or s=='Блуждающий дух' or s=='Вой ужаса' or s=='Ненасытная стужа' or s=='Сглаз' or s=='Волна исцеления' or s=='Восстановление' or s=='Великая волна исцеления' or s=='Исцеляющий всплеск' or s=='Массовое рассеивание' or s=='Сожжение маны' or s=='Сковывание нежити' or s=='Быстрое исцеление' or s=='Великое исцеление' or s=='Взрыв разума' or s=='Прикосновение вампира' or s=='Ледяная стрела' or s=='Превращение' or s=='Окутывающий туман' or s=='Благотворный туман') and (UnitBuff(t,'Сила духа')==nil and UnitBuff(t,'Мастер аур')==nil and UnitBuff(t,'Длань защиты')==nil and UnitBuff(t,'Божественный щит')==nil and UnitBuff(t,'Внутреннее сосредоточение')==nil) then if (tend/1000 - GetTime())<0.8 and (GetTime() - sstart/1000)>0.7 then n=1; end end if s_channel and s_channel~='Шквал' and (UnitBuff(t,'Сила духа')==nil and UnitBuff(t,'Мастер аур')==nil and UnitBuff(t,'Длань защиты')==nil and UnitBuff(t,'Божественный щит')==nil and UnitBuff(t,'Внутреннее сосредоточение')==nil) then if (GetTime() - sstart_channel/1000)>0.6 then n=1; end end if health<max_health/1.2 or health_target<max_health_target/1.2 or health_party1<max_health_party1/1.2 or health_party2<max_health_party2/1.2 or health_arena1<max_health_arena1/1.2 or health_arena2<max_health_arena2/1.2 or health_arena3<max_health_arena3/1.2 then n=n; else n=0; end return n end Добавлено (10.07.2016, 01:52) --------------------------------------------- и еще парочку полезных если делать фул скрипт чтобы нажимать только самому тринку все функции под дренор но впринципе и под другие будут работать function SlowTarget(t) if UnitDebuff(t,'Вечная мерзлота') or UnitDebuff(t,'Ледяные оковы') or UnitDebuff(t,'Удар грома') or UnitDebuff(t,'Подрезать сухожилия') or UnitDebuff(t,'Кровавая баня') or UnitDebuff(t,'Тайфун') or UnitDebuff(t,'Зараженные раны') or UnitDebuff(t,'Пытка разума') or UnitDebuff(t,'Замедление') or UnitDebuff(t,'Взрывная волна') or UnitDebuff(t,'Воспламенение') or UnitDebuff(t,'Ледяная стрела') or UnitDebuff(t,'Стрела ледяного огня') or UnitDebuff(t,'Конус холода') or UnitDebuff(t,'Снежная буря') or UnitDebuff(t,'Ледяной шар') or UnitDebuff(t,'Вывести из строя') or UnitDebuff(t,'Удар бочонком') or UnitDebuff(t,'Ледяные боеприпасы') or UnitDebuff(t,'Контузящий выстрел') or UnitDebuff(t,'Ледяная ловушка') or UnitDebuff(t,'Тяжесть вины') or UnitDebuff(t,'Калечащий яд') or UnitDebuff(t,'Поджигание') or UnitDebuff(t,'Калечащий яд') or UnitDebuff(t,'Поджигание') or UnitDebuff(t,'Ледяной шок') or UnitDebuff(t,'Тотем оков земли') or UnitDebuff(t,'Эффект тотема оков земли') then return 1 else return 0 end end function ImmuneToSlow(t) if UnitBuff(t,'Стремительный бег') or UnitBuff(t,'Поступь смерти') or UnitBuff(t,'Длань свободы') or UnitBuff(t,'Приказ хозяина') or UnitBuff(t,'Слияние с Тьмой') or UnitBuff(t,'Оскверненная земля') or UnitBuff(t,'Вихрь клинков') or UnitBuff(t,'Тотем ветроступа') then return 1 else return 0 end end function GCDDone(spellName) local spellID = nil; if spellName == nil then spellID = 61304; end if spellID == nil then local spellID = GetSpellID(spellName); end local minValue = 0.05; local maxValue = 0.3; local curPing = tonumber((select(3, GetNetStats()) + select(4, GetNetStats())) / 1000) + .025; if curPing < minValue then curPing = minValue; elseif curPing > maxValue then curPing = maxValue; end if GetSpellCooldown(spellID) - curPing <= 0 then return 1; end return 0; end function NeedReshift(t) local currentSpeed, runSpeed, flightSpeed, swimSpeed = GetUnitSpeed("player"); if GetUnitName(t..'target')==GetUnitName('player') and (RootTarget("player")==1 or (runSpeed<9 and currentSpeed~=0)) and CheckMdd(t)=='mdd' and GetRange(t)<=5 then return true end return false end function NeedReshiftFeral(t) local currentSpeed, runSpeed, flightSpeed, swimSpeed = GetUnitSpeed("player"); local start_sr, cooldown_sr, n_sr = GetSpellCooldown('Стремительный рывок'); local s_cast = UnitCastingInfo("player"); if UnitPower("player",0)>=UnitPowerMax("player",0)/5 and UnitBuff("player",'Когти Ширваллы')=='Когти Ширваллы' and UnitDebuff("player",'Связующий выстрел')==nil and (start_sr+cooldown_sr-GetTime())<14 and (start_sr+cooldown_sr-GetTime())>1.5 and cooldown_sr~=0 and GetRange(t)>=8 and GetRange(t)<=80 and (runSpeed<=10 or RootTarget("player")==1) and (s("Мощное оглушение","arena3",5)==false and s("Мощное оглушение","arena2",5)==false and s("Мощное оглушение","arena1",5)==false) and s_cast==nil and ControlTime("player",0)==0 and GCDDone()==1 and (keyblock1-GetTime())<0 then return true end return false end function NeedSave(t) local hpmax=UnitHealthMax("player"); local hp = UnitHealth("player"); tdebuffsave_={'Вендетта','Удар колосса','Возгорание','Черная стрела'} tbuffsave_={'Безрассудство','Аватара','Парад планет','Перевоплощение: Король джунглей','Перевоплощение: Избранный Элуны','Берсерк','Мощь тайной магии','Стылая кровь','Звериный гнев','Быстрая стрельба','Череда убийств','Ледяной столп','Черная душа: Страдание','Черная душа: Знание','Черная душа: Изменчивость'} if hp<hpmax/3 and GetUnitName(t..'target')==GetUnitName('player') and ControlTime(t,1)==0 then return true end for i=1,#tdebuffsave_ do if UnitDebuff("player",tdebuffsave_) then return true end end if not UnitIsDeadOrGhost(t) and GetUnitName(t..'target')==GetUnitName('player') and ControlTime(t,1)==0 then for i=1,#tbuffsave_ do if UnitBuff(t,tbuffsave_) then return true end end end return false end Добавлено (10.07.2016, 01:53) --------------------------------------------- function DispelBuff(t) local rez_=0; for i=1,8 do local b,b1,b2,b3,b4=UnitBuff(t,i); if b and b4=='Magic' then rez_=1; break; end end return rez_ end function ImmuneDD(t) if UnitBuff(t,'Божественный щит') or UnitBuff(t,'Ледяная глыба') or UnitDebuff(t,'Смерч') or UnitBuff(t,'Сдерживание') or UnitIsDeadOrGhost(t) then return 1 else return 0 end end function ImmuneFiz(t) if UnitBuff(t,'Божественный щит') or UnitBuff(t,'Ледяная глыба') or UnitDebuff(t,'Смерч') or UnitBuff(t,'Сдерживание') or UnitBuff(t,'Длань защиты') or UnitBuff(t,'Развоплощение') or UnitIsDeadOrGhost(t) then return 1 else return 0 end end function TargetBurst(t) if UnitBuff(t,'Берсерк') or UnitBuff(t,'Древо Жизни') or UnitBuff(t,'Звездопад') or UnitBuff(t,'Стылая кровь') or UnitBuff(t,'Берсерк') or UnitBuff(t,'Путь огня') or UnitBuff(t,'Яркий путь огня') or UnitBuff(t,'Покорение стихий') or UnitBuff(t,'Смертельное спокойствие') or UnitBuff(t,'Внутренняя ярость') or UnitBuff(t,'Безрассудство') or UnitBuff(t,'Быстрая стрельба') or UnitBuff(t,'Зверь внутри') or UnitBuff(t,'Мастер скрытности') or UnitBuff(t,'Ледяной столп') or UnitBuff(t,'Защитник древних королей') or UnitBuff(t,'Гнев карателя') or UnitBuff(t,'Фанатизм') or UnitBuff(t,'Мастер аур') or UnitBuff(t,'Божественное одобрение') or UnitBuff(t,'Метаморфоза') or UnitBuff(t,'Душа демона') or UnitBuff(t,'Придание сил') or UnitBuff(t,'Темный архангел') then return 1 else return 0 end end function LowPrioritetDispel(t) if UnitBuff(t,'Длань свободы') then return 1 else return 0 end end function MustDispel(t) if UnitBuff(t,'Быстрота хищника') or UnitBuff(t,'Гнев карателя') or UnitBuff(t,'Длань жертвенности') or UnitBuff(t,'Душа демона:охотник Скверны') or UnitBuff(t,'Душа демона: охотник Скверны') then return 1 else return 0 end end function CheckMdd(t) local localizedClass_, englishClass_ = UnitClass(t); if localizedClass_~='Охотник' and localizedClass_~='Охотница' and UnitPowerMax(t,0)==0 then return 'mdd'; end if UnitHealthMax(t)/UnitPowerMax(t,0)>4 and localizedClass_~='Охотник' and localizedClass_~='Охотница' then return 'mdd'; end return 'rdd' end Добавлено (10.07.2016, 01:54) --------------------------------------------- function ImmuneToMagicDamage(t) if UnitBuff(t,'Божественный щит') or UnitBuff(t,'Ледяная глыба') or UnitBuff(t,'Сдерживание') or UnitDebuff(t,'Смерч') or UnitBuff(t,'Плащ Теней') or UnitBuff(t,'Антимагический панцирь') or UnitIsDeadOrGhost(t) then return 1 else return 0 end end function ImmuneToStun(t) if UnitBuff(t,'Божественный щит') or UnitBuff(t,'Ледяная глыба') or UnitDebuff(t,'Смерч') or UnitBuff(t,'Сдерживание') or UnitBuff(t,'Длань защиты') or UnitBuff(t,'Незыблемость льда') or UnitBuff(t,'Оскверненная земля') or UnitBuff(t,'Вихрь клинков') or UnitIsDeadOrGhost(t) then return 1 else return 0 end end function ImmuneToRoot(t) if UnitBuff(t,'Длань свободы') or UnitBuff(t,'Приказ хозяина') or UnitBuff(t,'Слияние с Тьмой') or UnitBuff(t,'Оскверненная земля') or UnitBuff(t,'Вихрь клинков') or UnitBuff(t,'Тотем ветроступа') then return 1 else return 0 end end --------------------------------------------- Добавлено (10.07.2016, 01:55) --------------------------------------------- function UnitControl(t) if UnitDebuff(t,'Покаяние') or UnitDebuff(t,'Молот правосудия') or UnitDebuff(t,'Страх') or UnitDebuff(t,'Вой ужаса') or UnitDebuff(t,'Лик смерти') or UnitDebuff(t,'Соблазн') or UnitDebuff(t,'Метание топора') or UnitDebuff(t,'Запрет чар') or UnitDebuff(t,'Неистовство Тьмы') or UnitDebuff(t,'Смерч') or UnitDebuff(t,'Спячка') or UnitDebuff(t,'Столп солнечного света') or UnitDebuff(t,'Наскок') or UnitDebuff(t,'Калечение') or UnitDebuff(t,'Оглушить') or UnitDebuff(t,'Ненасытная стужа') or UnitDebuff(t,'Удушение') or UnitDebuff(t,'Отгрызть') or UnitDebuff(t,'Чудовищный удар') or UnitDebuff(t,'Ошеломление') or UnitDebuff(t,'Подлый трюк') or UnitDebuff(t,'Ослепление') or UnitDebuff(t,'Удар по почкам') or UnitDebuff(t,'Парализующий удар') or UnitDebuff(t,'Сглаз') or UnitDebuff(t,'Низвержение') or UnitDebuff(t,'Устрашающий крик') or UnitDebuff(t,'Рывок и оглушение') or UnitDebuff(t,'Перехват') or UnitDebuff(t,'Оглушающий удар') or UnitDebuff(t,'Ударная волна') or UnitDebuff(t,'Дыхание дракона') or UnitDebuff(t,'Превращение') or UnitDebuff(t,'Кольцо мороза') or UnitDebuff(t,'Глубокая заморозка') or UnitDebuff(t,'Сотрясение') or UnitDebuff(t,'Антимагия - немота') or UnitDebuff(t,'Улучшенное превращение') or UnitDebuff(t,'Ментальный крик') or UnitDebuff(t,'Безмолвие') or UnitDebuff(t,'Замораживающая ловушка') or UnitDebuff(t,'Глушащий выстрел') or UnitDebuff(t,'Дезориентирующий выстрел') or UnitDebuff(t,'Устрашение') or UnitDebuff(t,'Грубый прием') then return 1 else return 0 end end function ControlInterrupt(t) if UnitDebuff(t,'Покаяние') or UnitDebuff(t,'Соблазн') or UnitDebuff(t,'Спячка') or UnitDebuff(t,'Ошеломление') or UnitDebuff(t,'Ослепление') or UnitDebuff(t,'Парализующий удар') or UnitDebuff(t,'Дыхание дракона') or UnitDebuff(t,'Превращение') or UnitDebuff(t,'Кольцо мороза') or UnitDebuff(t,'Улучшенное превращение') or UnitDebuff(t,'Замораживающая ловушка') or UnitDebuff(t,'Дезориентирующий выстрел') then return 1 else return 0 end end function UnitControlDispel(t) if UnitDebuff(t,'Очарование') or UnitDebuff(t,'Очарование') or UnitDebuff(t,'Безмолвие') or UnitDebuff(t,'Ледяная хватка') or UnitDebuff(t,'Удушение') or UnitDebuff(t,'Изгнание зла') or UnitDebuff(t,'Укус виверны') or UnitDebuff(t,'Статический заряд') or UnitDebuff(t,'Связующий выстрел') or UnitDebuff(t,'Беспощадность зимы') or UnitDebuff(t,'Покаяние') or UnitDebuff(t,'Молот правосудия') or UnitDebuff(t,'Кулак правосудия') or UnitDebuff(t,'Слепящий свет') or UnitDebuff(t,'Страх') or UnitDebuff(t,'Вой ужаса') or UnitDebuff(t,'Лик смерти') or UnitDebuff(t,'Соблазн') or UnitDebuff(t,'Неистовство Тьмы') or UnitDebuff(t,'Спячка') or UnitDebuff(t,'Ненасытная стужа') or UnitDebuff(t,'Дыхание дракона') or UnitDebuff(t,'Превращение') or UnitDebuff(t,'Кольцо мороза') or UnitDebuff(t,'Глубокая заморозка') or UnitDebuff(t,'Сотрясение') or UnitDebuff(t,'Ментальный крик') or UnitDebuff(t,'Замораживающая ловушка') then return 1 else return 0 end end function UnitDispelStun(t) if UnitDebuff(t,'Покаяние') or UnitDebuff(t,'Молот правосудия') or UnitDebuff(t,'Кулак правосудия') or UnitDebuff(t,'Слепящий свет') or UnitDebuff(t,'Страх') or UnitDebuff(t,'Вой ужаса') or UnitDebuff(t,'Лик смерти') or UnitDebuff(t,'Соблазн') or UnitDebuff(t,'Неистовство Тьмы') or UnitDebuff(t,'Спячка') or UnitDebuff(t,'Ненасытная стужа') or UnitDebuff(t,'Сглаз') or UnitDebuff(t,'Дыхание дракона') or UnitDebuff(t,'Превращение') or UnitDebuff(t,'Кольцо мороза') or UnitDebuff(t,'Глубокая заморозка') or UnitDebuff(t,'Сотрясение') or UnitDebuff(t,'Ментальный крик') or UnitDebuff(t,'Замораживающая ловушка') then return 1 else return 0 end end function RootTarget(t) if UnitDebuff(t,'Массовое оплетение') or UnitDebuff(t,'Гнев деревьев') or UnitDebuff(t,'Ледяной заслон') or UnitDebuff(t,'Кольцо льда') or UnitDebuff(t,'Холод') or UnitDebuff(t,'Хватка земли') or UnitDebuff(t,'Чуть не попался!') or UnitDebuff(t,'Западня') or UnitDebuff(t,'Оковы земли') or UnitDebuff(t,'Мощь льдов') or UnitDebuff(t,'Вывести из строя') then return 1 else return 0 end end Добавлено (10.07.2016, 01:55) --------------------------------------------- -----------с проверкой на оставшееся время-------- function ControlTime(t,time_) --определение находится ли цель в контроле(если до истечения контроля осталось меньше 1 сек то считает что контроля нет) local controlled_=0; local t_all={'Мощное оглушение','Слепящий свет','Громовая поступь','Очарование','Лик тлена','Лик тлена','Кровавый ужас','Изгнание','Господство над разумом','Слово Света: Воздаяние','Глубинный ужас','Сковывание нежити','Укус виверны','Парализующий рык','Пробуждение инфернала','Землетрясение','Раздавить','Статический заряд','Кулак правосудия','Гнев небес','Неистовые кулаки','Несущийся бык','Беспощадность зимы','Асфиксия','Ошеломление','Подлый трюк','Парализующий удар','Удар по почкам','Ослепление','Покаяние','Молот правосудия','Страх','Вой ужаса','Лик смерти','Соблазн','Метание топора','Неистовство Тьмы','Смерч','Спячка','Наскок','Калечение','Оглушить','Ненасытная стужа','Отгрызть','Чудовищный удар','Сглаз','Низвержение','Устрашающий крик','Рывок и оглушение','Перехват','Оглушающий удар','Ударная волна','Дыхание дракона','Превращение','Кольцо мороза','Глубокая заморозка','Сотрясение','Улучшенное превращение','Ментальный крик','Замораживающая ловушка','Дезориентирующий выстрел','Устрашение','Грубый прием','Удар громовержца','Паралич','Круговой удар ногой','Сотрясающая ладонь'}; local t_mage={'Мощное оглушение','Волшебный поток','Щит мстителя','Ледяная хватка','Волшебная тишина','Гаррота - немота','Запрет чар','Столп солнечного света','Удушение','Антимагия - немота','Безмолвие','Глушащий выстрел','Слепящий свет','Ошеломление','Подлый трюк','Парализующий удар','Удар по почкам','Ослепление','Покаяние','Молот правосудия','Страх','Вой ужаса','Лик смерти','Соблазн','Метание топора','Неистовство Тьмы','Смерч','Спячка','Наскок','Калечение','Оглушить','Ненасытная стужа','Отгрызть','Чудовищный удар','Сглаз','Низвержение','Устрашающий крик','Рывок и оглушение','Перехват','Оглушающий удар','Ударная волна','Дыхание дракона','Превращение','Кольцо мороза','Глубокая заморозка','Сотрясение','Улучшенное превращение','Ментальный крик','Замораживающая ловушка','Дезориентирующий выстрел','Устрашение','Грубый прием','Удар громовержца','Паралич','Круговой удар ногой','Сотрясающая ладонь'}; local t_melee={'Мощное оглушение','Слепящий свет','Громовая поступь','Очарование','Лик тлена','Лик тлена','Кровавый ужас','Изгнание','Господство над разумом','Слово Света: Воздаяние','Глубинный ужас','Сковывание нежити','Укус виверны','Парализующий рык','Пробуждение инфернала','Землетрясение','Раздавить','Статический заряд','Кулак правосудия','Гнев небес','Неистовые кулаки','Несущийся бык','Беспощадность зимы','Асфиксия','Ошеломление','Подлый трюк','Парализующий удар','Удар по почкам','Ослепление','Покаяние','Молот правосудия','Страх','Вой ужаса','Лик смерти','Соблазн','Метание топора','Неистовство Тьмы','Смерч','Спячка','Наскок','Калечение','Оглушить','Ненасытная стужа','Отгрызть','Чудовищный удар','Сглаз','Низвержение','Устрашающий крик','Рывок и оглушение','Перехват','Оглушающий удар','Ударная волна','Дыхание дракона','Превращение','Кольцо мороза','Глубокая заморозка','Сотрясение','Улучшенное превращение','Ментальный крик','Замораживающая ловушка','Дезориентирующий выстрел','Устрашение','Грубый прием','Удар громовержца','Паралич','Круговой удар ногой','Сотрясающая ладонь'}; local localizedClass_, englishClass_ = UnitClass(t); if localizedClass_=='name1' then t_all=t_mage end; if localizedClass_=='Разбойник' or localizedClass_=='Разбойница' or localizedClass_=='Охотник' or localizedClass_=='Охотница' or localizedClass_=='Воин' then t_all=t_melee end; for i=1,#t_all do local name_,_,_,_,_,duration_,expirationTime_=UnitDebuff(t, t_all); if name_==t_all then if expirationTime_-GetTime()>time_ then controlled_=1 break end end end return controlled_ end -------------------------------------------------------- -----------без проверки на оставшееся время-------- function ControlNoTime(t) --определение находится ли цель в контроле(если до истечения контроля осталось меньше 1 сек то считает что контроля нет) local controlled_=0; local t_all={'Мощное оглушение','Слепящий свет','Громовая поступь','Очарование','Лик тлена','Лик тлена','Кровавый ужас','Изгнание','Господство над разумом','Слово Света: Воздаяние','Глубинный ужас','Сковывание нежити','Укус виверны','Парализующий рык','Пробуждение инфернала','Землетрясение','Раздавить','Статический заряд','Кулак правосудия','Гнев небес','Неистовые кулаки','Несущийся бык','Беспощадность зимы','Асфиксия','Ошеломление','Подлый трюк','Парализующий удар','Удар по почкам','Ослепление','Покаяние','Молот правосудия','Страх','Вой ужаса','Лик смерти','Соблазн','Метание топора','Неистовство Тьмы','Смерч','Спячка','Наскок','Калечение','Оглушить','Ненасытная стужа','Отгрызть','Чудовищный удар','Сглаз','Низвержение','Устрашающий крик','Рывок и оглушение','Перехват','Оглушающий удар','Ударная волна','Дыхание дракона','Превращение','Кольцо мороза','Глубокая заморозка','Сотрясение','Улучшенное превращение','Ментальный крик','Замораживающая ловушка','Дезориентирующий выстрел','Устрашение','Грубый прием','Удар громовержца','Паралич','Круговой удар ногой','Сотрясающая ладонь'}; for i=1,#t_all do local name_,_,_,_,_,duration_,expirationTime_=UnitDebuff(t, t_all); if name_==t_all then controlled_=1 break end end return controlled_ end -------------------------------------------------------- Добавлено (10.07.2016, 01:57) --------------------------------------------- также есть функции на учет диминишинга и наличия текстур по 3 таргетам на аренке 3с вот только как это рейлизовать вам в pqr хз, Добавлено (10.07.2016, 02:08) |
Всем привет. Потратил некоторое время на изучение темки и нашел пару интересных макросов (3.3.5), юзабельных после анлока луа, а именно:
1. (для дк) атака петом с расчетом тонуса, чтобы всегда оставалась энергия на стан 2. (для дк) защита от фейка (макрос не дает юзнуть кс, если цель находится под действием бабла, мастера аур или не кастует) 3. (для дк) не дает использовать грип, если цель находится под действием эффекта тотема заземления (использует таунт, а после грипает) Все эти макросы нашел в этой теме, но они не юзабельны. Может кто-нибудь помочь с этим делом?) С меня + |
| |||



