Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Сообщение # 241 написано 09.10.2014 в 13:27
|
Как определить название спелла, кастуемого в данный момент?
Сообщение # 243 написано 09.10.2014 в 21:13
|
name, subText, text, texture, startTime, endTime, isTradeSkill, castID, notInterruptible = UnitCastingInfo("unit") name - возвращает нам имя кастуемого спела unit - тут указываем того у кого хотим посмотреть название каста, подробнее тут http://wowprogramming.com/docs/api_types#unitID Пример на макросе: /run name = UnitCastingInfo("player"); print(name) Пример для скрипта, если мы хотим, допустим, сбивать только хекс шамана т.е. то что должно быть в функции: name, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target"); if name == "Сглаз" then кик end
Сообщение # 244 написано 09.10.2014 в 21:29
|
DiSq, спасибо!
Сообщение # 245 написано 09.10.2014 в 21:52
|
Код function Reflekt(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local name = UnitName("targettarget") local myname = UnitName("player") if spell == "Сглаз" or spell == "Превращение" or spell == "Смерч" then if name == myname then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Антимагический панцирь") end end end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) Почему то не работает, цель в таргете, кастует смерч, Антимагический щит не врубается. Возможно можно как -то переписать его?
Сообщение # 246 написано 10.10.2014 в 05:06
|
Код function Reflekt(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local name = UnitName("targettarget") local myname = UnitName("player") if spell == "Сглаз" or spell == "Превращение" or spell == "Смерч" then if name == myname then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Антимагический панцирь") end end end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) Скрипт рабочий, а кто поможет написать, чтобы когда сукуба дает седакт за 0.6 до конца до конца пал давал фир без таргета в в таргете |
Будет ли работать автошвд для дц ? ИЛИ ЕСТЬ ОШИБКА ????
function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus") local enabled = GetSpellCooldown("Слово тьмы: Смерть ") if spell == "Превращение" then if name == "Превращение" then if interrupt == false and enabled == 0 and IsSpellInRange("Слово тьмы: Смерть ", "focus") then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Слово тьмы: Смерть ", "focus") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) |
Код function Reflekt(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local name = UnitName("targettarget") local myname = UnitName("player") if spell == "Сглаз" or spell == "Превращение" or spell == "Смерч" then if name == myname then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Антимагический панцирь") end end end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) Почему то не работает, цель в таргете, кастует смерч, Антимагический щит не врубается. Возможно можно как -то переписать его? Наверное ты if finish <= 0.6 then тут поставил ниже значения 0.6 и зеленка не успевает отреагировать, либо ты при входе в игру не тыкнул на скрипт, ну или его надо использовать только во власти нечестивости, я пробовал на вара рефлект, рефлектнуть можно только если ты деф стойке, а хотя рефлектить можно и в баттл стенсе) думай сам что неправильно сделал) Добавлено (12.10.2014, 00:19) Будет ли работать автошвд для дц ? ИЛИ ЕСТЬ ОШИБКА ???? function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus") local enabled = GetSpellCooldown("Слово тьмы: Смерть ") if spell == "Превращение" then if name == "Превращение" then if interrupt == false and enabled == 0 and IsSpellInRange("Слово тьмы: Смерть ", "focus") then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Слово тьмы: Смерть ", "focus") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Что мешает тебе протестить?) зайди на фан увова и проверь))
Сообщение # 250 написано 12.10.2014 в 00:19
|
Данный скрипт отлично работает:
function Destroy(self, elapsed) local enabled = GetSpellCooldown("Нечестивое бешенство") local enabled = GetSpellCooldown("Усиление рунического оружия") if UnitBuff("player","Волна побед") then if enabled == 0 then CastSpellByName("Нечестивое бешенство") CastSpellByName("Усиление рунического оружия") end end end CreateFrame("Frame", "DestroyFrame") DestroyFrame:SetScript("OnUpdate", Destroy) Хочу добавить к нему юз триньки Жетон победы гордого гладиатора. Но не получается. Пробовал вот так: function Destroy(self, elapsed) local enabled = GetSpellCooldown("Нечестивое бешенство") local enabled = GetSpellCooldown("Усиление рунического оружия") local enabled = GetItemCooldown("Жетон победы гордого гладиатора") if UnitBuff("player","Волна побед") then if enabled == 0 then CastSpellByName("Нечестивое бешенство") CastSpellByName("Усиление рунического оружия") RunMacroText("/use Жетон победы гордого гладиатора") end end end CreateFrame("Frame", "DestroyFrame") DestroyFrame:SetScript("OnUpdate", Destroy) Но не работает((((( Причем если вбить в скрипт просто RunMacroText("/use Жетон победы гордого гладиатора") и запустить его, тринька юзается. Хелп друзья.
Сообщение # 252 написано 12.10.2014 в 07:37
|
Причем если вбить в скрипт просто RunMacroText("/use Жетон победы гордого гладиатора") и запустить его, тринька юзается. Хелп друзья. Проверь, нет ли гкд при использовании трини. И протестируй функцию UseItemByName("Жетон победы гордого гладиатора"). Никогда не понимал использования RunMacroText, когда имеется возможность напрямую обратиться к предмету без всяких макрокоманд. Добавлено (12.10.2014, 12:53) local enabled = GetSpellCooldown("Нечестивое бешенство") local enabled = GetSpellCooldown("Усиление рунического оружия") local enabled = GetItemCooldown("Жетон победы гордого гладиатора") И зачем одну переменную переписывать 3 раза? В конечном счете ты при проверке if enabled == 0 then будешь каждый раз проверять кд своей трини. Т.к. переменная enabled примет последнее присвоенное значение в коде, а это local enabled = GetItemCooldown("Жетон победы гордого гладиатора"). Добавлено (12.10.2014, 13:03) |
заметил, что в макросе и подобных
/run if (not UnitBuff("target", "Отражение заклинания")) and (not UnitBuff("target", "Эффект тотема заземления")) then RunMacroText("/cast Хватка смерти") end /run if UnitBuff("target", "Отражение заклинания") and UnitBuff("target", "Эффект тотема заземления") then RunMacroText("/cast Темная власть") end во втором случае нужно or а не and
Сообщение # 255 написано 12.10.2014 в 16:02
|
Сообщение # 256 написано 13.10.2014 в 13:48
|
есть скрипт на ротацию фури вара (3.3.5) ? должно юзать кровожадность и вихрь по кд, а также мощный удар при проке "Сокрушить!" и спам удара героя если ярость более 50%
п.с.: выложенный ранее скрипт не работает, я пробовал) |
После запуска этого скрипта, ротация будет выполняться на постоянной основе. Скрипт Ооооочень сырой и выполняет элементарные действия. Для того, чтобы сделать ротацию идеальной, необходимо реализовать несколько проверок и добавить парочку функций (например, чтобы по нажатию одной кнопки - скрипт начинал работать, а по нажатию другой - приостанавливался, и т.д.). Это уже будет твоим самостоятельным заданием.
Код function FuryRotation(self,elapsed) local powa = UnitPower("player",1) local name1, _, _, powerCost1 = GetSpellInfo("Кровожадность") local name2, _, _, powerCost2 = GetSpellInfo("Вихрь") local name3, _, _, powerCost3 = GetSpellInfo("Мощный Удар") if GetSpellCooldown(name1) == 0 and powa >= powerCost1 then CastSpellByName(name1) elseif GetSpellCooldown(name2) == 0 and powa >= powerCost2 then CastSpellByName(name2) end if UnitBuff("player", "Сокрушить!") and powa >= powerCost3 then CastSpellByName(name3) end if powa > 50 then CastSpellByName("Удар Героя") end end if not FuryRotationFrame then CreateFrame("Frame", "FuryRotationFrame") FuryRotationFrame:SetScript("OnUpdate", FuryRotation) end
Сообщение # 258 написано 13.10.2014 в 16:04
|
я в скриптах почти не шарю, но имею представление уже, что можно осуществить, а что нет) ну сам код дописать я не в состоянии(( буду надеяться, что кто-то доведёт до ума твой "сырой" скрипт) всё равно спасибо В жизни всегда есть 2 варианта: либо учись и делай сам, либо плати другому. На форуме работает тот же принцип: либо ты студент и просишь бесплатной помощи у преподавателя, который даст тебе основы и направление развития. Либо ты заказчик и готов платить исполнителю за полностью проделанную работу. Единственными исключениями данного правила являются энтузиасты и люди с комплексом "примерного студента", которые готовы выполнить всю работу бесплатно, просто чтобы доказать, что они чему-то научились или что-то знают Я предложил тебе путь развития, выбор за тобой...
Сообщение # 261 написано 13.10.2014 в 16:41
|
ты сделал действительно простенький скрипт) всё спамится по кд, что бы довести до идеальной ротации надо ввести проверку кд кровожадности и вихря, что бы мощный удар юзался под прок только тогда, когда те удары на кд. так сказать приоритет) ну и для полного счастья юзать казнь когда у цели не более 20% хп
|
есть скрипт на ротацию фури вара (3.3.5) ? должно юзать кровожадность и вихрь по кд, а также мощный удар при проке "Сокрушить!", но когда вихрь и кровожадность на кд. спам удара героя если ярость более 50%. казнь когда у цели не более 20% хп, но если вихрь и кровожадность на кд
п.с.: выложенный ранее скрипт не доработан. буду очень благодарен тому, кто поможет ну и конечно же плюс в карму)) |
Код #showtooltip Боевой крик /run if not UnitBuff("player", "Боевой крик") then CastSpellByName("Боевой крик") end /run if UnitBuff("player", "Сокрушить!") then CastSpellByName("Мощный удар") end /run local _,a,_ = GetSpellCooldown("Вихрь") if (a == 0) then CastSpellByName("Вихрь") end /run local _,d,_ = GetSpellCooldown("Кровожадность") if (d == 0) then CastSpellByName("Кровожадность") end /run local _,d,_ = GetSpellCooldown("Победный раж") if (d == 0) then CastSpellByName("Победный раж") end /run if UnitPower("Player") < 70 then CastSpellByName("Кровавая ярость") end /run if UnitPower("Player") > 39 then CastSpellByName("Удар героя") end /run local _,d,_ = GetSpellCooldown("Казнь") if (d == 0) then CastSpellByName("Казнь") end Если нет крика кастует крик. Высший приоритет у слэма, т.к. у него самый маленький гкд. Затем идет вихрь, т.к. аошит, а это дополнительный шанс прока слэма. Следом кровожадность, потом победный раж если возможен. Если раги меньше 70 кастует кровавою ярость, если раги больше 39 кастует героик, затем казнь если возможно. Аое скрипт, почти точно такой же, только клив кастуется вместо героика. Код #showtooltip Боевой крик /run if not UnitBuff("player", "Боевой крик") then CastSpellByName("Боевой крик") end /run if UnitBuff("player", "Сокрушить!") then CastSpellByName("Мощный удар") end /run local _,a,_ = GetSpellCooldown("Вихрь") if (a == 0) then CastSpellByName("Вихрь") end /run local _,d,_ = GetSpellCooldown("Кровожадность") if (d == 0) then CastSpellByName("Кровожадность") end /run local _,d,_ = GetSpellCooldown("Победный раж") if (d == 0) then CastSpellByName("Победный раж") end /run if UnitPower("Player") < 70 then CastSpellByName("Кровавая ярость") end /run if UnitPower("Player") > 45 then CastSpellByName("Рассекающий удар") end /run local _,d,_ = GetSpellCooldown("Казнь") if (d == 0) then CastSpellByName("Казнь") end В зависимости от эквипа меняйте кол-во раги для каста героика и клива. Крик думаю сами сможете уж поменять |
Код #showtooltip Боевой крик /run if not UnitBuff("player", "Боевой крик") then CastSpellByName("Боевой крик") end /run if UnitBuff("player", "Сокрушить!") then CastSpellByName("Мощный удар") end /run local _,a,_ = GetSpellCooldown("Вихрь") if (a == 0) then CastSpellByName("Вихрь") end /run local _,d,_ = GetSpellCooldown("Кровожадность") if (d == 0) then CastSpellByName("Кровожадность") end /run local _,d,_ = GetSpellCooldown("Победный раж") if (d == 0) then CastSpellByName("Победный раж") end /run if UnitPower("Player") < 70 then CastSpellByName("Кровавая ярость") end /run if UnitPower("Player") > 39 then CastSpellByName("Удар героя") end /run local _,d,_ = GetSpellCooldown("Казнь") if (d == 0) then CastSpellByName("Казнь") end Если нет крика кастует крик. Высший приоритет у слэма, т.к. у него самый маленький гкд. Затем идет вихрь, т.к. аошит, а это дополнительный шанс прока слэма. Следом кровожадность, потом победный раж если возможен. Если раги меньше 70 кастует кровавою ярость, если раги больше 39 кастует героик, затем казнь если возможно. Аое скрипт, почти точно такой же, только клив кастуется клив вместо героика. Код #showtooltip Боевой крик /run if not UnitBuff("player", "Боевой крик") then CastSpellByName("Боевой крик") end /run if UnitBuff("player", "Сокрушить!") then CastSpellByName("Мощный удар") end /run local _,a,_ = GetSpellCooldown("Вихрь") if (a == 0) then CastSpellByName("Вихрь") end /run local _,d,_ = GetSpellCooldown("Кровожадность") if (d == 0) then CastSpellByName("Кровожадность") end /run local _,d,_ = GetSpellCooldown("Победный раж") if (d == 0) then CastSpellByName("Победный раж") end /run if UnitPower("Player") < 70 then CastSpellByName("Кровавая ярость") end /run if UnitPower("Player") > 45 then CastSpellByName("Рассекающий удар") end /run local _,d,_ = GetSpellCooldown("Казнь") if (d == 0) then CastSpellByName("Казнь") end спасибо, сейчас попробую) Добавлено (13.10.2014, 20:12)
Сообщение # 268 написано 13.10.2014 в 20:12
|
| |||