Модератор форума: staford11 |
Форум Хитрости Пиратских серверов Читы для WoW Использование Lua скриптов. |
Использование Lua скриптов. |
Прям максимально доступно сделал туториал.
1. http://pikucha.ru/idEhV 2. http://pikucha.ru/idEhX 3. http://pikucha.ru/idEhY 4. http://pikucha.ru/idEhZ Выставляешь обычный макрос на панельку, разблочиваешь луа анлокером клиент и жмякаешь когда нужно. Картинки что то не добавляется, так что так покопируй посмотри |
function Mucks(self, elapsed)
if UnitDebuff("player","Указать гадость(дэбаф)") or UnitDebuff("player","Указать гадость(дэбаф)") then local enabled = GetItemCooldown("Очищение") if enabled == 0 then RunMacroText("/cast Очищение") end end end CreateFrame("Frame", "MucksFrame") MucksFrame:SetScript("OnUpdate", Mucks) будет диспелить нонстопом пока не сдиспелит, но есть рист что твоего напу убьют быстрее, чем ты сдиспелишь контроль и не отхилишь его...
Сообщение # 272 написано 14.10.2014 в 12:16
|
Прям максимально доступно сделал туториал. 1. http://pikucha.ru/idEhV 2. http://pikucha.ru/idEhX 3. http://pikucha.ru/idEhY 4. http://pikucha.ru/idEhZ Выставляешь обычный макрос на панельку, разблочиваешь луа анлокером клиент и жмякаешь когда нужно. Картинки что то не добавляется, так что так покопируй посмотри всё сделал по скринам, макрос на панельку никак вынести не могу Добавлено (14.10.2014, 12:37)
Сообщение # 273 написано 14.10.2014 в 12:37
|
На 3 скрин посмотри на синию стрелку. Button macro это обычный макрос, который отлично выносится на панель, а 3 строчка script создает уже скрипт который надо запускать. Скорее всего поэтому ты и не можешь вынести макрос.
Сообщение # 274 написано 14.10.2014 в 20:01
|
unction FuryRotation(self,elapsed) local powa = UnitPower("player",1) local name1, _, _, powerCost1 = GetSpellInfo("Кровожадность") local name2, _, _, powerCost2 = GetSpellInfo("Вихрь") local name3, _, _, powerCost3 = GetSpellInfo("Мощный Удар") if GetSpellCooldown(name1) == 0 and powa >= powerCost1 then CastSpellByName(name1) elseif GetSpellCooldown(name2) == 0 and powa >= powerCost2 then CastSpellByName(name2) end if UnitBuff("player", "Сокрушить!") and powa >= powerCost3 then CastSpellByName(name3) end if powa > 50 then CastSpellByName("Удар Героя") end end if not FuryRotationFrame then CreateFrame("Frame", "FuryRotationFrame") FuryRotationFrame:SetScript("OnUpdate", FuryRotation) end что бы довести до идеальной ротации надо ввести проверку кд кровожадности и вихря, что бы мощный удар юзался под прок только тогда, когда кровожадность и вихрь на кд. так сказать приоритет) ну и для полного счастья юзать казнь когда у цели не более 20% хп очень прошу помочь) |
Доброго времени суток. Возможно кто-то уже нашел луа анлокер для 6.0.2 очень очень нужен, возможно есть какая инфа по нему. В вове обновилась файловая система, и резонный вопрос собственно- возможно ли будет вообще разблокировть луа?
Сообщение # 280 написано 16.10.2014 в 18:41
|
Сделать так, чтобы весь код скрипта выполнялся не чаще (допустим), чем раз в 3 миллисекунды. Для этого вводим дополнительную переменную(к примеру с названием timer), и аккумулируем в ней значения elapsed. Когда значение переменной timer достигнет нужной отметки (допустим это будет значение 0,3 (3 миллисекунды)) - код сработает. Пример реализации: Код timer = 0 function lol(self, elapsed) timer = timer + elapsed if timer < 0.3 then return else timer = 0 вот сюда вставляем часть кода скрипта которую необходимо выполнить, либо вызов другой функции, содержащей необходимый код end end
Сообщение # 284 написано 22.10.2014 в 01:06
|
Подскажите, пожалуйста, как сделать, чтобы эти два скрипта работали одновременно? Создал макрос: /sdm run 1 /sdm run 2, скрипты называются 1 и 2, по отдельности работают, но вместе если пишу в макрос, работает только тот, который последним написан. Может как-то по-другому можно написать, чтобы они работали одновременно или в один их объединить? Скрипты вот:
Сообщение # 287 написано 22.10.2014 в 19:39
|
Сообщение # 288 написано 22.10.2014 в 19:46
|
Kelwin, мог бы помочь, а не пафосные ответы писать.
В любом случае разобрался.
Сообщение # 290 написано 24.10.2014 в 20:13
|
Ребят,пожалуйста помогите с скриптом на отражения заклинания на варриора (3.3.5) Cкрипт просто не работает,не могу понять почему.Заранее спасибо
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)
Сообщение # 295 написано 27.10.2014 в 20:12
|
Господа, если вы нуждаетесь в помощи и желаете получить качественный результат, проявляйте уважение и постите код в code, а также не забывайте о табуляции.
spice28, переменные arg4, arg7 и arg10 у тебя не были объявлены. По логике вещей в строке SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) перед ... необходимо продолжить объявление вплоть до arg10. Или непосредственно сделать присвоение в коде функции, пример: Код _, arg4, _, _,arg7, _, _, arg10 = ... |
переменные arg4, arg7 и arg10 у тебя не были объявлены. По логике вещей в строке SpellFrame:SetScript("OnEvent", function(self, event, arg1, arg2, ...) перед ... необходимо продолжить объявление вплоть до arg10. Или непосредственно сделать присвоение в коде функции, пример: К сожалению я ни черта не понимаю ,как все это сделать грамотно.Я знаю ,это звучит очень нагло,но не могли бы вы помочь написав готовый скрипт.
Сообщение # 297 написано 27.10.2014 в 22:33
|
Данный скрипт писал не я, поэтому указываю исключительно на явные недостатки. Попробуй вставить: Код if(event=="COMBAT_LOG_EVENT_UNFILTERED") then _, arg4, _, _,arg7, _, _, arg10 = ... for s = 1,#SpellBase do Код if(event=="COMBAT_LOG_EVENT_UNFILTERED") then for s = 1,#SpellBase do
Сообщение # 298 написано 27.10.2014 в 22:57
|
Код local ScriptAddon = CreateFrame("Frame", "ScriptAddon", nil) function ScriptAddon:OnEvent(event, ...) -- functions created in "object:method"-style have an implicit first parameter of "self", which points to object self[event](self, ...) -- route event parameters to ScriptAddon:event methods end ScriptAddon:SetScript("OnEvent", ScriptAddon.OnEvent) ScriptAddon:RegisterEvent("UNIT_SPELLCAST_START") function ScriptAddon:UNIT_SPELLCAST_START(unit) local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(unit) if not spell then return end if displayName == "Превращение" then self:SetScript("OnUpdate", self.OnUpdate) self.unit = unit self.total = 0 self.endTime = endTime/1000 -- this is equal to GetTime() at which the cast will end self.unitName = UnitName(unit) end end function ScriptAddon:OnUpdate(elapsed) self.total = self.total + elapsed -- only call function every 50ms to improve performance if self.total >= 0.00 then self.total = 0 local spell, rank, displayName, icon, startTime, endTime, isTradeSkill = UnitCastingInfo(self.unit) if endTime and endTime/1000 - GetTime() <= 0.2 then -- stop using performance heavy onupdate function if no spellcast is currently going on self:SetScript("OnUpdate", nil) TargetUnit(self.unit) CastSpellByName("Слово Тьмы: Смерть") elseif self.endTime-0.2 <= GetTime() then -- lost Unit (changed target e.g.), guessing cast timer self:SetScript("OnUpdate", nil) TargetUnit(self.unitName) CastSpellByName("Слово Тьмы: Смерть") end end end Вот он скрипт на швд полиморфа:) А теперь вопрос к опытному скриптеру: Может подредактировать этот скрипт, чтобы он давал швд не только в полиморф, но и в седакт,блайнд,скаттер? Жду помощи:D P.S. от + не откажусь (кому помог со скриптом) |
| |||