Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Ребят помогите сложить 2 скрипта, ибо работает только 1 скрипт в игре.
/sdm run 1 /sdm run 2 /итд не получается активировать все одновременно. пропишите кто может в одну функцию . или есть другой способ их задействовать. там аддон какой нибудь или ещё что... Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Зуботычина") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Превосходство") local inRange = IsSpellInRange("Превосходство", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Превосходство") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) ............................. Я попытался сам прописать функцию по своему вопросу, тот кто понимает это и может подправить, помогите. |
Доброго времени суток, подскажите как прописать использование интерапта по фокусу?
Для сбития каста по таргету использую этот скрипт: function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Заморозка разума") local inRange = IsSpellInRange("Заморозка разума", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Заморозка разума") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Попробовал очивидную на первый взляд мысль изменить скрипт таким образом: function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus") local enabled = GetSpellCooldown("Удушение") local inRange = IsSpellInRange("Удушение ", "focus") if spell then if interrupt == false and enabled == 0 and inRange == 1 then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Удушение ") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Но не работает((( Проверка на расстояние была такой inRange == 1 then, и менялась на inRange <= 20 then , но не помогло( рузья нужна ваша помошь, подскажите что не правильно? |
Ребят, я понимаю, тема увлекательная и достаточно интересная, а самое главное - приносящая профит. Но пока не могу выделить столько времени, чтобы каждому объяснить на пальцах что к чему. У меня личка просто напросто уже забита просьбами, стена. Возможно вскоре буду уделять некоторое время теме. Также напомню, вы сами можете разобраться открыв сайт, скачав Notepad++(блокнот), там будет подсветка синтаксисов, что очень приятно и код уже не будет казаться "неведомой тарабарщиной", ну а остальное по части луа все в гугле, на самом деле всё очень просто.
Для тех, кто хоть немного шарит. Сделал набросок с возможностью включить\отключить скрипт, при этом нет необходимости пихать всё в SDM, толкаем код просто в любой аддон, ну либо в тот же SDM, если вы этого так хотите. Возможно немного по колхозному, но да ладно, проба же, учусь. Код local spellON = { ["Destroy"] = false, ["spell1"] = "CastSpellByName(\"Кровоотвод\")", } function Destroy(self, elapsed) if (spellON["Destroy"]) then if UnitBuff("player","Зимний горн") and (not UnitBuff("player","Кровоотвод"))then RunScript(spellON["spell1"]) end end end CreateFrame("Frame", "DestroyFrame") DestroyFrame:SetScript("OnUpdate", Destroy) function ss(self) if spellON["Destroy"] == false then spellON["Destroy"] = true print("on") elseif spellON["Destroy"] == true then spellON["Destroy"] = false print("off") end end SLASH_SS1 = '/ss'; SlashCmdList["SS"] = ss Командой в чате /ss мы включим скрипт, а повторным нажатием - выключим. Сам скрипт тестовый, подставляйте своё, используйте. Добавлено (04.10.2014, 16:29) --------------------------------------------- FL1CKER, у CastSpellByName задаётся не только спел но и unitID http://wowprogramming.com/docs/api/CastSpellByName Указав CastSpellByName("Удушение ", "focus") мы получим нужный эффект. Снова же, откуда эту цифру взяли? Не более чем воображение. IsSpellInRange - даёт нам либо 1, либо 0(nil) т.е. либо в радиусе действия, либо нет. Добавлено (04.10.2014, 16:32) --------------------------------------------- slavasss, измени название функции и фреймов, и запускай сразу 2, можно их закинуть в 1 блок скрипта SDM Добавлено (04.10.2014, 16:36) --------------------------------------------- Доброго времени суток друзья! Нужен скрипт на антиконтроль для дк. Перечитал весь форум, но так и не смог понять как его написать под себя. Смысл скрипта следующий: к примеру друид кастует в тебя смерч, необходимо, чтобы дк-ка заюзал Антимагический панцирь за 0,6 секунды до конца каста. Данное условие (из за 0,6 сек до конца каста), Код 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) Нужные спелы подправишь. Добавлено (04.10.2014, 16:48) --------------------------------------------- Напоминаю, что профейкать автокик без проверки на длинну каста можно макросом Код /cast "spell лишь бы кастовался" /stopcasting Тем самым вы не только заставите вашего противника получить луз, но и морально унизите, вызвав у него неплохой батхерт. |
DiSq, помогите пожалуйста с одним скриптом на вара.
цель кастует заклинание на меня и до окончания каста в 0 .6 сек. у меня юзался рефлкет ( Отражение заклинания ) можно же это сделать, если вписать определённые способности . что бы в хилку не давал рефлект
Сообщение # 217 написано 04.10.2014 в 18:22
|
slavasss,
Так скрипт выше я выложил с проверкой на кастуемые заклинания, если цель кастует сглаз\шип\смерч, то следом идёт проверка на таргет нашего таргета, и если в ней оказывается наш персонаж, то запускается таймер и за 0.6 сек до окончания каста автоматически прожмется зеленка. Тут только нужно подставить нужные спелы и за место CastSpellByName("Антимагический панцирь"), прописать RunMacro("Варовский макрос с переходом в дэф стойку и использованием рефлекта") Вообще снова же, не идеально, ибо зафейкать можно т.е. если цель будет держать нас в таргете и кастовать по фокусу, то его спел прилетит в нашего напа, а рефлект\зеленка прожмётся у нас. Везде есть минусы, но как правило многих это не смущает. Если хочешь готовый вариант "Скопировал - Юзай", то предоставь все нужные спелы со ссылками на которые должен реагировать скрипт. Макрос думаю сам в гайдах увижу. |
FL1CKER, у CastSpellByName задаётся не только спел но и unitID http://wowprogramming.com/docs/api/CastSpellByName Указав CastSpellByName("Удушение ", "focus") мы получим нужный эффект. Сделал но все равно не работает ((( Кинул дуэль магу, взял его фокус, убрал из таргета, запущен был вот этот скрипт function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus") local enabled = GetSpellCooldown("Удушение") local inRange = IsSpellInRange("Удушение ", "focus") if spell then if interrupt == false and enabled == 0 and inRange == 1 then local finish = endTime/1000 - GetTime() if finish <= 0.6 then CastSpellByName("Удушение ", "focus") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Скрипт не сработал почему-то. Мб еще где косяк есть? Хелп
Сообщение # 221 написано 05.10.2014 в 08:08
|
FL1CKER, включи отображение ошибок луа, и уже смотри где именно накосячил.
Добавлено (05.10.2014, 14:27) OnUpdate - проверяет нонстопом, т.е. функция проверяет условия постоянно без каких либо ограничений по времени. Вероятно лаги могут быть из-за этого т.е. уменьшив количество проверок, мы получим нужный результат. Но снова же, я в этом не уверен.
Сообщение # 225 написано 05.10.2014 в 14:27
|
Вот этими скриптами я пользуюсь..
AutoKick = CreateFrame("Frame", "AutoKick", UIParent); AutoKick:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); AutoKick:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") if spell then if interrupt == false then local enabled = GetSpellCooldown("Превосходство") if enabled == 0 then inRange = IsSpellInRange("Превосходство", "target") if inRange==1 then RunMacroText("/cast Превосходство") end end end end end end) AutoKick = CreateFrame("Frame", "AutoKick", UIParent); AutoKick:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); AutoKick:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") if spell then if interrupt == false then local enabled = GetSpellCooldown("Зуботычина") if enabled == 0 then inRange = IsSpellInRange("Зуботычина", "target") if inRange==1 then RunMacroText("/cast Зуботычина") end end end end end end) я могу тогда добавить ? после end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick лаги ужасные... |
DiSq, Вот функции. которые обновляются. но я не могу их вместе прописать.. возможно что у 2-го скрипта нету условия на "Боевую стойку" так как "Превосходство" работает только в ней..
function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Зуботычина") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) и 2-я function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Превосходство") local inRange = IsSpellInRange("Превосходство", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Превосходство") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Добавлено (05.10.2014, 15:21) Добавлено (05.10.2014, 16:17)
Сообщение # 228 написано 05.10.2014 в 16:17
|
Кто поможет что бы не лагали скрипты??? 1-я функция у меня забиндина в макросе в стойку берсерка /sdm run 1 2-я функция у меея в макросе на боевую стойку. а
вот так /sdm run 1 /sdm run 2 они не работают function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Зуботычина") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) и 2-я function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Превосходство") local inRange = IsSpellInRange("Превосходство", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Превосходство") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) УЖАСНО ВСЁ ЛАГАЕТ!!!!!! |
slavasss, включи мозг уже, не будут они работать вместе\одновременно по RunMacroText и с одинаковыми названиями функций и фреймов. из сообщения в сообщение объясняю одно и тоже, а приоритет видимо вера запрещает написать
Wat? Как его можно забиндить в макрос в стойку берсерка? Нука давай эти макросы в сюда скидывай, а то у меня предчувствие нехорошее. И приоритет спелов какой?
Сообщение # 231 написано 05.10.2014 в 19:25
|
Вырубился сдм на личе, после того как скачал кату. Устаревшие модификации естественно включены. Сталкивался кто с таким? Удаления кату не помогло.
addon control panel пишет что он заблокирован чем то. upd Прикольно конечно. Что я только не сделал и какие только версии аддона не качал. В итоге просто переименовал старую 183 версию зашел/вышел из игры и переименовал обратно. Помогло. |
DiSq,
Вот суть значит. у меня есть 2-е Функции 1-я Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Зуботычина") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) 2-я Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Превосходство") local inRange = IsSpellInRange("Превосходство", "target") if spell then if interrupt == false and enabled == 0 and inRange == 1 then RunMacroText("/cast Превосходство") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Вот как мне изменить 2-ю функцию что бы они работали Одноверменно/Вместе ? и самое главное не начинались ужасные лаги при их активирование! вот как я забиндил в стойки Боевая стойка #showtooltip Боевая стойка /закл Боевая стойка /закл Рывок(Уровень 3) /закл Кровопускание(Уровень 10) /закл Подрезать сухожилия /закл Превосходство /equip Темная Скорбь /закл Подрезать сухожилия /sdm run 1 Стойка берсерка #showtooltip Стойка берсерка /закл Стойка берсерка /equip Темная Скорбь /закл Подрезать сухожилия /закл Перехват /sdm run 3 |
"Я не читатель, я писатель". Не зря у меня было плохое предчувствие.
На первой странице было написано как использовать SDM, запустил 1 раз и забыл до /reload или релога. Добавил уже в 1-й пост. Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabl = GetSpellCooldown("Превосходство") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") local Range = IsSpellInRange("Превосходство", "target") local rage = UnitPower("player") if spell then if enabl == 0 and UnitBuff("player","Вкус крови") then if interrupt == false and Range == 1 then RunMacroText("/cast Превосходство") end end if rage >= 10 and enabled == 0 and (not UnitBuff("player","Вкус крови")) and (not UnitDebuff("target","Неумолимая атака")) then if interrupt == false and inRange == 1 then RunMacro("Зуботычина") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Довольно таки интересно получилось. Суть в кратце: Если на нас есть баф "Вкус крови", даётся овер в каст, если на нас отсутствует баф, а также на цели нет дэбафа от овера, то будет даваться зуботычина. Если нужен овер + кик, то нужно выпилить and "" (not UnitDebuff("target","Неумолимая атака")) "" - эту часть. Макрос зуботычина: #showtooltip Зуботычина /cast Стойка берсерка /cast Зуботычина Добавлено (06.10.2014, 14:42) Сделал но все равно не работает ((( Кинул дуэль магу, взял его фокус, убрал из таргета, запущен был вот этот скрипт Проверяй в таком варианте. Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus") local enabled = GetSpellCooldown("Удушение ") if spell 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) |
Спс, наконец скрипт заработал. необходимо только убрать лишние пробелы перед закрытием кавычек вот тут: и вот тут if interrupt == false and enabled == 0 and IsSpellInRange("Удушение ", "focus") then. И будет все хорошо.
Добавлено (06.10.2014, 18:46) --------------------------------------------- Совсем обнаглев и прочитав вот это а) Написать самому. б) Изложить идею для реализации тут, в доступной, простой форме, желательно со ссылками и полными названиями спелов и может быть я что-то сделаю, либо кто-то другой. сделал вывод: при попытках а) Написать самому - природная криворукость не дает этого сделать, ну и собственно излагаю в простой форме: нужен скрипт атакующего и в то же время оборонительного плана со след условиями: необходимо, чтобы скрипт проверял таргет, а так же фокус на наличие бурстующих баффов к примеру "Стылая кровь" ( у магов) или "Черная душа" (у локов) и т.д. и при наличии этих баффов через 1 сек юзался антимагический щит. 5 секунд бурста кастующего противника уйдет в никуда - это что касается обороны. 2 Функция скрипта атакующая, а именно необходимо, чтобы при наличии на дк-ке таких баффов как "Нечестивое бешенство", "Вышивка в виде рукояти меча" и т.д. автоматически юзался антимагический щит. Это позволит избежать контроля при прожиме бурстов, а так же при атаке по защитованному дк-ке очень хорошо регенить рп, и еще лучше вливать дмг. |
Есть у кого рабочий LUA Unlocker для 5.4.2?
Сообщение # 236 написано 06.10.2014 в 21:20
|
PQR скачай , alt + x вот тебе и анлок Добавлено (07.10.2014, 02:55) --------------------------------------------- function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabl = GetSpellCooldown("Превосходство") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") local Range = IsSpellInRange("Превосходство", "target") local rage = UnitPower("player") if spell then if enabl == 0 and UnitBuff("player","Вкус крови") then if interrupt == false and Range == 1 then RunMacroText("/cast Превосходство") end end if rage >= 10 and enabled == 0 and (not UnitBuff("player","Вкус крови")) then if interrupt == false and inRange == 1 then RunMacro("Зуботычина") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabl = GetSpellCooldown("Превосходство") local enabled = GetSpellCooldown("Зуботычина") local inRange = IsSpellInRange("Зуботычина", "target") local Range = IsSpellInRange("Превосходство", "target") local rage = UnitPower("player") if spell then if enabl == 0 and UnitBuff("player","Вкус крови") then if interrupt == false and Range == 1 then RunMacroText("/cast Превосходство") end end if rage >= 10 and enabled == 0 and (not UnitBuff("player","Вкус крови")) and (not UnitDebuff("target","Неумолимая атака")) then if interrupt == false and inRange == 1 then RunMacro("Зуботычина") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) (Превосходство) даёт. а ( Зуботычина) не даётся.. На половину только работает... блин почему когда скрипт рабочий с апдейтом начинает действовать то кадры уменьшаются дико |
Совсем обнаглев и прочитав вот это
DiSq а) Написать самому. б) Изложить идею для реализации тут, в доступной, простой форме, желательно со ссылками и полными названиями спелов и может быть я что-то сделаю, либо кто-то другой. сделал вывод: при попытках а) Написать самому - природная криворукость не дает этого сделать, ну и собственно излагаю в простой форме: нужен скрипт атакующего и в то же время оборонительного плана со след условиями: необходимо, чтобы скрипт проверял таргет, а так же фокус на наличие бурстующих баффов к примеру "Стылая кровь" ( у магов) или "Черная душа" (у локов) и т.д. и при наличии этих баффов через 1 сек юзался антимагический щит. 5 секунд бурста кастующего противника уйдет в никуда - это что касается обороны. 2 Функция скрипта атакующая, а именно необходимо, чтобы при наличии на дк-ке таких баффов как "Нечестивое бешенство", "Вышивка в виде рукояти меча" и т.д. автоматически юзался антимагический щит. Это позволит избежать контроля при прожиме бурстов, а так же при атаке по защитованному дк-ке очень хорошо регенить рп, и еще лучше вливать дмг. DiSq хеееелп пожалуйста)))
Сообщение # 238 написано 08.10.2014 в 12:54
|
| |||