Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Khenny, попробуй так, если в моусовере увидит тотем то ударит болью по нему
Код function Totem(self) name = UnitName("mouseover") if name == "Опаляющий тотем" or name == "Тотем ветроступа" then CastSpellByName("Слово тьмы: Боль" , "mouseover") end CreateFrame("Frame", "frameB") frameB:SetScript("OnUpdate", Totem) Добавлено (18.11.2015, 19:58) --------------------------------------------- GaTaX, Два твоих скрипта рефлекта не работали, потому что это 2 разных скрипта но на каждом из них одинаковая функция "function Reflect(self, elapsed)". Работает только один из них, тот который ты запустил позднее. Тебе нужно изменить название функции, например "function Reflectfocus(self, elapsed)" во всех местах где написана эта функция, тогда работать будут оба скрипта Добавлено (18.11.2015, 19:59) --------------------------------------------- snup5, Твой скрипт можно улучшить, добавлением условия наличия прока триней или талантов |
Khenny, я чуть по другому ищу лоухп:
Код local function hP(unit) return UnitHealthMax(unit) - UnitHealth(unit) end local rNum,grouP,mem,memHP,TarFoc = GetNumPartyMembers(),"party","player",0,{"target","focus"} if GetNumRaidMembers() > 0 then rNum,grouP = GetNumRaidMembers(),"raid" end for i=0,rNum do local m=grouP..tostring(i) if i=0 then m="player" end if UnitInRange("player",m) and UnitIsFriend(m) and not UnitIsDeadOrGhost(m) and hP(m) >= memHP then mem,memHP = m,hP(m) end end for _,v in ipairs(TarFoc) do if UnitExists(v) and UnitIsFriend(v) and UnitInRange("player",v) and not UnitPlayerOrPetInRaid(v) and not UnitPlayerOrPetInParty(v) and not UnitIsDeadOrGhost(v) and hP(v) >= memHP then mem,memHP = v,hP(v) end end if memHP > 15000 then CastSpellByName("Имя закл..", mem) end я тоже с таблицами на вы, а точнее не знаю как добавлять туда, так было бы еще проще через один фор. а еще можно добавить туда петов группы/рейда. |
Доходчиво про таблицы тут: http://www.tutorialspoint.com/lua/lua_tables.htm
• Wowjp: Моя темка • Yt: youtube.com/@LuaNaZakaz • Discord: discord.gg/Jgmf7AJ • Vk: vk.com/luanazakaz • Telegram: t.me/LuaNaZakaz • Boosty: boosty.to/luanazakaz
Сообщение # 1294 написано 21.11.2015 в 03:07
|
хочу сделать скрипт для БГ для ханта когда ДК тянет ханта срабатывает Сдерживание и через 2-сек срабатывает Леденая ловушка
есть пример но тут срабатывает только сдерживание Леденая ловушка не срабатывает подскажите что я не доделал или что пропустил OneScriptForVanish = CreateFrame("Frame", "OneScriptForVanish", UIParent); OneScriptForVanish:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") OneScriptForVanish:SetScript("OnEvent", function(self, event, arg1, arg2) VanishSpellOne = {"Хватка смерти"} for v = 1,#VanishSpellOne do local args = {arg1, arg2} if (arg1 == "target" and arg2 == VanishSpellOne[v]) then CastSpellByName("Сдерживание") local timer = 0 local sec = 2 timer = timer + elapsed if timer >= sec then CastSpellByName("Леденая ловушка") timer = 0 end end end end)
Сообщение # 1295 написано 21.11.2015 в 03:47
|
с таблицами я разобрался, однако в их использовании усомнился. много текста для их редактирования, гораздо проще создать функцию с переменным юнитом и с действием к нему и вызывать её вместо добавления в таблицу. другое дело если найти готовую таблицу, в стандартном интерфейсе не знаю, но в аддонах типа грид/хилбот такая должна быть, искать надо.
Сообщение # 1296 написано 21.11.2015 в 09:40
|
Khenny, Что значит белый список? P.S. На тотемы сработал скрипт как надо?
Добавлено (25.11.2015, 18:42)
Сообщение # 1301 написано 25.11.2015 в 18:42
|
chaosway, т.е. только касты из этого списка будут сбиваться, остальные игнорироваться. Знаю что можно перечислить туеву хучу переменных, где каждой переменной соответствует свой каст, но хочется более лаконичный вариант.
Насчет скрипта на сбитие тотемов, еще не довелось проверить, как проверю - отпишу. И еще, есть у меня загвоздка. Есть (оператор это называется?) speed, groundSpeed, flightSpeed, swimSpeed = GetUnitSpeed("player"), где если игрок стоит на месте, то speed == 0 (проверял через print), вот только если я использую это в условии else then, то нихрена оно, почему-то, не == 0, кто знает в чем причина? Добавлено (27.11.2015, 19:18)
Сообщение # 1302 написано 27.11.2015 в 19:18
|
Здорова парни. Видел давно ферала, который спамил[шредом-полоснуть] в лицо, сбоку и т.д. Подскажите, есть ли такой скрипт, и если да, помогите написать. Щедрое вознагрождение. Предоплата. Заранее спасибо!
|
Люди добрые можите помочь со скриптом для лока! Нужно чтоб не меня диспелил ,а допустим напарника по арене ну или было бы здорово чтоб обоих ,что можно придумать:?!
function Dispel(self, elapsed) local inRange = IsSpellInRange("Пожирание магии", "target") local Range = IsSpellInRange("Запрет чар", "target") local enable = GetSpellCooldown(48011) local enabl = GetSpellCooldown(19647) local pl = "player" local power = UnitPower("pet", 0) if enable == 0 and power >= 390 and inRange == 1 then if UnitDebuff(pl, "Страх") or UnitDebuff(pl, "Жертвенный огонь") or UnitDebuff(pl, "Лик смерти") or UnitDebuff(pl, "Порча") or UnitDebuff(pl, "Неистовство тьмы") or UnitDebuff(pl, "Вой ужаса") or UnitDebuff(pl, "Вой ужаса") or UnitDebuff(pl, "Превращение") or UnitDebuff(pl, "Ледяные оковы") or UnitDebuff(pl, "Молот правосудия") or UnitDebuff(pl, "Покояние") or UnitDebuff(pl, "Сглаз") or UnitDebuff(pl, "Ментальный крик") or UnitDebuff(pl, "Соблазн") then CastSpellByName("Пожирание магии", "player") end end if enabl == 0 and power >= 200 and Range == 1 then if UnitCastingInfo("target") or UnitChannelInfo("target") then CastSpellByName("Запрет чар", "target") end end end CreateFrame("Frame", "DispelFrame") DispelFrame:SetScript("OnUpdate", Dispel) |
/run if GetSpellCooldown("Шаг сквозь тень")==0 and IsSpellInRange("Шаг сквозь тень","focus") and (UnitCastingInfo("focus") or UnitChannelInfo("focus")) then CastSpellByName("Шаг сквозь тень") end
Суть в том, что хочу чтобы при спаме прожимался ШС по фокусу когда кастует фокус. Но срабатывает по таргету, когда кастует фокус! Не знаю что делать. Помогите
Сообщение # 1306 написано 03.12.2015 в 17:57
|
Господа, на днях у меня с приятелем зашел разговор о такой "штуке" как: (не придумал как по другому назвать :D) поворот к цели. Наслышаны о таком скрипте\макросе или чтобы то небыло. Суть которого, заключалась в том, что будучи кастером сражаясь с миликом всегда держать камеру на нем, как бы он не умудрялся спрятаться к вам за спину, дабы спел всегда докастовывался. И никуда, кроме как в этот раздел, я не могу обратиться, по скольку считаю это одним из lua-скриптов. Поделитесь информацией об этом "чуде".
Сообщение # 1309 написано 05.12.2015 в 00:31
|
MRSKABEL7564, как-то сам наблюдал такую штуку на арене, но в API такого "разворота" нет, нечто подобное использовано в функционале FollowUnit, персонаж поворачивается и начинает бежать, последнее нам не нужно. Боюсь тут одним lua никак не обойтись.
Называется это вроде как автофейсингом.
Сообщение # 1310 написано 05.12.2015 в 20:40
|
Нет, конечно же. Такое и с подменой пакетов сейчас не сделать нигде.
Сообщение # 1312 написано 06.12.2015 в 11:07
|
Делал такой трюк на кате для моих мультибокс машанов которые передвигались за врагом при помощи http://wowprogramming.com/docs/api/InteractUnit и стопались через одновременный вызов http://wowprogramming.com/docs/api/TurnLeftStart и http://wowprogramming.com/docs/api/TurnLeftStop если соблюдены условия http://wowprogramming.com/docs/api/IsUsableSpell и http://wowprogramming.com/docs/api/IsSpellInRange . Проверку на дальность спела использовал через спелл с 25-метровой дальностью дабы враг не успевал отойти от прокаста т.к. вкачан тал на дальность, т.е. дальности даже с запасом.
Конечно приходилось спамить кнопку вызова макроса чтобы шаманы делали попытку подойти к врагу, а в нем у меня были вшиты сапопальные LUA ротации для мультибокса через SDM которые заставляют 5ти шаманов делать больной прокаст во врага, снимают бафы с противников под ноль и вредные дебафы с союзников, сбивают касты всем в радиусе поражения и втыкают тотемы по необходимости. Собственно спам кнопки был необходим чтобы персонажи своевременно поворачивались на врага, т.к. время реакции у InteractUnit немного запоздалое и за целью бегающей вокруг шаманов было следить крайне непросто, впрочем это легко компенсировалось http://ru.wowhead.com/spell=51490 . Пробовал вшивать InteractUnit (+ остановку естественно) в саму ротацию, т.е. на автонажатие - идея оказалась крайне плохой, хотя и было забавно наблюдать как шаманы сами бегают и пуляют врага вообще без участия игрока, но пришлось на кнопке follow для мультибокса вшивать остановку скрипта, а ведь иногда же нужно чтобы передивигая шаманов за главарем ротация не останавливалась (т.к. на кате есть баф на каст во время передвижения), да и контроллировать такое самовольное передвижение шамов было проблематично, чуть не ту цель выделил и понеслись в освояси, так что оставил по кнопке.
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
Сообщение # 1315 написано 07.12.2015 в 08:22
|
function Blid(self, elapsed)
local CD = GetSpellCooldown("Кровопускание") local rage = UnitPower("player", 1) local inRange = IsSpellInRange("Кровопускание", "target") if not UnitDebuff("target", "Кровопускание") and CD == 0 and inRange == 1 and rage >= 10 then CastSpellByName("Кровопускание", "target") end end CreateFrame("Frame", "BlidFrame") BlidFrame:SetScript("OnUpdate", Blid) function Blid(self, elapsed) local CD = GetSpellCooldown("Подрезать сухожилия") local rage = UnitPower("player", 1) local inRange = IsSpellInRange("Подрезать сухожилия", "target") if not UnitDebuff("target", "Подрезать сухожилия") and CD == 0 and inRange == 1 and rage >= 7 then CastSpellByName("Подрезать сухожилия", "target") end end CreateFrame("Frame", "BlidFrame") BlidFrame:SetScript("OnUpdate", Blid) Как их совместить ?
Сообщение # 1316 написано 08.12.2015 в 04:51
|
function Blid(self, elapsed)local CD = GetSpellCooldown("Кровопускание") local rage = UnitPower("player", 1) local inRange = IsSpellInRange("Кровопускание", "target") if not UnitDebuff("target", "Кровопускание") and CD == 0 and inRange == 1 and rage >= 10 then CastSpellByName("Кровопускание", "target") end end CreateFrame("Frame", "BlidFrame") BlidFrame:SetScript("OnUpdate", Blid) function Blid(self, elapsed) local CD = GetSpellCooldown("Подрезать сухожилия") local rage = UnitPower("player", 1) local inRange = IsSpellInRange("Подрезать сухожилия", "target") if not UnitDebuff("target", "Подрезать сухожилия") and CD == 0 and inRange == 1 and rage >= 7 then CastSpellByName("Подрезать сухожилия", "target") end end CreateFrame("Frame", "BlidFrame") BlidFrame:SetScript("OnUpdate", Blid) Как их совместить ? local rage = UnitPower("player", 1) if not (UnitDebuff("target", "Кровопускание")) and GetSpellCooldown("Кровопускание")==0 and IsSpellInRange("Кровопускание", "target")==1 and rage >= 10 then CastSpellByName("Кровопускание", "target") end if not (UnitDebuff("target", "Подрезать сухожилия")) and GetSpellCooldown("Подрезать сухожилия")==0 and IsSpellInRange("Подрезать сухожилия", "target")==1 and rage >= 7 then CastSpellByName("Подрезать сухожилия","target") end end CreateFrame("Frame", "BlidFrame") BlidFrame:SetScript("OnUpdate", Blid) |
Ребят, а кто может помочь с написание простого скриптика, который берет в фокус 2ого игрока на арене и будет менять фокус в зависимости от того, какой у меня таргет? Т.е. в таргете у меня arena1, тогда в фокус arena2; если arena2 в таргете, то фокус - arena1
Сообщение # 1318 написано 11.12.2015 в 14:00
|
Ребята подскажите точнее подправте скрипт
Очень сложный: версия wow 1.12 1. у меня есть скрипт я его выделил http://s019.radikal.ru/i605/1512/27/caab86a70c8a.jpg 2. через созданный адон я его запускаю - все стандартно http://s017.radikal.ru/i436/1512/42/e21c94017c75.jpg При нажатии он создает душу, если есть душа кидает в цель. А если цели нет, но есть камень душ то, происходит ошибка выберите цель как обычно при бафах Вопрос: не могу сделать чтоб кидалось на ближайшего (в пределах 30 метров - дальности заклинания) жреца, друида или паладина (только эти 3 класса) без выбора цели.
Сообщение # 1319 написано 11.12.2015 в 22:58
|
Lewas, для проверки на класс используй UnitClass:
Код _,class,_ = UnitClass("target"); if (class == "DRUID" or class == "PALADIN" or class == "PRIEST") then ... end Для проверки дистанции можно использовать следующие варианты: 1. IsSpellInRange - проверка на дальность для выбранного заклинания. Предположим, у заклинания дальность действия 40 метров, тогда скрипт сработает на расстоянии от 1 до 40 метров до цели. Код inRange1 = IsSpellInRange(ID заклинания, "spell", "target") if (inRange1) then ... end 2. CheckInteractDistance - проверка на дальность для взаимодействия. Максимальное расстояние - 28 метров (возможно, в ванилле меньше, информации по этому нет). Код inRange2 = CheckInteractDistance("target", 4); if (inRange2) then ... end
Сообщение # 1320 написано 12.12.2015 в 12:15
|
| |||