| Модератор форума: staford11 |
| Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
| Использование Lua скриптов. |
Видел в этой теме скрипты на фаер мага , но потерял их чет =(
Нужен скрипт на применение огненной глыбы по проку пути огня и что бы вешало живую бомбу на цель , после её прока. Пробовал переписать скрипт на фвара, но чет не получилось нифига =\ #showtooltip Огненная глыба /run if UnitBuff("player", "Путь огня") then CastSpellByName("Огненная глыба") end end и на бомбу тоже попробовал написать. Но что то скриптер из меня нищий :C 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 mana >= 1000 then CastSpellByName("Живая бомба", "target") end end CreateFrame("Frame", "BlidFrame") BlidFrame:SetScript("OnUpdate", Blid) Может кто помочь ?))
Сообщение # 1321 написано 14.12.2015 в 22:30
|
При нажатии он создает душу, если есть душа кидает в цель.А если цели нет, но есть камень душ то, происходит ошибка выберите цель как обычно при бафах Вопрос: не могу сделать чтоб кидалось на ближайшего (в пределах 30 метров - дальности заклинания) жреца, друида или паладина (только эти 3 класса) без выбора цели. ----------- if GetItemCount("Демонический камень души") == 0 then CastSpellByName("Создание камня души") elseif select(2,GetItemCooldown("Демонический камень души")) == 0 then local gn,ms,uc=GetNumPartyMembers(),"party",{"DRUID","PRIEST","PALADIN"} if GetNumRaidMembers() > 0 then gn,ms=GetNumRaidMembers(),"raid" end for i=0,gn do local m,c=ms..tostring(i) if i == 0 then m = "target" end if UnitExists(m) and IsItemInRange("Демонический камень души",m)==1 and not UnitAura(m,"Воскрешение камнем души") then if m=="target" then UseItemByName("Демонический камень души",m) break else for _,v in ipairs(uc) do if v==select(2,UnitClass(m)) then c=true end end if c then UseItemByName("Демонический камень души",m) break end end end end end ---------- плохо знаю lua, мб и лишнего нафигачил, но работает. правда есть глюк, например, если ты хочешь наложить именно на таргет, но она вне зоны, то её игнорит и накладывает на другого мембера. возможно нужно немного изменить чтобы такого небыло. хотя, у тя же макрос и работает при нажатии, ты видишь в зоне таргет или нет, поэтому тебе пойдет и так. Добавлено (15.12.2015, 12:30) Господа, на днях у меня с приятелем зашел разговор о такой "штуке" как: (не придумал как по другому назвать :D) поворот к цели. Наслышаны о таком скрипте\макросе или чтобы то небыло. Суть которого, заключалась в том, что будучи кастером сражаясь с миликом всегда держать камеру на нем, как бы он не умудрялся спрятаться к вам за спину, дабы спел всегда докастовывался. И никуда, кроме как в этот раздел, я не могу обратиться, по скольку считаю это одним из lua-скриптов. Поделитесь информацией об этом "чуде". MRSKABEL7564, как-то сам наблюдал такую штуку на арене, но в API такого "разворота" нет, нечто подобное использовано в функционале FollowUnit, персонаж поворачивается и начинает бежать, последнее нам не нужно. Боюсь тут одним lua никак не обойтись.Называется это вроде как автофейсингом. если даже не получится, то можно сделать свою, похожую функцию, типа такого: if event=="Вы смотрите мимо цели" then TurnLeftStart() end if eventКончился=="Вы смотрите мимо цели" then TurnLeftStop() end конечно, пока это слишком примитивно, но вполне возможно сделать зашибатую не хуже встроенной с проверкой в какую лучше сторону крутица. я пока неочень шарю, поэтому не берусь. |
да должна быть какая то функция по любому. знаете же спеллы типа: "Пытка разума", "Меткий выстрел", "Исповедь"? так вот прикол в том, что когда они юзаются, персонажа разворачивает мордой к цели. её просто надо как-то достать. если даже не получится, то можно сделать свою, похожую функцию, типа такого: if event=="Вы смотрите мимо цели" then TurnLeftStart() end if eventКончился=="Вы смотрите мимо цели" then TurnLeftStop() end конечно, пока это слишком примитивно, но вполне возможно сделать зашибатую не хуже встроенной с проверкой в какую лучше сторону крутица. я пока неочень шарю, поэтому не берусь. Так написал же выше. Программно вызываешь функцию взаимодействия с юнитом, заранее должна быть включена настройка позволяющая взаимодействовать с целью, в итоге при вызове функции персонаж бежит говорить/лутать/бить с руки выделенную цель, в случае с милишниками никаких иных выкрутасов вообще не требуется, для дальников же нужно имитировать нажатие каких-либо клавиш срывающий автоматический бег к цели если нужный нам каст достает до цели, например попытаться повернуться влево и тут же поворот прервать (фактически никакого поворота не будет, а вот персонаж останавливается), при этом надо давать некоторую задержу между прерываниями (запускать таймер после получения последний ошибки "вы не туда смотрите" хотя бы на 0.2-0.5 сек чтобы персонаж успел повернуться в сторону цели, т.е. надо отслеживать эвент с ошибками на экране, какой именно уже не помню). В предыдущем моем сообщении писал уже какие функции API могут понадобится. Если же нужна функция отрабатывающая без подобных костылей то необходимо внедрять свой код в клиент WoW (не обязательно менять сам файл, можно и накидать софтулину для внедрения кода во время работы приложения) реально ли написать скрипт что бы ближайшего противника брал стазу в фокус не меняя таргет В идеальном случае, т.е. с игроками, достаточно легко, запоминаете имя вашей цели, затем через функцию TargetNearestEnemy выделяется ближайший враг и на него ставится фокус, после через TargetUnit возвращаетесь к старой цели по её имени, "идеальный случай" потому как рядом с игроком может оказаться несколько целей с одинаковым именем. На wowwiki также упоминался способ возврата к исходной цели через TargetUnit("playertarget"), т.е. без необходимости запоминать исходную цель, но не факт что на пиратках сработает.
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
|
И вот этот не пойму почему не хочет...
DefPet2 = CreateFrame("Frame", "PetFrame2", UIParent); DefPet2:RegisterEvent("UNIT_HEALTH"); DefPet2:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="UNIT_HEALTH") then if arg1 == "target" then local isEnemy = UnitIsEnemy("player","target") if isEnemy == 1 then local health = UnitHealth("target") if health <= 7000 then local enabled = GetSpellCooldown("отргрызть") if enabled == 0 then local inRange = IsSpellInRange("отгрызть", "target") if inRange==1 then RunMacro("кус") else local enblboom=GetSpellCooldown("Взрыв трупа") if enblboom == 0 then RunMacro("bomba") end end end end end end |
Так написал же выше. Программно вызываешь функцию взаимодействия с юнитом, заранее должна быть включена настройка позволяющая взаимодействовать с целью, в итоге при вызове функции персонаж бежит говорить/лутать/бить с руки выделенную цель, в случае с милишниками никаких иных выкрутасов вообще не требуется, для дальников же нужно имитировать нажатие каких-либо клавиш срывающий автоматический бег к цели если нужный нам каст достает до цели, например попытаться повернуться влево и тут же поворот прервать (фактически никакого поворота не будет, а вот персонаж останавливается), при этом надо давать некоторую задержу между прерываниями (запускать таймер после получения последний ошибки "вы не туда смотрите" хотя бы на 0.2-0.5 сек чтобы персонаж успел повернуться в сторону цели, т.е. надо отслеживать эвент с ошибками на экране, какой именно уже не помню). В предыдущем моем сообщении писал уже какие функции API могут понадобится. Если же нужна функция отрабатывающая без подобных костылей то необходимо внедрять свой код в клиент WoW (не обязательно менять сам файл, можно и накидать софтулину для внедрения кода во время работы приложения) ты не так понял. в каждой из команд: InteractUnit, FollowUnit, AttackTarget, используется функция разворота, но юзать их ради неё не стоит. разворот к цели есть еще во всех потоковых, которые кастуются в цель, + у "Верного выстрела", скорей всего таких абилок много, точно не знаю. если цель-враг, то требует угол менее 45градусов, если цель дружественная, то угол не важен, как например у "Исповеди". так вот, всего то надо вызвать её с параметрами будто твоя цель дружественная и будто твоё заклинание потоковое, при этом неюзая никаких спеллов.
Сообщение # 1326 написано 16.12.2015 в 11:00
|
if GetItemCount("Демонический камень души") == 0 then CastSpellByName("Создание камня души")elseif select(2,GetItemCooldown("Демонический камень души")) == 0 then local gn,ms,uc=GetNumPartyMembers(),"party",{"DRUID","PRIEST","PALADIN"} if GetNumRaidMembers() > 0 then gn,ms=GetNumRaidMembers(),"raid" end for i=0,gn do local m,c=ms..tostring(i) if i == 0 then m = "target" end if UnitExists(m) and IsItemInRange("Демонический камень души",m)==1 and not UnitAura(m,"Воскрешение камнем души") then if m=="target" then UseItemByName("Демонический камень души",m) break else for _,v in ipairs(uc) do if v==select(2,UnitClass(m)) then c=true end end if c then UseItemByName("Демонический камень души",m) break end end end end end ---------- плохо знаю lua, мб и лишнего нафигачил, но работает. правда есть глюк, например, если ты хочешь наложить именно на таргет, но она вне зоны, то её игнорит и накладывает на другого мембера. возможно нужно немного изменить чтобы такого небыло. хотя, у тя же макрос и работает при нажатии, ты видишь в зоне таргет или нет, поэтому тебе пойдет и так. не получается вот выдает Такое Вот все сделал
|
CastSpellByName("name" [, "target"]) не надо менять на CastSpell(id, "bookType")?
еще в UnitAura(m,"Воскрешение камнем души"), у тя название итема, а не бафа. я в аддонах не писал, не знаю. мб где-то енда нехватает? у меня работает в пкр, я туда еще проверку на осколки добавил |
CastSpellByName("name" [, "target"]) не надо менять на CastSpell(id, "bookType")?я в аддонах не писал, не знаю. мб где-то енда нехватает? у меня работает в пкр, я туда еще проверку на осколки добавил С пацаном 3 часа сидели мучались итог прост GetItemCount в 1.12 вов небыло такой команды
Сообщение # 1329 написано 17.12.2015 в 00:47
|
Ребят, нужен скрипт на применение Ослепление после пвп тринкета противника и на Сдерживание после собственного тринкета.
Пробовал написать сам, ничего не получается. Помогите пожалуйста :( Пробовал блаинд в таргет после трини, вышло как-то так( Код function Destroy(self, elapsed) local enabled = GetSpellCooldown("Ослепление") local inRange = IsSpellInRange("Ослепление", "target") if UnitBuff("target","каждый за себя") or UnitBuff("target","PvP-аксессуар") then if enabled == 0 and inRange == 1 and rage >= 15 then RunMacroText("/cast Ослепление") end end end CreateFrame("Frame", "DestroyFrame") DestroyFrame:SetScript("OnUpdate", Destroy) Только не кидайтесь камнями( |
Ребят, а кто подскажет как реализовать скрипт антишвд для суккубы? т.е чтобы каст прерывался, когда швд'шат суккубу? Думал, что будет не сложно, пробовал анализировать бафы/дебафы, но не получилось. Натолкните хотя бы на правильный путь
Сообщение # 1331 написано 17.12.2015 в 16:11
|
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 RunMacroText("/cast Удар щитом") end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) Ребята,как сделать так чтобы одевал при этом одноручку и щит?
Сообщение # 1334 написано 21.12.2015 в 19:59
|
Код SpellBase = {"Ослепление", "Дезориентирующий выстрел", "Покаяние", "Соблазн"} SpellFrame = CreateFrame("Frame", "FrameSpell", UIParent); SpellFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then for s = 1,#SpellBase do local name = UnitName("player") if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase [s]then local enabled = GetSpellCooldown("Слово Тьмы: Смерть") if enabled == 0 then CastSpellByName("Слово Тьмы: Смерть") print(arg1,arg2,...) end end end end end)SpellBase = {"Ослепление", "Дезориентирующий выстрел", "Покаяние", "Соблазн"} SpellFrame = CreateFrame("Frame", "FrameSpell", UIParent); SpellFrame:RegisterEvent("COMBAT_LOG_EVENT_UNFILTERED"); SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="COMBAT_LOG_EVENT_UNFILTERED") then for s = 1,#SpellBase do local name = UnitName("player") if arg2 == "SPELL_CAST_SUCCESS" and name ~= arg4 and name == arg7 and arg10 == SpellBase [s]then local enabled = GetSpellCooldown("Слово Тьмы: Смерть") if enabled == 0 then CastSpellByName("Слово Тьмы: Смерть") print(arg1,arg2,...) end end end end end) Решив сделать скрипт ШВД на основе "ловления в ваниш" ничего не получилось. В чем трабл? Совершенно по другому пишется или где-то ошибка?
|
Ребята, нужна помощь надо объединить 2 скрипта в один. Суть такая: сначала бьет баш в каст, а только затем бьет овером в каст если баш на кд. Мучаюсь порядком 3-ех дней в их соединении.Кто может, помогите) Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") if spell and interrupt == false and endTime/1000 - GetTime() <= 1 and IsSpellInRange("Удар щитом", "target") == 1 then if GetSpellCooldown("Удар щитом") == 0 then RunMacro("kick") elseif GetSpellCooldown("Превосходство") == 0 then RunMacroText("/cast Превосходство") end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) |
Как проверить условие, что мой таргет=арена1?
Нашел UnitName("player") TargetUnit("player") больше ничего подходящего не нашел. Соединить это в одно работающее условие у меня не получилось. Помогите пожалуйста, есть предположение, что я не тем пользуюсь. Пробовал: TargetUnit("player") = UnitFrame("arena1") if TargetUnit("arena1") итд |
Как проверить условие, что мой таргет=арена1? Нашел UnitName("player") TargetUnit("player") больше ничего подходящего не нашел. Соединить это в одно работающее условие у меня не получилось. Помогите пожалуйста, есть предположение, что я не тем пользуюсь. Пробовал: TargetUnit("player") = UnitFrame("arena1") if TargetUnit("arena1") итд if UnitName("target") == UnitName("arena1") if UnitGUID("target") == UnitGUID("arena1") if UnitIsUnit("target","arena1")
Сообщение # 1340 написано 24.12.2015 в 21:15
|
chainsaw2h, работает только 1 функция "function Kick(self, elapsed)"
Для второго скрипта нужно заменить это "Kick" на любое другое название, так же нужно изменить название "Kick" во всех частях скрипта Добавлено (25.12.2015, 01:17) Код if UnitBuff("target", "Божественный щит") Слово "target" - это и есть условие что баф "божественный щит" именно на том, кто у вас в цели. Если сделать if UnitBuff("focus", "Божественный щит"), то будет условие что баф "божественный щит" на том, кто у вас в фокусе. Для вашего случая if UnitBuff("arena1", "Божественный щит") - это условие что баф бабла на arena1
Сообщение # 1341 написано 25.12.2015 в 01:17
|
Для Ледяных оков
/run if (not UnitBuff("target", "Эффект тотема заземления")) and (not UnitBuff("target", "Отражение заклинания")) then RunMacroText("/cast Ледяные оковы")end /run if UnitBuff("target", "Эффект тотема заземления") or (UnitBuff("target", "Отражение заклинания")) then RunMacroText("/cast Темная власть")end Сорри за глупый вопрос Можно ли вместо бафа на цели вписать дебаф? НАпример не даёт использовать сайленс в таргет пока он в смерче друлевском. Кто поможет могу скинуть ахк скрипт если вам надо конечно) |
Здравствуйте Уважаемые "форумчане"!
Впервые за 10 лет игры заинтересовался скриптами т.к. сейчас на "пиратке" вот и подумал заняться чем нибудь нехорошим Если у Вас есть возможность написать мне (можно в личку) скрипты дляДестро лока, клиент 3.3.5а. Постараюсь вместе с Вами изучать азы программирования!
Сообщение # 1343 написано 28.12.2015 в 15:50
|
Всем привет.
Смог сделать автокик на шамана под определенные спелы (версия 5.4.8), но это работает только в таргет, а хотелось бы чтобы работали по арена фреймам (3х3) не беря кастующего в таргет (например: я хилю напа, и если в это время вражина кастует хекс, он получает кик, а мой таргет и фокус остается прежним). Вот код макрос kikvcast здесь несет за собой такой текст Представьте пожалуйста готовый код, т.к. я уже менял target на arena 1, 2, 3 , но ничего не вышло, хочу посмотреть на готовом варианте. Заранее спасибо. |
Дарова парни. Возможно ли написать так чтобы мой персонаж чекал арена 1 арена 2 и арена 3 на каст хаос болта , хекса или циклона (желательно в меня) но можно и просто в мою команду.
Пробовал писать function Reflekt(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("focus") if UnitName("target") == UnitName("arena1","arena2","arena3") if spell == "Сглаз" or spell == "Превращение" or spell == "Смерч" or spell == "Выброс лавы" or spell == "Стрела Хаоса" then if name == myname then local finish = endTime/1000 - GetTime() if finish <= 0.4 then SpellStopCasting() CastSpellByName("Тотем заземления", "focus") end end end end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) не работает
Сообщение # 1346 написано 29.12.2015 в 21:19
|
парни помогите скрипт написать чтобы чекал арена 1 2 3 (чтобы я в фокус не брал) плз
function Reflekt(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("arena1", "arena2", "arena3") if spell == "Сглаз" or spell == "Превращение" or spell == "Смерч" or spell == "Выброс лавы" or spell == "Стрела Хаоса" then if name == myname then local finish = endTime/1000 - GetTime() if finish <= 0.4 then SpellStopCasting() CastSpellByName("Тотем заземления", "arena1", "arena2", "arena3") end end end end end CreateFrame("Frame", "ReflektFrame") ReflektFrame:SetScript("OnUpdate", Reflekt) не пашет
Сообщение # 1348 написано 31.12.2015 в 14:24
|
Приветствую всех! ПОдскажите пожалуйста как сделать что бы локовская собака давала кс не только таргету моему, а и делала проверку по всем арена таргетам (atena1, arena2, arena3)
Код function Kick(self, elapsed) local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local enabled = GetSpellCooldown("Запрет чар()") local isEnemy = UnitIsEnemy("player","target") if isEnemy == 1 then local inRange = IsSpellInRange("Запрет чар()", "target") if spell == "Превращение" or "Страх" or "Быстрое исцеление" or "Выброс лавы" or "Стрела хаоса" or "Огненный шар" or "Смерч" or "Прикосновение вампира" or "Звездный огонь" or "Всмышка света" or "Цепная молния" or "Малая волна исцеления" or "Волна исцеления" or "Связующее исцеление" or "Восстановление" or "Удушение" then if interrupt == false and enabled == 0 and inRange == 1 then local finish = endTime/1000 - GetTime() if finish <= 0.3 then CastSpellByName("Запрет чар", "target") end end end end end CreateFrame("Frame", "KickFrame") KickFrame:SetScript("OnUpdate", Kick) |
подскажите как сделать скрипт/макрос для пала (смена печатей)
/run if GetSpellCooldown("Правосудие мудрости")==0 and UnitPower("player")/UnitPowerMax("player")<=0.50 then CastSpellByName("Правосудие мудрости") end; должно быть так когда у меня меньше 20% маны юзаеться печать (Правосудие мудрости) когда больше 50% юзаеться (Правосудие справедливости)
Скайп Apokalipcic1
Сообщение # 1350 написано 02.01.2016 в 11:28
|
| |||






