| Модератор форума: staford11 |
| Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
| Использование Lua скриптов. |
вобщем поковырявшись к толковому ничему не привело, итог таков Код function FuryRotation(self,elapsed) if (not UnitDebuff("target", "Лунный огонь", nil, "PLAYER")) then CastSpellByName("Лунный огонь") elseif (not UnitDebuff("target", "Рой насекомых", nil, "PLAYER")) then CastSpellByName("Рой насекомых") elseif GetSpellCooldown("Звездопад") == 0 and UnitDebuff("target", "Лунный огонь") then CastSpellByName("Звездопад") elseif GetSpellCooldown("Гнев") == 0 and UnitDebuff("target", "Рой насекомых") and GetSpellCooldown("Звездопад") > 0 and UnitBuff("player", "Солнечное затмение") then CastSpellByName("Гнев") elseif UnitBuff("player", "Лунное затмение") then CastSpellByName("Звездный огонь") end if UnitPower("player" , 8) == 0 then RunMacroText("/castrandom Гнев, звездный огонь") end end if not FuryRotationFrame then CreateFrame("Frame", "FuryRotationFrame") FuryRotationFrame:SetScript("OnUpdate", FuryRotation) end спамит рандом спелл, но не всегда прокатывает, как бы отследить кд затмений, что бы кастовался потом определенный спелл, но затмения как их отследить я хз, у них то внутреннее кд как я понимаю? пока убери каст рандом спелла, надо поискать решение проблемы |
Играю на кате, понятия не имею о чем ты Добавлено (13.09.2016, 16:44) Поковырялся я некоторое время, и сделал ротацию, но я понятия не имею на каком ты патче играешь, на кате работает нормально (с кастерами оказывается столько геморроя) Код function MRotate(self,elapsed) UP = UnitPower UB = UnitBuff UDB = UnitDebuff UCI = UnitCastingInfo GSC = GetSpellCooldown if not UDB("target", "Лунный огонь") and not UDB("target", "Солнечный огонь") and GSC("Лунный Огонь") == 0 and not UCI("player") then CastSpellByName("Лунный огонь") elseif not UDB("target", "Рой насекомых") and GSC("Рой насекомых") == 0 and not UCI("player") then CastSpellByName("Рой насекомых") elseif GSC("Звездопад") == 0 then CastSpellByName("Звездопад") elseif UB("player","Падающие звезды") and GSC("Звездный поток") == 0 then if UCI("player") then SpellStopCasting() end CastSpellByName("Звездный поток") end if UDB("target", "Лунный огонь") and UDB("target", "Рой насекомых") or UDB("target", "Солнечный огонь") and UDB("target", "Рой насекомых") then if UP("player", 8) == 0 and not UCI("player") and GSC("Лунный Огонь") == 0 then CastSpellByName("Лунный огонь") elseif UP("player", 8) > 0 and not UB("player","Солнечное затмение") and not UCI("player") and GSC("Лунный Огонь") == 0 then CastSpellByName("Звездный огонь") elseif UP("player", 8) ~= 0 and UB("player","Солнечное затмение") and not UCI("player") and GSC("Лунный Огонь") == 0 then CastSpellByName("Гнев") elseif UP("player", 8) < 0 and not UB("player","Лунное затмение") and not UCI("player") and GSC("Лунный Огонь") == 0 then CastSpellByName("Гнев") elseif UP("player", 8) ~= 0 and UB("player","Лунное затмение") and not UCI("player") and GSC("Лунный Огонь") == 0 then CastSpellByName("Звездный огонь") elseif UP("player", 8) == 100 and UCI("player") == "Звездный огонь" then SpellStopCasting() elseif UP("player", 8) == -100 and UCI("player") == "Гнев" then SpellStopCasting() end end end if not MRotateFrame then CreateFrame("Frame", "MRotateFrame") MRotateFrame:SetScript("OnUpdate", MRotate) end
Сообщение # 1925 написано 13.09.2016 в 16:44
|
а на счёт ШП, окончательный вариант
Код /run local n,_,_,_,_,_,x = UnitDebuff("target","Прикосновение вампира") if not UnitDebuff("target", "Прикосновение вампира", nil, "PLAYER") then RunMacroText("/castsequence reset=2 Прикосновение вампира") end if UnitDebuff("target","Прикосновение вампира") and -1*(GetTime()-x) <= 1.05 then RunMacroText("/castsequence reset=2 Прикосновение вампира") end /run if not UnitDebuff("target", "Всепожирающая чума", nil, "PLAYER") then CastSpellByName("Всепожирающая чума","target") end if UnitDebuff("target", "Прикосновение вампира") and UnitDebuff("target", "Всепожирающая чума") then RunMacroText("/cast [nochanneling:Пытка разума] Пытка разума") end вроде не кастует 2 раза, но ещё буду тестить, пока времени нет
Сообщение # 1928 написано 14.09.2016 в 00:12
|
spamcik, пет будет прыгать в трапу только на ат, на остальных пиратках это невозможно из за того что это пиратки и они не работают... Мор легко сделать, палить рогу по аое невозможно, так как в логе не пишется то, что в инвизе
Сообщение # 1929 написано 14.09.2016 в 22:42
|
Ребят а как сюда добавить проверку на расстояние 40 метров и если цель допустим находится за колонной?
Код /run for r=0,24 do GetNumRaidMembers(); if (UnitHealth("raid"..r)/UnitHealthMax("raid"..r)) <=1 and IsSpellInRange("Слово силы: Щит", "raid"..r) and (not UnitBuff("raid"..r, "Слово силы: Щит")) and (not UnitDebuff("raid"..r, "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","raid"..r) end end if (UnitHealth("player")/UnitHealthMax("player")) <=1 and IsSpellInRange("Слово силы: Щит", "player") and (not UnitBuff("player","Слово силы: Щит")) and (not UnitDebuff("player", "Ослабленная душа")) then CastSpellByName("Слово силы: Щит","player") end
Сообщение # 1930 написано 16.09.2016 в 22:34
|
Не понимаю что тут за сборище отстающих? За первые 30 страниц расписаны и разжеваны абсолютно все виды скриптов, осталось только вписать туда свои спеллы и танцевать... Но еще 30 страниц наполнены повторным пережевыванием... Теперь снова всё повторяется
Сообщение # 1932 написано 18.09.2016 в 02:15
|
Да,совершенно верно.Чтоб как в pqr пару секунд до конца окончания их.Или можно задать параметры макросы чтоб <40 % окончания то обновляет болезни > то бьёт кровавым ударом.
Добавлено (25.09.2016, 14:51) |
Сообщение # 1938 написано 04.10.2016 в 15:40
|
как получить время произнесения потокового спела?
в GetSpellInfo есть параметр CastTime, но для потоковых он равен 0 например, у мага в тултипе Arcane Missiles написано Цитата Launches Arcane Missiles at the enemy, causing __ Arcane damage every __ sec for 4.72 sec вариант с UnitCHannelInfo endtime-starttime не подходит, т.к. работает только если абилка уже кастуется может, есть какие функции на сканирование текста в тултипе? |
Не проверял, поэтому не уверен что вернет данные с учетом хасты, но стоит попробовать http://wowprogramming.com/docs/api/GetSpellInfo
оттуда параметр Цитата castingTime - Casting time of the spell in milliseconds (number)
reverse engineering your soul... балуюсь C++, C#, SQL, LUA. Владыка 1C. Окончательно забил на emuDev
Сообщение # 1940 написано 06.10.2016 в 06:48
|
есть куски кода, помогите до ума довести
Код 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) |
Всем привет помогите с данным скриптом , всё отлично работает но есть одно но , принцип работы его таков если я не держу в таргете не кого он срабатывает если держу вражескую цель тоже срабатывает , но если я держу допустим себя или напарника в таргете либо другую дружественную цель он не срабатывает , так вот хотелось бы что бы срабатывал ) выручайте ребята с меня плюсики вот сам скрипт .
Antifear = CreateFrame("Frame", "Antifear", UIParent); Antifear:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED"); Antifear:SetScript("OnEvent", function(self, event, arg1, arg2, ...) if(event=="UNIT_SPELLCAST_SUCCEEDED") then if arg2==("Ослепление") then SpellStopCasting() RunMacroText("/cast Слово Тьмы: Смерть") end end end) |
Господа скритеры можно ли добавить в этот скрипт ещо и проверку на хп ?
тоесть грубо говоря если у цели 100% хп он не вешал омоложение /run if not UnitBuff("target", "омоложение", nil, "PLAYER") then CastSpellByName("омоложение") end |
Код /run if (not UnitBuff("target", "омоложение", nil, "PLAYER")) and ((UnitHealth("target")/UnitHealthMax("target"))<1) then CastSpellByName("омоложение") end
Сообщение # 1946 написано 21.10.2016 в 17:28
|
Господа скритеры можно ли добавить в этот скрипт ещо и проверку на хп ?тоесть грубо говоря если у цели 100% хп он не вешал омоложение /run if not UnitBuff("target", "омоложение", nil, "PLAYER") then CastSpellByName("омоложение") end А что делает данный скрипт ? Добавлено (21.10.2016, 20:33)
Сообщение # 1948 написано 21.10.2016 в 20:33
|
staford11, спасибо) а указать количество не хватающиго хп цели пири котором будет кастится омоложения можно? в этом макросе
/run if (not UnitBuff("target", "омоложение", nil, "PLAYER")) and ((UnitHealth("target")/UnitHealthMax("target"))<1) then CastSpellByName("омоложение") end |
спасибо) а указать количество не хватающиго хп цели пири котором будет кастится омоложения можно? в этом макросе Код /run if (not UnitBuff("target", "омоложение", nil, "PLAYER")) and ((100-(UnitHealth("target")/UnitHealthMax("target")*100))>процент) then CastSpellByName("омоложение") end Код /run if (not UnitBuff("target", "омоложение", nil, "PLAYER")) and ((UnitHealthMax("target")-UnitHealth("target"))>количество) then CastSpellByName("омоложение") end
Сообщение # 1950 написано 22.10.2016 в 12:23
|
| |||



