| Модератор форума: staford11 |
| Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
| Использование Lua скриптов. |
я еще учусь грамотно всё делать, так что не совсем понял о какой именно таблице ты говоришь) параметр сортировки как я понял - UnitHealth(x) \ UnitHealthMax(x) ? а как отсортировать всё что есть в таблице? что такое ключ? буду рад если ты покажешь мне конкретный пример такой таблицы, что бы я понял как это всё грамотно сделать
Сообщение # 2372 написано 15.07.2017 в 22:15
|
Пытаюсь реализовать автофейк, но никак не получается, в чём ошибка? Принцип работы такой же как и у автованиша, только вместо конкретного спелл
а, нужно чтобы прожимался макрос(/stopcasting) Код 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 = RunMacroText("/stopcasting") if enabled == 0 then RunMacroText("/stopcasting") end end end end end) |
У меня есть патч на война mpq, который уменьшает гкд стоек, криков, героик страйка до 0,6 сек. Есть ли аналогичные патчи да дк ? Или может можно из этого mpq патча сделать по аналогии на дк.
еще просьба помочь подправить скрипт на пкр на АМС Код if not SWDFrame then SWD = CreateFrame("Frame", "SWD", UIParent); SWDFrame:Hide() end --SWD = CreateFrame("Frame", "SWD", UIParent); SWD:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED") SWD:SetScript("OnEvent", function(self, event, arg1, arg2) SpellBase = {"Покаяние","Молот правосудия","Лик смерти","Смерч","Ошеломление","Ослепление","Выброс лавы","Страх","Глубокая заморозка","Кольцо льда"} 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(48707) if enabled == 0 then CastSpellByID(48707) end end end end Он выдает такую ошибку Message: [string " function pqrFunc0() if not SWDFrame then..."]:20: ')' expected (to close '(' at line 8) near 'function' Time: 07/17/17 21:19:13 Count: 2 Stack: Locals: |
что такое ключ?буду рад если ты покажешь мне конкретный пример такой таблицы, что бы я понял как это всё грамотно сделать Моя ошибка, под ключем я имею ввиду юнит. table = { {unit = 'target', health = 20}, {unit = 'player', health = 25}, {unit = 'raid1', health = 50}, {unit = 'raid2', health = 90}, } Такого вида таблица нужна. Пример: Код -- создаем пустую таблицу local members = { } -- создаем префикс local prefix = (IsInRaid() and 'raid') or 'party' -- цикл for i=1, GetNumGroupMembers() do -- создаем переменные в которых объявляем нужные нам значения local unit = prefix..i -- получится 'raid'+i = raid1, raid2, ... raidn думаю понятно. local health = 100*UnitHealth(unit )/UnitHealthMax(unit) -- определяем уровень здоровья -- добавляем в таблицу юнит и его здоровье table.insert(members, {unit = unit, health = health}) end -- сортируем таблицу по уровню здоровья table.sort(members,function(x,y) return x.health < y.health end) -- Как использовать? -- т.к таблица уже отсортирована то цикл больше не нужен. Для использования заклинания в юнит с наименьшим здоровьем достаточно использовать первую ячейку таблицы(она и будет содержать юнит с наименьшим здоровьем после сортировки). -- заранее объявляем переменную с нужной ячейкой из таблицы, для удобства и скорости работы. local lowest_unit = members[1] if lowest_unit.health <= 50 then -- 'lowest_unit.health' это тоже самое что и 'members[1].health' CastSpellByName('', lowest_unit .unit) -- здесь аналогично, 'lowest_unit .unit' тоже самое что и 'members[1].unit' end Разумеется что цикл который создает таблицу и сортирует ее необходимо вызывать каждый раз перед использованием заклинания(для обновления данных о здоровье юнитов в рейде). Поэтому всю эту конструкцию следует спрятать в функцию и вызывать каждый раз.
Сообщение # 2376 написано 20.07.2017 в 15:05
|
дайте ктонибудь анлокер норм дял изенгарда, а то гагарин робит минуту и потом клиент виснет
Добавлено (21.07.2017, 01:22)
Сообщение # 2377 написано 21.07.2017 в 01:22
|
Помогите пожалуйста , сделать скрипт для вара на авто ярость берсерка , 3.3.5|PQR, я пытался переделать скрипт на автодиспел, но не работает.
Вот , что получилось - function Berserker(self, elapsed) local v1, v2, v3 v1 = { "player" } for i = 1, #v1 do if UnitExists(v1) and UnitCanAttack("player", v1) == nil and UnitDebuff(v1,"Смерч") == nil then v2 = {"Ментальный крик", "Страх", "Вой ужаса", "Покаяние", "Устрашающий крик"} v3 = {"Ментальный крик", "Страх", "Вой ужаса", "Покаяние", "Устрашающий крик"} for j = 1, #v2 do CastSpellByName("Ярость берсерка", v1) end end for j = 1, #v3 do if UnitHealth(v1) / UnitHealthMax(v1) * 100 >= 1 and UnitDebuff(v1, v3 ) and GetSpellCooldown("Ярость берсерка") <= 2 and IsSpellInRange("Ярость берсерка", v1) == 1 then )CastSpellByName("Ярость берсерка", v1 end end end end end CreateFrame("Frame", "BerserkerFrame") BerserkerFrame:SetScript("OnUpdate", Berserker) |
mikel17, перемудрил конечно:) не гарантирую что все будет работать , но всеже...
function Berserker(self, elapsed) if UnitDebuff("player","Ментальный крик") or UnitDebuff("player","Страх") or UnitDebuff("player","Вой ужаса") or UnitDebuff("player","Покаяние") or UnitDebuff("player","Устрашающий крик") then local enabled = GetSpellCooldown("Ярость берсерка") if enabled == 0 and not UnitDebuff("player","Смерч") then ----- тут докинешь нужные дебафы CastSpellByName("Ярость берсерка") end end end CreateFrame("Frame", "BerserkerFrame") BerserkerFrame:SetScript("OnUpdate", Berserker) примерно так, допилишь проверишь самостоятельно
Пишу макросы и профили PQR
Моя подборка пве скриптов-ротаций 3.3.5 |
Ребят, чот рою страницы, не найду для биндпада скрипта на рог, может знает кто страницу? или есть у кого? по приоритету:
Ловля ванишем всякой гадости, если ванишь кд то блайнд в ответ, если блайнд в кд то юзать рассовую людей. С меня + под 3.3.5 |
пытался переделать рефлект для пвара (на арена таргеты) но он почему-то срабатевает не всегда, 3.3.5а.
Код function REFL(self, elapsed) if UnitExists and UnitCastingInfo("arena1") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("arena1") local finish = endTime/1000 - GetTime() local enabled = GetSpellCooldown("Отражение заклинания") local enabled2 = GetSpellCooldown("Боевой крик") local power = UnitPower("player") local SpellBase = {"Сглаз","Стрела Хаоса","Смерч","Превращение","Страх","Выброс лавы"} for v=1,#SpellBase do if spell == SpellBase [v]and finish <= 0.6 then if power < 15 and enabled2 == 0 then CastSpellByName("Боевой крик") elseif power > 15 then if GetShapeshiftForm() ~= 1 and index ~= 2 then CastSpellByName("Оборонительная стойка") end if enabled == 0 then if GetInventorySlotInfo("MainHandSlot") ~= 71362 then -- здесь вместо 71362 вписываешь id своего однорука EquipItemByName(71362) -- здесь вместо 71362 вписываешь id своего однорука EquipItemByName(67061) -- здесь вместо 67061 вписываешь id своего щита end CastSpellByName("Отражение заклинания") end end end end end end CreateFrame("Frame", "REFLFrame") REFLFrame:SetScript("OnUpdate", REFL) function REFL(self, elapsed) if UnitExists and UnitCastingInfo("arena2") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("arena2") local finish = endTime/1000 - GetTime() local enabled = GetSpellCooldown("Отражение заклинания") local enabled2 = GetSpellCooldown("Боевой крик") local power = UnitPower("player") local SpellBase = {"Сглаз","Стрела Хаоса","Смерч","Превращение","Страх","Выброс лавы"} for v=1,#SpellBase do if spell == SpellBase [v]and finish <= 0.6 then if power < 15 and enabled2 == 0 then CastSpellByName("Боевой крик") elseif power > 15 then if GetShapeshiftForm() ~= 1 and index ~= 2 then CastSpellByName("Оборонительная стойка") end if enabled == 0 then if GetInventorySlotInfo("MainHandSlot") ~= 71362 then -- здесь вместо 71362 вписываешь id своего однорука EquipItemByName(71362) -- здесь вместо 71362 вписываешь id своего однорука EquipItemByName(67061) -- здесь вместо 67061 вписываешь id своего щита end CastSpellByName("Отражение заклинания") end end end end end end CreateFrame("Frame", "REFLFrame") REFLFrame:SetScript("OnUpdate", REFL) function REFL(self, elapsed) if UnitExists and UnitCastingInfo("arena3") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("arena3") local finish = endTime/1000 - GetTime() local enabled = GetSpellCooldown("Отражение заклинания") local enabled2 = GetSpellCooldown("Боевой крик") local power = UnitPower("player") local SpellBase = {"Сглаз","Стрела Хаоса","Смерч","Превращение","Страх","Выброс лавы"} for v=1,#SpellBase do if spell == SpellBase [v]and finish <= 0.6 then if power < 15 and enabled2 == 0 then CastSpellByName("Боевой крик") elseif power > 15 then if GetShapeshiftForm() ~= 1 and index ~= 2 then CastSpellByName("Оборонительная стойка") end if enabled == 0 then if GetInventorySlotInfo("MainHandSlot") ~= 71362 then -- здесь вместо 71362 вписываешь id своего однорука EquipItemByName(71362) -- здесь вместо 71362 вписываешь id своего однорука EquipItemByName(67061) -- здесь вместо 67061 вписываешь id своего щита end CastSpellByName("Отражение заклинания") end end end end end end CreateFrame("Frame", "REFLFrame") REFLFrame:SetScript("OnUpdate", REFL)
Сообщение # 2385 написано 26.07.2017 в 11:41
|
пытался переделать рефлект для пвара (на арена таргеты) но он почему-то срабатевает не всегда, 3.3.5а. UnitExists("arena1") UnitExists("arena2") UnitExists("arena3") все три функции одинаково названы, хотябы REFL1 REFL2 REFL3 если писали для прото зачем нагромождения в виде смены стойки и оружия зачем добавлять обновление крика во время каста при недостатке раги (up<15) ? просто бесполезный спам крика(расход up)
Пишу макросы и профили PQR
Моя подборка пве скриптов-ротаций 3.3.5 |
UnitExists сигнатуры не указалиUnitExists("arena1") UnitExists("arena2") UnitExists("arena3") все три функции одинаково названы, хотябы REFL1 REFL2 REFL3 Код function REFL(self, elapsed) if UnitExists("target") and UnitCastingInfo("target") then local spell, _, _, _, _, endTime, _, _, interrupt = UnitCastingInfo("target") local finish = endTime/1000 - GetTime() local enabled = GetSpellCooldown("Отражение заклинания") local SpellBase = {"Сглаз","Стрела Хаоса","Смерч","Превращение","Страх","Выброс лавы"} for v=1,#SpellBase do if spell == SpellBase [v]and finish <= 0.6 then if GetShapeshiftForm() ~= 1 and index ~= 2 then CastSpellByName("Отражение заклинания") end end end end end CreateFrame("Frame", "REFLFrame") REFLFrame:SetScript("OnUpdate", REFL) |
На ванишь вроде как куча их, а именно такого чот не видно. Макросы писать иф таргет каст и тд зен каст тд... не канает) ибо через сдм тыкать надо. Местные умельцы подсобите
Сообщение # 2388 написано 26.07.2017 в 19:24
|
Как тебе такой? +есть для варов, но можно сделать рейнджу любому классу: ![]() • Wowjp: Моя темка • Yt: youtube.com/@LuaNaZakaz • Discord: discord.gg/Jgmf7AJ • Vk: vk.com/luanazakaz • Telegram: t.me/LuaNaZakaz • Boosty: boosty.to/luanazakaz |
Проблема в гагарине.Сделал все по инструкции ,выбрал функцию нажал пуск и выскочило окошко с текстом
can't attach the final part, probably something already attached to your game. Как решить эту проблему ?? Может есть какой-то аналог гагарину?
Сообщение # 2390 написано 27.07.2017 в 20:39
|
Проблема в гагарине.Сделал все по инструкции ,выбрал функцию нажал пуск и выскочило окошко с текстом can't attach the final part, probably something already attached to your game. Как решить эту проблему ?? Может есть какой-то аналог гагарину? Есть альтернатива PriorityQueueRotation
Сообщение # 2391 написано 27.07.2017 в 20:43
|
ТЗ: кидать лужу дк тупо под себя. Без всяких там:
Код if SpellIsTargeting() then CameraOrSelectOrMoveStart() CameraOrSelectOrMoveStop() end Где-то видел. Не могу найти! ![]() • Wowjp: Моя темка • Yt: youtube.com/@LuaNaZakaz • Discord: discord.gg/Jgmf7AJ • Vk: vk.com/luanazakaz • Telegram: t.me/LuaNaZakaz • Boosty: boosty.to/luanazakaz
Сообщение # 2392 написано 28.07.2017 в 07:07
|
Сообщение # 2393 написано 28.07.2017 в 15:57
|
RUSisakov, подсоби с скриптом через биндпад, макросы под сдм самоучкой писать начуился, под бп чот не идёт.
Сообщение # 2395 написано 29.07.2017 в 18:50
|
зачем вам бинпад или сдм,сделайте аддон простейший типа helloworld,в нем функции типа function f1() castspellbyname и тд и тп end
а в клиенте уже вызываем эти функции через макрос /script /run f1() все что надо это просто любой анлокер который позволяет вызывать заблокированные апи все что там кикает с сервера наверняка на этом и закончится |
Подскажите как сделать, чтобы скиллы в авторотации, могли использоваться до того как гкд полностью закончится. Сейчас где-то за 0.5 сек до
окончания гкд можно прожать скилл, и когда оно закончится он сразу же используются. В скриптах GetSpeelCooldown("Смертельный удар")==0 он ждёт полностью когда гкд пройдёт, и после этого прожимает. Может с нулевым пингом это не имело бы смысло, но когда он под сотню это потеря дпс. Я пробовал менять ==0 на ~=0, первый скилл работает как надо, но следующие в макросе уже вообще не работают. Также пробовал с SpellisUsable, первый в списке работает как нужно, остальные не прожимаются.
Сообщение # 2399 написано 09.08.2017 в 21:03
|
| |||




